diff --git a/src/com/api/sskj/controller/KqWorkflowController.java b/src/com/api/sskj/controller/KqWorkflowController.java new file mode 100644 index 0000000..59c1f96 --- /dev/null +++ b/src/com/api/sskj/controller/KqWorkflowController.java @@ -0,0 +1,7 @@ +package com.api.sskj.controller; + +import javax.ws.rs.Path; + +@Path("/sskj/kqworkflow") +public class KqWorkflowController extends com.engine.sskj.controller.KqWorkflowController{ +} diff --git a/src/com/engine/kq/cmd/attendanceEvent/GetAttendanceCardCmd.java b/src/com/engine/kq/cmd/attendanceEvent/GetAttendanceCardCmd.java index 93c1ade..f9d032c 100644 --- a/src/com/engine/kq/cmd/attendanceEvent/GetAttendanceCardCmd.java +++ b/src/com/engine/kq/cmd/attendanceEvent/GetAttendanceCardCmd.java @@ -7,6 +7,7 @@ import com.engine.kq.biz.KQReportBiz; import com.engine.kq.biz.KQTimesArrayComInfo; import com.engine.kq.cmd.attendanceButton.ButtonStatusEnum; import weaver.conn.RecordSet; +import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import weaver.systeminfo.SystemEnv; @@ -28,10 +29,13 @@ public class GetAttendanceCardCmd extends AbstractCommonCommand execute(CommandContext commandContext) { Map retmap = new HashMap(); RecordSet rs = new RecordSet(); + basebean.writeLog("-----------GetAttendanceCardCmd to do------------"); try{ String resourceId = Util.null2String(params.get("resourceId")); String fromDate = Util.null2String(params.get("fromDate")); @@ -53,7 +57,8 @@ public class GetAttendanceCardCmd extends AbstractCommonCommand reporsts = kqReportBiz.getKqDateInfo(resourceId, fromDate, toDate, false); + List reporsts = kqReportBiz.getKqDateInfo(resourceId, fromDate, toDate, false); + basebean.writeLog("reporsts: " + reporsts); for(int i = 0 ; i < reporsts.size() ; i++) { Map kqdateMap = (Map) reporsts.get(i); String kqdate = Util.null2String(kqdateMap.get("kqdate")); @@ -121,29 +126,53 @@ public class GetAttendanceCardCmd extends AbstractCommonCommand 0) { +// atteStatus0 += SystemEnv.getHtmlLabelName(10000807, Util.getIntValue(user.getLanguage())) + signintime; +// } +// cardMap.put("atteStatus", atteStatus0); +// //下拉框0是上班,1是下班 +// cardMap.put("signtype", "0"); +// cardMap.put("signtime", workbegintime); +// cardList.add(cardMap); + //考勤二开--漏签转旷工start if (signintime.length() > 0) { - atteStatus0 += SystemEnv.getHtmlLabelName(10000807, Util.getIntValue(user.getLanguage())) + signintime; + + } else { + cardMap.put("atteStatus", atteStatus0); + //下拉框0是上班,1是下班 + cardMap.put("signtype", "0"); + cardMap.put("signtime", workbegintime); + cardList.add(cardMap); } + //end + - cardMap.put("atteStatus", atteStatus0); - //下拉框0是上班,1是下班 - cardMap.put("signtype", "0"); - cardMap.put("signtime", workbegintime); - cardList.add(cardMap); } if(!end.equals("1")) { cardMap = new HashMap<>(); cardMap.put("signdate", workenddate); cardMap.put("scheduletime", scheduletime); String atteStatus1 = SystemEnv.getHtmlLabelName(20085, Util.getIntValue(user.getLanguage())); +// if (signouttime.length() > 0) { +// atteStatus1 += SystemEnv.getHtmlLabelName(10000808, Util.getIntValue(user.getLanguage())) + signouttime; +// } +// cardMap.put("atteStatus", atteStatus1); +// //下拉框0是上班,1是下班 +// cardMap.put("signtype", "1"); +// cardMap.put("signtime", workendtime); +// cardList.add(cardMap); + //考勤二开--漏签转旷工start if (signouttime.length() > 0) { - atteStatus1 += SystemEnv.getHtmlLabelName(10000808, Util.getIntValue(user.getLanguage())) + signouttime; + + } else { + cardMap.put("atteStatus", atteStatus1); + //下拉框0是上班,1是下班 + cardMap.put("signtype", "1"); + cardMap.put("signtime", workendtime); + cardList.add(cardMap); } - cardMap.put("atteStatus", atteStatus1); - //下拉框0是上班,1是下班 - cardMap.put("signtype", "1"); - cardMap.put("signtime", workendtime); - cardList.add(cardMap); + //end + } } if (ButtonStatusEnum.NOSIGN.getStatusCode().equalsIgnoreCase(tmp_status)) { diff --git a/src/com/engine/sskj/controller/KqWorkflowController.java b/src/com/engine/sskj/controller/KqWorkflowController.java new file mode 100644 index 0000000..dd94d0c --- /dev/null +++ b/src/com/engine/sskj/controller/KqWorkflowController.java @@ -0,0 +1,39 @@ +package com.engine.sskj.controller; + +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.sskj.service.EntryService; +import com.engine.sskj.service.KqWorkflowService; +import com.engine.sskj.service.impl.EntryServiceImpl; +import com.engine.sskj.service.impl.KqWorkflowServiceImpl; +import com.google.gson.Gson; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +public class KqWorkflowController { + + public KqWorkflowService getKqWorkflowService(User user) { + return ServiceUtil.getService(KqWorkflowServiceImpl.class,user); + } + + @POST + @Path("/calWorkTime") + @Produces(MediaType.APPLICATION_JSON) + public String calWorkTime(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + Map resultDatas = getKqWorkflowService(user).calWorkTime(params); + return new Gson().toJson(resultDatas); + } + + +} diff --git a/src/com/engine/sskj/service/KqWorkflowService.java b/src/com/engine/sskj/service/KqWorkflowService.java new file mode 100644 index 0000000..d69f791 --- /dev/null +++ b/src/com/engine/sskj/service/KqWorkflowService.java @@ -0,0 +1,12 @@ +package com.engine.sskj.service; + +import java.util.Map; + +public interface KqWorkflowService { + /** + * 连班加班流程加班时长计算 + */ + Map calWorkTime(Map params); + + +} diff --git a/src/com/engine/sskj/service/impl/KqWorkflowServiceImpl.java b/src/com/engine/sskj/service/impl/KqWorkflowServiceImpl.java new file mode 100644 index 0000000..6a014bc --- /dev/null +++ b/src/com/engine/sskj/service/impl/KqWorkflowServiceImpl.java @@ -0,0 +1,51 @@ +package com.engine.sskj.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.engine.core.impl.Service; +import com.engine.kq.util.KQDurationCalculatorUtil; +import com.engine.sskj.service.KqWorkflowService; +import com.engine.sskj.util.SskjUtil; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import java.util.*; + +public class KqWorkflowServiceImpl extends Service implements KqWorkflowService { + + BaseBean basebean = new BaseBean(); + + @Override + public Map calWorkTime(Map params) { + + Map result = new HashMap<>(); + + String startTime = Util.null2String(params.get("starttime")); + basebean.writeLog("startTime: " + startTime); + String endTime = Util.null2String(params.get("endtime")); + basebean.writeLog("endTime: " + endTime); + + if (StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)) { + result.put("code",500); + result.put("msg", "开始时间或结束时间为空"); + return result; + } + if (startTime.length() == 16) { + startTime = startTime + ":00"; + } + if (endTime.length() == 16) { + endTime = endTime + ":00"; + } + SskjUtil sskjUtil = new SskjUtil(); + long time = sskjUtil.getTime(startTime, endTime); + basebean.writeLog("time: " + time); + + String betweenHours = KQDurationCalculatorUtil.getDurationRound(String.valueOf(Util.getDoubleValue(time+"")/60.0)); + basebean.writeLog("betweenHours: " + betweenHours); + + result.put("code",200); + result.put("data",betweenHours); + return result; + } +} diff --git a/src/com/engine/sskj/util/SskjUtil.java b/src/com/engine/sskj/util/SskjUtil.java index 4fc547b..ce5a565 100644 --- a/src/com/engine/sskj/util/SskjUtil.java +++ b/src/com/engine/sskj/util/SskjUtil.java @@ -1,6 +1,9 @@ package com.engine.sskj.util; import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; + +import java.text.SimpleDateFormat; /** * @author chenwnj @@ -9,6 +12,8 @@ import weaver.formmode.setup.ModeRightInfo; **/ public class SskjUtil { + BaseBean basebean = new BaseBean(); + /** * 建模权限重构 * @param userId @@ -21,4 +26,21 @@ public class SskjUtil { ModeRightInfo.editModeDataShare( userId, Integer.parseInt(jobGroupDesModeId), Integer.parseInt(billid)); } + // 获取两个时间相差分钟数 + public long getTime(String oldTime,String newTime) { + + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + long diff = 0; + try { + long NTime =df.parse(newTime).getTime(); + //从对象中拿到时间 + long OTime = df.parse(oldTime).getTime(); + diff=(NTime-OTime)/1000/60; + }catch (Exception e) { + basebean.writeLog("SskjUtil getTime Exception: " + e); + } + + return diff; + } + }