自动化立体仓库 - WMS系统
#
whycq
2024-06-12 93674068e900b95726ef1ab9fd4dd61b50a1cb2f
#
11个文件已修改
197 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderDetlController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvWaitPakin.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvWaitPakinLog.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvWrkDetl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvWrkDetlLog.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetlLog.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StockOutParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -129,6 +129,40 @@
        return R.ok(page);
    }
    /*
    * 半成品加工单据
    * */
    @RequestMapping(value = "/orderDetl/pakout/list/authV5")
    @ManagerAuth
    public R pakoutList5(@RequestParam(defaultValue = "1")Integer curr,
                         @RequestParam(defaultValue = "10")Integer limit,
                         @RequestParam(required = false)String orderByField,
                         @RequestParam(required = false)String orderByType,
                         @RequestParam Map<String, Object> param){
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convertLike(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
            wrapper.orderBy("create_time", false);
        }
        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
        List<Long> docIds = new ArrayList<>();
        for (DocType pakin : pakins) {
            if (pakin.getDocId() == 35) {
                docIds.add(pakin.getDocId());
            }
        }
        wrapper.in("source",docIds);
        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        for (OrderDetl record : page.getRecords()) {
            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
            record.setStock(sumAnfme == null ? 0 : sumAnfme);
        }
        return R.ok(page);
    }
    @RequestMapping(value = "/orderDetl/pakout/list/authV4")
    @ManagerAuth
    public R pakoutList4(@RequestParam(defaultValue = "1")Integer curr,
src/main/java/com/zy/asrs/entity/AgvWaitPakin.java
@@ -155,6 +155,29 @@
    @TableField("loc_type")
    private Integer locType;
    /**
     * 工序状态
     */
    @ApiModelProperty(value= "工序状态 1:待加工,2:已加工,3:无需加工")
    @TableField("process_sts")
    private Integer processSts;
    public String getProcessSts$(){
        if (null == this.processSts){ return null; }
        switch (this.processSts){
            case 0:
                return "其他";
            case 1:
                return "待加工";
            case 2:
                return "已加工";
            case 3:
                return "无需加工";
            default:
                return String.valueOf(this.processSts);
        }
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
src/main/java/com/zy/asrs/entity/AgvWaitPakinLog.java
@@ -155,6 +155,29 @@
    @TableField("loc_type")
    private Integer locType;
    /**
     * 工序状态
     */
    @ApiModelProperty(value= "工序状态 1:待加工,2:已加工,3:无需加工")
    @TableField("process_sts")
    private Integer processSts;
    public String getProcessSts$(){
        if (null == this.processSts){ return null; }
        switch (this.processSts){
            case 0:
                return "其他";
            case 1:
                return "待加工";
            case 2:
                return "已加工";
            case 3:
                return "无需加工";
            default:
                return String.valueOf(this.processSts);
        }
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
src/main/java/com/zy/asrs/entity/AgvWrkDetl.java
@@ -269,6 +269,29 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 工序状态
     */
    @ApiModelProperty(value= "工序状态 1:待加工,2:已加工,3:无需加工")
    @TableField("process_sts")
    private Integer processSts;
    public String getProcessSts$(){
        if (null == this.processSts){ return null; }
        switch (this.processSts){
            case 0:
                return "其他";
            case 1:
                return "待加工";
            case 2:
                return "已加工";
            case 3:
                return "无需加工";
            default:
                return String.valueOf(this.processSts);
        }
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
            return "";
src/main/java/com/zy/asrs/entity/AgvWrkDetlLog.java
@@ -268,6 +268,29 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 工序状态
     */
    @ApiModelProperty(value= "工序状态 1:待加工,2:已加工,3:无需加工")
    @TableField("process_sts")
    private Integer processSts;
    public String getProcessSts$(){
        if (null == this.processSts){ return null; }
        switch (this.processSts){
            case 0:
                return "其他";
            case 1:
                return "待加工";
            case 2:
                return "已加工";
            case 3:
                return "无需加工";
            default:
                return String.valueOf(this.processSts);
        }
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
            return "";
src/main/java/com/zy/asrs/entity/OrderDetlLog.java
@@ -285,9 +285,17 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 工序状态
     */
    @ApiModelProperty(value= "工序状态 1:待加工,2:已加工,3:无需加工")
    @TableField("process_sts")
    private Integer processSts;
    public OrderDetlLog() {}
    public OrderDetlLog(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
    public OrderDetlLog(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo,Integer processSts) {
        this.orderId = orderId;
        this.orderNo = orderNo;
        this.anfme = anfme;
@@ -327,6 +335,7 @@
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
        this.processSts = processSts;
    }
    public String getOrderId$(){
@@ -338,6 +347,22 @@
        return null;
    }
    public String getProcessSts$(){
        if (null == this.processSts){ return null; }
        switch (this.processSts){
            case 0:
                return "其他";
            case 1:
                return "待加工";
            case 2:
                return "已加工";
            case 3:
                return "无需加工";
            default:
                return String.valueOf(this.processSts);
        }
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -57,6 +57,9 @@
        // 规格
        private String specs;
        // 工序状态 1:待加工,2:已加工,3:无需加工
        private Integer processSts;
    }
}
src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -42,6 +42,9 @@
        //销售订单行号
        private String deadTime;
        // 工序状态 1:待加工,2:已加工,3:无需加工
        private Integer processSts;
    }
}
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -237,7 +237,7 @@
                checkOrderQty(order,combMat);
            }
            DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode(),param.getLocType());
            DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode(),param.getLocType(),combMat.getProcessSts());
            //同一货架下相同物料信息和批号转为一个入库通知档
            if (DetlDto.has(detlDtos, detlDto)) {
                DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),detlDto.getContainerCode());
@@ -294,6 +294,8 @@
        waitPakin.setLocType(detlDto.getLocType());
        waitPakin.setProcessSts(detlDto.getProcessSts());
        waitPakin.setAppeUser(userId);
        waitPakin.setAppeTime(now);
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -27,6 +27,7 @@
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
/**
 * Created by vincent on 2020/6/11
@@ -382,8 +383,19 @@
        //查询入库通知档
        List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode);
        if(!Cools.isEmpty(agvWaitPakinList)){
            AtomicBoolean isCurrLev = new AtomicBoolean(false);
            agvWaitPakinList.forEach(agvWaitPakin -> {
                if (agvWaitPakin.getProcessSts() == 1) {
                    isCurrLev.set(true);
                }
            });
            if (isCurrLev.get()) {
                agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true);
            } else {
                agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
            }
            agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
            String devNo = agvBasDevp.getDevNo();
            String locNo = agvLocMast.getLocNo();
@@ -392,7 +404,7 @@
            AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType);
            //生成工作档明细
            agvWaitPakinList.forEach(wp -> {
                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts());
            });
            //修改入库通知档状态
            agvWaitPakinService.updateIoStatus(containerCode,"Y");
@@ -910,7 +922,7 @@
    /*
    生成工作档明细
     */
    private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){
    private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq,Integer processSts){
        Mat mat = matService.selectByMatnr(matnr);
        if (Cools.isEmpty(mat)) {
            throw new CoolException(matnr + "商品维护失败");
@@ -923,11 +935,11 @@
        wrkDetl.setBatch(batch);
        wrkDetl.setAnfme(anfme); // 数量
        wrkDetl.setSuppCode(zpallet); // 货架条码
        wrkDetl.setProcessSts(processSts);
        wrkDetl.setAppeUser(userId);
        wrkDetl.setAppeTime(now);
        wrkDetl.setModiUser(userId);
        wrkDetl.setModiTime(now);
        wrkDetl.setThreeCode(csocode);
        wrkDetl.setDeadTime(isoseq);
        if (!agvWrkDetlService.insert(wrkDetl)) {
src/main/java/com/zy/common/model/DetlDto.java
@@ -33,6 +33,9 @@
    // 库位类型: 1、代包装成品,2、原材料,3、箱壳
    private Integer locType;
    // 工序状态 1:待加工,2:已加工,3:无需加工
    private Integer processSts;
    public DetlDto() {
    }
@@ -70,6 +73,17 @@
        this.locType = locType;
    }
    public DetlDto(String matnr, String batch, Double anfme, String csocode, String isoseq, String containerCode, Integer locType, Integer processSts) {
        this.matnr = matnr;
        this.batch = batch;
        this.anfme = anfme;
        this.csocode = csocode;
        this.isoseq = isoseq;
        this.containerCode = containerCode;
        this.locType = locType;
        this.processSts = processSts;
    }
    public DetlDto(String orderNo, String matnr, String batch, Double anfme, String csocode, String isoseq) {
        this.orderNo = orderNo;
        this.matnr = matnr;