自动化立体仓库 - WMS系统
#
mrzhssss
2022-11-24 5ae3d9f543b045bd05873e6126793d58837d14dd
#
12个文件已修改
109 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/WaitPakinController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/MatSyncParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WaitPakinController.java
@@ -14,6 +14,7 @@
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.web.BaseController;
@@ -21,10 +22,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@RestController
public class WaitPakinController extends BaseController {
@@ -35,6 +33,8 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private OrderService orderService;
    @RequestMapping(value = "/waitPakin/{id}/auth")
    @ManagerAuth
@@ -97,6 +97,8 @@
        if (Cools.isEmpty(list)){
            return R.error("数据为空");
        }
        //通过HashSet的非重复特性, 存储不同的order编号, 然后遍历,将符合条件的order状态恢复到待处理
        HashSet<String> orderNos = new HashSet<>();
        for (WaitPakin entity : list){
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("barcode", entity.getZpallet()));
            if(!Cools.isEmpty(wrkMasts) || wrkMasts.size() > 0){
@@ -106,10 +108,17 @@
            //订单关联,修改订单作业数量
            if (!Cools.isEmpty(entity.getOrderNo())) {
                if (!orderDetlService.decrease(entity.getOrderNo(), entity.getMatnr(), entity.getBatch(), entity.getAnfme())) {
                    return R.error("订单数据回滚失败");
                }else {
                    orderNos.add(entity.getOrderNo());
                }
            }
        }
        for (String orderNo : orderNos) {
            orderService.BackToInit(orderNo);
        }
        return R.ok();
    }
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -1,6 +1,7 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.core.common.Cools;
import com.zy.common.utils.Synchro;
@@ -17,6 +18,7 @@
    private static final long serialVersionUID = 1L;
    @TableId("zpallet")
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
@@ -27,12 +29,14 @@
    @TableField("loc_no")
    private String locNo;
    @TableId("matnr")
    @ApiModelProperty(value= "商品编号")
    private String matnr;
    @ApiModelProperty(value= "商品名称")
    private String maktx;
    @TableId("batch")
    @ApiModelProperty(value= "批号")
    private String batch;
src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
@@ -19,7 +19,7 @@
    public List<MatParam> matDetails;
    @Data
    public class MatParam{
    public static class MatParam{
        /**
         * 商品编号
         */
src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -17,4 +17,8 @@
    List<Order> selectComplete();
    int addToLogTable(Order order);
    Integer checkDetlWorkQtyLess0(@Param("orderNo") String orderNo);
    void updateSettleTo1(@Param("orderNo")String orderNo);
}
src/main/java/com/zy/asrs/service/OrderService.java
@@ -25,4 +25,7 @@
    List<Order> selectComplete();
    boolean addToLogTable(Order order);
    void BackToInit(String orderNo);
}
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -96,6 +96,13 @@
        if (countLoc > 0 || countWrk > 0) {
            throw new CoolException("工作档/库存条码数据已存在===>>" + param.getBarcode());
        }
        //设置非null批号,
        for (CombParam.CombMat combMat : param.getCombMats()) {
            if (combMat.getBatch() == null){
                combMat.setBatch("");
            }
        }
        Date now = new Date();
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -118,7 +118,14 @@
            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.sync(mat);
            orderDetl.setBatch(detlDto.getBatch());
            //批号为空会出现问题,设置一个默认值
            if (detlDto.getBatch() == null) {
                orderDetl.setBatch("");
            }else {
                orderDetl.setBatch(detlDto.getBatch());
            }
            orderDetl.setAnfme(detlDto.getAnfme());
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
@@ -519,8 +526,8 @@
                } else {
                    tagId = tagService.getTop().getId();
                }
                mat.sync(param);
//            mat.setMatnr(param.getMatnr());
                mat.sync(matParam);
//            mat.setMatnr(para);
//            mat.setMaktx(param.getMaktx());
//            mat.setSpecs(param.getSpecs());
//            mat.setModel(param.getModel());
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -71,30 +71,13 @@
            }
        }
        if (complete) {
            // 出库订单重新整理明细
            DocType docType = docTypeService.selectById(order.getDocType());
            if (null != docType && docType.getPakout() == 1) {
                if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
                    throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                }
                List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
                for (WrkDetl wrkDetl : wrkDetls) {
                    OrderDetl orderDetl = new OrderDetl();
                    orderDetl.sync(wrkDetl);
                    orderDetl.setQty(orderDetl.getAnfme());
                    orderDetl.setOrderId(order.getId());
                    orderDetl.setOrderNo(orderNo);
                    orderDetl.setStatus(1);
                    orderDetl.setCreateTime(order.getCreateTime());
                    orderDetl.setCreateBy(order.getCreateBy());
                    orderDetl.setUpdateTime(order.getUpdateTime());
                    orderDetl.setUpdateBy(order.getUpdateBy());
                    if (!orderDetlService.insert(orderDetl)) {
                        throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                    }
            for (OrderDetl orderDetl : orderDetls) {
                //生成单据和入库通知档时,给batch为空的明细赋了一个 ="", 现在改为null,回传用
                if (orderDetl.getBatch().equals("")){
                    orderDetl.setBatch(null);
                    orderDetlService.updateById(orderDetl);
                }
            }
            if (!this.updateSettle(order.getId(), 4L, null)) {
                throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
            }
@@ -170,4 +153,18 @@
        return this.baseMapper.addToLogTable(order) > 0;
    }
    /**
     *
     * @param orderNo
     *
     */
    @Override
    public void BackToInit(String orderNo) {
        Integer count = this.baseMapper.checkDetlWorkQtyLess0(orderNo);
        //如果所有明细的工作数量和完成量都小于等于0, 那么将主档更新为“待处理”状态
        if (count == 0 ){
            this.baseMapper.updateSettleTo1(orderNo);
        }
    }
}
src/main/resources/application.yml
@@ -10,7 +10,7 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://192.168.4.15:1433;databasename=stasrs
    url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs
    username: sa
    password: sa@123
  mvc:
src/main/resources/mapper/LocDetlMapper.xml
@@ -48,11 +48,11 @@
    <sql id="batchSeq">
        <choose>
            <when test="batch != null and batch != ''">
            <when test="batch != null">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
                and (batch IS NULL)
            </otherwise>
        </choose>
    </sql>
src/main/resources/mapper/OrderDetlMapper.xml
@@ -68,7 +68,7 @@
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
        <if test="batch!=null and batch!='' ">
        <if test="batch!=null">
            and batch = #{batch}
        </if>
    </select>
@@ -148,11 +148,11 @@
        and order_no = #{orderNo}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
            <when test="batch != null">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
                and (batch IS NULL )
            </otherwise>
        </choose>
    </update>
src/main/resources/mapper/OrderMapper.xml
@@ -52,6 +52,12 @@
        where 1=1
        and id = #{orderId}
    </update>
    <update id="updateSettleTo1">
        UPDATE man_order set settle = 1 WHERE order_no = #{orderNo}
    </update>
    <select id="checkDetlWorkQtyLess0" resultType="integer">
        select count(*) FROM man_order_detl WHERE order_no = #{orderNo} and (work_qty > 0 or qty > 0)
    </select>
    <select id="selectComplete" resultMap="BaseResultMap">
        select top 5 *