Browse Source

生产备料

24282 1 year ago
parent
commit
d43b5d5efe

+ 1 - 1
code-generation/src/main/java/com/sd/Generation.java

@@ -6,7 +6,7 @@ public class Generation {
 
     public static void main(String[] args) {
         GeneratorApplication.builder()
-                .url("jdbc:mysql://36.134.91.96:12333/sd_business?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true")
+                .url("jdbc:mysql://121.37.194.75:30102/sd_business?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true")
                 .username("root")
                 .password("5fWD*oa^nso@kmKa")
                 .port(9989)

+ 41 - 0
sd-business/src/main/java/com/sd/business/controller/production/StockPreparationController.java

@@ -0,0 +1,41 @@
+package com.sd.business.controller.production;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.production.dto.StockPreparationDto;
+import com.sd.business.entity.production.vo.StockPreparationVo;
+import com.sd.business.service.production.StockPreparationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 生产备料
+ */
+@RestController
+@RequestMapping("/stockPreparationController")
+public class StockPreparationController {
+
+    @Autowired
+    private StockPreparationService stockPreparationService;
+
+    /**
+     * 待备料列表
+     */
+    @PostMapping("/uncompletedList")
+    public List<StockPreparationVo> uncompletedList(@RequestBody StockPreparationDto dto) {
+        return stockPreparationService.uncompletedList(dto);
+    }
+
+    /**
+     * 已备料分页
+     */
+    @PostMapping("/completedPage")
+    public Page<StockPreparationVo> completedPage(@RequestBody StockPreparationDto dto) {
+        return stockPreparationService.completedPage(dto);
+    }
+
+}

+ 2 - 3
sd-business/src/main/java/com/sd/business/entity/order/enums/OrderStatusEnum.java

@@ -14,9 +14,8 @@ import java.util.Map;
 @AllArgsConstructor
 public enum OrderStatusEnum {
     DRAFT(0, "草稿"),
-    UNDER_REVIEW(10, "图稿上传"),
-    NO_UNDER_REVIEW(15, "图稿未上传"),
-    Al_UNDER_REVIEW(18, "图稿已设计"),
+    UNDER_REVIEW(10, "订单待确认"),
+    STOCK_PREPARATION(15, "备料中"),
     REJECT(20, "生产中"),
     PASS(30, "已发货"),
     COMPLETE(40, "生产完成"),

+ 18 - 8
sd-business/src/main/java/com/sd/business/entity/order/po/OrderInfo.java

@@ -14,7 +14,7 @@ import java.util.Date;
  * </p>
  *
  * @author
- * @since 2023-06-30
+ * @since 2023-07-19
  */
 @Getter
 @Setter
@@ -32,24 +32,29 @@ public class OrderInfo extends BasePo {
     private String code;
 
     /**
-     * 万里牛订单号
+     * 设计图
      */
-    private String wlnCode;
+    private String blueprint;
 
     /**
-     * 万里牛订单状态
+     * 生产文件
      */
-    private Integer wlnStatus;
+    private String productionDocument;
 
     /**
-     * 万里牛uid
+     * 万里牛唯一uid
      */
     private String wlnUid;
 
     /**
-     * 万里牛同步时间戳
+     * 万里牛订单号
      */
-    private Long modifyTime;
+    private String wlnCode;
+
+    /**
+     * 万里牛订单状态
+     */
+    private Integer wlnStatus;
 
     /**
      * 万里牛订单创建时间
@@ -67,6 +72,11 @@ public class OrderInfo extends BasePo {
     private Date wlnPrintTime;
 
     /**
+     * 万里牛同步时间戳
+     */
+    private Long modifyTime;
+
+    /**
      * 快递单号
      */
     private String expressDeliveryCode;

+ 14 - 3
sd-business/src/main/java/com/sd/business/entity/order/po/OrderSku.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * <p>
@@ -13,7 +14,7 @@ import java.math.BigDecimal;
  * </p>
  *
  * @author
- * @since 2023-07-06
+ * @since 2023-07-19
  */
 @Getter
 @Setter
@@ -36,12 +37,12 @@ public class OrderSku extends BasePo {
     private Long skuSpecId;
 
     /**
-     * 万里牛 sku id
+     * 万里牛sys_goods_uid
      */
     private String wlnSkuId;
 
     /**
-     * 万里牛 sku规格id
+     * 万里牛sys_spec_uid
      */
     private String wlnSkuSpecId;
 
@@ -86,6 +87,16 @@ public class OrderSku extends BasePo {
     private Integer printType;
 
     /**
+     * 备料状态 0未备料 1已备料
+     */
+    private Integer stockPreparationStatus;
+
+    /**
+     * 备料时间
+     */
+    private Date stockPreparationTime;
+
+    /**
      * 包装要求
      */
     private String packageRemark;

+ 51 - 0
sd-business/src/main/java/com/sd/business/entity/production/dto/StockPreparationDto.java

@@ -0,0 +1,51 @@
+package com.sd.business.entity.production.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class StockPreparationDto extends BaseSelectDto {
+
+    /**
+     * 订单号
+     */
+    private String orderCode;
+
+    /**
+     * 万里牛订单号
+     */
+    private String orderWlnCode;
+
+    /**
+     * bom品号
+     */
+    private String bomSpecCode;
+
+    /**
+     * bom品名
+     */
+    private String bomSpecName;
+
+    /**
+     * sku品号
+     */
+    private String skuSpecCode;
+
+    /**
+     * sku品名
+     */
+    private String skuSpecName;
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+    /**
+     * 宽
+     */
+    private String width;
+
+}

+ 72 - 0
sd-business/src/main/java/com/sd/business/entity/production/vo/StockPreparationVo.java

@@ -0,0 +1,72 @@
+package com.sd.business.entity.production.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class StockPreparationVo {
+
+    /**
+     * 设计图
+     */
+    private String blueprint;
+
+    /**
+     * 事业部
+     */
+    private String departmentName;
+
+    /**
+     * bom品号
+     */
+    private String bomSpecCode;
+
+    /**
+     * bom品名
+     */
+    private String bomSpecName;
+
+    /**
+     * sku品号
+     */
+    private String skuSpecCode;
+
+    /**
+     * sku品名
+     */
+    private String skuSpecName;
+
+    /**
+     * 长
+     */
+    private String length;
+
+    /**
+     * 宽
+     */
+    private String width;
+
+    /**
+     * 高
+     */
+    private String height;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 订单号
+     */
+    private String orderCode;
+
+    /**
+     * 万里牛订单号
+     */
+    private String orderWlnCode;
+
+}

+ 16 - 0
sd-business/src/main/java/com/sd/business/mapper/production/StockPreparationMapper.java

@@ -0,0 +1,16 @@
+package com.sd.business.mapper.production;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.production.vo.StockPreparationVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface StockPreparationMapper {
+
+    List<StockPreparationVo> uncompletedList(@Param("ew") IWrapper<StockPreparationVo> wrapper);
+
+    Page<StockPreparationVo> completedPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<StockPreparationVo> wrapper);
+
+}

+ 21 - 0
sd-business/src/main/java/com/sd/business/service/production/StockPreparationService.java

@@ -0,0 +1,21 @@
+package com.sd.business.service.production;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.production.dto.StockPreparationDto;
+import com.sd.business.entity.production.vo.StockPreparationVo;
+
+import java.util.List;
+
+public interface StockPreparationService {
+
+    /**
+     * 待备料列表
+     */
+    List<StockPreparationVo> uncompletedList(StockPreparationDto dto);
+
+    /**
+     * 已备料分页
+     */
+    Page<StockPreparationVo> completedPage(StockPreparationDto dto);
+
+}

+ 63 - 0
sd-business/src/main/java/com/sd/business/service/production/impl/StockPreparationServiceImpl.java

@@ -0,0 +1,63 @@
+package com.sd.business.service.production.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.constant.StatusConstant;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.bom.po.BomSpec;
+import com.sd.business.entity.department.po.Department;
+import com.sd.business.entity.order.enums.OrderStatusEnum;
+import com.sd.business.entity.order.po.OrderInfo;
+import com.sd.business.entity.order.po.OrderSku;
+import com.sd.business.entity.production.dto.StockPreparationDto;
+import com.sd.business.entity.production.vo.StockPreparationVo;
+import com.sd.business.entity.sku.po.SkuSpec;
+import com.sd.business.mapper.production.StockPreparationMapper;
+import com.sd.business.service.production.StockPreparationService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class StockPreparationServiceImpl implements StockPreparationService {
+
+    @Resource
+    private StockPreparationMapper stockPreparationMapper;
+
+
+    @Override
+    public List<StockPreparationVo> uncompletedList(StockPreparationDto dto) {
+        IWrapper<StockPreparationVo> wrapper = createWrapper(dto);
+        return stockPreparationMapper.uncompletedList(wrapper);
+    }
+
+    @Override
+    public Page<StockPreparationVo> completedPage(StockPreparationDto dto) {
+        IWrapper<StockPreparationVo> wrapper = createWrapper(dto);
+        wrapper.orderByDesc("os", OrderSku::getStockPreparationTime);
+        wrapper.orderByAsc("os", OrderSku::getId);
+        return stockPreparationMapper.completedPage(dto.getPage(), wrapper);
+    }
+
+    private IWrapper<StockPreparationVo> createWrapper(StockPreparationDto dto) {
+        IWrapper<StockPreparationVo> wrapper = IWrapper.getWrapper();
+        wrapper.eq("oi", OrderInfo::getStatus, OrderStatusEnum.STOCK_PREPARATION.getKey());
+        wrapper.eq("os", OrderSku::getStockPreparationStatus, StatusConstant.NO);
+
+        wrapper.eq("oi", OrderInfo::getCode, dto.getOrderCode());
+        wrapper.eq("oi", OrderInfo::getWlnCode, dto.getOrderWlnCode());
+
+        wrapper.eq("bs", BomSpec::getCode, dto.getBomSpecCode());
+        wrapper.eq("bs", BomSpec::getName, dto.getBomSpecName());
+
+        wrapper.eq("d", Department::getId, dto.getDepartmentId());
+
+        wrapper.eq("ss", SkuSpec::getCode, dto.getSkuSpecCode());
+        wrapper.eq("ss", SkuSpec::getName, dto.getSkuSpecName());
+
+        wrapper.eq("bs", BomSpec::getWidth, dto.getWidth());
+
+        return wrapper;
+    }
+
+}

+ 34 - 0
sd-business/src/main/resources/mapper/production/StockPreparationMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sd.business.mapper.production.StockPreparationMapper">
+
+    <select id="uncompletedList" resultType="com.sd.business.entity.production.vo.StockPreparationVo">
+        <include refid="sql"/>
+    </select>
+
+    <select id="completedPage" resultType="com.sd.business.entity.production.vo.StockPreparationVo">
+        <include refid="sql"/>
+    </select>
+
+    <sql id="sql">
+        select oi.blueprint,
+               d.name      departmentName,
+               bs.code     bomSpecCode,
+               bs.name     bomSpecName,
+               ss.code     skuSpecCode,
+               ss.name     skuSpecName,
+               bs.length,
+               bs.width,
+               bs.height,
+               os.quantity,
+               oi.code     orderCode,
+               oi.wln_code orderWlnCode
+        from order_info oi
+                 inner join order_sku os on oi.id = os.order_id
+                 left join department d on oi.department_id = d.id
+                 left join sku_spec ss on os.sku_spec_id = ss.id
+                 left join bom_spec bs on ss.bom_spec_id = bs.id
+            ${ew.customSqlSegment}
+    </sql>
+
+</mapper>

+ 1 - 1
sd-wln/src/main/java/com/sd/wln/service/WlnOrderService.java

@@ -5,6 +5,6 @@ public interface WlnOrderService {
     /**
      * 同步订单
      */
-    boolean syncOrder();
+    void syncOrder();
 
 }

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

@@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.fjhx.tenant.entity.dict.po.DictCommonData;
 import com.fjhx.tenant.service.dict.DictCommonDataService;
+import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.framework.mybatis.holder.LogicHolder;
 import com.sd.business.entity.bom.bo.BomBo;
@@ -73,7 +74,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     private SkuSpecLinkService skuSpecLinkService;
 
     @Override
-    public boolean syncOrder() {
+    public void syncOrder() {
 
         // 当前时间
         Date endDate = new Date();
@@ -90,7 +91,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         // 查询近3天万里牛订单
         List<JSONObject> wlnOrderList = getWlnOrderList(endDate);
         if (wlnOrderList == null || wlnOrderList.size() == 0) {
-            return false;
+            return;
         }
 
         // 不排除逻辑删除的订单
@@ -182,12 +183,10 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             }
             // 提交事务
             platformTransactionManager.commit(transactionStatus);
-            return true;
         } catch (Exception e) {
             // 回滚事务
             platformTransactionManager.rollback(transactionStatus);
             log.error("同步订单失败", e);
-            return false;
         }
 
     }
@@ -301,7 +300,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         if (orderInfo.getWlnStatus() == 10 || orderInfo.getWlnStatus() == 11 || orderInfo.getWlnStatus() == 12) {
             orderInfo.setStatus(OrderStatusEnum.EXCEPTION.getKey());
         } else if (Objects.equals(department.getOrderMode(), "2")) {
-            orderInfo.setStatus(OrderStatusEnum.REJECT.getKey());
+            orderInfo.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
         } else {
             orderInfo.setStatus(OrderStatusEnum.UNDER_REVIEW.getKey());
         }
@@ -323,6 +322,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         orderSku.setWlnSkuName(wlnOrderSku.getString("oln_sku_name"));
         orderSku.setSkuId(skuSpec.getSkuId());
         orderSku.setSkuSpecId(skuSpec.getId());
+        orderSku.setStockPreparationStatus(StatusConstant.NO);
         return orderSku;
     }