Преглед изворни кода

<feat>:修改
1、SRM同步接口,根据srm单据号,在星瀚中验重

wanghaiwu пре 1 дан
родитељ
комит
ac171499c5

+ 33 - 1
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/webapi/SRMSynPayApiPlugin.java

@@ -18,6 +18,7 @@ import kd.bos.openapi.common.result.CustomApiResult;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.QueryServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import nckd.base.helper.CommonHelperUtils;
 import javax.validation.Valid;
@@ -148,6 +149,13 @@ public class SRMSynPayApiPlugin implements Serializable {
             }
         }
 
+        //根据srm单据编号,校验在星瀚中是否已存在单据
+        String xhBillNO = queryBillInfoBySRMBillNo(ENTITY_PUBLICPAY, srmBillNo);
+        if(!StringUtils.isEmpty(xhBillNO)){
+            returnMessage = "此SRM单号在星瀚系统已存在,对公报销单编号:" + xhBillNO;
+            return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
+        }
+
 //        DynamicObject projectInfo = CommonHelperUtils.queryDynamicObject("bd_project", "number", project);
 //        if(projectInfo == null){
 //            returnMessage = "项目(" + project + ")在星瀚系统中未匹配到数据!";
@@ -484,13 +492,19 @@ public class SRMSynPayApiPlugin implements Serializable {
         String position = inputData.getString("position");//职位
         String biller = inputData.getString("biller");//制单人工号
 
-
         if(StringUtils.isEmpty(srmBillNo) || StringUtils.isEmpty(srmUrl) || StringUtils.isEmpty(cause) || StringUtils.isEmpty(contract)
                 || StringUtils.isEmpty(orgUnit) || StringUtils.isEmpty(position) || StringUtils.isEmpty(biller) || StringUtils.isEmpty(applier)){
             returnMessage = "请检查以下参数 SRM单号、srmUrl、合同编码、事由、申请部门、申请人职位、制单人、经办人 是否为空!";
             return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
         }
 
+        //根据srm单据编号,校验在星瀚中是否已存在单据
+        String xhBillNO = queryBillInfoBySRMBillNo(ENTITY_PREPAY, srmBillNo);
+        if(!StringUtils.isEmpty(xhBillNO)){
+            returnMessage = "此SRM单号在星瀚系统已存在,预付单编号:" + xhBillNO;
+            return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
+        }
+
         DynamicObject creatorInfo = CommonHelperUtils.queryBaseDynamicObject("bos_user", "number", biller);
         if(creatorInfo == null){
             returnMessage = "制单人(" + biller + ")在星瀚系统中未匹配到数据!";
@@ -747,4 +761,22 @@ public class SRMSynPayApiPlugin implements Serializable {
 
         return CustomApiResult.success(reslutData);
     }
+
+    /**
+     * 根据srm单据号检测星瀚系统是否已存在
+     * @param srmBillNo
+     * @param entityName
+     * @return
+     */
+    private String queryBillInfoBySRMBillNo(String srmBillNo, String entityName){
+        String billNO = "";
+
+        QFilter qFilter = new QFilter("nckd_srmbillno", QCP.equals, srmBillNo);
+        DynamicObject info = BusinessDataServiceHelper.loadSingle(entityName, qFilter.toArray());
+
+        if(info != null){
+            billNO = info.getString("billno");
+        }
+        return billNO;
+    }
 }