|  | @@ -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()));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |