Browse Source

完善任务生成预警单

wuxiaobing 2 days ago
parent
commit
8ec0e88d68

+ 22 - 36
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/poc602/plugin/task/PurContractHaveNotJGSDTask.java

@@ -47,10 +47,8 @@ public class PurContractHaveNotJGSDTask extends AbstractTask {
             Object billno = saleData.get("billno");
             xshtbillnos.add(billno);
         }
-        logger.info("PurContractHaveNotJGSDTask-xshtbillnos:" + xshtbillnos);
         if (!xshtbillnos.isEmpty()) {
-        	Map<String,String> xsht2cghtbillno = new HashMap<>();
-        	Map<String,Set<String>> xsht2cght = new HashMap<>();
+        	Map<String,Set<String>> xsht2cghtbillno = new HashMap<>();
             QFilter qcght = new QFilter("billstatus", QCP.equals, "C");
             qcght.and("nckd_refbillfield.billno", QCP.in, xshtbillnos);
             List<String> cghtbillnos = new ArrayList<>();
@@ -58,11 +56,16 @@ public class PurContractHaveNotJGSDTask extends AbstractTask {
             for(DynamicObject cght : cghts) {
             	String billno = cght.getString("billno");
             	String xshtbillno = cght.getString("nckd_refbillfield.billno");
-            	xsht2cghtbillno.put(xshtbillno, billno);
+            	Set<String> cghtkeys = xsht2cghtbillno.get(xshtbillno);
+            	if(cghtkeys == null) {
+            		cghtkeys = new HashSet<>();
+            		cghtkeys.add(billno);
+            		xsht2cghtbillno.put(xshtbillno, cghtkeys);
+            	}else {
+            		cghtkeys.add(billno);
+            	}
             	cghtbillnos.add(billno);
             }
-            logger.info("PurContractHaveNotJGSDTask-cghtbillnos:" + cghtbillnos);
-            logger.info("PurContractHaveNotJGSDTask-xsht2cghtbillno:" + xsht2cghtbillno);
             if(!cghtbillnos.isEmpty()) {
             	QFilter qcghtbg = new QFilter("billstatus", QCP.equals, "C");
             	qcghtbg.and("billno", QCP.in, cghtbillnos);
@@ -72,36 +75,23 @@ public class PurContractHaveNotJGSDTask extends AbstractTask {
                     for (DynamicObject cghtbg : cghtbgs) {
                         String billno = cghtbg.getString("billno");//采购合同编号
                         cghtbillnos.remove(billno);
+                        for(String xsht : xsht2cghtbillno.keySet()) {
+                        	Set<String> cght = xsht2cghtbillno.get(xsht);
+                        	cght.remove(billno);
+                        }
                     }
                 }
-                logger.info("PurContractHaveNotJGSDTask-cghtbillnos2:" + cghtbillnos);
             }
-            logger.info("PurContractHaveNotJGSDTask-cghtbillnos3:" + cghtbillnos);
             StringBuffer bf = new StringBuffer();
             if(!cghtbillnos.isEmpty()) {
-            	
-            	for(String cghtbillno : cghtbillnos) {
-            		String xshtbillno = xsht2cghtbillno.get(cghtbillno);
-            		Set<String> cgs = xsht2cght.get(xshtbillno);
-            		if(cgs == null) {
-            			cgs = new HashSet<>();
-            			cgs.add(cghtbillno);
-            			xsht2cght.put(xshtbillno, cgs);
-            		}else {
-            			cgs.add(cghtbillno);
-            		}
-            	}
-            	logger.info("PurContractHaveNotJGSDTask-xsht2cght:" + xsht2cght);
-            	
-            	for(String xsht : xsht2cght.keySet()) {
-            		Set<String> cght = xsht2cght.get(xsht);
+            	for(String xsht : xsht2cghtbillno.keySet()) {
+            		Set<String> cght = xsht2cghtbillno.get(xsht);
             		String tm = "以下采购合同(来源于销售合同:" + xsht + ")未进行价格审定";
             		bf.append(tm);
             		bf.append(System.lineSeparator());
             		bf.append(cght.toString());
             		bf.append(System.lineSeparator());
             	}
-            	logger.info("PurContractHaveNotJGSDTask-bf:" + bf);
             	if(StringUtils.isNotBlank(bf.toString())) {
             		this.buildBGYJD(bf.toString());
             	}
@@ -110,12 +100,14 @@ public class PurContractHaveNotJGSDTask extends AbstractTask {
     }
     
     private void buildBGYJD(String error) {
-    	logger.info("PurContractHaveNotJGSDTask-buildBGYJD");
 		String entityNumSupplier = "nckd_cght_bg_yjd";
 		DynamicObject yjd = BusinessDataServiceHelper.newDynamicObject(entityNumSupplier);
+		Long orgid = RequestContext.getOrCreate().getOrgId();
+		DynamicObject org = BusinessDataServiceHelper.loadSingle(orgid, "bos_org");
 		//结算组织
 		yjd.set("nckd_error", error);
-		
+		yjd.set("billstatus", "A");
+		yjd.set("org",org);
 	    List<DynamicObject> yjds = new ArrayList<>();
 	    yjds.add(yjd);
 		//保存单据
@@ -125,15 +117,9 @@ public class PurContractHaveNotJGSDTask extends AbstractTask {
 			List<Object> yjdids = sRet.getSuccessPkIds();
 			DynamicObject[] yjdobs = BusinessDataServiceHelper.load(yjdids.toArray(), (DynamicObjectType)dt);
 			sRet = OperationServiceHelper.executeOperate("submit","nckd_cght_bg_yjd",yjdobs,OperateOption.create());
-			if(sRet.isSuccess()) {
-				yjdids = sRet.getSuccessPkIds();
-				yjdobs = BusinessDataServiceHelper.load(yjdids.toArray(), (DynamicObjectType)dt);
-				sRet = OperationServiceHelper.executeOperate("audit","nckd_cght_bg_yjd",yjdobs,OperateOption.create());
-			}
 		}
-		logger.info("PurContractHaveNotJGSDTask-isSuccess:" + sRet.isSuccess());
-		logger.info("PurContractHaveNotJGSDTask-getMessage:" + sRet.getMessage());
-		
-		logger.info("PurContractHaveNotJGSDTask-getAllErrorInfo:" + SerializationUtils.toJsonString(sRet.getAllErrorInfo()));
+		if(!sRet.isSuccess()) {
+			logger.error("PurContractHaveNotJGSDTask-buildBGYJD:" + sRet.getMessage() + System.lineSeparator() + SerializationUtils.toJsonString(sRet.getAllErrorInfo()));
+		}
     }
 }