Przeglądaj źródła

考核主体、核算主体、成本中心查询接口、OM收入会签单发起接口

fyz 3 dni temu
rodzic
commit
f57310f31e

+ 11 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/controller/DLController.java

@@ -63,6 +63,17 @@ public class DLController {
         return McR.success(result);
     }
 
+    @PostMapping(value = "startRevenueCountersignContract")
+    McR startRevenueCountersignContract(@RequestBody RevenueCountersignContract revenueCountersignContract,
+                                         HttpServletRequest request) {
+        log.info("开始执行收入合同会签申请单流程发起操作");
+        Map header = UtilServlet.getHeaders(request);
+        log.info("流程发起, {}, {}", revenueCountersignContract, header);
+        McException.assertException(!"dingcvk3998zkcvdpyzt".equals(header.get("authorization")), McREnum.NOT_AUTHORIZED);
+        Object result = payService.startRevenueCountersignContract(revenueCountersignContract);
+        return McR.success(result);
+    }
+
     @PostMapping(value = "startContractTermination")
     McR startContractTermination(@RequestBody ContractTermination contractTermination, HttpServletRequest request) {
         log.info("开始执行合同终止变更申请单流程发起操作");

+ 18 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/controller/PIController.java

@@ -51,6 +51,24 @@ public class PIController {
         return commissionService.getCustomerInfoEntity(data);
     }
 
+    @PostMapping(value = "/getAccountingSubjectPage")
+    McR getAccountingSubjectPage(@RequestBody Map data, HttpServletRequest request) {
+        log.info("开始分页查询核算主体数据");
+        Map header = UtilServlet.getHeaders(request);
+        log.info("分页查询核算主体数据, {}, {}", data, header);
+        McException.assertException(!"dingcvk3998zkcvdpyzt".equals(header.get("authorization")), McREnum.NOT_AUTHORIZED);
+        return commissionService.getAccountingSubjectPage(data);
+    }
+
+    @PostMapping(value = "/getAssessmentSubjectPage")
+    McR getAssessmentSubjectPage(@RequestBody Map data, HttpServletRequest request) {
+        log.info("开始分页查询考核主体数据");
+        Map header = UtilServlet.getHeaders(request);
+        log.info("分页查询考核主体数据, {}, {}", data, header);
+        McException.assertException(!"dingcvk3998zkcvdpyzt".equals(header.get("authorization")), McREnum.NOT_AUTHORIZED);
+        return commissionService.getAssessmentSubjectPage(data);
+    }
+
     @PostMapping(value = "/getFormTask")
     McR getFormTask(@RequestBody Map data , HttpServletRequest request) {
         log.info("开始查询当前流程数据操作");

+ 46 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/entity/AMS/master/RevenueCountersignContract.java

@@ -0,0 +1,46 @@
+package com.malk.sdzl.entity.AMS.master;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.malk.sdzl.entity.Attachment;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 收入合同会签申请单。
+ * 字段名与宜搭表单字段信息清单中的实体类字段名保持一致。
+ */
+@Data
+public class RevenueCountersignContract {
+
+    private String code = "";
+    private String section = "";
+    private String assessmentSubject = "";
+    private String assessmentSubjectCode = "";
+    private String accountingEntity = "";
+    private String costCenterApplicant = "";
+    private String costCenterCode = "";
+    private String operator = "";
+    private String operatorId = "";
+    private String date = "";
+    private String ourContractedCompany = "";
+    private String contractName = "";
+    private String nameOfTheOppositeUnit = "";
+    private String customerType = "";
+    private String affiliationGroup = "";
+    private String contractType = "";
+    private String isltARenewalCustomer = "";
+    @JsonProperty("EBSOppositeUnitName")
+    private String EBSOppositeUnitName;
+    @JsonProperty("EBSCustomerCode")
+    private String EBSCustomerCode;
+    private String contractDepartment = "";
+    private BigDecimal totalContractAmount = BigDecimal.ZERO;
+    private List<Attachment> annexToTheDocument = new ArrayList<>();
+    private String remarks = "";
+    private String ourStamp = "";
+    private String stampStatus = "";
+    private List<Attachment> sealContractScan = new ArrayList<>();
+}

+ 22 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/entity/AccountingSubjectEntity.java

@@ -0,0 +1,22 @@
+package com.malk.sdzl.entity;
+
+import lombok.Data;
+
+/**
+ * 宜搭核算主体表单返回实体。
+ */
+@Data
+public class AccountingSubjectEntity {
+
+    /** 宜搭表单实例ID。 */
+    private String formInstanceId;
+
+    /** 核算主体名称。 */
+    private String accountingSubject;
+
+    /** 核算主体编码。 */
+    private String accountingSubjectCode;
+
+    /** 核算主体全称。 */
+    private String fullName;
+}

+ 25 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/entity/AssessmentSubjectEntity.java

@@ -0,0 +1,25 @@
+package com.malk.sdzl.entity;
+
+import lombok.Data;
+
+/**
+ * 宜搭考核主体表单返回实体。
+ */
+@Data
+public class AssessmentSubjectEntity {
+
+    /** 宜搭表单实例ID。 */
+    private String formInstanceId;
+
+    /** 考核主体名称。 */
+    private String assessmentSubject;
+
+    /** 考核主体编码。 */
+    private String assessmentSubjectCode;
+
+    /** 成本中心。 */
+    private String costCenter;
+
+    /** 成本中心编码。 */
+    private String costCenterCode;
+}

+ 26 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/entity/FormPageResponse.java

@@ -0,0 +1,26 @@
+package com.malk.sdzl.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 宜搭表单分页响应实体。
+ *
+ * @param <T> 分页记录实体类型
+ */
+@Data
+public class FormPageResponse<T> {
+
+    /** 当前页,从1开始。 */
+    private Integer currentPage;
+
+    /** 每页条数。 */
+    private Integer pageSize;
+
+    /** 查询记录总数。 */
+    private Long totalCount;
+
+    /** 当前页记录。 */
+    private List<T> data;
+}

+ 14 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/service/CommissionService.java

@@ -103,6 +103,20 @@ public interface CommissionService {
      */
     McR getCustomerInfoEntity(Map data);
 
+    /**
+     * 分页查询核算主体表单
+     * @param data 查询条件和分页参数
+     * @return 分页表单数据
+     */
+    McR getAccountingSubjectPage(Map data);
+
+    /**
+     * 分页查询考核主体表单
+     * @param data 查询条件和分页参数
+     * @return 分页表单数据
+     */
+    McR getAssessmentSubjectPage(Map data);
+
     /**
      * 流程进度查询
      * @param data

+ 106 - 12
mjava-sdzl/src/main/java/com/malk/sdzl/service/Impl/CommissionServiceImpl.java

@@ -8,8 +8,11 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.malk.sdzl.entity.AccountingSubjectEntity;
+import com.malk.sdzl.entity.AssessmentSubjectEntity;
 import com.malk.sdzl.entity.Attachment;
 import com.malk.sdzl.entity.CustomerInfoEntity;
+import com.malk.sdzl.entity.FormPageResponse;
 import com.malk.sdzl.entity.SupplierInfoEntity;
 import com.malk.sdzl.entity.commission.master.*;
 import com.malk.sdzl.entity.commission.son.*;
@@ -17,6 +20,7 @@ import com.malk.sdzl.enums.AttachmentTypeEnum;
 import com.malk.sdzl.service.CommissionService;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
+import com.malk.server.dingtalk.DDR_New;
 import com.malk.server.common.McR;
 import com.malk.service.aliwork.YDClient;
 import com.malk.service.aliwork.YDService;
@@ -1702,6 +1706,22 @@ public class CommissionServiceImpl implements CommissionService {
         return McR.success(customerInfoEntities);
     }
 
+    @Override
+    public McR getAccountingSubjectPage(Map data) {
+        return McR.success(querySubjectPage(data,
+                "FORM-EF3C69C1DF73486D906D64B4B99EC2E8Y6PJ",
+                new String[]{"textField_mpz8iyhy", "textField_mpz8iyhz", "textField_mtv60q1t"},
+                this::toAccountingSubjectEntity));
+    }
+
+    @Override
+    public McR getAssessmentSubjectPage(Map data) {
+        return McR.success(querySubjectPage(data,
+                "FORM-B7FA79332E484F78945135A6C297DF12QRG2",
+                new String[]{"textField_mpz8iyhy", "textField_mpz8iyhz", "textField_mr4b6dtt", "textField_mr4b6dtv"},
+                this::toAssessmentSubjectEntity));
+    }
+
     @Override
     public Object getFormTask(Map data) {
         String userId = "603864663125953014";
@@ -2095,22 +2115,96 @@ public class CommissionServiceImpl implements CommissionService {
         return data;
     }
 
+    private <T> FormPageResponse<T> querySubjectPage(Map data, String formUuid, String[] fieldIds,
+                                                       java.util.function.Function<Map, T> converter) {
+        int currentPage = UtilMap.getInt(data, "currentPage");
+        if (currentPage <= 0) {
+            currentPage = 1;
+        }
+        int pageSize = UtilMap.getInt(data, "pageSize");
+        if (pageSize <= 0) {
+            pageSize = 100;
+        }
+        if (pageSize > 100) {
+            pageSize = 100;
+        }
+
+        Map<String, Object> searchMap = new HashMap<>();
+        for (String fieldId : fieldIds) {
+            String fieldValue = UtilMap.getString(data, fieldId);
+            if (!fieldValue.isEmpty()) {
+                searchMap.put(fieldId, fieldValue);
+            }
+        }
+
+        YDParam ydParam = YDParam.builder()
+                .appType(appType)
+                .systemToken(systemToken)
+                .formUuid(formUuid)
+                .currentPage(currentPage)
+                .pageSize(pageSize)
+                .searchFieldJson(JSON.toJSONString(searchMap))
+                .build();
+        DDR_New queryResult = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form);
+
+        List<Map> records = (List<Map>) queryResult.getData();
+        List<T> dataList = new ArrayList<>();
+        if (records != null) {
+            dataList = records.stream().map(item -> {
+                Map formData = (Map) item.get("formData");
+                Map result = formData == null ? new HashMap() : new HashMap(formData);
+                result.put("formInstanceId", item.get("formInstanceId"));
+                return converter.apply(result);
+            }).collect(Collectors.toList());
+        }
+
+        FormPageResponse<T> result = new FormPageResponse<>();
+        result.setCurrentPage(currentPage);
+        result.setPageSize(pageSize);
+        result.setTotalCount(queryResult.getTotalCount());
+        result.setData(dataList);
+        return result;
+    }
+
+    private AccountingSubjectEntity toAccountingSubjectEntity(Map formData) {
+        AccountingSubjectEntity entity = new AccountingSubjectEntity();
+        entity.setFormInstanceId(UtilMap.getString(formData, "formInstanceId"));
+        entity.setAccountingSubject(UtilMap.getString(formData, "textField_mpz8iyhy"));
+        entity.setAccountingSubjectCode(UtilMap.getString(formData, "textField_mpz8iyhz"));
+        entity.setFullName(UtilMap.getString(formData, "textField_mtv60q1t"));
+        return entity;
+    }
+
+    private AssessmentSubjectEntity toAssessmentSubjectEntity(Map formData) {
+        AssessmentSubjectEntity entity = new AssessmentSubjectEntity();
+        entity.setFormInstanceId(UtilMap.getString(formData, "formInstanceId"));
+        entity.setAssessmentSubject(UtilMap.getString(formData, "textField_mpz8iyhy"));
+        entity.setAssessmentSubjectCode(UtilMap.getString(formData, "textField_mpz8iyhz"));
+        entity.setCostCenter(UtilMap.getString(formData, "textField_mr4b6dtt"));
+        entity.setCostCenterCode(UtilMap.getString(formData, "textField_mr4b6dtv"));
+        return entity;
+    }
+
     private List<Map> searchGetFormData(Map<String, Object> searchMap, int currentPage, int pageSize, String formUuid){
-        YDParam ydParam = YDParam.builder().build();
-//        ydParam.setPageSize(1);
-//        long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getTotalCount();
-        // 轮询累计数据
-        ydParam.setCurrentPage(currentPage);
-        ydParam.setPageSize(pageSize);
-        ydParam.setSearchFieldJson(JSON.toJSONString(searchMap));
-        ydParam.setFormUuid(formUuid);
+        YDParam ydParam = YDParam.builder()
+                .appType(appType)
+                .systemToken(systemToken)
+                .formUuid(formUuid)
+                .currentPage(currentPage)
+                .pageSize(pageSize)
+                .searchFieldJson(JSON.toJSONString(searchMap))
+                .build();
         List<Map> dataList = new ArrayList<>();
-        dataList.addAll((List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData());
+        List<Map> records = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
+        if (records != null) {
+            dataList.addAll(records);
+        }
         return dataList.stream().map(item -> {
             Map formData = (Map) item.get("formData");
-            formData.put("instanceId", item.get("formInstanceId"));
-            formData.put("formInstanceId", item.get("formInstanceId"));
-            return formData;
+            Map result = formData == null ? new HashMap() : new HashMap(formData);
+            result.put("instanceId", item.get("formInstanceId"));
+            result.put("formInstanceId", item.get("formInstanceId"));
+            return result;
         }).collect(Collectors.toList());
     }
 }

+ 60 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/service/Impl/PayServiceImpl.java

@@ -351,6 +351,66 @@ public class PayServiceImpl implements PayService {
         return data;
     }
 
+    @Override
+    public Object startRevenueCountersignContract(RevenueCountersignContract revenueCountersignContract) {
+        return ydClient.operateData(YDParam.builder()
+                .userId(revenueCountersignContract.getOperatorId())
+                .appType(appType)
+                .systemToken(systemToken)
+                .formUuid("FORM-F702D5AE142C49B9883C113B1C540DB0XBZD")
+                .formDataJson(JSON.toJSONString(UtilMap.map("textField_mpxojd0l, " +
+                                "textField_mpcdx36z, " +
+                                "textField_mpcdx377, " +
+                                "textField_mpdo38zv, " +
+                                "textField_mpcdx370, " +
+                                "textField_mpcf7nz6, " +
+                                "textField_mtv45kai, " +
+                                "textField_mtv45kam, " +
+                                "dateField_mpdo38zu, " +
+                                "textField_mpdo38zw, " +
+                                "textField_mtv45kaj, " +
+                                "textField_mpcf7nzi, " +
+                                "selectField_mpdo3904, " +
+                                "textField_mpdo3905, " +
+                                "selectField_mpdo3906, " +
+                                "selectField_mpdo390b, " +
+                                "textField_mpdo390h, " +
+                                "textField_mpdo390i, " +
+                                "textField_mtv45kal, " +
+                                "numberField_mpceu15v, " +
+                                "attachmentField_mpcf7o00, " +
+                                "textareaField_mpcf7nzq, " +
+                                "dateField_mpdo390p, " +
+                                "selectField_mpdo390q, " +
+                                "attachmentField_mpdo390s",
+                        revenueCountersignContract.getCode(),
+                        revenueCountersignContract.getSection(),
+                        revenueCountersignContract.getAssessmentSubject(),
+                        revenueCountersignContract.getAssessmentSubjectCode(),
+                        revenueCountersignContract.getAccountingEntity(),
+                        revenueCountersignContract.getCostCenterApplicant(),
+                        revenueCountersignContract.getCostCenterCode(),
+                        revenueCountersignContract.getOperator(),
+                        revenueCountersignContract.getDate(),
+                        revenueCountersignContract.getOurContractedCompany(),
+                        revenueCountersignContract.getContractName(),
+                        revenueCountersignContract.getNameOfTheOppositeUnit(),
+                        revenueCountersignContract.getCustomerType(),
+                        revenueCountersignContract.getAffiliationGroup(),
+                        revenueCountersignContract.getContractType(),
+                        revenueCountersignContract.getIsltARenewalCustomer(),
+                        revenueCountersignContract.getEBSOppositeUnitName(),
+                        revenueCountersignContract.getEBSCustomerCode(),
+                        revenueCountersignContract.getContractDepartment(),
+                        revenueCountersignContract.getTotalContractAmount(),
+                        revenueCountersignContract.getAnnexToTheDocument(),
+                        revenueCountersignContract.getRemarks(),
+                        revenueCountersignContract.getOurStamp(),
+                        revenueCountersignContract.getStampStatus(),
+                        revenueCountersignContract.getSealContractScan())))
+                .build(), YDConf.FORM_OPERATION.start);
+    }
+
     @Override
     public Object startContractTermination(ContractTermination contractTermination) {
         String oaCoding = contractTermination.getOaCoding();

+ 5 - 0
mjava-sdzl/src/main/java/com/malk/sdzl/service/PayService.java

@@ -21,6 +21,11 @@ public interface PayService {
      */
     Object startSystemContract(SystemContract systemContract);
 
+    /**
+     * 收入合同会签申请单
+     */
+    Object startRevenueCountersignContract(RevenueCountersignContract revenueCountersignContract);
+
     /**
      *合同终止变更申请单
      */