Ver código fonte

【易探】【反馈编号:2024080200】【功能完善】【出货通知单转出货单,增加参数配置:按业务员分组生成出货单】

wuyx 1 mês atrás
pai
commit
68ba82a375

+ 13 - 2
src/com/uas/erp/service/scm/impl/BatchDealServiceImpl.java

@@ -1371,7 +1371,7 @@ public class BatchDealServiceImpl implements BatchDealService {
 					}
 					}
 				}
 				}
 			}
 			}
-			if (baseDao.isDBSetting(caller, "allowSeller")) {
+			if (baseDao.isDBSetting(caller, "allowSeller")&&!baseDao.isDBSetting(caller,"splitBySeller")) {
 				SqlRowList rs = baseDao
 				SqlRowList rs = baseDao
 						.queryForRowSet("select  count(1) n from (select distinct sn_sellercode from sendnotify,sendnotifydetail where sn_id=snd_snid and snd_id in ("
 						.queryForRowSet("select  count(1) n from (select distinct sn_sellercode from sendnotify,sendnotifydetail where sn_id=snd_snid and snd_id in ("
 								+ ids + ") )");
 								+ ids + ") )");
@@ -1387,7 +1387,7 @@ public class BatchDealServiceImpl implements BatchDealService {
 			if (StringUtil.hasText(code)) {
 			if (StringUtil.hasText(code)) {
 				SqlRowList rs = baseDao
 				SqlRowList rs = baseDao
 						.queryForRowSet(
 						.queryForRowSet(
-								"select pi_id,pi_invostatuscode,pi_statuscode,pi_cop,pi_cardcode,pi_receivecode,pi_arcode,pi_currency,pi_paymentcode from ProdInOut where pi_inoutno=? and pi_class='出货单'",
+								"select pi_id,pi_invostatuscode,pi_statuscode,pi_cop,pi_cardcode,pi_receivecode,pi_arcode,pi_currency,pi_paymentcode,pi_sellercode from ProdInOut where pi_inoutno=? and pi_class='出货单'",
 								code);
 								code);
 				if (rs.next()) {
 				if (rs.next()) {
 					// 判断指定的出货通知单状态是否[在录入]
 					// 判断指定的出货通知单状态是否[在录入]
@@ -1432,6 +1432,13 @@ public class BatchDealServiceImpl implements BatchDealService {
 						if (errSn != null)
 						if (errSn != null)
 							errBuffer.append("您选择的通知单的所属公司,与指定的出货单的所属公司不一致!通知单:<br>" + errSn.replace(",", "<hr>"));
 							errBuffer.append("您选择的通知单的所属公司,与指定的出货单的所属公司不一致!通知单:<br>" + errSn.replace(",", "<hr>"));
 					}
 					}
+					if(baseDao.isDBSetting(caller,"splitBySeller")){
+						errSn = baseDao.getJdbcTemplate().queryForObject(
+								"select wm_concat(sn_code) from sendnotify where sn_id in (select snd_snid from sendnotifydetail where snd_id in ("
+										+ ids + ")) and sn_sellercode<>?", String.class, rs.getString("pi_sellercode"));
+						if (errSn != null)
+							errBuffer.append("您选择的通知单的业务员,与指定的出货单的业务员不一致!通知单:<br>" + errSn.replace(",", "<hr>"));
+					}
 					if (errBuffer.length() > 0)
 					if (errBuffer.length() > 0)
 						BaseUtil.showError(errBuffer.toString());
 						BaseUtil.showError(errBuffer.toString());
 					// 转入明细
 					// 转入明细
@@ -1466,6 +1473,10 @@ public class BatchDealServiceImpl implements BatchDealService {
 			} else {// 未指定出货通知单
 			} else {// 未指定出货通知单
 				Map<Object, List<Map<Object, Object>>> groups = BaseUtil.groupsMap(maps, new Object[] { "sn_custcode", "sn_shcustcode",
 				Map<Object, List<Map<Object, Object>>> groups = BaseUtil.groupsMap(maps, new Object[] { "sn_custcode", "sn_shcustcode",
 						"sn_currency", "sn_arcustcode", "sn_paymentscode" });
 						"sn_currency", "sn_arcustcode", "sn_paymentscode" });
+				if(baseDao.isDBSetting(caller,"splitBySeller")){
+					groups = BaseUtil.groupsMap(maps, new Object[] { "sn_custcode", "sn_shcustcode",
+							"sn_currency", "sn_arcustcode", "sn_paymentscode","sn_sellercode" });
+				}
 				// 按客户分组的转入操作
 				// 按客户分组的转入操作
 				Set<Object> mapSet = groups.keySet();
 				Set<Object> mapSet = groups.keySet();
 				List<Map<Object, Object>> items;
 				List<Map<Object, Object>> items;