Browse Source

贸易代理 2024年8月5日09:25:51

纪新园 1 year ago
parent
commit
1d56267f71

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java

@@ -97,7 +97,7 @@ public class ShipController extends BladeController {
 		}
 		LambdaQueryWrapper<PjShip> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.select(PjShip::getId,PjShip::getBillno,PjShip::getOrdNo,PjShip::getSrcOrdNo,PjShip::getBizTypeName,
-				PjShip::getCustomerName,PjShip::getBsType,PjShip::getStorageName,PjShip::getStockClerkName,PjShip::getSendTotalNum,
+				PjShip::getCustomerName,PjShip::getBsType,PjShip::getStorageName,PjShip::getStockClerkName,PjShip::getStockClerkId,PjShip::getSendTotalNum,
 				PjShip::getGoodsTotalNum,PjShip::getStatusName,PjShip::getBusinesDate,PjShip::getCreateUser,PjShip::getCreateTime,
 				PjShip::getUpdateUser,PjShip::getUpdateTime,PjShip::getSalesCompanyName,PjShip::getRecAddress,PjShip::getPhone,
 				PjShip::getContacts,PjShip::getRemarks,PjShip::getCallInStorageName)

+ 300 - 11
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -76,8 +76,6 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
 /**
@@ -316,6 +314,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		this.saveOrUpdateBatch(pjShips);
 		List<PjShipItems> shipItemsList = new ArrayList<>();
 		List<PjShip> rwShipList = new ArrayList<>();
+		LocalDateTime now = LocalDateTime.now();
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+		String formatted = now.format(formatter);
 		for (PjShip item : pjShips) {
 			//获得出库任务数据
 			PjShip rwShip = pjShipList.stream().filter(e -> e.getId().equals(item.getTaskId())).findFirst().orElse(null);
@@ -353,7 +354,124 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 			//生成出库工单历史记录
 			saveHistory(item.getId(), OrderTypeEnum.TOBESHIPPEDOUT.getType());
-			// 创建线程池
+
+			//给角色为派工的人发送消息
+			if (ObjectUtils.isNotNull(rwShip.getStockClerkId())) {
+				Message sendMessage = new Message();
+				sendMessage.setParameter(item.getId() + "");
+				sendMessage.setUserName(AuthUtil.getUserName());
+				sendMessage.setUserId(null);
+				sendMessage.setToUserId(rwShip.getStockClerkId());
+				sendMessage.setToUserName(rwShip.getStockClerkName());
+				sendMessage.setMessageType(1);
+				sendMessage.setTenantId(AuthUtil.getTenantId());
+				sendMessage.setCreateUser(null);
+				sendMessage.setCreateTime(new Date());
+				sendMessage.setUrl("/tirePartsMall/salesManagement/outboundWorkOrder/index");
+				sendMessage.setPageLabel("出库工单");
+				sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+				sendMessage.setMessageBody("您有新的出库工单请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+				R save = messageClient.save(sendMessage);
+				System.out.println("发送结果:" + save);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			} else {
+				//给角色为派工的人发送消息
+				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
+				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+						for (User datum : userList.getData()) {
+							//循环发送消息
+							Message sendMessage = new Message();
+							sendMessage.setParameter(item.getId() + "");
+							sendMessage.setUserName(AuthUtil.getUserName());
+							sendMessage.setUserId(null);
+							sendMessage.setToUserId(datum.getId());
+							sendMessage.setToUserName(datum.getName());
+							sendMessage.setMessageType(1);
+							sendMessage.setTenantId(AuthUtil.getTenantId());
+							sendMessage.setCreateUser(null);
+							sendMessage.setCreateTime(new Date());
+							sendMessage.setUrl("/tirePartsMall/salesManagement/outboundWorkOrder/index");
+							sendMessage.setPageLabel("出库工单");
+							sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+							sendMessage.setMessageBody("您有新的出库工单请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+							R save = messageClient.save(sendMessage);
+							System.out.println("发送结果:" + save);
+							if (!save.isSuccess()) {
+								throw new SecurityException("发送消息失败");
+							}
+						}
+					}
+				}
+			}
+			//给角色为财务的人发送消息
+			StringBuilder openIds = new StringBuilder();
+			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服");
+			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), rwShip.getSalesCompanyId() + "");
+				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+					for (User datum : userList.getData()) {
+						if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
+							openIds.append(datum.getOaOpenId()).append(",");
+						}
+					}
+				}
+			}
+			if (ObjectUtils.isNotNull(rwShip.getStockClerkId())) {
+				R<User> resUser = userClient.userInfoById(rwShip.getStockClerkId());
+				if (resUser.isSuccess() && ObjectUtils.isNotNull(resUser.getData())) {
+					if (ObjectUtils.isNotNull(resUser.getData().getOaOpenId())) {
+						openIds.append(resUser.getData().getOaOpenId()).append(",");
+					}
+				}
+			}
+			SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
+			String date1 = format.format(new Date());
+			System.out.println("=========发送人openIds=========" + openIds);
+			if (ObjectUtils.isNotNull(openIds)) {
+				R<List<WechatMessageConfigurationItem>> res = wechatClient.getTemplateType("1", AuthUtil.getTenantId());
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					item.setDate(date1);
+					if (goodsNames.length() > 8) {
+						item.setGoodsNames(goodsNames.substring(0, 8));
+					} else {
+						item.setGoodsNames(goodsNames.toString());
+					}
+					if (item.getCustomerName().length() > 8) {
+						item.setCustomerName(item.getCustomerName().substring(0, 8));
+					}
+					List<WxMpTemplateData> data = new ArrayList<>();
+					for (WechatMessageConfigurationItem items : res.getData()) {
+						try {
+							// 根据方法名获取对应的Method对象
+							Method method = item.getClass().getMethod(items.getMethod());
+							// 调用get方法并打印结果
+							Object result = method.invoke(item);
+							System.out.println(result);
+							if (ObjectUtils.isNotNull(result)) {
+								data.add(new WxMpTemplateData(items.getDataValue(), result.toString()));
+							} else {
+								data.add(new WxMpTemplateData(items.getDataValue(), "无"));
+							}
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}
+					if (!data.isEmpty()) {
+						WxMpTemplateDto wxMpTemplateDto = new WxMpTemplateDto();
+						wxMpTemplateDto.setOpenid(openIds.substring(0, openIds.length() - 1));
+						wxMpTemplateDto.setTenantId(AuthUtil.getTenantId());
+						wxMpTemplateDto.setType("1");
+						wxMpTemplateDto.setData(data);
+						String rest = wechatClient.sendMessageNew(wxMpTemplateDto);
+						System.out.println("=========发送返回值=========" + rest);
+					}
+				}
+			}
+			/*// 创建线程池
 			ExecutorService executor = Executors.newSingleThreadExecutor();
 			// 启动任务并提交给线程池
 			executor.submit(() -> {
@@ -370,7 +488,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 			});
 			// 关闭线程池
-			executor.shutdown();
+			executor.shutdown();*/
 		}
 		this.saveOrUpdateBatch(rwShipList);
 		shipItemsService.saveOrUpdateBatch(shipItemsList);
@@ -469,7 +587,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		}
 		//给角色为财务的人发送消息
 		if (1 == type) {
-			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服");
+			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服,库管");
 			StringBuilder openIds = new StringBuilder();
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
 				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), rwShip.getSalesCompanyId() + "");
@@ -1015,7 +1133,64 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 			//生成入库工单历史记录
 			saveHistory(item.getId(), OrderTypeEnum.TREATWAREHOUSING.getType());
-			// 创建线程池
+			LocalDateTime now = LocalDateTime.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+			String formatted = now.format(formatter);
+			//给角色为派工的人发送消息
+			if (ObjectUtils.isNotNull(rwShip.getStockClerkId())) {
+				Message sendMessage = new Message();
+				sendMessage.setParameter(item.getId() + "");
+				sendMessage.setUserName(AuthUtil.getUserName());
+				sendMessage.setUserId(null);
+				sendMessage.setToUserId(rwShip.getStockClerkId());
+				sendMessage.setToUserName(rwShip.getStockClerkName());
+				sendMessage.setMessageType(1);
+				sendMessage.setTenantId(AuthUtil.getTenantId());
+				sendMessage.setCreateUser(null);
+				sendMessage.setCreateTime(new Date());
+				sendMessage.setUrl("/tirePartsMall/purchasingManagement/warehouseEntryOrder/index");
+				sendMessage.setPageLabel("采购入库");
+				sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+				sendMessage.setMessageBody("您有新的采购入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+				R save = messageClient.save(sendMessage);
+				System.out.println("发送结果:" + save);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			} else {
+				//给角色为派工的人发送消息
+				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
+				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+						for (User datum : userList.getData()) {
+							//循环发送消息
+							Message sendMessage = new Message();
+							sendMessage.setParameter(item.getId() + "");
+							sendMessage.setUserName(AuthUtil.getUserName());
+							sendMessage.setUserId(null);
+							sendMessage.setToUserId(datum.getId());
+							sendMessage.setToUserName(datum.getName());
+							sendMessage.setMessageType(1);
+							sendMessage.setTenantId(AuthUtil.getTenantId());
+							sendMessage.setCreateUser(null);
+							sendMessage.setCreateTime(new Date());
+
+							sendMessage.setUrl("/tirePartsMall/purchasingManagement/warehouseEntryOrder/index");
+							sendMessage.setPageLabel("采购入库");
+							sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+							sendMessage.setMessageBody("您有新的采购入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+
+							R save = messageClient.save(sendMessage);
+							System.out.println("发送结果:" + save);
+							if (!save.isSuccess()) {
+								throw new SecurityException("发送消息失败");
+							}
+						}
+					}
+				}
+			}
+			/*// 创建线程池
 			ExecutorService executor = Executors.newSingleThreadExecutor();
 			// 启动任务并提交给线程池
 			executor.submit(() -> {
@@ -1032,7 +1207,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 			});
 			// 关闭线程池
-			executor.shutdown();
+			executor.shutdown();*/
 		}
 		this.saveOrUpdateBatch(rwShipList);
 		shipItemsService.saveOrUpdateBatch(shipItemsList);
@@ -2161,8 +2336,66 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 			//生成出库工单历史记录
 			saveHistory(item.getId(), OrderTypeEnum.TREATWAREHOUSING.getType());
+			LocalDateTime now = LocalDateTime.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+			String formatted = now.format(formatter);
+			//给角色为派工的人发送消息
+			if (ObjectUtils.isNotNull(rwShip.getStockClerkId())) {
+				Message sendMessage = new Message();
+				sendMessage.setParameter(item.getId() + "");
+				sendMessage.setUserName(AuthUtil.getUserName());
+				sendMessage.setUserId(null);
+				sendMessage.setToUserId(rwShip.getStockClerkId());
+				sendMessage.setToUserName(rwShip.getStockClerkName());
+				sendMessage.setMessageType(1);
+				sendMessage.setTenantId(AuthUtil.getTenantId());
+				sendMessage.setCreateUser(null);
+				sendMessage.setCreateTime(new Date());
 
-			// 创建线程池
+				sendMessage.setUrl("/tirePartsMall/salesService/inStorage/index");
+				sendMessage.setPageLabel("退货入库");
+				sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+				sendMessage.setMessageBody("您有新的退货入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+
+				R save = messageClient.save(sendMessage);
+				System.out.println("发送结果:" + save);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			} else {
+				//给角色为派工的人发送消息
+				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
+				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+						for (User datum : userList.getData()) {
+							//循环发送消息
+							Message sendMessage = new Message();
+							sendMessage.setParameter(item.getId() + "");
+							sendMessage.setUserName(AuthUtil.getUserName());
+							sendMessage.setUserId(null);
+							sendMessage.setToUserId(datum.getId());
+							sendMessage.setToUserName(datum.getName());
+							sendMessage.setMessageType(1);
+							sendMessage.setTenantId(AuthUtil.getTenantId());
+							sendMessage.setCreateUser(null);
+							sendMessage.setCreateTime(new Date());
+
+							sendMessage.setUrl("/tirePartsMall/salesService/inStorage/index");
+							sendMessage.setPageLabel("退货入库");
+							sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+							sendMessage.setMessageBody("您有新的退货入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+
+							R save = messageClient.save(sendMessage);
+							System.out.println("发送结果:" + save);
+							if (!save.isSuccess()) {
+								throw new SecurityException("发送消息失败");
+							}
+						}
+					}
+				}
+			}
+			/*// 创建线程池
 			ExecutorService executor = Executors.newSingleThreadExecutor();
 			// 启动任务并提交给线程池
 			executor.submit(() -> {
@@ -2179,7 +2412,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 			});
 			// 关闭线程池
-			executor.shutdown();
+			executor.shutdown();*/
 		}
 		this.saveOrUpdateBatch(rwShipList);
 		shipItemsService.saveOrUpdateBatch(shipItemsList);
@@ -2677,8 +2910,64 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 			//生成入库工单历史记录
 			saveHistory(item.getId(), OrderTypeEnum.TOBESHIPPEDOUT.getType());
+			LocalDateTime now = LocalDateTime.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+			String formatted = now.format(formatter);
+			//给角色为派工的人发送消息
+			if (ObjectUtils.isNotNull(rwShip.getStockClerkId())) {
+				Message sendMessage = new Message();
+				sendMessage.setParameter(item.getId() + "");
+				sendMessage.setUserName(AuthUtil.getUserName());
+				sendMessage.setUserId(null);
+				sendMessage.setToUserId(rwShip.getStockClerkId());
+				sendMessage.setToUserName(rwShip.getStockClerkName());
+				sendMessage.setMessageType(1);
+				sendMessage.setTenantId(AuthUtil.getTenantId());
+				sendMessage.setCreateUser(null);
+				sendMessage.setCreateTime(new Date());
 
-			// 创建线程池
+				sendMessage.setUrl("/tirePartsMall/purchaseService/outStorage/index");
+				sendMessage.setPageLabel("退货出库");
+				sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+				sendMessage.setMessageBody("您有新的退货出库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+				R save = messageClient.save(sendMessage);
+				System.out.println("发送结果:" + save);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			} else {
+				//给角色为派工的人发送消息
+				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
+				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+						for (User datum : userList.getData()) {
+							//循环发送消息
+							Message sendMessage = new Message();
+							sendMessage.setParameter(item.getId() + "");
+							sendMessage.setUserName(AuthUtil.getUserName());
+							sendMessage.setUserId(null);
+							sendMessage.setToUserId(datum.getId());
+							sendMessage.setToUserName(datum.getName());
+							sendMessage.setMessageType(1);
+							sendMessage.setTenantId(AuthUtil.getTenantId());
+							sendMessage.setCreateUser(null);
+							sendMessage.setCreateTime(new Date());
+
+							sendMessage.setUrl("/tirePartsMall/purchaseService/outStorage/index");
+							sendMessage.setPageLabel("退货出库");
+							sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+							sendMessage.setMessageBody("您有新的退货出库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
+							R save = messageClient.save(sendMessage);
+							System.out.println("发送结果:" + save);
+							if (!save.isSuccess()) {
+								throw new SecurityException("发送消息失败");
+							}
+						}
+					}
+				}
+			}
+			/*// 创建线程池
 			ExecutorService executor = Executors.newSingleThreadExecutor();
 			// 启动任务并提交给线程池
 			executor.submit(() -> {
@@ -2695,7 +2984,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 			});
 			// 关闭线程池
-			executor.shutdown();
+			executor.shutdown();*/
 		}
 		this.saveOrUpdateBatch(rwShipList);
 		shipItemsService.saveOrUpdateBatch(shipItemsList);