Просмотр исходного кода

2024年7月8日16:51:04 陆运大屏接口以及福达消息通知

纪新园 1 год назад
Родитель
Сommit
c2b6292b0b

+ 17 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/dto/StatisticsMonthlyDto.java

@@ -0,0 +1,17 @@
+package org.springblade.land.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/7/8
+ */
+@Data
+public class StatisticsMonthlyDto {
+
+	private String name;
+
+	private List<Integer> data;
+}

+ 57 - 6
blade-service/blade-client/src/main/java/org/springblade/client/bigScreen/CorpAddressController.java

@@ -1,6 +1,5 @@
 package org.springblade.client.bigScreen;
 
-import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -9,10 +8,16 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.entity.LandDriver;
+import org.springblade.client.entity.LandVehicle;
+import org.springblade.client.land.service.ILandDriverService;
+import org.springblade.client.land.service.ILandVehicleService;
 import org.springblade.client.vo.CorpAddressVo;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,7 +25,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -36,22 +43,27 @@ import java.util.stream.Collectors;
 public class CorpAddressController extends BladeController {
 
 	private final ICorpsDescService corpsDescService;
+
+	private final ILandVehicleService landVehicleService;
+
+	private final ILandDriverService landDriverService;
+
 	/**
 	 * 分页 客户详情
 	 */
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "数据大屏获取客户分布")
-	public R getCorpAddress(){
+	public R getCorpAddress() {
 		List<CorpAddressVo> list = new ArrayList<>();
 		LambdaQueryWrapper<CorpsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(CorpsDesc::getIsDeleted,0);
+		lambdaQueryWrapper.eq(CorpsDesc::getIsDeleted, 0);
 		lambdaQueryWrapper.eq(CorpsDesc::getTenantId, SecureUtil.getTenantId());
-		lambdaQueryWrapper.eq(CorpsDesc::getCorpType,"KH");
+		lambdaQueryWrapper.eq(CorpsDesc::getCorpType, "KH");
 		List<CorpsDesc> corpsDescList = corpsDescService.list(lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(corpsDescList)){
+		if (CollectionUtils.isNotEmpty(corpsDescList)) {
 			List<String> collect = corpsDescList.stream().filter(e -> StringUtils.isNotBlank(e.getAddressLatLng())).map(CorpsDesc::getAddressLatLng).collect(Collectors.toList());
-			if (CollectionUtils.isNotEmpty(collect)){
+			if (CollectionUtils.isNotEmpty(collect)) {
 				for (String s : collect) {
 					List<CorpAddressVo> corpAddressVoList = JSON.parseArray(s, CorpAddressVo.class);
 					list.addAll(corpAddressVoList);
@@ -60,4 +72,43 @@ public class CorpAddressController extends BladeController {
 		}
 		return R.data(list);
 	}
+
+	/**
+	 * 陆运数据大屏基础资料
+	 * 未派车 车辆 =1
+	 * 未受理 司机 =2
+	 * 未完工 车队 =3
+	 * 未完工 客户 =4
+	 */
+	@GetMapping("/LandClient")
+	public Map<String,String> LandClient(@Param("type") String type) {
+		Map<String,String> map = new HashMap<>();
+
+		if ("1".equals(type)) {
+			map.put("value",landVehicleService.count(new LambdaQueryWrapper<LandVehicle>()
+				.eq(LandVehicle::getTenantId, AuthUtil.getTenantId())
+				.eq(LandVehicle::getIsDeleted, 0)) + "");
+			return map;
+		} else if ("2".equals(type)) {
+			map.put("value",landDriverService.count(new LambdaQueryWrapper<LandDriver>()
+				.eq(LandDriver::getTenantId, AuthUtil.getTenantId())
+				.eq(LandDriver::getIsDeleted, 0)) + "");
+			return map;
+		} else if ("3".equals(type)) {
+			map.put("value",corpsDescService.count(new LambdaQueryWrapper<CorpsDesc>()
+				.eq(CorpsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(CorpsDesc::getCorpType, "CD")
+				.eq(CorpsDesc::getIsDeleted, 0)) + "");
+			return map;
+		} else if ("4".equals(type)) {
+			map.put("value",corpsDescService.count(new LambdaQueryWrapper<CorpsDesc>()
+				.eq(CorpsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(CorpsDesc::getCorpType, "KH")
+				.eq(CorpsDesc::getIsDeleted, 0)) + "");
+			return map;
+		} else {
+			return map;
+		}
+	}
+
 }

+ 76 - 0
blade-service/blade-land/src/main/java/org/springblade/land/bigScreen/LandOrderController.java

@@ -0,0 +1,76 @@
+package org.springblade.land.bigScreen;
+
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.land.service.IOrderService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/7/8
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/landOrderData")
+@Api(value = "陆运数字大屏", tags = "陆运数字大屏")
+public class LandOrderController {
+
+	private final IOrderService orderService;
+
+	/**
+	 * 陆运数字大屏获取集装箱 type =1
+	 * 陆运数字大屏获取散货 type =2
+	 * 陆运数字大屏获取特种运输 type =3
+	 */
+	@GetMapping("/container")
+	public List<Map<String, Object>> container(@Param("type") String type) {
+		List<Map<String, Object>> mapList = new ArrayList<>();
+		if ("1".equals(type)) {
+			List<Map<String, Object>> containerList = orderService.container("集装箱");
+			if (!containerList.isEmpty()) {
+				mapList.addAll(containerList);
+			}
+		} else if ("2".equals(type)) {
+			List<Map<String, Object>> bulkCargoList = orderService.bulkCargo("散货");
+			if (!bulkCargoList.isEmpty()) {
+				mapList.addAll(bulkCargoList);
+			}
+		} else if ("3".equals(type)) {
+			List<Map<String, Object>> specialTransportationList = orderService.specialTransportation("大件");
+			if (!specialTransportationList.isEmpty()) {
+				mapList.addAll(specialTransportationList);
+			}
+		}
+		return mapList;
+	}
+
+	/**
+	 * 未派车 type =1
+	 * 未受理 type =2
+	 * 未完工 type =3
+	 * 未完工 type =4
+	 */
+	@GetMapping("/orderStatus")
+	public Map<String,String> orderStatus(@Param("type") String type) {
+		Map<String,String> map = new HashMap<>();
+		map.put("value",orderService.orderStatus(type));
+		return map;
+	}
+
+	/**
+	 按月统计箱量 单据数量
+	 */
+	@GetMapping("/statisticsMonthly")
+	public Map<String,Object> statisticsMonthly() {
+		return orderService.statisticsMonthly();
+	}
+
+}

+ 3 - 0
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.java

@@ -25,6 +25,7 @@ import org.springblade.land.vo.OrderVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 陆运订单表 Mapper 接口
@@ -58,4 +59,6 @@ public interface OrderMapper extends BaseMapper<LandOrder> {
 	List<DataAnalysisVO> dataAnalysisExport(@Param("dataAnalysisVO") DataAnalysisVO dataAnalysisVO);
 
 	List<DataAnalysisVO> getDetailsList(IPage<DataAnalysisVO> page, @Param("dataAnalysisVO") DataAnalysisVO dataAnalysisVO);
+
+	List<Map<String, Object>> selectLargeScreen(@Param("type")String type, @Param("tenantId")String tenantId);
 }

+ 24 - 0
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml

@@ -244,4 +244,28 @@
         ORDER BY
         lo.bs_date
     </select>
+    <select id="selectLargeScreen" resultType="java.util.Map">
+        SELECT
+            ( CASE WHEN t1.shipping_mode != '散货' THEN t2.arrival_time ELSE t1.arrival_time END ) AS arrivalTime,
+            ( CASE WHEN t1.shipping_mode != '散货' THEN t2.plate_no ELSE t1.plate_no END ) AS plateNo ,
+            ( CASE WHEN t1.shipping_mode != '散货' THEN t4.name ELSE t3.name END ) AS driverName
+        FROM
+            land_order t1
+                LEFT JOIN land_order_item t2 ON t1.id = t2.order_id
+                LEFT JOIN basic_land_driver t3 ON t1.driver_id = t3.id
+                LEFT JOIN basic_land_driver t4 ON t2.driver_id = t4.id
+        WHERE
+            t1.tenant_id = #{tenantId}
+          AND t1.shipping_mode = #{type}
+          AND t1.is_deleted = 0
+          AND t2.is_deleted = 0
+          AND t2.kind = '2'
+        GROUP BY
+            t1.id,
+            t2.id,
+            t2.plate_no,
+            t2.arrival_time
+        ORDER BY
+            t1.arrival_time DESC
+    </select>
 </mapper>

+ 10 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java

@@ -199,4 +199,14 @@ LandOrder addOrderEstimate(LandOrder order);
 	LandOrder generateBill(LandOrder order);
 
 	IPage<DataAnalysisVO> getDetailsList(IPage<DataAnalysisVO> page, DataAnalysisVO dataAnalysisVO);
+
+	List<Map<String, Object>> container(String type);
+
+	List<Map<String, Object>> bulkCargo(String type);
+
+	List<Map<String, Object>> specialTransportation(String type);
+
+	String orderStatus(String type);
+
+	Map<String, Object> statisticsMonthly();
 }

+ 114 - 6
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -17,7 +17,6 @@
 package org.springblade.land.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -41,6 +40,7 @@ import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.finance.vojo.Items;
 import org.springblade.land.constant.LandConst;
+import org.springblade.land.dto.StatisticsMonthlyDto;
 import org.springblade.land.entity.*;
 import org.springblade.land.mapper.*;
 import org.springblade.land.service.IOrderEstimateService;
@@ -54,16 +54,15 @@ import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springblade.system.user.feign.IUserSearchClient;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
-import java.util.stream.Stream;
 
 /**
  * 陆运订单表 服务实现类
@@ -269,7 +268,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 			.orderByDesc(LandOrder::getArrivalTime);
 
 
-
 		if (order.getKind() == 2) {
 			orderQueryWrapper.ne(LandOrder::getStatus, 0);
 		}
@@ -284,7 +282,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 		if (userList != null && !userList.isEmpty()) {
 
 			List<Long> idLIst = userList.stream().map(User::getId).collect(Collectors.toList());
-				orderQueryWrapper.in(LandOrder::getPickUpGoodsUserId, idLIst);
+			orderQueryWrapper.in(LandOrder::getPickUpGoodsUserId, idLIst);
 		}
 
 		IPage<LandOrder> pages = baseMapper.selectPage(Condition.getPage(query), orderQueryWrapper);
@@ -726,7 +724,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 		} else if (order.getShippingMode().equals("大件")) {
 			BigDecimal landAmountD = new BigDecimal("0.00");
 			if (ObjectUtils.isNotNull(itemList)) {
-				for (OrderItem item:itemList) {
+				for (OrderItem item : itemList) {
 					landAmountD = landAmountD.add(item.getLandAmountD().multiply(new BigDecimal(item.getCtnQuantity())));
 				}
 				List<OrderEstimate> orderEstimates = new ArrayList<>();
@@ -1669,6 +1667,116 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 		return page.setRecords(baseMapper.getDetailsList(page, dataAnalysisVO));
 	}
 
+	@Override
+	public List<Map<String, Object>> container(String type) {
+		return baseMapper.selectLargeScreen(type, AuthUtil.getTenantId());
+	}
+
+	@Override
+	public List<Map<String, Object>> bulkCargo(String type) {
+		return baseMapper.selectLargeScreen(type, AuthUtil.getTenantId());
+	}
+
+	@Override
+	public List<Map<String, Object>> specialTransportation(String type) {
+		return baseMapper.selectLargeScreen(type, AuthUtil.getTenantId());
+	}
+
+	@Override
+	public String orderStatus(String type) {
+		long WDD = 0;
+		long WPC = 0;
+		long WSL = 0;
+		long WWC = 0;
+		Date date = new Date();
+		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
+		String formattedDate = formatter.format(date);
+		List<Long> orderIdList;
+		LambdaQueryWrapper<LandOrder> orderQueryWrapper = new LambdaQueryWrapper<>();
+		orderQueryWrapper.eq(LandOrder::getTenantId, AuthUtil.getTenantId())
+			.apply("DATE_FORMAT(arrival_time, '%Y-%m') >='"+formattedDate+"'")
+			.apply("DATE_FORMAT(arrival_time, '%Y-%m') <='"+formattedDate+"'")
+			.eq(LandOrder::getIsDeleted, 0);
+		orderIdList = baseMapper.selectList(orderQueryWrapper).stream().filter(orderTemp -> orderTemp.getStatus() != 0).map(LandOrder::getId).collect(Collectors.toList());
+		if (CollectionUtil.isNotEmpty(orderIdList)) {
+			List<OrderItem> itemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+				.in(OrderItem::getOrderId, orderIdList)
+				.eq(OrderItem::getKind, 2)
+				.eq(OrderItem::getIsDeleted, 0));
+
+			WDD = itemList.stream().filter(item -> item.getStatus() == 0).count();
+			WPC = itemList.stream().filter(item -> item.getStatus() == 1).count();
+			WSL = itemList.stream().filter(item -> item.getStatus() == 2).count();
+			WWC = itemList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 4).count();
+		}
+		if ("1".equals(type)) {
+			return WPC + "";
+		} else if ("2".equals(type)) {
+			return WSL + "";
+		} else if ("3".equals(type)) {
+			return WWC + "";
+		} else if ("4".equals(type)) {
+			return WDD + "";
+		} else {
+			return "";
+		}
+	}
+
+	@Override
+	public Map<String, Object> statisticsMonthly() {
+		Map<String, Object> map = new HashMap<>();
+		String[] categories = new String[]{"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"};
+		map.put("categories", categories);
+		Date date = new Date();
+		SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
+		SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM");
+		String formattedDate = formatter.format(date);
+		List<OrderItem> orderItemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+			.eq(OrderItem::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderItem::getShippingMode, "集装箱")
+			.eq(OrderItem::getIsDeleted, 0)
+			.apply("DATE_FORMAT(send_time, '%Y') ="+formattedDate)
+		);
+		List<StatisticsMonthlyDto> mapList = new ArrayList<>();
+		List<Integer> teuList = new ArrayList<>();
+		List<Integer> sumList = new ArrayList<>();
+		int count = 1;
+		for (int i = 0; i < 12; i++) {
+			int teu = 0;
+			int sum = 0;
+			for (OrderItem orderItem : orderItemList) {
+				String sameMonth = "";
+				if ((count + "").length() < 2) {
+					sameMonth = formattedDate + "-0" + count;
+				} else {
+					sameMonth = formattedDate + "-" + count;
+				}
+				String sendTime = formatter1.format(orderItem.getSendTime());
+				if (sameMonth.equals(sendTime)) {
+					sum += 1;
+					if (orderItem.getCtnType().contains("40")) {
+						teu = teu + orderItem.getCtnQuantity() * 2;
+					} else {
+						teu = teu + orderItem.getCtnQuantity();
+					}
+				}
+			}
+			teuList.add(teu);
+			sumList.add(sum);
+			count++;
+		}
+		StatisticsMonthlyDto teu = new StatisticsMonthlyDto() ;
+		teu.setName("TEU占比");
+		teu.setData(teuList);
+		mapList.add(teu);
+		StatisticsMonthlyDto sum = new StatisticsMonthlyDto() ;
+		sum.setName("趟占比");
+		sum.setData(sumList);
+		mapList.add(sum);
+		map.put("series", mapList);
+		return map;
+	}
+
 	private List<OrderItem> getOrderItemList(Long id) {
 		List<OrderItem> orderItemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
 			.eq(OrderItem::getOrderId, id)

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

@@ -334,7 +334,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 								if (true) {
 									sendMessage.setToUserId(selectOrder.getCreateUser());
 									sendMessage.setToUserName(selectOrder.getCreateUserName());
-									sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "正在采购中,请查看");
+									sendMessage.setMessageBody("您的销售订单" + selectOrder.getOrderNo() + "正在采购中,请查看");
 									R save = messageClient.save(sendMessage);
 									if (!save.isSuccess()) {
 										throw new SecurityException("发送消息失败");
@@ -343,7 +343,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 								if (true) {
 									sendMessage.setToUserId(selectOrder.getDocumenterId());
 									sendMessage.setToUserName(selectOrder.getDocumenterName());
-									sendMessage.setMessageBody("销售订单" + selectOrder.getSysNo() + "正在采购中,请查看");
+									sendMessage.setMessageBody("销售订单" + selectOrder.getOrderNo() + "正在采购中,请查看");
 									R save = messageClient.save(sendMessage);
 									if (!save.isSuccess()) {
 										throw new SecurityException("发送消息失败");
@@ -1640,85 +1640,93 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		} else if (OrderTypeEnum.EXPORT.getType().equals(order.getTradeType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 				this.paymentApplyFD(order, "收费", "销售");
-				LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-				lambdaQueryWrapper.eq(OrderItems::getPid, order.getId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId());
-				// 获取销售单明细数据
-				List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
-				BigDecimal sum = new BigDecimal("0.00");
-				for (OrderItems orderItems : orderItemsList) {
-					orderItems.setFudaPurchaseStatus("待采购");
-					//瓶帽配件
-					orderPartsService.remove(new LambdaQueryWrapper<OrderParts>().eq(OrderParts::getTenantId, AuthUtil.getTenantId()).eq(OrderParts::getPid, orderItems.getId()));
-					if (ObjectUtils.isNotNull(orderItems.getPartsCapValue())) {
-						JSONArray objects = JSONArray.parseArray(orderItems.getPartsCapValue());
-						List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
-						if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
-							sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-						}
-						saveOrderParts(categoryConstantInfos, orderItems.getId(), "3", order.getId(), orderItems.getOrderQuantity());
-					}
-					//阀门配件
-					if (ObjectUtils.isNotNull(orderItems.getPartsValveValue())) {
-						JSONArray objects = JSONArray.parseArray(orderItems.getPartsValveValue());
-						List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
-						if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
-							sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-						}
-						saveOrderParts(categoryConstantInfos, orderItems.getId(), "4", order.getId(), orderItems.getOrderQuantity());
+				if(ObjectUtils.isNotNull(order.getProductionScheduling())){
+					LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+					lambdaQueryWrapper.eq(OrderItems::getPid, order.getId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+					// 获取销售单明细数据
+					List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
+					BigDecimal sum = new BigDecimal("0.00");
+					for (OrderItems orderItems : orderItemsList) {
+						orderItems.setFudaPurchaseStatus("待采购");
+						//瓶帽配件
+						orderPartsService.remove(new LambdaQueryWrapper<OrderParts>().eq(OrderParts::getTenantId, AuthUtil.getTenantId()).eq(OrderParts::getPid, orderItems.getId()));
+						if (ObjectUtils.isNotNull(orderItems.getPartsCapValue())) {
+							JSONArray objects = JSONArray.parseArray(orderItems.getPartsCapValue());
+							List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
+							if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
+								sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+							}
+							saveOrderParts(categoryConstantInfos, orderItems.getId(), "3", order.getId(), orderItems.getOrderQuantity());
+						}
+						//阀门配件
+						if (ObjectUtils.isNotNull(orderItems.getPartsValveValue())) {
+							JSONArray objects = JSONArray.parseArray(orderItems.getPartsValveValue());
+							List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
+							if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
+								sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+							}
+							saveOrderParts(categoryConstantInfos, orderItems.getId(), "4", order.getId(), orderItems.getOrderQuantity());
+						}
+					}
+					orderItemsService.updateBatchById(orderItemsList);
+					//福达审核通过更改状态为审核通过
+					order.setProductionScheduling("待采购");
+					order.setOrderStatus("待采购");
+					order.setFudaPurchaseDate(new Date());
+					order.setProductionSchedulingDate(new Date());
+					order.setStorageQuantityPj(sum);
+					//发送消息采购
+					Message message = new Message();
+					message.setParameter(String.valueOf(order.getId()));
+					message.setUserName(AuthUtil.getUserName());
+					message.setUserId(AuthUtil.getUserId());
+					message.setToUserId(order.getBuyerId());
+					message.setToUserName(order.getBuyerName());
+					message.setMessageType(1);
+					message.setTenantId(AuthUtil.getTenantId());
+					message.setCreateUser(AuthUtil.getUserId());
+					message.setCreateTime(new Date());
+					message.setUrl("/exportTrade/purchaseContract/index");
+					message.setPageLabel(order.getPageLabel());
+					message.setPageStatus(order.getPageStatus());
+					message.setMessageBody("销售订单" + order.getOrderNo() + "已审核通过");
+					R save1 = messageClient.save(message);
+					if (!save1.isSuccess()) {
+						throw new SecurityException("发送消息失败");
 					}
 				}
-				orderItemsService.updateBatchById(orderItemsList);
-				//福达审核通过更改状态为审核通过
-				order.setProductionScheduling("待采购");
-				order.setOrderStatus("待采购");
-				order.setFudaPurchaseDate(new Date());
-				order.setProductionSchedulingDate(new Date());
-				order.setStorageQuantityPj(sum);
-				//发送消息采购
-				Message message = new Message();
-				message.setParameter(String.valueOf(order.getId()));
-				message.setUserName(AuthUtil.getUserName());
-				message.setUserId(AuthUtil.getUserId());
-				message.setToUserId(order.getBuyerId());
-				message.setToUserName(order.getBuyerName());
-				message.setMessageType(1);
-				message.setTenantId(AuthUtil.getTenantId());
-				message.setCreateUser(AuthUtil.getUserId());
-				message.setCreateTime(new Date());
-				message.setUrl("/exportTrade/purchaseContract/index");
-				message.setPageLabel(order.getPageLabel());
-				message.setPageStatus(order.getPageStatus());
-				message.setMessageBody("销售订单" + order.getOrderNo() + "已审核通过");
-				R save1 = messageClient.save(message);
-				if (!save1.isSuccess()) {
-					throw new SecurityException("发送消息失败");
-				}
-				//跟单生成
-				order.setOrderItemsList(orderItemsList);
-				order.setDeliverQuantity(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				order.setDocumentaryDate(order.getDocumentaryDate());
-				// 获取订单费用信息
-				List<OrderFees> orderFeesList = orderFeesService.getOrderFees(order);
-				order.setOrderFeesList(orderFeesList);
-				deliveryClient.saveAddDelivery(order);
-				//发送消息跟单
-				Message sendMessage = new Message();
-				sendMessage.setParameter(String.valueOf(order.getId()));
-				sendMessage.setUserName(AuthUtil.getUserName());
-				sendMessage.setUserId(AuthUtil.getUserId());
-				sendMessage.setToUserId(order.getDocumenterId());
-				sendMessage.setToUserName(order.getDocumenterName());
-				sendMessage.setMessageType(1);
-				sendMessage.setTenantId(AuthUtil.getTenantId());
-				sendMessage.setCreateUser(AuthUtil.getUserId());
-				sendMessage.setCreateTime(new Date());
-				sendMessage.setUrl("/exportTrade/invoice/index");
-				sendMessage.setPageLabel(order.getPageLabel());
-				sendMessage.setPageStatus(order.getPageStatus());
-				sendMessage.setMessageBody("销售订单" + order.getOrderNo() + "已审核通过");
-				R save = messageClient.save(sendMessage);
-				if (!save.isSuccess()) {
-					throw new SecurityException("发送消息失败");
+				if (ObjectUtils.isNotNull(order.getDocumentaryDate()) && ObjectUtils.isNotNull(order.getDeliverQuantity())){
+					LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+					lambdaQueryWrapper.eq(OrderItems::getPid, order.getId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+					// 获取销售单明细数据
+					List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
+					//跟单生成
+					order.setOrderItemsList(orderItemsList);
+					order.setDeliverQuantity(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					order.setDocumentaryDate(order.getDocumentaryDate());
+					// 获取订单费用信息
+					List<OrderFees> orderFeesList = orderFeesService.getOrderFees(order);
+					order.setOrderFeesList(orderFeesList);
+					deliveryClient.saveAddDelivery(order);
+					//发送消息跟单
+					Message sendMessage = new Message();
+					sendMessage.setParameter(String.valueOf(order.getId()));
+					sendMessage.setUserName(AuthUtil.getUserName());
+					sendMessage.setUserId(AuthUtil.getUserId());
+					sendMessage.setToUserId(order.getDocumenterId());
+					sendMessage.setToUserName(order.getDocumenterName());
+					sendMessage.setMessageType(1);
+					sendMessage.setTenantId(AuthUtil.getTenantId());
+					sendMessage.setCreateUser(AuthUtil.getUserId());
+					sendMessage.setCreateTime(new Date());
+					sendMessage.setUrl("/exportTrade/invoice/index");
+					sendMessage.setPageLabel(order.getPageLabel());
+					sendMessage.setPageStatus(order.getPageStatus());
+					sendMessage.setMessageBody("销售订单" + order.getOrderNo() + "已审核通过");
+					R save = messageClient.save(sendMessage);
+					if (!save.isSuccess()) {
+						throw new SecurityException("发送消息失败");
+					}
 				}
 			}
 			baseMapper.updateById(order);
@@ -5656,63 +5664,63 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		Order selectOrder = baseMapper.selectById(order.getId());
 		if (ObjectUtils.isNotNull(selectOrder)) {
-			LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-			lambdaQueryWrapper.eq(OrderItems::getPid, selectOrder.getId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId());
-			// 获取销售单明细数据
-			List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
-			BigDecimal sum = new BigDecimal("0.00");
-			for (OrderItems orderItems : orderItemsList) {
-				orderItems.setFudaPurchaseStatus("待采购");
-				//瓶帽配件
-				orderPartsService.remove(new LambdaQueryWrapper<OrderParts>().eq(OrderParts::getTenantId, AuthUtil.getTenantId()).eq(OrderParts::getPid, orderItems.getId()));
-				if (ObjectUtils.isNotNull(orderItems.getPartsCapValue())) {
-					JSONArray objects = JSONArray.parseArray(orderItems.getPartsCapValue());
-					List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
-					if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
-						sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					}
-					saveOrderParts(categoryConstantInfos, orderItems.getId(), "3", order.getId(), orderItems.getOrderQuantity());
-				}
-				//阀门配件
-				if (ObjectUtils.isNotNull(orderItems.getPartsValveValue())) {
-					JSONArray objects = JSONArray.parseArray(orderItems.getPartsValveValue());
-					List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
-					if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
-						sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					}
-					saveOrderParts(categoryConstantInfos, orderItems.getId(), "4", order.getId(), orderItems.getOrderQuantity());
-				}
-			}
-			orderItemsService.updateBatchById(orderItemsList);
-			selectOrder.setProductionScheduling("待采购");
-			selectOrder.setOrderStatus("待采购");
-			selectOrder.setProductionSchedulingDate(new Date());
-			selectOrder.setStorageQuantityPj(sum);
-			baseMapper.updateById(selectOrder);
-			//循环发送消息
-			Message sendMessage = new Message();
-			sendMessage.setParameter(String.valueOf(selectOrder.getId()));
-			sendMessage.setUserName(AuthUtil.getUserName());
-			sendMessage.setUserId(AuthUtil.getUserId());
-			sendMessage.setToUserId(selectOrder.getBuyerId());
-			sendMessage.setToUserName(selectOrder.getBuyerName());
-			sendMessage.setMessageType(1);
-			sendMessage.setTenantId(AuthUtil.getTenantId());
-			sendMessage.setCreateUser(AuthUtil.getUserId());
-			sendMessage.setCreateTime(new Date());
-			sendMessage.setUrl("/exportTrade/purchaseContract/index");
-			sendMessage.setPageLabel(order.getPageLabel());
-			sendMessage.setPageStatus(order.getPageStatus());
-			sendMessage.setMessageBody("您有采购任务" + selectOrder.getOrderNo() + "待处理,请查看");
-			R save = messageClient.save(sendMessage);
-			if (!save.isSuccess()) {
-				throw new SecurityException("发送消息失败");
+			if(ObjectUtils.isNotNull(selectOrder.getProductionScheduling())){
+				LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+				lambdaQueryWrapper.eq(OrderItems::getPid, selectOrder.getId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+				// 获取销售单明细数据
+				List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
+				BigDecimal sum = new BigDecimal("0.00");
+				for (OrderItems orderItems : orderItemsList) {
+					orderItems.setFudaPurchaseStatus("待采购");
+					//瓶帽配件
+					orderPartsService.remove(new LambdaQueryWrapper<OrderParts>().eq(OrderParts::getTenantId, AuthUtil.getTenantId()).eq(OrderParts::getPid, orderItems.getId()));
+					if (ObjectUtils.isNotNull(orderItems.getPartsCapValue())) {
+						JSONArray objects = JSONArray.parseArray(orderItems.getPartsCapValue());
+						List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
+						if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
+							sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						}
+						saveOrderParts(categoryConstantInfos, orderItems.getId(), "3", order.getId(), orderItems.getOrderQuantity());
+					}
+					//阀门配件
+					if (ObjectUtils.isNotNull(orderItems.getPartsValveValue())) {
+						JSONArray objects = JSONArray.parseArray(orderItems.getPartsValveValue());
+						List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
+						if (ObjectUtils.isNotNull(categoryConstantInfos) && !categoryConstantInfos.isEmpty()) {
+							sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+						}
+						saveOrderParts(categoryConstantInfos, orderItems.getId(), "4", order.getId(), orderItems.getOrderQuantity());
+					}
+				}
+				orderItemsService.updateBatchById(orderItemsList);
+				selectOrder.setProductionScheduling("待采购");
+				selectOrder.setOrderStatus("待采购");
+				selectOrder.setProductionSchedulingDate(new Date());
+				selectOrder.setStorageQuantityPj(sum);
+				baseMapper.updateById(selectOrder);
+				//循环发送消息
+				Message sendMessage = new Message();
+				sendMessage.setParameter(String.valueOf(selectOrder.getId()));
+				sendMessage.setUserName(AuthUtil.getUserName());
+				sendMessage.setUserId(AuthUtil.getUserId());
+				sendMessage.setToUserId(selectOrder.getBuyerId());
+				sendMessage.setToUserName(selectOrder.getBuyerName());
+				sendMessage.setMessageType(1);
+				sendMessage.setTenantId(AuthUtil.getTenantId());
+				sendMessage.setCreateUser(AuthUtil.getUserId());
+				sendMessage.setCreateTime(new Date());
+				sendMessage.setUrl("/exportTrade/purchaseContract/index");
+				sendMessage.setPageLabel(order.getPageLabel());
+				sendMessage.setPageStatus(order.getPageStatus());
+				sendMessage.setMessageBody("您有采购任务" + selectOrder.getOrderNo() + "待处理,请查看");
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+				//修改跟单状态为待采购
+				deliveryClient.saveDeliveryData(selectOrder.getId(), selectOrder.getOrderNo(), "待采购", null);
 			}
-			//修改跟单状态为待采购
-			deliveryClient.saveDeliveryData(selectOrder.getId(), selectOrder.getOrderNo(), "待采购", null);
-
 		}
-
 		return R.data(selectOrder);
 	}
 

+ 2 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderSaveImpl.java

@@ -219,7 +219,7 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 							if (true) {
 								sendMessage.setToUserId(selectOrder.getCreateUser());
 								sendMessage.setToUserName(selectOrder.getCreateUserName());
-								sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "正在采购中,请查看");
+								sendMessage.setMessageBody("您的销售订单" + selectOrder.getOrderNo() + "正在采购中,请查看");
 								R save = messageClient.save(sendMessage);
 								if (!save.isSuccess()) {
 									throw new SecurityException("发送消息失败");
@@ -228,7 +228,7 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 							if (true) {
 								sendMessage.setToUserId(selectOrder.getDocumenterId());
 								sendMessage.setToUserName(selectOrder.getDocumenterName());
-								sendMessage.setMessageBody("销售订单" + selectOrder.getSysNo() + "正在采购中,请查看");
+								sendMessage.setMessageBody("销售订单" + selectOrder.getOrderNo() + "正在采购中,请查看");
 								R save = messageClient.save(sendMessage);
 								if (!save.isSuccess()) {
 									throw new SecurityException("发送消息失败");