java代码段
//验证子表是否有重复
ObjectMapper objectMapper = new ObjectMapper();
try {
Map<String, Object> map = objectMapper.readValue(proList, Map.class);
if(map != null){
JSONObject jb = JSONObject.fromObject(proList);
JSONArray ja = jb.getJSONArray("values");
List<Map<String,Object>> loginList = new ArrayList<Map<String,Object>>();
for(int i=0;i<ja.size();i++){
String overtimelogin = ja.getJSONObject(i).getString("overtimelogin"); //登录名
String overtimeUser = ja.getJSONObject(i).getString("overtimeUser"); //加班人姓名
String overtimeState = ja.getJSONObject(i).getString("overtimeState"); //加班开始时间
String overtimeEnd = ja.getJSONObject(i).getString("overtimeEnd"); //加班结束时间
for(int l = 0;l<loginList.size();l++){
Map<String,Object> loginMap = loginList.get(l);
// boolean contains = loginMap.containsKey(overtimelogin);
String login = loginMap.get("overtimelogin")==null?"":loginMap.get("overtimelogin").toString();
//如果有重复的登录名
if(overtimelogin.equals(login)){
String state = loginMap.get("overtimeState")==null?"":loginMap.get("overtimeState").toString();
String end = loginMap.get("overtimeEnd")==null?"":loginMap.get("overtimeEnd").toString();
//表单验证
String minutes = overtimeService.getIfBtraipDate(overtimeState, overtimeEnd, state, end);
if(Integer.parseInt(minutes) > 0){
res = overtimeUser + "(" + overtimelogin + ")加班时间填写重复,请核实!";
return res;
}
}
}
//根据processid和登录名---数据库验证
String mo = overtimeService.getIfBtraip(overtimelogin, overtimeState, overtimeEnd, processid);
if(Integer.parseInt(mo) > 0){
res = overtimeUser + "(" + overtimelogin + ")已申请了加班,请勿重复申请!";
return res;
}
//将加班信息保存至loginList
Map<String,Object> saveMap = new HashMap<String, Object>();
saveMap.put("overtimelogin", overtimelogin);
saveMap.put("overtimeState", overtimeState);
saveMap.put("overtimeEnd", overtimeEnd);
loginList.add(saveMap);
}
}
}catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sql对时间去重验证:
select count(*) n1
from dual
where ((aradmin.get_second(' sdate+ ') <=
aradmin.get_second(substr(' state + ', 0, 13)) and
aradmin.get_second(' +edate+ ') >=
aradmin.get_second(substr(' end+ ', 0, 13))) or
(aradmin.get_second(' sdate+ ') >=
aradmin.get_second(substr(' state + ', 0, 13)) and
aradmin.get_second(' sdate+ ') <=
aradmin.get_second(substr(' end+ ', 0, 13))) or
(aradmin.get_second(' edate+ ') >=
aradmin.get_second(substr(' state + ', 0, 13)) and
aradmin.get_second(' edate+ ') <=
aradmin.get_second(substr(' end+ ', 0, 13))))