自动化立体仓库 - WMS系统
lsh
昨天 506eef53323dddf4fefd2873be1c65942dac19b2
Merge remote-tracking branch 'origin/jshdasrs' into jshdasrs
7个文件已修改
2个文件已添加
150 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/OrderToLine.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/StaDescService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastStaMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OrderToLine.java
New file
@@ -0,0 +1,68 @@
package com.zy.asrs.entity.param;
import com.zy.common.model.MesPakoutParam;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class OrderToLine {
    /**
     * 单据编号
     */
    private String OrderNo;
    /**
     * 时间戳
     */
    private Long createTime;
    /**
     *   物料列表
     */
    private List<MatList> matList = new ArrayList<>();
    @Data
    public static class MatList {
        // Sku\客人型号\分拣属性1\不可为空\扫码可获取
        private String sku;
        // Po\客人PO\分拣属性2(可人工开关)\可以为空字符串,非NULL\扫码可获取
        private String po;
        //箱数
        private Float ctns;
        //条码值\非分拣属性(可人工开关)\不可为空\扫码可获取
        private String upc;
        //标识:\非分拣属性
        //1:执行分拣
        //0:不分拣,在线体循环
        private Integer sign;
        //货源\非分拣属性(不下发,数据在条码中,需上报)
        private String supplier;
        //绑定标记(标识相同必须去同一个分拣口)
        private Long binding_tags;
        public MatList() {
        }
        public MatList(String sku, String po) {
            this.sku = sku;
            this.po = po;
        }
        public MatList(String sku, String po, Float ctns, String upc, Integer sign, String supplier, Long binding_tags) {
            this.sku = sku;
            this.po = po;
            this.ctns = ctns;
            this.upc = upc;
            this.sign = sign;
            this.supplier = supplier;
            this.binding_tags = binding_tags;
        }
    }
}
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -8,5 +8,7 @@
@Mapper
@Repository
public interface WrkMastStaMapper extends BaseMapper<WrkMastSta> {
    Integer wrkCount1();
    Integer wrkCount2();
}
src/main/java/com/zy/asrs/service/StaDescService.java
@@ -10,6 +10,7 @@
    List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo);
    StaDesc queryCrnStn(Integer typeNo, Integer crnNo, Integer stnNo);
    StaDesc queryCrnStnCheck(Integer typeNo, Integer crnNo, Integer stnNo);
    StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo);
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
@@ -7,14 +7,18 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.mapper.StaDescMapper;
import com.zy.asrs.mapper.WrkMastStaMapper;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.StaDescService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("staDescService")
public class StaDescServiceImpl extends ServiceImpl<StaDescMapper, StaDesc> implements StaDescService {
    @Autowired
    private WrkMastStaMapper wrkMastStaMapper;
    @Override
    public List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo) {
        return this.baseMapper.queryOutStaNosByLocNo(locNo, typeNo);
@@ -34,6 +38,33 @@
    }
    @Override
    public StaDesc queryCrnStnCheck(Integer typeNo, Integer crnNo, Integer stnNo) {
        Integer wrkRgv1 = wrkMastStaMapper.wrkCount1();
        Integer wrkRgv2 = wrkMastStaMapper.wrkCount2();
        Wrapper<StaDesc> wrapper = new EntityWrapper<>();
        // ✅ 如果 wrkRgv1 < wrkRgv2,则多加一个条件
        if (wrkRgv1 < wrkRgv2) {
            wrapper.eq("type_no", typeNo)
                    .eq("stn_no", stnNo)
                    .eq("crn_no", crnNo)
                    .lt("crn_stn", 2000);
        }else{
            wrapper.eq("type_no", typeNo)
                    .eq("stn_no", stnNo)
                    .eq("crn_no", crnNo)
                    .gt("crn_stn", 2000);
        }
        StaDesc staDesc = this.selectOne(wrapper);
        if (staDesc == null) {
            throw new CoolException("出库路径不存在");
        }
        return staDesc;
    }
    @Override
    public StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo) {
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", typeNo)
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -341,6 +341,10 @@
            // 获取路径
            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
            if(ioType.equals(107)){
                staDesc = staDescService.queryCrnStnCheck(ioType, locMast.getCrnNo(), outSta);
            }
            // 生成工作号
            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
            // 生成工作档
@@ -360,7 +364,7 @@
            wrkMast.setEmptyMk("N"); // 空板
            wrkMast.setLinkMis("N");
            wrkMast.setBarcode(locMast.getBarcode());
            if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null) {  //若有空库位且配置允许则绑定其备料库位号
            if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null && ioType != 107) {  //若有空库位且配置允许则绑定其备料库位号
                wrkMast.setLocNo(locMastRgv.getLocNo());
                wrkMast.setTakeNone("0");  //0rgv未取,1rgv已取货
            }
@@ -390,16 +394,13 @@
                }
            }
            //修改agv备料区状态
            if(locMastRgv.getLocSts().equals("O")){
            if(locMastRgv.getLocSts().equals("O") && ioType != 107){
                locMastRgv.setLocSts("S");
                locMastRgv.setModiUser(userId);
                locMastRgv.setModiTime(now);
                if (!locMastService.updateById(locMastRgv)) {
                    throw new CoolException("预约agv备料区库位状态失败,库位号:"+locMastRgv.getLocNo());
                }
            }else{
                throw new CoolException(locMastRgv.getLocNo() + "备料区不是空库位状态");
            }
            // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
            locMast = locMastService.selectById(dto.getLocNo());
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Slf4j
@Component
//订单下发至分拣线
public class OrderToSortLineScheduler {
//    @Scheduled(cron = "0/3 * * * * ? ")
    private void orderToSortLine() {
    }
}
src/main/java/com/zy/common/web/WcsController.java
@@ -179,7 +179,7 @@
        wrkMast.setIoType(12);
        wrkMast.setCrnNo(3);
        wrkMast.setBarcode(transplantWork.getBarcode());
        wrkMast.setSourceStaNo(1015);
        wrkMast.setSourceStaNo(transplantWork.getSourceStaNo());
        wrkMast.setStaNo(transplantWork.getStaNo());
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
src/main/resources/application.yml
@@ -10,8 +10,8 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
#    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs
    url: jdbc:sqlserver://10.10.10.235:1433;databasename=jshdasrs
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs
#    url: jdbc:sqlserver://10.10.10.235:1433;databasename=jshdasrs
    username: sa
    password: sa@123
  mvc:
src/main/resources/mapper/WrkMastStaMapper.xml
@@ -22,4 +22,16 @@
    </resultMap>
    <select id="wrkCount1" resultType="Integer">
        SELECT COUNT(*) FROM asr_wrk_mast_sta WHERE wrk_start &lt; 2000
    </select>
    <select id="wrkCount2" resultType="Integer">
        SELECT COUNT(*)
        FROM asr_wrk_mast_sta
        WHERE wrk_start &gt; 2000
    </select>
</mapper>