Jelajahi Sumber

客户接口修改
1、增加optType参数,用于判断是新增还是修改。
2、新增时,行政组织id和核算组织其中一个必须有值,新增默认全局共享

wanghaiwu 1 bulan lalu
induk
melakukan
af370b4c25

+ 46 - 31
main/java/kd/cosmic/jkjt/common/basedata/api/SynCustomerNewApi2Plugin.java

@@ -44,17 +44,20 @@ public class SynCustomerNewApi2Plugin implements Serializable {
 
     /**
      *
-     * @param fmsOrgCode
+     * @param optType:1:新增,2:修改
      * @param unCustCode
      * @param custName
      * @param custType 1:政府, 2:个人, 3:企业, 4:其他
+     * @param orgId
+     * @param fmsOrgCode
      * @param creditCode 当客户类型为:1政府:统一社会信用码,非必填;2个人:身份证号,必填;3企业:统一社会信用码,必填;4其他:统一社会信用码,非必填。
      * @param isRelatedJxjk
      * @return
      */
     @ApiPostMapping("synCustomerNew")
     public CustomApiResult<JSONObject> synCustomerNew(
-            @Valid @ApiParam(value = "客户编码") String unCustCode
+            @Valid @ApiParam(value="操作类型") Integer optType
+            , @Valid @ApiParam(value = "客户编码") String unCustCode
             , @Valid @ApiParam(value = "客户名称") String custName
             , @Valid @ApiParam(value = "客户类型") String custType
             , @Valid @ApiParam(value = "行政组织PK") String orgId
@@ -73,12 +76,15 @@ public class SynCustomerNewApi2Plugin implements Serializable {
 //        logInfo = "SynCustomerNewApi2Plugin:" + "-" + unCustCode + "-" + custName + "-" + custType + "-" + orgId;
 //        logger.info(logInfo);
 
-        if (StringUtils.isEmpty(fmsOrgCode) && StringUtils.isEmpty(orgId)) {
+        //如果是新增,新增组织、核算组织必传一个
+        if(optType == 1 && (StringUtils.isEmpty(fmsOrgCode) && StringUtils.isEmpty(orgId))) {
             return returnResult("500", "行政组织PK和核算组织编码不能同时为空!");
         }
+
         boolean isAssignAll = false;
+
         //传入核算组织为空时,找到行政组织委托的核算组织
-        if(StringUtils.isEmpty(fmsOrgCode)){
+        if(optType == 1 && StringUtils.isEmpty(fmsOrgCode)){
             isAssignAll = true;
 
             entityName = "bos_adminorg";
@@ -114,40 +120,44 @@ public class SynCustomerNewApi2Plugin implements Serializable {
         //默认创建组织
         DynamicObject defaultOrg = BusinessDataServiceHelper.loadSingle(DEFAULT_ORG_ID, "bos_org");
 
-        QFilter filterForOrg = new QFilter("number", QCP.equals, fmsOrgCode);
-        QFilter[] filtersForOrg = new QFilter[]{filterForOrg};
-        DynamicObject assignOrg = BusinessDataServiceHelper.loadSingleFromCache("bos_org", "id,number,name", filtersForOrg);
-
-        Long assignOrgId = 0L;
+        List<Long> assignOrgIds = new ArrayList<>();
         String assignOrgName = "";
 
-        if (assignOrg == null) {
-            return returnResult("500", "业务单元(" + fmsOrgCode +")在星瀚系统不存在!");
-        }
+        //如果是新增,则处理分配组织
+        if(optType == 1) {
+            QFilter filterForOrg = new QFilter("number", QCP.equals, fmsOrgCode);
+            QFilter[] filtersForOrg = new QFilter[]{filterForOrg};
+            DynamicObject assignOrg = BusinessDataServiceHelper.loadSingleFromCache("bos_org", "id,number,name", filtersForOrg);
 
-        //被分配组织id
-        assignOrgId = assignOrg.getLong("id");
-        //被分配组织名称
-        assignOrgName = assignOrg.getString("name");
+            Long assignOrgId = 0L;
 
-        if(!assignOrgId.equals(DEFAULT_ORG_ID)) {
-            List<Long> assignOrgList = BaseDataServiceHelper.getAssignDesOrgs(DEFAULT_ORG_ID,"2",16L);
-            if (!assignOrgList.contains(assignOrgId)) {
-                return returnResult("500", "新增失败!组织(" + assignOrgName + ")不是CU,不能新增");
+            if (assignOrg == null) {
+                return returnResult("500", "业务单元(" + fmsOrgCode + ")在星瀚系统不存在!");
             }
-        }
 
-        List<Long> ids = new ArrayList<>();
-        ids.add(assignOrgId);
+            //被分配组织id
+            assignOrgId = assignOrg.getLong("id");
+            //被分配组织名称
+            assignOrgName = assignOrg.getString("name");
 
-        List<Long> assignOrgIds = new ArrayList<>();
-        boolean isIncludeCurOrg = DEFAULT_ORG_ID.equals(assignOrgId) ? false : true;
-        if(isAssignAll){
+            if (!assignOrgId.equals(DEFAULT_ORG_ID)) {
+                List<Long> assignOrgList = BaseDataServiceHelper.getAssignDesOrgs(DEFAULT_ORG_ID, "2", 16L);
+                if (!assignOrgList.contains(assignOrgId)) {
+                    return returnResult("500", "新增失败!组织(" + assignOrgName + ")不是CU,不能新增");
+                }
+            }
 
-            assignOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs("10", ids, isIncludeCurOrg);
-        } else {
-            if(isIncludeCurOrg) {
-                assignOrgIds.add(assignOrgId);
+            List<Long> ids = new ArrayList<>();
+            ids.add(assignOrgId);
+
+            boolean isIncludeCurOrg = DEFAULT_ORG_ID.equals(assignOrgId) ? false : true;
+            if (isAssignAll) {
+
+                assignOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs("10", ids, isIncludeCurOrg);
+            } else {
+                if (isIncludeCurOrg) {
+                    assignOrgIds.add(assignOrgId);
+                }
             }
         }
 
@@ -236,7 +246,11 @@ public class SynCustomerNewApi2Plugin implements Serializable {
         customer.set("nckd_checkboxfield", isRelatedJxjk);
 
         //管控策略:1、逐级分配;2、自由分配;5、全局共享;6、管控范围内共享;7、私有
-        customer.set("ctrlstrategy", 2);
+        if(isUpdate) {
+//            customer.set("ctrlstrategy", 2);
+        } else {
+            customer.set("ctrlstrategy", 5);
+        }
 
         //使用状态:0、禁用;1、可用
         customer.set("enable", "1");
@@ -333,6 +347,7 @@ public class SynCustomerNewApi2Plugin implements Serializable {
         StringBuilder message = new StringBuilder();
         message.append("1、更新成功");
         String code = "200";
+
         if(assignOrgIds.size() > 0) {
             String assignResult = assignOrgForCustomer(customerId, assignOrgIds);