This commit is contained in:
		
							parent
							
								
									1d06e025da
								
							
						
					
					
						commit
						c3b061861f
					
				|  | @ -13,6 +13,7 @@ import nc.bs.arap.validator.CrossRuleCheckValidator; | |||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.bs.dao.DAOException; | ||||
| import nc.bs.trade.business.HYSuperDMO; | ||||
| import nc.jdbc.framework.processor.MapListProcessor; | ||||
| import nc.jdbc.framework.processor.MapProcessor; | ||||
| import nc.vo.arap.basebill.BaseBillVO; | ||||
| import nc.vo.arap.gathering.GatheringBillItemVO; | ||||
|  | @ -23,9 +24,11 @@ import nc.vo.pub.BusinessException; | |||
| import nc.vo.pub.CircularlyAccessibleValueObject; | ||||
| import nc.vo.pub.lang.UFDouble; | ||||
| 
 | ||||
| import java.math.BigDecimal; | ||||
| import java.time.LocalDateTime; | ||||
| import java.time.format.DateTimeFormatter; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
|  | @ -69,45 +72,80 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction | |||
| 			if(!"30".equals(srcBilltype)){ | ||||
| 				continue; | ||||
| 			} | ||||
| 
 | ||||
| 			String def3 = ((GatheringBillItemVO)bill.getChildrenVO()[0]).getSrc_billid(); // 收款单对应的销售订单id | ||||
| 			if (StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)) { | ||||
| 				// 无绑定的销售订单则下一次循环 | ||||
| 				continue; | ||||
| 			} | ||||
| 			List<String> def3List = new ArrayList<>(); | ||||
| 			for (int j=0;j<bill.getChildrenVO().length;i++){ | ||||
| 				def3List.add(((GatheringBillItemVO)bill.getChildrenVO()[j]).getSrc_billid()); | ||||
| 			} | ||||
| 			String result = ""; | ||||
| 			StringBuilder sb = new StringBuilder(); | ||||
| 			if (def3List.size() > 1) { | ||||
| 				for (int j = 0; j < def3List.size(); j++) { | ||||
| 					sb.append("'").append(def3List.get(j)).append("'"); | ||||
| 					if (j < def3List.size() - 1) { | ||||
| 						sb.append(","); | ||||
| 					} | ||||
| 				} | ||||
| 
 | ||||
| 				result = sb.toString(); | ||||
| 			} else { | ||||
| 				result = "'" + (String) def3List.get(0) + "'"; | ||||
| 			} | ||||
| 			// 计算收款单金额差值 | ||||
| 			UFDouble changeMoney = money.sub(oriMoney); | ||||
| 			// 根据销售订单id去查询销售订单 | ||||
| 			BaseDAO dao = new BaseDAO(); | ||||
| 			List<String> defMap = checkOrgCtrl(); | ||||
| 			if (defMap.isEmpty() ) { | ||||
| 				return ; | ||||
| 			} | ||||
| 			String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM  so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG  where so_saleorder.dr = 0 and so_saleorder.csaleorderid = '" +def3+"'"; | ||||
| 			Map saleMap = (Map)dao.executeQuery(sql1, new MapProcessor()); | ||||
| 			String code = saleMap.get("code").toString(); | ||||
| 			LocalDateTime dbilldate = LocalDateTime.parse(saleMap.get("dbilldate").toString(), | ||||
| 					DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| 			LocalDateTime targetDate = LocalDateTime.parse("2025-06-27 00:00:00", | ||||
| 					DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| //			List<String> defMap = checkOrgCtrl(); | ||||
| //			if (defMap.isEmpty() ) { | ||||
| //				return ; | ||||
| //			} | ||||
| 			String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM  so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG  where so_saleorder.dr = 0 and so_saleorder.csaleorderid in  (" + result + ") "; | ||||
| 			ArrayList<HashMap<String, Object>> saleMap = (ArrayList<HashMap<String, Object>>)dao.executeQuery(sql1, new MapListProcessor()); | ||||
| 
 | ||||
| 			if (defMap.contains(code) && dbilldate.isBefore(targetDate)) { | ||||
| 				return; | ||||
| 			} | ||||
| 			// 销售订单价税合计 | ||||
| //            List<Map> saleMap = (List<Map>)dao.executeQuery(sql1, new MapProcessor()); | ||||
| //            String code = saleMap.get("code").toString(); | ||||
| //            LocalDateTime dbilldate = LocalDateTime.parse(saleMap.get("dbilldate").toString(), | ||||
| //                    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| //            LocalDateTime targetDate = LocalDateTime.parse("2025-06-27 00:00:00", | ||||
| //                    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| // | ||||
| //            if (!defMap.isEmpty()&& defMap.contains(code) && dbilldate.isBefore(targetDate)) { | ||||
| //                return; | ||||
| //            } | ||||
| //            Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); | ||||
| 			//销售订单价税合计 | ||||
| 			UFDouble ntotalorigmny = UFDouble.ZERO_DBL; | ||||
| 			// 销售订单实际收款金额 | ||||
| 			//销售订单实际收款金额 | ||||
| 			UFDouble nreceivedmny = UFDouble.ZERO_DBL; | ||||
| 			String vbillcode = ""; | ||||
| 			StringBuilder vbillcodeBuilder = new StringBuilder(); | ||||
| 			if(saleMap != null) { | ||||
| 				nreceivedmny = new UFDouble( | ||||
| 						saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString()); | ||||
| 				ntotalorigmny = new UFDouble( | ||||
| 						saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString()); | ||||
| 				vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString(); | ||||
| 				for (Map<String, Object> map : saleMap) { | ||||
| 					// 累加 nreceivedmny | ||||
| 					String nreceivedmnyStr = map.get("nreceivedmny") == null ? "0" : map.get("nreceivedmny").toString(); | ||||
| 					nreceivedmny.add(new UFDouble(nreceivedmnyStr)) ; | ||||
| 
 | ||||
| 					// 累加 ntotalorigmny | ||||
| 					BigDecimal ntotalorigmnyStr = map.get("ntotalorigmny") == null ? BigDecimal.ZERO : (BigDecimal) map.get("ntotalorigmny"); | ||||
| 					UFDouble ufd=    new UFDouble(ntotalorigmnyStr); | ||||
| 					ntotalorigmny=  ntotalorigmny.add(ufd); | ||||
| 					// 拼接 vbillcode | ||||
| 					String vbillcodeStr = map.get("vbillcode") == null ? "" : map.get("vbillcode").toString(); | ||||
| 					if (!vbillcodeStr.isEmpty()) { | ||||
| 						if (vbillcodeBuilder.length() > 0) { | ||||
| 							vbillcodeBuilder.append(", "); | ||||
| 						} | ||||
| 						vbillcodeBuilder.append(vbillcodeStr); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			if (money.compareTo(ntotalorigmny) > 0) { | ||||
| 				UFDouble moreMoney = money.sub(ntotalorigmny); | ||||
| 				throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); | ||||
| 				throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcodeBuilder + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ import nc.bs.arap.validator.CrossRuleCheckValidator; | |||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.bs.dao.DAOException; | ||||
| import nc.bs.trade.business.HYSuperDMO; | ||||
| import nc.jdbc.framework.processor.MapListProcessor; | ||||
| import nc.jdbc.framework.processor.MapProcessor; | ||||
| import nc.vo.arap.basebill.BaseBillVO; | ||||
| import nc.vo.arap.gathering.GatheringBillItemVO; | ||||
|  | @ -23,6 +24,7 @@ import nc.vo.pub.AggregatedValueObject; | |||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.lang.UFDouble; | ||||
| 
 | ||||
| import java.math.BigDecimal; | ||||
| import java.time.LocalDateTime; | ||||
| import java.time.format.DateTimeFormatter; | ||||
| import java.util.ArrayList; | ||||
|  | @ -82,6 +84,24 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { | |||
|             if(!"30".equals(srcBilltype)){ | ||||
|                 continue; | ||||
|             } | ||||
|             List<String> def3List = new ArrayList<>(); | ||||
|             for (int i=0;i<bill.getChildrenVO().length;i++){ | ||||
|                 def3List.add(((GatheringBillItemVO)bill.getChildrenVO()[i]).getSrc_billid()); | ||||
|             } | ||||
|             String result = ""; | ||||
|             StringBuilder sb = new StringBuilder(); | ||||
|             if (def3List.size() > 1) { | ||||
|                 for (int i = 0; i < def3List.size(); i++) { | ||||
|                     sb.append("'").append(def3List.get(i)).append("'"); | ||||
|                     if (i < def3List.size() - 1) { | ||||
|                         sb.append(","); | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 result = sb.toString(); | ||||
|             } else { | ||||
|                 result = "'" + (String) def3List.get(0) + "'"; | ||||
|             } | ||||
|             String def3 = ((GatheringBillItemVO)bill.getChildrenVO()[0]).getSrc_billid(); // 收款单对应的销售订单id | ||||
|             if(StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)){ | ||||
|                 //无绑定的销售订单则下一次循环 | ||||
|  | @ -94,35 +114,53 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { | |||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|             List<String> defMap = checkOrgCtrl(); | ||||
|             if (defMap.isEmpty() ) { | ||||
|                 return ; | ||||
|             } | ||||
|             String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM  so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG  where so_saleorder.dr = 0 and so_saleorder.csaleorderid = '" +def3+"'"; | ||||
|             Map saleMap = (Map)dao.executeQuery(sql1, new MapProcessor()); | ||||
|             String code = saleMap.get("code").toString(); | ||||
|             LocalDateTime dbilldate = LocalDateTime.parse(saleMap.get("dbilldate").toString(), | ||||
|                     DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
|             LocalDateTime targetDate = LocalDateTime.parse("2025-06-27 00:00:00", | ||||
|                     DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| //            List<String> defMap = checkOrgCtrl(); | ||||
| //            if (defMap.isEmpty() ) { | ||||
| //                return ; | ||||
| //            } | ||||
| //            String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM  so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG  where so_saleorder.dr = 0 and so_saleorder.csaleorderid = '" +def3+"'"; | ||||
|             String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM  so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG  where so_saleorder.dr = 0 and so_saleorder.csaleorderid in  (" + result + ") "; | ||||
|             ArrayList<HashMap<String, Object>> saleMap = (ArrayList<HashMap<String, Object>>)dao.executeQuery(sql1, new MapListProcessor()); | ||||
| 
 | ||||
|             if (defMap.contains(code) && dbilldate.isBefore(targetDate)) { | ||||
|                 return; | ||||
|             } | ||||
| //            List<Map> saleMap = (List<Map>)dao.executeQuery(sql1, new MapProcessor()); | ||||
| //            String code = saleMap.get("code").toString(); | ||||
| //            LocalDateTime dbilldate = LocalDateTime.parse(saleMap.get("dbilldate").toString(), | ||||
| //                    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| //            LocalDateTime targetDate = LocalDateTime.parse("2025-06-27 00:00:00", | ||||
| //                    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); | ||||
| // | ||||
| //            if (!defMap.isEmpty()&& defMap.contains(code) && dbilldate.isBefore(targetDate)) { | ||||
| //                return; | ||||
| //            } | ||||
| //            Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); | ||||
|             //销售订单价税合计 | ||||
|             UFDouble ntotalorigmny = UFDouble.ZERO_DBL; | ||||
|             //销售订单实际收款金额 | ||||
|             UFDouble nreceivedmny = UFDouble.ZERO_DBL; | ||||
|             String vbillcode = ""; | ||||
|             StringBuilder vbillcodeBuilder = new StringBuilder(); | ||||
|             if(saleMap != null) { | ||||
|                 nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString()); | ||||
|                 ntotalorigmny = new UFDouble(saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString()); | ||||
|                 vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString(); | ||||
|                 for (Map<String, Object> map : saleMap) { | ||||
|                     // 累加 nreceivedmny | ||||
|                     String nreceivedmnyStr = map.get("nreceivedmny") == null ? "0" : map.get("nreceivedmny").toString(); | ||||
|                     nreceivedmny.add(new UFDouble(nreceivedmnyStr)) ; | ||||
| 
 | ||||
|                     // 累加 ntotalorigmny | ||||
|                     BigDecimal ntotalorigmnyStr = map.get("ntotalorigmny") == null ? BigDecimal.ZERO : (BigDecimal) map.get("ntotalorigmny"); | ||||
|                     UFDouble ufd=    new UFDouble(ntotalorigmnyStr); | ||||
|                     ntotalorigmny=  ntotalorigmny.add(ufd); | ||||
|                     // 拼接 vbillcode | ||||
|                     String vbillcodeStr = map.get("vbillcode") == null ? "" : map.get("vbillcode").toString(); | ||||
|                     if (!vbillcodeStr.isEmpty()) { | ||||
|                         if (vbillcodeBuilder.length() > 0) { | ||||
|                             vbillcodeBuilder.append(", "); | ||||
|                         } | ||||
|                         vbillcodeBuilder.append(vbillcodeStr); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             if (money.compareTo(ntotalorigmny) > 0) { | ||||
|                 UFDouble moreMoney = money.sub(ntotalorigmny); | ||||
|                 throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); | ||||
|                 throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcodeBuilder + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue