|
|
@@ -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;
|