|
|
@@ -76,6 +76,8 @@ 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;
|
|
|
|
|
|
/**
|
|
|
@@ -351,63 +353,122 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
|
|
|
//生成出库工单历史记录
|
|
|
saveHistory(item.getId(), OrderTypeEnum.TOBESHIPPEDOUT.getType());
|
|
|
+ // 创建线程池
|
|
|
+ ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
|
+ // 启动任务并提交给线程池
|
|
|
+ executor.submit(() -> {
|
|
|
+ try {
|
|
|
+ this.sendMessage(rwShip, item, goodsNames, 1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("业务处理成功,发送消息异常,时间:" + new Date());
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ } finally {
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ }
|
|
|
+ this.saveOrUpdateBatch(rwShipList);
|
|
|
+ shipItemsService.saveOrUpdateBatch(shipItemsList);
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
|
|
|
- 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());
|
|
|
+ private void sendMessage(PjShip rwShip, PjShip item, StringBuilder goodsNames, int type) {
|
|
|
+ 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());
|
|
|
+ if (1 == type) {
|
|
|
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());
|
|
|
+ } else if (2 == type) {
|
|
|
+ sendMessage.setUrl("/tirePartsMall/purchasingManagement/warehouseEntryOrder/index");
|
|
|
+ sendMessage.setPageLabel("采购入库");
|
|
|
+ sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
|
|
|
+ sendMessage.setMessageBody("您有新的采购入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
|
|
|
+ }else if (3 == type) {
|
|
|
+ sendMessage.setUrl("/tirePartsMall/salesService/inStorage/index");
|
|
|
+ sendMessage.setPageLabel("退货入库");
|
|
|
+ sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
|
|
|
+ sendMessage.setMessageBody("您有新的退货入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
|
|
|
+ }else if (4 == type) {
|
|
|
+ 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());
|
|
|
+ if (1 == type) {
|
|
|
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 if (2 == type) {
|
|
|
+ sendMessage.setUrl("/tirePartsMall/purchasingManagement/warehouseEntryOrder/index");
|
|
|
+ sendMessage.setPageLabel("采购入库");
|
|
|
+ sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
|
|
|
+ sendMessage.setMessageBody("您有新的采购入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
|
|
|
+ }else if (3 == type) {
|
|
|
+ sendMessage.setUrl("/tirePartsMall/salesService/inStorage/index");
|
|
|
+ sendMessage.setPageLabel("退货入库");
|
|
|
+ sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
|
|
|
+ sendMessage.setMessageBody("您有新的退货入库请及时处理!单号:" + item.getBillno() + "时间:" + formatted);
|
|
|
+ }else if (4 == type) {
|
|
|
+ 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("发送消息失败");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //给角色为财务的人发送消息
|
|
|
+ }
|
|
|
+ //给角色为财务的人发送消息
|
|
|
+ if (1 == type) {
|
|
|
R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服");
|
|
|
StringBuilder openIds = new StringBuilder();
|
|
|
if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
|
|
|
@@ -472,10 +533,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- this.saveOrUpdateBatch(rwShipList);
|
|
|
- shipItemsService.saveOrUpdateBatch(shipItemsList);
|
|
|
-
|
|
|
- return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -958,62 +1015,24 @@ 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("发送消息失败");
|
|
|
+ // 创建线程池
|
|
|
+ ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
|
+ // 启动任务并提交给线程池
|
|
|
+ executor.submit(() -> {
|
|
|
+ try {
|
|
|
+ this.sendMessage(rwShip, item, null, 2);
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("业务处理成功,发送消息异常,时间:" + new Date());
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ } finally {
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
- } 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("发送消息失败");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ });
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
this.saveOrUpdateBatch(rwShipList);
|
|
|
shipItemsService.saveOrUpdateBatch(shipItemsList);
|
|
|
@@ -1293,7 +1312,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
- public R<List<PjOrderItems>> importItem(List<ShipItemImportExcel> excelList) {
|
|
|
+ public R importItem(List<ShipItemImportExcel> excelList) {
|
|
|
if (CollectionUtils.isEmpty(excelList)) {
|
|
|
throw new SecurityException("导入数据不能为空");
|
|
|
}
|
|
|
@@ -1311,13 +1330,16 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
List<PjGoodsDesc> goodsDescList = goodsDescMapper.selectList(lambdaQueryWrapper);
|
|
|
StringBuilder text = new StringBuilder();
|
|
|
for (int i = 0; i < excelList.size(); i++) {
|
|
|
+ int count = 0;
|
|
|
//判断必填项是否为空
|
|
|
ShipItemImportExcel itemExcel = excelList.get(i);
|
|
|
if (ObjectUtil.isEmpty(itemExcel.getGoodsName())) {
|
|
|
text.append("第").append(i + 2).append("行,商品名称为空").append("\n");
|
|
|
+ count = 1;
|
|
|
}
|
|
|
if (ObjectUtil.isEmpty(itemExcel.getGoodsNum())) {
|
|
|
text.append("第").append(i + 2).append("行,数量为空").append("\n");
|
|
|
+ count = 1;
|
|
|
}
|
|
|
PjOrderItems item = new PjOrderItems();
|
|
|
BeanUtil.copy(itemExcel, item);
|
|
|
@@ -1339,19 +1361,22 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
} else {//已开启批次号管理
|
|
|
if (ObjectUtil.isEmpty(itemExcel.getDot())) {
|
|
|
text.append("第").append(i + 2).append("行,商品已开启管理批次号,请填写批次号").append("\n");
|
|
|
+ count = 1;
|
|
|
}
|
|
|
}
|
|
|
item.setUnits(goodsDesc.getUnit());
|
|
|
item.setSendNum(new BigDecimal("0"));
|
|
|
+ if (count == 0){
|
|
|
+ list.add(item);
|
|
|
+ }
|
|
|
} else {
|
|
|
text.append("第").append(i + 2).append("行,商品名称不存在").append("\n");
|
|
|
}
|
|
|
- list.add(item);
|
|
|
}
|
|
|
if (text.length() == 0) {
|
|
|
return R.data(list);
|
|
|
} else {
|
|
|
- return R.data(list, text.toString());
|
|
|
+ return R.data("导入失败:"+text);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1958,7 +1983,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R<List<PjOrderItems>> importItemCode(List<ShipItemImportCodeExcel> excelList) {
|
|
|
+ public R importItemCode(List<ShipItemImportCodeExcel> excelList) {
|
|
|
if (CollectionUtils.isEmpty(excelList)) {
|
|
|
throw new SecurityException("导入数据不能为空");
|
|
|
}
|
|
|
@@ -1976,13 +2001,16 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
List<PjGoodsDesc> goodsDescList = goodsDescMapper.selectList(lambdaQueryWrapper);
|
|
|
StringBuilder text = new StringBuilder();
|
|
|
for (int i = 0; i < excelList.size(); i++) {
|
|
|
+ int count = 0;
|
|
|
//判断必填项是否为空
|
|
|
ShipItemImportCodeExcel itemExcel = excelList.get(i);
|
|
|
if (ObjectUtil.isEmpty(itemExcel.getPrice())) {
|
|
|
text.append("第").append(i + 2).append("行,价格为空").append("\n");
|
|
|
+ count = 1;
|
|
|
}
|
|
|
if (ObjectUtil.isEmpty(itemExcel.getGoodsNum())) {
|
|
|
text.append("第").append(i + 2).append("行,数量为空").append("\n");
|
|
|
+ count = 1;
|
|
|
}
|
|
|
PjOrderItems item = new PjOrderItems();
|
|
|
BeanUtil.copy(itemExcel, item);
|
|
|
@@ -2004,19 +2032,22 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
} else {//已开启批次号管理
|
|
|
if (ObjectUtil.isEmpty(itemExcel.getDot())) {
|
|
|
text.append("第").append(i + 2).append("行,商品已开启管理批次号,请填写批次号").append("\n");
|
|
|
+ count = 1;
|
|
|
}
|
|
|
}
|
|
|
item.setUnits(goodsDesc.getUnit());
|
|
|
item.setSendNum(new BigDecimal("0"));
|
|
|
+ if (count == 0){
|
|
|
+ list.add(item);
|
|
|
+ }
|
|
|
} else {
|
|
|
text.append("第").append(i + 2).append("行,商品名称不存在").append("\n");
|
|
|
}
|
|
|
- list.add(item);
|
|
|
}
|
|
|
if (text.length() == 0) {
|
|
|
return R.data(list);
|
|
|
} else {
|
|
|
- return R.data(list, text.toString());
|
|
|
+ return R.data("导入失败:"+text);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2123,61 +2154,24 @@ 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/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("发送消息失败");
|
|
|
+ // 创建线程池
|
|
|
+ ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
|
+ // 启动任务并提交给线程池
|
|
|
+ executor.submit(() -> {
|
|
|
+ try {
|
|
|
+ this.sendMessage(rwShip, item, goodsNames, 3);
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("业务处理成功,发送消息异常,时间:" + new Date());
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ } finally {
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
- } 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("发送消息失败");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ });
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
this.saveOrUpdateBatch(rwShipList);
|
|
|
shipItemsService.saveOrUpdateBatch(shipItemsList);
|
|
|
@@ -2676,61 +2670,24 @@ 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/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(() -> {
|
|
|
+ try {
|
|
|
+ this.sendMessage(rwShip, item, null, 4);
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("业务处理成功,发送消息异常,时间:" + new Date());
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ } finally {
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
- } 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("发送消息失败");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ });
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
}
|
|
|
this.saveOrUpdateBatch(rwShipList);
|
|
|
shipItemsService.saveOrUpdateBatch(shipItemsList);
|