diff --git a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java index fd1ac76..9e1f62f 100644 --- a/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java +++ b/src/com/engine/jucailinkq/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java @@ -114,7 +114,7 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand> getWorkOverTimeResults(String startDate,String endDate,String userId){ - String sql = "select sjjbsc,sjksrq,sjjsrq from uf_jcl_kq_jbjg where jbry=? and sjksrq>? and sjjsrq=? and sjjsrq<=?"; List> dataList = DbTools.getSqlToList(sql,userId,startDate,endDate); return dataList; } @@ -286,7 +286,7 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand> dataList,String date){ + public double getWeekTime(List> dataList,String date){ int day = TimeUtil.getDayOfWeek(date); if (day ==0){ day = 7; @@ -303,18 +303,31 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommandInteger.valueOf(e.get("sjjbsc").toString())).sum(); - return totalHour; + double totalMinute = 0; + for (Map data:list){ + String hsdw = data.get("hsdw").toString(); + totalMinute += Utils.getItemduration(1,AccountingUnitEnum.MINUTES.getKey(), Double.valueOf(data.get("sjjbsc").toString()),AccountingUnitEnum.getEnum(hsdw),8); + } + + return totalMinute; } /** * 获得一个月加班数 * @param dataList * @return */ - public int getMonthTime(List> dataList,String date){ - List> list = dataList.stream().filter(e->DateUtil.getTime(e.get("sjksrq").toString()).compareTo(DateUtil.getTime(date)) !=0).collect(Collectors.toList()); - int totalHour = list.stream().mapToInt(e->Integer.valueOf(e.get("sjjbsc").toString())).sum(); - return totalHour; + public double getMonthTime(List> dataList,String date){ + String startDate = date.split("-")[0]+"-"+ date.split("-")[1]+"-01"; + String endDate = date.split("-")[0]+"-"+ date.split("-")[1]+"-"+Util.null2String(params.get("diffdays")); + List> list = dataList.stream().filter(e->DateUtil.getTime(e.get("sjksrq").toString()).compareTo(DateUtil.getTime(startDate))>=0 && + DateUtil.getTime(e.get("sjjsrq").toString()).compareTo(DateUtil.getTime(endDate))<=0).collect(Collectors.toList()); + + double totalMinute = 0; + for (Map data:list){ + String hsdw = data.get("hsdw").toString(); + totalMinute += Utils.getItemduration(1,AccountingUnitEnum.MINUTES.getKey(), Double.valueOf(data.get("sjjbsc").toString()),AccountingUnitEnum.getEnum(hsdw),8); + } + return totalMinute; } /** diff --git a/src/com/engine/jucailinkq/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java b/src/com/engine/jucailinkq/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java index 022a68a..df6174d 100644 --- a/src/com/engine/jucailinkq/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java +++ b/src/com/engine/jucailinkq/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java @@ -37,7 +37,7 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic Map data = Maps.newHashMap(); String sql = "select * from (select t1.fieldid,t2.fieldname,t1.fieldlable,t1.ismand,t2.fielddbtype,t2.fieldhtmltype,t2.type, t1.dmlurl, t1.fieldorder, t1.isuse, t1.isModify,'1' as allowModify, t1.groupid, 1 as allowhide from cus_formfield t1, cus_formdict t2 where t1.fieldid=t2.id and t1.scope='HrmCustomFieldByInfoType' and (t1.scopeid='1' or t1.scopeid='-1' or t1.scopeid='3' ) " + " UNION all " + - " select fieldid, fieldname, fieldlabel ,ismand ,fielddbtype ,fieldhtmltype ,type , dmlurl,fieldorder ,isuse ,isModify ,allowModify, groupid, allowhide from hrm_formfield) hrmallfield where groupid in (select id from hrm_fieldgroup where (grouptype = '1' or grouptype = '-1' or grouptype = '3')) "; + " select fieldid, fieldname, fieldlabel ,ismand ,fielddbtype ,fieldhtmltype ,type , dmlurl,fieldorder ,isuse ,isModify ,allowModify, groupid, allowhide from hrm_formfield) hrmallfield where groupid in (select id from hrm_fieldgroup where (grouptype = '1' or grouptype = '-1' or grouptype = '3')) or fieldname='subcompanyid1'"; sql = sql +condition+" order by hrmallfield.groupid, hrmallfield.fieldorder "; log.debug("sql :[{}]",sql); diff --git a/src/com/engine/jucailinkq/attendance/enums/AccountingUnitEnum.java b/src/com/engine/jucailinkq/attendance/enums/AccountingUnitEnum.java index d2cfd37..8b148fd 100644 --- a/src/com/engine/jucailinkq/attendance/enums/AccountingUnitEnum.java +++ b/src/com/engine/jucailinkq/attendance/enums/AccountingUnitEnum.java @@ -26,4 +26,12 @@ public enum AccountingUnitEnum implements BaseEnum { public String getValue() { return this.value; } + public static AccountingUnitEnum getEnum(String hsdw){ + for (AccountingUnitEnum unitEnum :AccountingUnitEnum.values()){ + if (unitEnum.getKey().equals(hsdw)){ + return unitEnum; + } + } + return null; + } }