diff --git a/src/com/engine/xmgsecond/entity/KqCloseRecords.java b/src/com/engine/xmgsecond/entity/KqCloseRecords.java new file mode 100644 index 0000000..c57237f --- /dev/null +++ b/src/com/engine/xmgsecond/entity/KqCloseRecords.java @@ -0,0 +1,32 @@ +package com.engine.xmgsecond.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2025/5/21 15:43 + * @Description: TODO + * @Version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KqCloseRecords { + + private Integer id; + + private String subCompanyIds; + + private String departmentIds; + + private String startDate; + + private String endDate; + + private Integer closeStatus; + +} diff --git a/src/com/engine/xmgsecond/entity/KqCloseSet.java b/src/com/engine/xmgsecond/entity/KqCloseSet.java new file mode 100644 index 0000000..81da639 --- /dev/null +++ b/src/com/engine/xmgsecond/entity/KqCloseSet.java @@ -0,0 +1,37 @@ +package com.engine.xmgsecond.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2025/5/21 14:37 + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KqCloseSet { + + private Integer id; + + private Integer workflowId; + + private String startDateCode; + + private String endDateCode; + + private String fbCode; + + private String bmCode; + + private Integer createNodeId; + + private Integer endNodeId; + +} diff --git a/src/com/engine/xmgsecond/service/KqCloseAccountService.java b/src/com/engine/xmgsecond/service/KqCloseAccountService.java index 2dd3032..fa3ced6 100644 --- a/src/com/engine/xmgsecond/service/KqCloseAccountService.java +++ b/src/com/engine/xmgsecond/service/KqCloseAccountService.java @@ -1,7 +1,9 @@ package com.engine.xmgsecond.service; import com.engine.workflow.entity.publicApi.PAResponseEntity; +import com.engine.xmgsecond.entity.KqCloseSet; +import java.util.List; import java.util.Map; /** @@ -13,4 +15,8 @@ import java.util.Map; public interface KqCloseAccountService { PAResponseEntity closeAccount(Map param); + + List getWorkflowList(); + + Boolean checkSubmit(Map param); } diff --git a/src/com/engine/xmgsecond/service/impl/KqCloseAccountServiceImpl.java b/src/com/engine/xmgsecond/service/impl/KqCloseAccountServiceImpl.java index 41512cd..2272a86 100644 --- a/src/com/engine/xmgsecond/service/impl/KqCloseAccountServiceImpl.java +++ b/src/com/engine/xmgsecond/service/impl/KqCloseAccountServiceImpl.java @@ -6,9 +6,14 @@ import com.engine.workflow.entity.publicApi.PAResponseEntity; import com.engine.workflow.entity.publicApi.ReqOperateRequestEntity; import com.engine.workflow.publicApi.WorkflowRequestOperatePA; import com.engine.workflow.publicApi.impl.WorkflowRequestOperatePAImpl; +import com.engine.xmgsecond.entity.KqCloseSet; import com.engine.xmgsecond.service.KqCloseAccountService; +import weaver.conn.RecordSet; import weaver.general.BaseBean; +import weaver.general.Util; +import java.util.ArrayList; +import java.util.List; import java.util.Map; /** @@ -26,10 +31,39 @@ public class KqCloseAccountServiceImpl extends Service implements KqCloseAccount @Override public PAResponseEntity closeAccount(Map param) { + String id = Util.null2String(param.get("billid")); + String subCompanyIds = Util.null2String(param.get("gzfb")); + String departmentIds = Util.null2String(param.get("gzbm")); + String startDate = Util.null2String(param.get("ksrq")); + String endDate = Util.null2String(param.get("jsrq")); + + + RecordSet rs = new RecordSet(); + List workflowList = getWorkflowList(); WorkflowRequestOperatePA operatePA = getRequestOperatePA(); + //1.获取系统流程数据,根据关账流程配置中流程id + + + //2.根据表单id,及配置字段参数,.获取分部or部门 开始日期和结束日期 + + + //3 值匹配筛选requestid + + + //4.流程干预操作 + + + //5.更新关账记录表操作者信息 + + + + + ReqOperateRequestEntity requestParam = new ReqOperateRequestEntity(); + + //流程干预 // requestParam.setRequestId(1681681); // requestParam.setSrc("intervenor"); @@ -42,9 +76,56 @@ public class KqCloseAccountServiceImpl extends Service implements KqCloseAccount // PAResponseEntity paResponseEntity = operatePA.doIntervenor(user, requestParam); - //强制归档 DoArchivingCmd - return null; } + + @Override + public List getWorkflowList() { + + List kqCloseSets = new ArrayList<>(); + RecordSet rs = new RecordSet(); + rs.executeQuery("select id,lclj,ksrqdyzdbm,jsrqdyzdbm,ssfbdyzdbm,ssbmdyzdbm,fqjdid,gdjdid from uf_kqgzpz"); + while (rs.next()) { + kqCloseSets.add(KqCloseSet.builder() + .id(Util.getIntValue(rs.getString("id"))) + .workflowId(Util.getIntValue(rs.getString("lclj"))) + .startDateCode(Util.null2String(rs.getString("ksrqdyzdbm"))) + .endDateCode(Util.null2String(rs.getString("jsrqdyzdbm"))) + .fbCode(Util.null2String(rs.getString("ssfbdyzdbm"))) + .bmCode(Util.null2String(rs.getString("ssbmdyzdbm"))) + .createNodeId(Util.getIntValue(rs.getString("fqjdid"))) + .endNodeId(Util.getIntValue(rs.getString("gdjdid"))) + .build()); + } + return kqCloseSets; + } + + @Override + public Boolean checkSubmit(Map param) { + + String subCompanyIds = Util.null2String(param.get("subCompanyIds")); + String departmentIds = Util.null2String(param.get("departmentIds")); + String startDate = Util.null2String(param.get("startDate")); + String endDate = Util.null2String(param.get("endDate")); + + boolean result = false; + RecordSet rs = new RecordSet(); + + String sql = "select id from uf_kqgzjl where ksrq <= ? and jsrq >= ?"; + + if(!subCompanyIds.isEmpty()) { + sql += " and gzfb is not null and gzfb in ("+subCompanyIds+")"; + rs.executeQuery(sql,endDate,startDate); + result = rs.getCounts()>0; + } + + if (!departmentIds.isEmpty() && !result) { + sql += " and gzbm is not null and gzbm in ("+departmentIds+")"; + rs.executeQuery(sql,endDate,startDate); + result = rs.getCounts()>0; + } + rs.writeLog("KqCloseAccountServiceImpl:checkSubmit"+sql); + return result; + } } diff --git a/src/com/engine/xmgsecond/web/KqCloseAccountAction.java b/src/com/engine/xmgsecond/web/KqCloseAccountAction.java index d6d84cb..fddf9ae 100644 --- a/src/com/engine/xmgsecond/web/KqCloseAccountAction.java +++ b/src/com/engine/xmgsecond/web/KqCloseAccountAction.java @@ -12,6 +12,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; import javax.ws.rs.core.Context; @@ -32,7 +33,7 @@ public class KqCloseAccountAction { } - @GET + @POST @Path("/closeAccount") @Produces(MediaType.TEXT_PLAIN) public String closeAccount(@Context HttpServletRequest request, @Context HttpServletResponse response){ @@ -47,4 +48,38 @@ public class KqCloseAccountAction { } return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); } + + + @GET + @Path("/getWorkflowList") + @Produces(MediaType.TEXT_PLAIN) + public String getWorkflowList(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map data = new HashMap<>(8); + try { + User user = HrmUserVarify.getUser(request, response); + data.put("data",getService(user).getWorkflowList()); + data.put("code", 200); + } catch (Exception e) { + data.put("code", 500); + data.put("msg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); + } + + + @GET + @Path("/checkSubmit") + @Produces(MediaType.TEXT_PLAIN) + public String checkSubmit(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map data = new HashMap<>(8); + try { + User user = HrmUserVarify.getUser(request, response); + data.put("data",getService(user).checkSubmit(ParamUtil.request2Map(request))); + data.put("code", 200); + } catch (Exception e) { + data.put("code", 500); + data.put("msg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); + } }