diff --git a/src/com/engine/kr/entity/kq/KqActionBO.java b/src/com/engine/kr/entity/kq/KqActionBO.java index 59641b8..d3fbc01 100644 --- a/src/com/engine/kr/entity/kq/KqActionBO.java +++ b/src/com/engine/kr/entity/kq/KqActionBO.java @@ -3,6 +3,9 @@ package com.engine.kr.entity.kq; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; +import java.util.HashMap; +import java.util.Map; + /** * 加班流程转换类 * @@ -102,4 +105,25 @@ public class KqActionBO { } return workTypeCode; } + + /** + * 获取流程创建、最后操作时间 + * + * @param requestId + * @return + */ + public static Map getOperateDateTime(String requestId) { + Map map = new HashMap<>(2); + RecordSet rs = new RecordSet(); + rs.executeQuery("select createdate,createtime,lastoperatedate,lastoperatetime from workflow_requestbase where requestid = ? ", requestId); + if (rs.next()) { + String createdate = rs.getString("createdate"); + String createtime = rs.getString("createtime"); + String lastoperatedate = rs.getString("lastoperatedate"); + String lastoperatetime = rs.getString("lastoperatetime"); + map.put("addDay", createdate + " " + createtime); + map.put("cfmDay", lastoperatedate + " " + lastoperatetime); + } + return map; + } } diff --git a/src/com/engine/kr/service/KqInteractiveService.java b/src/com/engine/kr/service/KqInteractiveService.java index 3909845..8f035a0 100644 --- a/src/com/engine/kr/service/KqInteractiveService.java +++ b/src/com/engine/kr/service/KqInteractiveService.java @@ -15,5 +15,13 @@ public interface KqInteractiveService { * @param params 参数 * @return */ - Map getLeaveBal(Map params); + Map getLeaveBal(Map params); + + /** + * 获取用户照片 + * + * @param params + * @return + */ + Map getUserImage(Map params); } diff --git a/src/com/engine/kr/service/impl/KqInteractiveServiceImpl.java b/src/com/engine/kr/service/impl/KqInteractiveServiceImpl.java index d9813e9..721edc6 100644 --- a/src/com/engine/kr/service/impl/KqInteractiveServiceImpl.java +++ b/src/com/engine/kr/service/impl/KqInteractiveServiceImpl.java @@ -8,9 +8,15 @@ import com.engine.kr.enums.KqInteractiveEnum; import com.engine.kr.exception.CustomizeRunTimeException; import com.engine.kr.service.KqInteractiveService; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.util.IOUtils; import weaver.conn.RecordSet; +import weaver.file.ImageFileManager; +import weaver.general.BaseBean; import weaver.general.Util; +import java.io.IOException; +import java.io.InputStream; +import java.util.Base64; import java.util.HashMap; import java.util.Map; @@ -68,6 +74,35 @@ public class KqInteractiveServiceImpl extends Service implements KqInteractiveSe return returnMap; } + + @Override + public Map getUserImage(Map params) { + Map returnMap = new HashMap<>(3); + String personId = Util.null2String(params.get("personId")); + RecordSet rs = new RecordSet(); + rs.executeQuery("select resourceimageid from hrmresource where workcode = ? ", personId); + String resourceImageId = ""; + if (rs.next()) { + resourceImageId = rs.getString("resourceimageid"); + } + if (StringUtils.isNotBlank(resourceImageId)) { + ImageFileManager manager = new ImageFileManager(); + manager.getImageFileInfoById(Util.getIntValue(resourceImageId)); + InputStream inputStream = manager.getInputStream(); + try { + returnMap.put("base64", Base64.getEncoder().encodeToString(IOUtils.toByteArray(inputStream))); + returnMap.put("filetype", manager.getImageFileType()); + returnMap.put("fileName", manager.getImageFileName()); + } catch (IOException e) { + new BaseBean().writeLog(e); + throw new CustomizeRunTimeException(e.getMessage()); + } + } else { + throw new CustomizeRunTimeException("文件获取失败"); + } + return returnMap; + } + /** * 请求,获取token * diff --git a/src/com/engine/kr/web/KqInteractiveController.java b/src/com/engine/kr/web/KqInteractiveController.java index 637c6b5..e6b1bf9 100644 --- a/src/com/engine/kr/web/KqInteractiveController.java +++ b/src/com/engine/kr/web/KqInteractiveController.java @@ -1,5 +1,6 @@ package com.engine.kr.web; +import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.kr.service.KqInteractiveService; import com.engine.kr.service.impl.KqInteractiveServiceImpl; @@ -9,6 +10,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; @@ -29,8 +31,17 @@ public class KqInteractiveController { @POST @Path("/getLeaveBal") @Produces(MediaType.APPLICATION_JSON) - public String getLeaveBal(@Context HttpServletRequest request, @Context HttpServletResponse response,Map params) { + public String getLeaveBal(@Context HttpServletRequest request, @Context HttpServletResponse response, Map params) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult, Map>(user).run(getService(user)::getLeaveBal, params); } + + @GET + @Path("/getUserImage") + @Produces(MediaType.APPLICATION_JSON) + public String getUserImage(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + return new ResponseResult, Map>(user).run(getService(user)::getUserImage, params); + } } diff --git a/src/com/weaver/interfaces/kr/workflow/action/KrBatchOvertimeCreateAction.java b/src/weaver/interfaces/kr/workflow/action/KrBatchOvertimeCreateAction.java similarity index 88% rename from src/com/weaver/interfaces/kr/workflow/action/KrBatchOvertimeCreateAction.java rename to src/weaver/interfaces/kr/workflow/action/KrBatchOvertimeCreateAction.java index 59cb2ef..3d54f01 100644 --- a/src/com/weaver/interfaces/kr/workflow/action/KrBatchOvertimeCreateAction.java +++ b/src/weaver/interfaces/kr/workflow/action/KrBatchOvertimeCreateAction.java @@ -1,4 +1,4 @@ -package com.weaver.interfaces.kr.workflow.action; +package weaver.interfaces.kr.workflow.action; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; @@ -22,7 +22,6 @@ public class KrBatchOvertimeCreateAction implements Action { public String execute(RequestInfo requestInfo) { String billNo = ""; - String resourceId = ""; MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); @@ -30,9 +29,6 @@ public class KrBatchOvertimeCreateAction implements Action { String name = property.getName(); String value = property.getValue(); switch (name) { - case "resourceId": - resourceId = KqActionBO.getUserName(value); - break; case "lcbh": billNo = value; break; @@ -41,9 +37,8 @@ public class KrBatchOvertimeCreateAction implements Action { } } String token = new KqInteractiveServiceImpl().getToken(); - String addDay = requestInfo.getRequestManager().getCreatedate() + " " + requestInfo.getRequestManager().getCreatetime(); String cfmBy = KqActionBO.getUserName(requestInfo.getLastoperator()); - String cfmDay = requestInfo.getRequestManager().getLastoperatedate() + " " + requestInfo.getRequestManager().getLastoperatetime(); + Map operateDateTime = KqActionBO.getOperateDateTime(requestInfo.getRequestid()); DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo(); @@ -113,10 +108,10 @@ public class KrBatchOvertimeCreateAction implements Action { params.put("billHours", billHours); params.put("runsNo", null); params.put("otReason", otReason); - params.put("addBy", resourceId); - params.put("addDay", addDay); + params.put("addBy", requestInfo.getCreatorid()); + params.put("addDay", operateDateTime.get("addDay")); params.put("cfmBy", cfmBy); - params.put("cfmDay", cfmDay); + params.put("cfmDay", operateDateTime.get("cfmDay")); // 1新增、2变动、3取消 params.put("billStat", 1); diff --git a/src/com/weaver/interfaces/kr/workflow/action/KrLeaveCreateAction.java b/src/weaver/interfaces/kr/workflow/action/KrLeaveCreateAction.java similarity index 86% rename from src/com/weaver/interfaces/kr/workflow/action/KrLeaveCreateAction.java rename to src/weaver/interfaces/kr/workflow/action/KrLeaveCreateAction.java index 2fed831..3082a7b 100644 --- a/src/com/weaver/interfaces/kr/workflow/action/KrLeaveCreateAction.java +++ b/src/weaver/interfaces/kr/workflow/action/KrLeaveCreateAction.java @@ -1,4 +1,4 @@ -package com.weaver.interfaces.kr.workflow.action; +package weaver.interfaces.kr.workflow.action; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; @@ -70,7 +70,7 @@ public class KrLeaveCreateAction implements Action { } } - + Map operateDateTime = KqActionBO.getOperateDateTime(requestInfo.getRequestid()); Map params = new HashMap<>(); params.put("token", new KqInteractiveServiceImpl().getToken()); params.put("personId", KqActionBO.getWorkCode(resourceId)); @@ -85,10 +85,10 @@ public class KrLeaveCreateAction implements Action { params.put("inout", null); params.put("incHoli", null); params.put("dayoffReason", leaveReason); - params.put("addBy", KqActionBO.getUserName(requestInfo.getCreatorid())); - params.put("addDay", requestInfo.getRequestManager().getCreatedate() + " " + requestInfo.getRequestManager().getCreatetime()); + params.put("addBy", requestInfo.getCreatorid()); + params.put("addDay", operateDateTime.get("addDay")); params.put("cfmBy", KqActionBO.getUserName(requestInfo.getLastoperator())); - params.put("cfmDay", requestInfo.getRequestManager().getLastoperatedate() + " " + requestInfo.getRequestManager().getLastoperatetime()); + params.put("cfmDay", operateDateTime.get("addDay")); // 1新增、2变动、3取消 params.put("billStat", 1); @@ -97,9 +97,8 @@ public class KrLeaveCreateAction implements Action { String code = jsonObject.getString("code"); if (KqGlobal.SUC_CODE.equals(code)) { return SUCCESS; - } else { - requestInfo.getRequestManager().setMessagecontent(jsonObject.getString("msg")); } + requestInfo.getRequestManager().setMessagecontent(jsonObject.getString("msg")); return FAILURE_AND_CONTINUE; } diff --git a/src/weaver/interfaces/kr/workflow/action/KrLeaveRepeatAction.java b/src/weaver/interfaces/kr/workflow/action/KrLeaveRepeatAction.java new file mode 100644 index 0000000..b7e9af8 --- /dev/null +++ b/src/weaver/interfaces/kr/workflow/action/KrLeaveRepeatAction.java @@ -0,0 +1,49 @@ +package weaver.interfaces.kr.workflow.action; + +import weaver.conn.RecordSet; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +/** + * @author:dxfeng + * @createTime: 2023/05/24 + * @version: 1.0 + */ +public class KrLeaveRepeatAction implements Action { + @Override + public String execute(RequestInfo requestInfo) { + MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); + String resourceId = ""; + String leaveType = ""; + + Property[] properties = mainTableInfo.getProperty(); + for (Property property : properties) { + String name = property.getName(); + String value = property.getValue(); + switch (name) { + case "resourceId": + resourceId = value; + break; + case "jqlx": + leaveType = value; + break; + default: + break; + } + + } + String billTableName = requestInfo.getRequestManager().getBillTableName(); + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(1) as num from " + billTableName + " where resourceId = ? and jqlx =? and spzt != 2", resourceId, leaveType); + if (rs.next()) { + int num = rs.getInt("num"); + if (num > 0) { + requestInfo.getRequestManager().setMessagecontent("当前人员存在未审批完成的请假审核流程,请勿重复提交"); + return FAILURE_AND_CONTINUE; + } + } + return SUCCESS; + } +} diff --git a/src/com/weaver/interfaces/kr/workflow/action/KrSingleOvertimeCreateAction.java b/src/weaver/interfaces/kr/workflow/action/KrSingleOvertimeCreateAction.java similarity index 86% rename from src/com/weaver/interfaces/kr/workflow/action/KrSingleOvertimeCreateAction.java rename to src/weaver/interfaces/kr/workflow/action/KrSingleOvertimeCreateAction.java index 1c2c533..fe5ab44 100644 --- a/src/com/weaver/interfaces/kr/workflow/action/KrSingleOvertimeCreateAction.java +++ b/src/weaver/interfaces/kr/workflow/action/KrSingleOvertimeCreateAction.java @@ -1,4 +1,4 @@ -package com.weaver.interfaces.kr.workflow.action; +package weaver.interfaces.kr.workflow.action; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; @@ -73,6 +73,7 @@ public class KrSingleOvertimeCreateAction implements Action { break; } } + Map operateDateTime = KqActionBO.getOperateDateTime(requestInfo.getRequestid()); Map params = new HashMap<>(); params.put("token", new KqInteractiveServiceImpl().getToken()); @@ -87,11 +88,10 @@ public class KrSingleOvertimeCreateAction implements Action { params.put("billHours", duration); params.put("runsNo", null); params.put("otReason", workReason); - params.put("addBy", KqActionBO.getUserName(requestInfo.getCreatorid())); - params.put("addDay", requestInfo.getRequestManager().getCreatedate() + " " + requestInfo.getRequestManager().getCreatetime()); + params.put("addBy", requestInfo.getCreatorid()); + params.put("addDay", operateDateTime.get("addDay")); params.put("cfmBy", KqActionBO.getUserName(requestInfo.getLastoperator())); - params.put("cfmDay", requestInfo.getRequestManager().getLastoperatedate() + " " + requestInfo.getRequestManager().getLastoperatetime()); - // 1新增、2变动、3取消 + params.put("cfmDay", operateDateTime.get("addDay")); params.put("billStat", 1); String returnStr = HttpUtil.post(KqGlobal.POST_URL + KqInteractiveEnum.OVERTIME_CREATE.getPostPath(), params); @@ -99,9 +99,8 @@ public class KrSingleOvertimeCreateAction implements Action { String code = jsonObject.getString("code"); if (KqGlobal.SUC_CODE.equals(code)) { return SUCCESS; - } else { - requestInfo.getRequestManager().setMessagecontent(jsonObject.getString("msg")); } + requestInfo.getRequestManager().setMessagecontent(jsonObject.getString("msg")); return FAILURE_AND_CONTINUE; } }