|
@@ -1,5 +1,6 @@
|
|
|
package com.malk.guyuan.controller;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.malk.guyuan.server.model.McInvoiceDto;
|
|
|
import com.malk.guyuan.server.model.McInvoiceKind;
|
|
@@ -11,6 +12,7 @@ import com.malk.server.aliwork.YDParam;
|
|
|
import com.malk.server.common.FilePath;
|
|
|
import com.malk.server.common.McException;
|
|
|
import com.malk.server.common.McR;
|
|
|
+import com.malk.server.dingtalk.DDR_New;
|
|
|
import com.malk.service.aliwork.YDClient;
|
|
|
import com.malk.service.aliwork.YDService;
|
|
|
import com.malk.utils.*;
|
|
@@ -372,7 +374,7 @@ public class NhIVController {
|
|
|
}
|
|
|
|
|
|
// prd 9.10 更新报销单, 关联到发票:: ppExt 宜搭服务注册, 提交规则系统默认字段 [详见 YDService]
|
|
|
- ydService.operateData2(data, update, YDParam.builder()
|
|
|
+ ydService.operateData2(data, update, YDParam.builder().systemToken(SYSTEM_TOKEN).appType(APP_TYPE)
|
|
|
.formUuid("FORM-442A54C312A64FCA9C1D19C7C1AD7314MXAJ")
|
|
|
.formInstanceIdList(formInstanceIds)
|
|
|
.updateFormDataJson(JSON.toJSONString(update))
|
|
@@ -415,6 +417,67 @@ public class NhIVController {
|
|
|
return McR.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 全局查询(不匹配子表单)
|
|
|
+ */
|
|
|
+ @PostMapping("validate")
|
|
|
+ McR queryAll(HttpServletRequest request) {
|
|
|
+ Map<String, ?> param = UtilServlet.getParamMap(request);
|
|
|
+ log.info("全局查询(不匹配子表单), {}", param);
|
|
|
+ if (ObjectUtil.isNull(param.get("uniques"))) {
|
|
|
+ return McR.success();
|
|
|
+ }
|
|
|
+ McException.assertParamException_Null(param, "uniques", "formUuid", "compId");
|
|
|
+ // 容错 - 尾部分号的空格会被输入框忽略
|
|
|
+ String[] uniques = String.valueOf(param.get("uniques")).replace("; ", ";").split(";");
|
|
|
+ for (String val : uniques) {
|
|
|
+ // 查重校验: 单张发票唯一标识 + 审批已通过 / 审批中
|
|
|
+ List<Map> conditions = new ArrayList<>();
|
|
|
+ Map unique = new HashMap();
|
|
|
+ unique.put("key", param.get("compId"));
|
|
|
+ unique.put("value", val.split(": ")[1]);
|
|
|
+ unique.put("type", "TEXT");
|
|
|
+ unique.put("operator", "like");
|
|
|
+ unique.put("componentName", "TextField");
|
|
|
+ conditions.add(unique);
|
|
|
+
|
|
|
+ Map approve = new HashMap();
|
|
|
+ approve.put("key", "processApprovedResult");
|
|
|
+ approve.put("value", new String[]{"agree"});
|
|
|
+ approve.put("type", "ARRAY");
|
|
|
+ approve.put("operator", "in");
|
|
|
+ approve.put("componentName", "SelectField");
|
|
|
+ conditions.add(approve);
|
|
|
+ YDParam ydParam = YDParam.builder()
|
|
|
+ .appType(APP_TYPE)
|
|
|
+ .systemToken(SYSTEM_TOKEN)
|
|
|
+ .formUuid(String.valueOf(param.get("formUuid")))
|
|
|
+ .searchCondition(JSON.toJSONString(conditions))
|
|
|
+ .build();
|
|
|
+ DDR_New ddr_new = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_list);
|
|
|
+ log.info("审批通过匹配结果, {}, {}", ddr_new.getTotalCount(), ddr_new.getData());
|
|
|
+ if (ddr_new.getTotalCount() > 0) {
|
|
|
+ return McR.errorAccess("发票已被使用, 请勿重复提交!");
|
|
|
+ }
|
|
|
+
|
|
|
+ conditions.remove(approve);
|
|
|
+ Map status = new HashMap();
|
|
|
+ status.put("key", "processInstanceStatus");
|
|
|
+ status.put("value", new String[]{"RUNNING"});
|
|
|
+ status.put("type", "ARRAY");
|
|
|
+ status.put("operator", "in");
|
|
|
+ status.put("componentName", "SelectField");
|
|
|
+ conditions.add(status);
|
|
|
+ ydParam.setSearchCondition(JSON.toJSONString(conditions));
|
|
|
+ ddr_new = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_list);
|
|
|
+ log.info("审批通过匹配结果, {}, {}", ddr_new.getTotalCount(), ddr_new.getData());
|
|
|
+ if (ddr_new.getTotalCount() > 0) {
|
|
|
+ return McR.errorAccess("发票已在流程中, 请勿重复提交!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return McR.success();
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("test")
|
|
|
McR test() {
|
|
|
|