Bläddra i källkod

Merge branch 'master' into lockStorage

# Conflicts:
#	sd-business/src/main/java/com/sd/business/service/order/impl/OrderServiceImpl.java
24282 1 år sedan
förälder
incheckning
b962fa5aaa

+ 17 - 0
sd-business/src/main/java/com/sd/business/controller/order/OrderController.java

@@ -149,4 +149,21 @@ public class OrderController {
         return orderService.getOrderWlnCodeStr(dto);
     }
 
+
+    /**
+     * 获取订单送货单号
+     */
+    @PostMapping("/getOrderDeliveryCode")
+    public String getOrderDeliveryCode() {
+        return orderService.getOrderDeliveryCode();
+    }
+
+    /**
+     * 保存订单送货单号
+     * @param orderDto
+     */
+    @PostMapping("/saveOrderDeliveryCode")
+    public void saveOrderDeliveryCode(@RequestBody OrderInfoDto orderDto) {
+        orderService.saveOrderDeliveryCode(orderDto);
+    }
 }

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/order/po/OrderInfo.java

@@ -302,4 +302,9 @@ public class OrderInfo extends BasePo {
      */
     private Integer delFlag;
 
+    /**
+     * 送货单号
+     */
+    private String deliveryCode;
+
 }

+ 11 - 0
sd-business/src/main/java/com/sd/business/service/order/OrderService.java

@@ -115,4 +115,15 @@ public interface OrderService extends BaseService<OrderInfo> {
      */
     Boolean isExistOrderSkuBom(Long orderId);
 
+    /**
+     * 获取订单送货单号
+     * @return
+     */
+    String getOrderDeliveryCode();
+
+    /**
+     * 保存订单送货单号
+     * @param dto
+     */
+    void saveOrderDeliveryCode(OrderInfoDto dto);
 }

+ 23 - 0
sd-business/src/main/java/com/sd/business/service/order/impl/OrderServiceImpl.java

@@ -50,6 +50,7 @@ import com.sd.business.service.price.PriceBillingStandardDetailService;
 import com.sd.business.service.price.PriceBillingStandardService;
 import com.sd.business.service.sku.SkuSpecService;
 import com.sd.business.service.statement.StatementOfAccountService;
+import com.sd.business.util.CodeEnum;
 import com.sd.framework.util.Assert;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -761,6 +762,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         return flag;
     }
 
+    @Override
+    public String getOrderDeliveryCode() {
+        return CodeEnum.SH_CODE.getCode();
+    }
+
+    @Override
+    public void saveOrderDeliveryCode(OrderInfoDto dto) {
+        OrderInfo orderInfo = this.getById(dto.getId());
+        if (orderInfo == null) {
+            throw new ServiceException("未找到订单");
+        }
+        if (StrUtil.isBlank(dto.getDeliveryCode())) {
+            throw new ServiceException("送货单号不能为空");
+        }
+        OrderInfo one = this.getOne(q -> q.eq(OrderInfo::getDeliveryCode, dto.getDeliveryCode()));
+        if (one != null) {
+            throw new ServiceException("送货单号重复,请重新生成!");
+        }
+        this.update(q -> q.set(OrderInfo::getDeliveryCode, dto.getDeliveryCode())
+                .eq(BaseIdPo::getId, dto.getId()));
+    }
+
     /**
      * 删除订单以及订单关联数据
      */

+ 4 - 1
sd-business/src/main/java/com/sd/business/util/CodeEnum.java

@@ -11,6 +11,7 @@ import com.sd.business.service.apply.ApplyBuyService;
 import com.sd.business.service.in.InOutStorageService;
 import com.sd.business.service.lend.LendService;
 import com.sd.business.service.order.OrderExchangeService;
+import com.sd.business.service.order.OrderService;
 import com.sd.business.service.purchase.PurchaseService;
 import com.sd.business.service.statement.StatementOfAccountService;
 import lombok.Getter;
@@ -36,7 +37,9 @@ public enum CodeEnum {
     // 退货单号
     TH_CODE("TH", "-yyMMdd-", "code", 6, OrderExchangeService.class),
     // 换货单号
-    HH_CODE("HH", "-yyMMdd-", "code", 6, OrderExchangeService.class);
+    HH_CODE("HH", "-yyMMdd-", "code", 6, OrderExchangeService.class),
+    // 送货单号
+    SH_CODE("SH", "-yyMMddHH-", "delivery_code", 3, OrderService.class);
 
     // 编码前缀
     private final String prefix;

+ 2 - 0
sd-business/src/main/resources/mapper/order/OrderMapper.xml

@@ -5,6 +5,7 @@
     <select id="getPage" resultType="com.sd.business.entity.order.vo.OrderInfoVo">
         select o.id,
                o.source,
+               o.type,
                o.code,
                o.wln_uid,
                o.wln_code,
@@ -43,6 +44,7 @@
                o.postcode,
                o.department_id,
                o.express_delivery_id,
+               o.delivery_code,
                o.remark,
                o.create_user,
                o.create_time,

+ 39 - 0
sd-starter/src/test/java/TestList.java

@@ -1,3 +1,4 @@
+import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.ruoyi.common.exception.ServiceException;
@@ -5,8 +6,11 @@ import com.sd.SdApplication;
 import com.sd.business.entity.order.po.OrderInfo;
 import com.sd.business.entity.production.dto.StockPreparationDto;
 import com.sd.business.entity.production.vo.UncompletedVo;
+import com.sd.business.entity.statement.dto.GetDocumentDto;
+import com.sd.business.entity.statement.vo.DocumentByOrderVo;
 import com.sd.business.service.order.OrderService;
 import com.sd.business.service.production.StockPreparationService;
+import com.sd.business.service.statement.StatementOfAccountMergeService;
 import com.sd.wln.service.WlnStatementOfAccount;
 import com.sd.wln.util.WlnUtil;
 import org.junit.Test;
@@ -15,9 +19,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = SdApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@@ -100,4 +107,36 @@ public class TestList {
         } while (size >= 200);
     }
 
+
+    @Autowired
+    private StatementOfAccountMergeService statementOfAccountMergeService;
+
+    @Test
+    public void b() {
+        String a = "{\n" +
+                "    \"idGroupConcat\": \"1699739286011727873,1702638389020454914,1700101673936044034,1700464061822562305,1702276001603575809,1700826449696530434,1701928713001660417,1701551225520091137,1701106726288019458,1701106725822451713,1701106725755342850,1701106725625319426,1701106725558210565,1701106725558210564,1699376899223990273\"\n" +
+                "}";
+        GetDocumentDto dto = JSON.parseObject(a).toJavaObject(GetDocumentDto.class);
+
+
+        List<DocumentByOrderVo> documentByOrder = statementOfAccountMergeService.getDocumentByOrder(dto);
+
+        List<DocumentByOrderVo> documentByOrderVoStream = documentByOrder.stream().filter(item -> {
+            List<DocumentByOrderVo.SkuSpec> skuSpecList = item.getSkuSpecList();
+            return skuSpecList.stream().anyMatch(i -> i.getSkuSpecCode().equals("FY088-3-08AL39B"));
+        }).collect(Collectors.toList());
+
+
+        Map<String, BigDecimal> collect = documentByOrderVoStream.stream()
+                .collect(Collectors.toMap(
+                        DocumentByOrderVo::getWlnCode,
+                        item -> item.getSkuSpecList().stream()
+                                .filter(i -> i.getSkuSpecCode().equals("FY088-3-08AL39B"))
+                                .map(DocumentByOrderVo.SkuSpec::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add))
+                );
+
+
+        System.out.println(JSON.toJSONString(collect));
+    }
+
 }

+ 5 - 0
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -545,6 +545,11 @@ public class WlnOrderServiceImpl implements WlnOrderService {
      * 添加订单异常类型
      */
     private void addExceptionType(OrderInfo orderInfo, OrderExceptionTypeEnum exceptionTypeEnum) {
+
+        if (orderInfo.getStatus() >= OrderStatusEnum.IN_PRODUCTION.getKey()) {
+            return;
+        }
+
         String exceptionType = orderInfo.getExceptionType();
         orderInfo.setExceptionType(orderService.addExceptionType(exceptionType, exceptionTypeEnum.getKey()));
         orderInfo.setExceptionTime(ObjectUtil.defaultIfNull(orderInfo.getExceptionTime(), new Date()));