package weaver.interfaces.kr.workflow.action; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.kr.entity.kq.KqActionBO; import com.engine.kr.entity.kq.KqGlobal; import com.engine.kr.enums.KqInteractiveEnum; import com.engine.kr.service.impl.KqInteractiveServiceImpl; import weaver.general.BaseBean; import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.MainTableInfo; import weaver.soa.workflow.request.Property; import weaver.soa.workflow.request.RequestInfo; import java.util.HashMap; import java.util.Map; /** * @author:dxfeng * @createTime: 2023/05/23 * @version: 1.0 */ public class KrSingleOvertimeCreateAction implements Action { @Override public String execute(RequestInfo requestInfo) { String resourceId = ""; String fromDate = ""; String fromTime = ""; String toDate = ""; String toTime = ""; // 补偿方式 String overtimeType = ""; String duration = ""; String billNo = ""; String workType = ""; String workReason = ""; MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); for (Property property : properties) { String name = property.getName(); String value = property.getValue(); switch (name) { case "resourceId": resourceId = value; break; case "fromDate": fromDate = value; break; case "fromTime": fromTime = value; break; case "toDate": toDate = value; break; case "toTime": toTime = value; break; case "overtime_type": overtimeType = value; break; case "duration": duration = value; break; case "lcbh": billNo = value; break; case "jblx": workType = value; break; case "jbsy": workReason = value; break; default: break; } } Map operateDateTime = KqActionBO.getOperateDateTime(requestInfo.getRequestid()); Map params = new HashMap<>(); params.put("token", new KqInteractiveServiceImpl().getToken()); params.put("personId", KqActionBO.getWorkCode(resourceId)); params.put("billNo", billNo); params.put("otType", KqActionBO.getWorkTypeCode(workType)); params.put("otAdjuest", overtimeType); params.put("beginDate", fromDate); params.put("beginTime", fromTime); params.put("endDate", toDate); params.put("endTime", toTime); params.put("billHours", duration); params.put("runsNo", null); params.put("otReason", workReason); params.put("addBy", requestInfo.getCreatorid()); params.put("addDay", operateDateTime.get("addDay")); params.put("cfmBy", KqActionBO.getUserName(requestInfo.getLastoperator())); params.put("cfmDay", operateDateTime.get("addDay")); params.put("billStat", 1); new BaseBean().writeLog("########加班流程,requestid={" + requestInfo.getRequestid() + "],传参:"+ JSON.toJSONString(params)); String returnStr = HttpUtil.post(KqGlobal.POST_URL + KqInteractiveEnum.OVERTIME_CREATE.getPostPath(), params); new BaseBean().writeLog("########加班流程,requestid={" + requestInfo.getRequestid() + "],接口响应数据:"+ returnStr); JSONObject jsonObject = JSONObject.parseObject(returnStr); String code = jsonObject.getString("code"); if (KqGlobal.SUC_CODE.equals(code)) { return SUCCESS; } requestInfo.getRequestManager().setMessagecontent(jsonObject.getString("msg")); return FAILURE_AND_CONTINUE; } }