Bladeren bron

小程序合同流程修改

ouyj 2 dagen geleden
bovenliggende
commit
1f9e5b430a
1 gewijzigde bestanden met toevoegingen van 54 en 0 verwijderingen
  1. 54 0
      src/main/contract/com/yw/contract/client/action/ContractMiniAppAction.java

+ 54 - 0
src/main/contract/com/yw/contract/client/action/ContractMiniAppAction.java

@@ -86,6 +86,8 @@ public class ContractMiniAppAction extends RequestAbs {
                 rv = getPaymentTypeList(json);
             } else if ("selectClient".equals(task)) {
                 rv = selectClient(json);
+            } else if ("checkContractNumber".equals(task)) {
+                rv = checkContractNumber(json);
             } else {
                 rv = new ResultVo();
                 rv.setReturnCode("-1");
@@ -231,6 +233,10 @@ public class ContractMiniAppAction extends RequestAbs {
         String contractNumber = formData.optString("contract_number", "");
         if (StringUtils.isNotEmpty(contractNumber)) {
             contractInfo.setContract_number(contractNumber);
+        } else {
+            rv.setReturnCode("-1");
+            rv.setReturnMsg("合同编号不能为空!");
+            return rv;
         }
         
         String contractName = formData.optString("contract_name", "");
@@ -1082,6 +1088,54 @@ public class ContractMiniAppAction extends RequestAbs {
         return rv;
     }
 
+    /**
+     * 验证合同编号是否已存在
+     */
+    private ResultVo checkContractNumber(JSONObject json) throws Exception {
+        ResultVo rv = new ResultVo();
+        User user = getUserFromJson(json);
+        OASession oasession = new OASession();
+        oasession.setUnit(new Group());
+        oasession.getUnit().setId(user.getUnitId());
+            
+        String contractNumber = json.optString("contractNumber", "");
+        if (StringUtils.isEmpty(contractNumber)) {
+            rv.setReturnCode("-1");
+            rv.setReturnMsg("合同编号不能为空!");
+            return rv;
+        }
+            
+        ContractEntryService contractEntryService = (ContractEntryService) cxt.getBean("contractEntryService");
+            
+        // 创建临时对象用于验证
+        ContractInfo tempInfo = new ContractInfo();
+        tempInfo.setContract_number(contractNumber);
+        tempInfo.setIsValid(999); // 检查所有状态的合同(0、1、3)
+            
+        // 获取universalid,用于排除当前合同自己(审批流程中需要)
+        String universalid = json.optString("universalid", "");
+        if (StringUtils.isNotEmpty(universalid)) {
+            try {
+                tempInfo.setUniversalid(Long.valueOf(universalid));
+            } catch (NumberFormatException e) {
+                // 忽略无效的universalid
+            }
+        }
+            
+        // 调用DAO验证是否存在相同编号的合同
+        int count = contractEntryService.isExistContractNumber(tempInfo, oasession);
+            
+        if (count > 0) {
+            rv.setReturnCode("-1");
+            rv.setReturnMsg("合同编号【" + contractNumber + "】已存在,请使用其他编号!");
+        } else {
+            rv.setReturnCode("1");
+            rv.setReturnMsg("success");
+        }
+            
+        return rv;
+    }
+
     @Override
     public String getServiceId() {
         return serviceId;