Przeglądaj źródła

2023年3月2日17:47:19

纪新园 2 lat temu
rodzic
commit
980907f230

+ 2 - 2
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/feign/IDeliveryClient.java

@@ -94,10 +94,10 @@ public interface IDeliveryClient {
 	 * @return
 	 */
 	@GetMapping(UPDATE_BY_SRC_ID)
-	R updateBySrcId(@RequestParam("srcId") String srcId,
+	R updateBySrcId(@RequestParam("srcId") Long srcId,
 								@RequestParam("billType") String billType,
 								@RequestParam("tradeType") String tradeType);
 
 	@GetMapping(SELECT_COUNT)
-	int selectCount(@RequestParam("userId")Long userId);
+	int selectCount(@RequestParam("userId")Long userId,@RequestParam("dateList")List<String> dateList);
 }

+ 17 - 13
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java

@@ -18,10 +18,7 @@ import org.springblade.deliver.goods.service.IDeliveryService;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.ArrayList;
@@ -200,7 +197,7 @@ public class DeliveryClient implements IDeliveryClient {
 					.eq(DeliveryItems::getSrcOrderNo, order.getOrderNo())
 					.eq(DeliveryItems::getOrgOrderNo, order.getSysNo());
 				DeliveryItems deliveryItems1 = deliveryItemsService.getOne(itemsLambdaQueryWrapper);
-				if (ObjectUtils.isNotNull(deliveryItems1)){
+				if (ObjectUtils.isNotNull(deliveryItems1)) {
 					deliveryItems1.setItemId(orderItems.getItemId());//货物
 					deliveryItems1.setPriceCategory(orderItems.getPriceCategory());//商品类别
 					deliveryItems1.setProductDesc(orderItems.getItemDescription());//产品描述
@@ -222,7 +219,7 @@ public class DeliveryClient implements IDeliveryClient {
 					deliveryItems1.setEname(orderItems.getEname());
 					deliveryItemsService.updateById(deliveryItems1);
 					deliveryItemsList.add(deliveryItems1);
-				}else{
+				} else {
 					DeliveryItems deliveryItems = new DeliveryItems();
 					deliveryItems.setPid(deliveryNew.getId());
 					deliveryItems.setSort(1);
@@ -311,7 +308,7 @@ public class DeliveryClient implements IDeliveryClient {
 	}
 
 	@Override
-	public R updateBySrcId(String srcId, String billType, String tradeType) {
+	public R updateBySrcId(Long srcId, String billType, String tradeType) {
 		if (ObjectUtils.isNull(srcId)) {
 			throw new RuntimeException("缺少必要参数");
 		}
@@ -321,20 +318,27 @@ public class DeliveryClient implements IDeliveryClient {
 			.eq(Delivery::getBillType, billType)
 			.eq(Delivery::getTradeType, tradeType)
 			.eq(Delivery::getSrcId, srcId);
-		Delivery delivery = deliveryService.getOne(lambdaQueryWrapper);
-		if (ObjectUtils.isNull(delivery)) {
+		List<Delivery> deliveryList = deliveryService.list(lambdaQueryWrapper);
+		if (ObjectUtils.isNull(deliveryList) && deliveryList.size() > 0) {
 			throw new RuntimeException("未找到单据信息");
+		}else{
+			for (Delivery delivery:deliveryList) {
+				delivery.setEstimateGoodGoodsDate(new Date());
+				delivery.setEstimateGoodGoods("采购完成");
+				delivery.setDeliveryStatus("采购完成");
+				deliveryService.updateById(delivery);
+			}
 		}
-		delivery.setEstimateGoodGoodsDate(new Date());
-		delivery.setEstimateGoodGoods("预计货好");
-		return R.data(deliveryService.updateById(delivery));
+		return R.data("操作成功");
 	}
 
 	@Override
-	public int selectCount(Long userId) {
+	public int selectCount(Long userId,List<String> dateList) {
 		return deliveryService.count(new LambdaQueryWrapper<Delivery>()
 			.eq(Delivery::getIsDeleted, 0)
 			.eq(Delivery::getTenantId, AuthUtil.getTenantId())
+			.ge(Delivery::getBusinesDate, dateList.get(0))
+			.le(Delivery::getBusinesDate, dateList.get(1))
 			.eq(Delivery::getCreateUser, userId)
 			.eq(Delivery::getTradeType, "CK")
 			.eq(Delivery::getBillType, "FH"));

+ 7 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -1128,17 +1128,19 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		}
 		if (1 == delivery.getDocumentaryStatusType()) {
 			detail.setCustomsStatus("已报关");
+			detail.setDeliveryStatus("已报关");
 			detail.setCustomsDate(delivery.getCustomsDate());
 
 			detail.setShippingDate(null);
 			detail.setDocumentaryDate(null);
 		} else if (2 == delivery.getDocumentaryStatusType()) {
 			detail.setShippingStatus("已出运");
+			detail.setDeliveryStatus("已出运");
 			detail.setShippingDate(delivery.getShippingDate());
 			detail.setCustomsDate(null);
 			detail.setDocumentaryDate(null);
 		} else if (3 == delivery.getDocumentaryStatusType()) {
-			detail.setDocumentaryStatus("完成");
+			detail.setDocumentaryStatus("订单完成");
 			detail.setDocumentaryDate(delivery.getDocumentaryDate());
 			detail.setShippingDate(null);
 			detail.setCustomsDate(null);
@@ -1173,14 +1175,17 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			if (1 == delivery.getDocumentaryStatusType()){
 				sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已报关,请查看");
 				selectOrder.setDocumentaryStatus("已报关");
+				selectOrder.setOrderStatus("已报关");
 				selectOrder.setDocumentaryDate(delivery.getCustomsDate());
 			} else if (2 == delivery.getDocumentaryStatusType()) {
 				sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已出运,请查看");
 				selectOrder.setDocumentaryStatus("已出运");
+				selectOrder.setOrderStatus("已出运");
 				selectOrder.setDocumentaryDate(delivery.getShippingDate());
 			} else if (3 == delivery.getDocumentaryStatusType()) {
 				sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已完成,请查看");
-				selectOrder.setDocumentaryStatus("已完成");
+				selectOrder.setDocumentaryStatus("订单完成");
+				selectOrder.setOrderStatus("订单完成");
 				selectOrder.setDocumentaryDate(delivery.getDocumentaryDate());
 			}
 			selectOrder.setBillLadingNo(detail.getBillLadingNo());

+ 26 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -1319,8 +1319,19 @@ public class ExportOrderController extends BladeController {
 					orderItems_.setCode(goodsDesc.getCode());
 				}
 			}
-			orderItems_.setPrice(orderItems_.getPurchasePrice());
-			orderItems_.setAmount(orderItems_.getPurchaseAmount());
+
+			if (ObjectUtils.isNotNull(orderItems_.getPurchaseQuantity())){
+				orderItems_.setActualQuantity(orderItems_.getOrderQuantity().subtract(orderItems_.getPurchaseQuantity()));
+			}else{
+				orderItems_.setActualQuantity(orderItems_.getOrderQuantity());
+			}
+			if (ObjectUtils.isNotNull(orderItems_.getPurchasePrice())){
+				orderItems_.setPrice(orderItems_.getPurchasePrice());
+				orderItems_.setAmount(orderItems_.getPurchasePrice().multiply(orderItems_.getActualQuantity()));
+			}else{
+				orderItems_.setPrice(orderItems_.getPrice());
+				orderItems_.setAmount(orderItems_.getPrice().multiply(orderItems_.getActualQuantity()));
+			}
 		}
 		return R.data(pages);
 	}
@@ -1385,5 +1396,18 @@ public class ExportOrderController extends BladeController {
 		return orderService.documentQuantityStatistics(order);
 	}
 
+	/**
+	 * 单据数量统计
+	 *
+	 * @param order
+	 * @return
+	 */
+	@GetMapping("/salesList")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "出口销售单生成发货单", notes = "传入主订单id,明细ids")
+	public R salesList(Order order) {
+		return orderService.salesList(order);
+	}
+
 
 }

+ 2 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -507,4 +507,6 @@ public interface IOrderService extends IService<Order> {
     R documentQuantityStatistics(Order order);
 
 	R quickBillingWX(Order order);
+
+	R salesList(Order order);
 }

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

@@ -1824,8 +1824,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						// 开始锁定库存,减少可用
 						StockGoods oneStock = stockGoodsList.stream().filter(s ->
 							s.getGoodsId().equals(e.getItemId())
-							&& s.getCorpId().equals(e.getCorpId())
-							&& s.getTenantId().equals(SecureUtil.getTenantId())
+								&& s.getCorpId().equals(e.getCorpId())
+								&& s.getTenantId().equals(SecureUtil.getTenantId())
 						).findFirst().orElse(null);
 						if (oneStock == null) {
 							throw new SecurityException("撤销失败:未查询到库存信息");
@@ -5031,6 +5031,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderItemsMapper.updateById(orderItems);
 			}
 			selectOrder.setFudaPurchaseStatus("待采购");
+			selectOrder.setOrderStatus("待采购");
 			selectOrder.setFudaPurchaseDate(order.getFudaPurchaseDate());
 			baseMapper.updateById(selectOrder);
 			//循环发送消息
@@ -5145,6 +5146,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						}
 					}
 
+					if (ObjectUtils.isNotNull(orderItems_.getPurchaseQuantity())) {
+						orderItems_.setActualQuantity(orderItems_.getOrderQuantity().subtract(orderItems_.getPurchaseQuantity()));
+					} else {
+						orderItems_.setActualQuantity(orderItems_.getOrderQuantity());
+					}
+					if (ObjectUtils.isNotNull(orderItems_.getPurchasePrice())) {
+						orderItems_.setPrice(orderItems_.getPurchasePrice());
+						orderItems_.setAmount(orderItems_.getPurchasePrice().multiply(orderItems_.getActualQuantity()));
+					} else {
+						orderItems_.setPrice(orderItems_.getPrice());
+						orderItems_.setAmount(orderItems_.getPrice().multiply(orderItems_.getActualQuantity()));
+					}
+
 					orderItemsListAll.add(orderItems_);
 					orderListAll.add(order);
 				}
@@ -5201,12 +5215,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		if (1 == order.getPurchaseStatusType()) {
 			detail.setProductionScheduling("排产中");
+			detail.setOrderStatus("排产中");
 			detail.setProductionSchedulingDate(order.getProductionSchedulingDate());
 		} else if (2 == order.getPurchaseStatusType()) {
 			detail.setEstimateGoodGoods("预计货好");
+			detail.setOrderStatus("预计货好");
 			detail.setEstimateGoodGoodsDate(order.getEstimateGoodGoodsDate());
 		} else if (3 == order.getPurchaseStatusType()) {
 			detail.setFudaPurchaseStatus("采购完成");
+			detail.setOrderStatus("采购完成");
 			detail.setFudaPurchaseDate(order.getFudaPurchaseDate());
 		}
 		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -5229,12 +5246,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if (order1.getStorageQuantity().equals(order1.getPurchaseQuantity().add(purchaseQuantity))) {
 						if (1 == order.getPurchaseStatusType()) {
 							order1.setProductionScheduling("排产中");
+							order1.setOrderStatus("采购完成");
 							order1.setProductionSchedulingDate(order.getProductionSchedulingDate());
 						} else if (2 == order.getPurchaseStatusType()) {
 							order1.setEstimateGoodGoods("预计货好");
+							order1.setOrderStatus("预计货好");
 							order1.setEstimateGoodGoodsDate(order.getEstimateGoodGoodsDate());
 						} else if (3 == order.getPurchaseStatusType()) {
 							order1.setFudaPurchaseStatus("采购完成");
+							order1.setOrderStatus("采购完成");
 							order1.setFudaPurchaseDate(order.getFudaPurchaseDate());
 						}
 						order1.setPurchaseQuantity(order1.getPurchaseQuantity().add(purchaseQuantity));
@@ -5243,6 +5263,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 		}
+		baseMapper.updateById(detail);
 		String[] arrs = detail.getSrcIds().split(",");
 		for (String arr : arrs) {
 			Order selectOrder = baseMapper.selectById(Long.parseLong(arr));
@@ -5269,16 +5290,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if (1 == order.getPurchaseStatusType()) {
 						sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "正在排产中,请查看");
 						selectOrder.setProductionScheduling("排产中");
+						selectOrder.setOrderStatus("排产中");
 						selectOrder.setProductionSchedulingDate(order.getProductionSchedulingDate());
 					} else if (2 == order.getPurchaseStatusType()) {
 						sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已预计货好,请查看");
 						selectOrder.setEstimateGoodGoods("预计货好");
+						selectOrder.setOrderStatus("预计货好");
 						selectOrder.setEstimateGoodGoodsDate(order.getEstimateGoodGoodsDate());
-						deliveryClient.updateBySrcId(selectOrder.getId() + "", selectOrder.getBillType(), selectOrder.getTradeType());
 					} else if (3 == order.getPurchaseStatusType()) {
 						sendMessage.setMessageBody("您的销售订单" + selectOrder.getSysNo() + "已采购完成,请查看");
 						selectOrder.setFudaPurchaseStatus("采购完成");
+						selectOrder.setOrderStatus("采购完成");
 						selectOrder.setFudaPurchaseDate(order.getFudaPurchaseDate());
+						deliveryClient.updateBySrcId(selectOrder.getId(), "FH", selectOrder.getTradeType());
 					}
 					R save = messageClient.save(sendMessage);
 					if (!save.isSuccess()) {
@@ -5322,6 +5346,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				R<User> res = userClient.userInfoById(userId);
 				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
 					int cg = baseMapper.selectCount(new LambdaQueryWrapper<Order>().eq(Order::getIsDeleted, 0)
+						.ge(Order::getBusinesDate, order.getDateList().get(0))
+						.le(Order::getBusinesDate, order.getDateList().get(1))
 						.eq(Order::getTenantId, AuthUtil.getTenantId())
 						.eq(Order::getCreateUser, userId)
 						.eq(Order::getBillType, "CG"));
@@ -5334,6 +5360,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					}
 					int xs = baseMapper.selectCount(new LambdaQueryWrapper<Order>().eq(Order::getIsDeleted, 0)
 						.eq(Order::getTenantId, AuthUtil.getTenantId())
+						.ge(Order::getBusinesDate, order.getDateList().get(0))
+						.le(Order::getBusinesDate, order.getDateList().get(1))
 						.eq(Order::getCreateUser, userId)
 						.eq(Order::getBillType, "XS"));
 					if (xs != 0) {
@@ -5345,6 +5373,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					}
 					int cgxj = baseMapper.selectCount(new LambdaQueryWrapper<Order>().eq(Order::getIsDeleted, 0)
 						.eq(Order::getTenantId, AuthUtil.getTenantId())
+						.ge(Order::getBusinesDate, order.getDateList().get(0))
+						.le(Order::getBusinesDate, order.getDateList().get(1))
 						.eq(Order::getCreateUser, userId)
 						.eq(Order::getBillType, "BJ"));
 					if (cgxj != 0) {
@@ -5354,7 +5384,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						map.put("billType", "报价单");
 						mapList.add(map);
 					}
-					int gd = deliveryClient.selectCount(userId);
+					int gd = deliveryClient.selectCount(userId, order.getDateList());
 					if (gd != 0) {
 						Map<String, Object> map = new HashMap<>();
 						map.put("name", res.getData().getRealName());
@@ -5943,6 +5973,44 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public R salesList(Order order) {
+		List<Order> orderList = baseMapper.selectList(new LambdaQueryWrapper<Order>()
+			.eq(Order::getIsDeleted, 0)
+			.eq(Order::getTenantId, AuthUtil.getTenantId())
+			.ge(Order::getBusinesDate, order.getDateList().get(0))
+			.le(Order::getBusinesDate, order.getDateList().get(1))
+			.ne(Order::getOrderStatus, "订单完成")
+		);
+		for (Order order1 : orderList) {
+			if (ObjectUtils.isNotNull(order1.getCorpId())) {
+				CorpsDesc corpsDesc = corpsDescClient.getCorpId(order1.getCorpId());
+				if (null != corpsDesc) {
+					order1.setCorpsName(corpsDesc.getCname());
+				}
+			}
+			if (ObjectUtils.isNotNull(order1.getCreateUser())) {
+				R<User> res = userClient.userInfoById(order1.getCreateUser());
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					order1.setCreateUserName(res.getData().getRealName());
+				}
+			}
+			if (ObjectUtils.isNotNull(order1.getDocumenterId())) {
+				R<User> res = userClient.userInfoById(order1.getDocumenterId());
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					order1.setDocumenterName(res.getData().getRealName());
+				}
+			}
+			if (ObjectUtils.isNotNull(order1.getBuyerId())) {
+				R<User> res = userClient.userInfoById(order1.getBuyerId());
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					order1.setBuyerName(res.getData().getRealName());
+				}
+			}
+		}
+		return R.data(orderList);
+	}
+
+	@Override
 	public MonthSales monthSales(OrderVO order) {
 		MonthSales monthSales = new MonthSales();
 		if (StringUtils.isBlank(order.getTradeType())) {

+ 2 - 1
blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictBizMapper.xml

@@ -13,6 +13,7 @@
         <result column="sort" property="sort"/>
         <result column="remark" property="remark"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="colour" property="colour"/>
     </resultMap>
 
     <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
@@ -37,7 +38,7 @@
     </select>-->
 
     <select id="getList" resultMap="dictResultMap">
-        select id, parent_id, code, dict_key, dict_value, sort, remark from blade_dict_biz where code = #{param1} and parent_id > 0 and is_sealed = 0 and is_deleted = 0 ORDER BY sort
+        select id, parent_id, code, dict_key, dict_value, sort, remark,colour from blade_dict_biz where code = #{param1} and parent_id > 0 and is_sealed = 0 and is_deleted = 0 ORDER BY sort
     </select>
 
     <select id="tree" resultMap="treeNodeResultMap">

+ 2 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -182,6 +182,7 @@ public class PurchaseOrderController extends BladeController {
 					 @RequestParam(value = "gathering", required = false) Integer gathering,//是否付款 0 已付款 1 未付款
 					 @RequestParam(value = "createFreight", required = false) Integer createFreight,//是否生成发货 0 否 1 是
 					 @RequestParam(value = "orderType", required = false) String orderType,//是否生成发货 0 否 1 是
+					 @RequestParam(value = "srcOrderNo", required = false) String srcOrderNo,//是否生成发货 0 否 1 是
 					 Order order
 	) {
 
@@ -209,6 +210,7 @@ public class PurchaseOrderController extends BladeController {
 			}
 
 		}
+		queryWrapper.like(StringUtils.isNotBlank(srcOrderNo), "src_order_no", srcOrderNo);
 		queryWrapper.like(StringUtils.isNotBlank(banksAccountName), "banks_account_name", banksAccountName);
 		queryWrapper.like(StringUtils.isNotBlank(packageRemarks), "package_remarks", packageRemarks);
 		queryWrapper.like(StringUtils.isNotBlank(salesName), "sales_name", salesName);