Browse Source

2023年10月9日13:33:45

纪新园 2 years ago
parent
commit
1429197d3c

+ 2 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IWechatClient.java

@@ -73,6 +73,7 @@ public interface IWechatClient {
 						  @RequestParam(value = "telW",required = false) String telW,
 						  @RequestParam(value = "deviceDescription",required = false) String deviceDescription,
 						  @RequestParam(value = "amount",required = false) BigDecimal amount,
-						@RequestParam(value = "type",required = false) String type
+						@RequestParam(value = "type",required = false) String type,
+						@RequestParam(value = "tenantId",required = false) String tenantId
 						);
 }

+ 43 - 10
blade-service/blade-client/src/main/java/org/springblade/client/wechat/feign/WechatClient.java

@@ -151,10 +151,10 @@ public class WechatClient implements IWechatClient {
 
 	@Override
 	public String sendMessage(String openid, String title, String projectName, String date, String name, String device, String tel, String telW,
-							  String deviceDescription, BigDecimal amount, String type) {
+							  String deviceDescription, BigDecimal amount, String type, String tenantId) {
 		WechatMessageTemplate wechatMessageTemplate = wechatMessageTemplateService.getOne(new LambdaQueryWrapper<WechatMessageTemplate>()
 			.eq(WechatMessageTemplate::getIsDeleted, 0)
-			.eq(WechatMessageTemplate::getTenantId, AuthUtil.getTenantId())
+			.eq(WechatMessageTemplate::getTenantId, ObjectUtils.isNotNull(tenantId) ? tenantId : AuthUtil.getTenantId())
 			.eq(WechatMessageTemplate::getType, type));
 		if (wechatMessageTemplate == null) {
 			throw new RuntimeException("未找到模板信息");
@@ -173,15 +173,48 @@ public class WechatClient implements IWechatClient {
 		}
 		List<WxMpTemplateData> data = null;
 		if ("1".equals(type)) {
-			data = Arrays.asList(
-				new WxMpTemplateData("first", title),
-				new WxMpTemplateData("thing2", name + "/" + tel),
-				new WxMpTemplateData("thing4", projectName),
-				new WxMpTemplateData("time8", date),
-				new WxMpTemplateData("phone_number7", telW)
-			);
+			System.out.println("======装填数据开始==========" + type);
+			String corpName = "";
+			String goodsName = "";
+			if ("792368".equals(wechatMessageTemplate.getTenantId())) {
+				System.out.println("======装填数据中==792368=========="+ type);
+				if (ObjectUtils.isNotNull(name) && name.length() > 8) {
+					corpName = name.substring(0, 8);
+				} else {
+					if (ObjectUtils.isNull(name)) {
+						corpName = "无";
+					} else {
+						corpName = name;
+					}
+				}
+				if (ObjectUtils.isNotNull(deviceDescription) && deviceDescription.length() > 8) {
+					goodsName = deviceDescription.substring(0, 8);
+				} else {
+					if (ObjectUtils.isNull(deviceDescription)) {
+						goodsName = "无";
+					} else {
+						goodsName = deviceDescription;
+					}
+				}
+				data = Arrays.asList(
+					new WxMpTemplateData("first", title),
+					new WxMpTemplateData("character_string3", device),
+					new WxMpTemplateData("thing8", corpName),
+					new WxMpTemplateData("thing6", goodsName),
+					new WxMpTemplateData("time4", date)
+				);
+				System.out.println(type + "======装填完成数据==792368==========" + data.toString());
+			} else {
+				data = Arrays.asList(
+					new WxMpTemplateData("first", title),
+					new WxMpTemplateData("thing2", name + "/" + tel),
+					new WxMpTemplateData("thing4", projectName),
+					new WxMpTemplateData("time8", date),
+					new WxMpTemplateData("phone_number7", telW)
+				);
+			}
 		} else if ("2".equals(type)) {
-			System.out.println("======装填数据开始==========");
+			System.out.println("======装填数据开始==========" + type);
 			String corpName = "";
 
 			if (ObjectUtils.isNull(amount)) {

+ 3 - 3
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java

@@ -527,7 +527,7 @@ public class PaymentServiceImpl implements IPaymentService {
 						if (",".equals(openIds.toString())) {
 						} else {
 							wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "结算通知", "设备报修-已支付", date1, maintenance.getCorpName(), maintenance.getDeviceName(),
-								maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+								maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1",AuthUtil.getTenantId());
 						}
 						wechatMark.setCause("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");
 						wechatMark.setStatus(1);
@@ -677,13 +677,13 @@ public class PaymentServiceImpl implements IPaymentService {
 							}
 							ipjOrderClient.updateOrder(re.getData());
 						}
-						SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+						SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
 						String date1 = format.format(new Date());
 
 						System.out.println("=========发送人openIds=========" + openIds);
 						if (ObjectUtils.isNotNull(openIds)) {
 							String rest = wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "订单通知", "订单通知", date1, re.getData().size() == 0 ? "" : re.getData().get(0).getSalerName(), serialNumber,
-								"", "", "", amount, "2");
+								"", "", "", amount, "2",re.getData().size() == 0 ? "" : re.getData().get(0).getTenantId());
 							System.out.println("=========发送返回值=========" + rest);
 						}
 						wechatMark.setCause("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");

+ 3 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -4739,7 +4739,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "订单通知", "订单通知", date1, order.getCorpsName(), order.getSysNo(),
-				order.getSalesName(), null, null, order.getBalanceAmount(), "2");
+				order.getSalesName(), null, null, order.getBalanceAmount(), "2",AuthUtil.getTenantId());
 		}
 		return R.data(order);
 	}
@@ -6518,7 +6518,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "订单通知", "订单通知", date1, order.getCorpsName(), order.getSysNo(),
-				order.getSalesName(), null, null, order.getBalanceAmount(), "2");
+				order.getSalesName(), null, null, order.getBalanceAmount(), "2",AuthUtil.getTenantId());
 		}
 		//通联支付下单处理
 		R r = this.payPrepay(order);
@@ -7774,7 +7774,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							}
 						}
 						wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "订单通知", "订单通知", date1, order.getCorpsName(), order.getSysNo(),
-							order.getSalesName(), null, null, order.getBalanceAmount(), "2");
+							order.getSalesName(), null, null, order.getBalanceAmount(), "2",AuthUtil.getTenantId());
 
 					}
 				}

+ 27 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java

@@ -50,7 +50,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -304,6 +307,17 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 			}
 		}
 		data.forEach(e -> {
+			Integer count = baseMapper.selectCount(Wrappers.<PjGoodsDesc>lambdaQuery()
+				.eq(PjGoodsDesc::getCode, e.getCode())
+				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjGoodsDesc::getIsDeleted, 0)
+			);
+
+			Integer countName = baseMapper.selectCount(Wrappers.<PjGoodsDesc>lambdaQuery()
+				.eq(PjGoodsDesc::getCname, e.getCname())
+				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjGoodsDesc::getIsDeleted, 0)
+			);
 			String type = e.getGoodsTypeName();
 			PjGoodsType goodsType = goodsTypeMapper.selectGoodsTypeCname(type, AuthUtil.getTenantId());
 			if (goodsType != null) {
@@ -382,6 +396,12 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 				queryWrapper.eq(PjGoodsDesc::getIsDeleted, 0);
 				PjGoodsDesc one = baseMapper.selectOne(queryWrapper);
 				if (one == null) {
+					if (count > 0) {
+						throw new ServiceException(goodsDesc.getCode() + "编码已存在");
+					}
+					if (countName > 0) {
+						throw new ServiceException(goodsDesc.getCname() + "名称已存在");
+					}
 					goodsDesc.setTenantId(AuthUtil.getTenantId());
 					goodsDesc.setCreateTime(new Date());
 					goodsDesc.setCreateUser(AuthUtil.getUserId());
@@ -397,6 +417,12 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 					goodsTypeDes.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 					goodsTypeDescMapper.insert(goodsTypeDes);
 				} else {
+					if (count > 1) {
+						throw new ServiceException(goodsDesc.getCode() + "编码已存在");
+					}
+					if (countName > 1) {
+						throw new ServiceException(goodsDesc.getCname() + "名称已存在");
+					}
 					goodsDesc.setUpdateTime(new Date());
 					goodsDesc.setUpdateUser(AuthUtil.getUserId());
 					baseMapper.updateById(goodsDesc);

+ 5 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/maintenance/service/impl/MaintenanceServiceImpl.java

@@ -177,7 +177,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 
 					} else {
 						wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "报修通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-							maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+							maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1",AuthUtil.getTenantId());
 
 					}
 				}
@@ -300,7 +300,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 			}
 		}
 		wechatClient.sendMessage(openIds.toString(), "派工通知", "设备报修-派工", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1",AuthUtil.getTenantId());
 		return R.data(maintenance);
 	}
 
@@ -339,7 +339,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 				}
 			}
 			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "派工通知", "设备维修-撤销派工", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1",AuthUtil.getTenantId());
 
 			maintenance.setDispatchingWorkers("1");
 			maintenance.setStatus(1);
@@ -660,7 +660,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		if (",".equals(openIds.toString())) {
 		} else {
 			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "结算通知", "设备报修-待付款", date1, maintenance.getCorpName(), maintenance.getDeviceName(),
-				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1",AuthUtil.getTenantId());
 		}
 		return R.data(maintenance);
 	}
@@ -811,7 +811,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		if (",".equals(openIds.toString())) {
 		} else {
 			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "结算通知", "设备报修-费用撤销", date1, maintenance.getCorpName(), maintenance.getDeviceName(),
-				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1",AuthUtil.getTenantId());
 		}
 		return R.data(maintenance);
 	}

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

@@ -28,6 +28,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
 import org.springblade.client.feign.ISerialClient;
+import org.springblade.client.feign.IWechatClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -61,6 +62,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -98,6 +100,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	//消息
 	private final IMessageClient messageClient;
 
+	private final IWechatClient wechatClient;
+
 	/**
 	 * 获取收发货订单详情
 	 *
@@ -282,6 +286,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			gdShip.setTaskId(rwShip.getId());
 			gdShip.setSendTotalNum(new BigDecimal("0.00"));
 			baseMapper.insert(gdShip);
+			StringBuilder goodsNames = new StringBuilder();
 
 			//根据销售id获得销售明细数据
 			List<PjOrderItems> list = orderItemsService.list(new QueryWrapper<PjOrderItems>()
@@ -291,7 +296,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				.eq("tenant_id", AuthUtil.getTenantId()));
 			if (ObjectUtil.isNotEmpty(list)) {
 				List<PjShipItems> shipItemsList = new ArrayList<>();
-				list.forEach(e -> {
+				for (PjOrderItems e : list) {
+					goodsNames.append(e.getGoodsName()).append(",");
 					//根据销售明细创建出库工单明细
 					PjShipItems shipItems = new PjShipItems();
 					BeanUtil.copyProperties(e, shipItems);
@@ -307,7 +313,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 						shipItemsList.add(shipItems);
 					}
 
-				});
+				}
+				;
 				shipItemsService.saveBatch(shipItemsList);
 				gdShip.setNumberRows(list.size());
 			}
@@ -374,6 +381,37 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					}
 				}
 			}
+
+			//给角色为财务的人发送消息
+			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服");
+			StringBuilder openIds = new StringBuilder();
+			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+				R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(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)) {
+				String rest = wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "订单出库通知", "订单出库通知", date1, rwShip.getCustomerName(), gdShip.getBillno(),
+					"", "", goodsNames.toString(), new BigDecimal("0.00"), "1", AuthUtil.getTenantId());
+				System.out.println("=========发送返回值=========" + rest);
+			}
 		}
 		return R.success("操作成功");
 	}
@@ -417,6 +455,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		if (ObjectUtils.isNull(ship.getStorageId())) {
 			throw new RuntimeException("请先选择仓库");
 		}
+		ship.setGoodsTotalNum(ship.getShipItemsList().stream().map(PjShipItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+		ship.setSendTotalNum(ship.getShipItemsList().stream().map(PjShipItems::getSendNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		if (ship.getId() == null) {
 			// 获取系统编号
 			R billNo = serialClient.getBillNo(OrderTypeEnum.FHGD.getType(), OrderTypeEnum.FHGD.getType(), OrderTypeEnum.FHGD.getType());
@@ -1376,8 +1416,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		return baseMapper.stockDataDetails(pjShipStockDetails);
 	}
 
-    @Override
-    public R shipments(PjShip pjShip) {
+	@Override
+	public R shipments(PjShip pjShip) {
 		int i = baseMapper.updateById(pjShip);
 		if (i > 0) {
 			return R.success("ok");
@@ -1386,7 +1426,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		}
 	}
 
-    /**
+	/**
 	 * 生成工单历史记录
 	 */
 	public void saveHistory(Long pid, String status) {