自动化立体仓库 - WMS系统
18516761980
2021-12-06 3d57910ed5c971d143b71af4f9bfb4c18dcf6e9d
1.0.3
11个文件已修改
107 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/BasCrnStatus.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasDevp.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MatOutServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/VersionUtils.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WaitPakinMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnStatus.java
@@ -9,7 +9,6 @@
import com.core.common.Cools;
import com.core.common.SpringUtils;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -11,6 +11,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -214,6 +215,9 @@
    @TableField("cart_pos")
    private Integer cartPos;
    public BasDevp() {
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -18,36 +18,34 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "产品编码")
    @TableId(value = "mat_no")
    private String matNo;
    private String matnr;
    @ApiModelProperty(value= "产品名称")
    @TableId(value = "mat_name")
    private String matName;
    private String maktx;
    @ApiModelProperty(value= "规格")
    private String specs;
//    @ApiModelProperty(value= "规格")
//    private String specs;
    @ApiModelProperty(value= "尺寸")
    private String size;
//    @ApiModelProperty(value= "尺寸")
//    private String size;
    @ApiModelProperty(value= "颜色")
    private String color;
    @ApiModelProperty(value= "单重")
    private Double weight;
//    @ApiModelProperty(value= "单重")
//    private Double weight;
    /**
     * 数量
     */
    @ApiModelProperty(value= "数量")
    private Double qty;
    private Double anfme;
    /**
     * 单位
     */
    @ApiModelProperty(value= "单位")
    private String unit;
    private String altme;
    /**
     * 仓库号
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -55,7 +55,7 @@
            if(station.getLoading()==null || !station.getLoading().equals("Y")) {
                throw new CoolException(devpNo+"站点无物");
            }
            if(station.getWrkNo()!=null && station.getWrkNo()>0) {
            if(station.getWrkNo()!=null && station.getWrkNo()>0 && station.getWrkNo()<9001) {
                throw new CoolException(devpNo+"站点已有工作号");
            }
            if(wrkMastService.getWorkingMast(devpNo)>0){
src/main/java/com/zy/asrs/service/impl/MatOutServiceImpl.java
@@ -119,8 +119,14 @@
            if (Cools.isEmpty(staDesc)) {
                throw new CoolException("出库路径不存在");
            }
            int rok;
            if(ioType==103){
                rok=2;
            }else{
                rok=1;
            }
            // 生成工作号
            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
            int workNo = commonService.getWorkNo(rok);
            // 生成工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(workNo);
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -74,6 +74,7 @@
    @Override
    @Transactional
    //入库
    public String startupFullPutStore(FullStoreParam param, Long userId) {
        // 参数非空判断
        if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
@@ -169,6 +170,7 @@
    @Override
    @Transactional
    //出库作业
    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId) {
        // 合并同类项
@@ -207,7 +209,13 @@
                throw new CoolException("出库路径不存在");
            }
            // 生成工作号
            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
            int rok;
            if(ioType==103||ioType==107){
                rok=2;
            }else{
                rok=1;
            }
            int workNo = commonService.getWorkNo(rok);
            // 生成工作档
            WrkMast wrkMast = new WrkMast();
@@ -309,6 +317,7 @@
    @Override
    @Transactional
    //空板入库
    public String emptyPlateIn(Integer devpNo, Long userId) {
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
@@ -368,18 +377,20 @@
    @Override
    @Transactional
    //空板出库
    public void emptyPlateOut(EmptyPlateOutParam param, Long userId) {
        if (Cools.isEmpty(param.getOutSite())) {
            throw new CoolException("站点不存在");
        }
        for (String locNo : param.getLocNos()) {
            // 获取工作号
            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
            int workNo = commonService.getWorkNo(1);
            // 获取库位
            LocMast locMast = locMastService.selectById(locNo);
            if (Cools.isEmpty(locMast)) {
                throw new CoolException(locNo+"库位不存在");
            }
            // 获取源站
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", 110)
@@ -429,6 +440,7 @@
    @Override
    @Transactional
    //盘点出库
    public void locCheckOut(StockOutParam param, Long userId) {
        // 目标站点状态检测
        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -55,13 +55,13 @@
    }
    public static void setWaitPakIn(WaitPakin waitPakIn, MatCode matCode) {
        waitPakIn.setMatNo(matCode.getMatNo()); // 产品编号
        waitPakIn.setMatName(matCode.getMatName()); // 产品描述
        waitPakIn.setSpecs(matCode.getSpecs()); // 规格
        waitPakIn.setUnit(matCode.getUnit()); // 单位
        waitPakIn.setSize(matCode.getSize()); // 尺寸
        waitPakIn.setMatnr(matCode.getMatNo()); // 产品编号
        waitPakIn.setMaktx(matCode.getMatName()); // 产品描述
        waitPakIn.setLgnum(matCode.getSpecs()); // 规格
        waitPakIn.setAltme(matCode.getUnit()); // 单位
        waitPakIn.setType(matCode.getSize()); // 尺寸
        waitPakIn.setColor(matCode.getColor()); // 颜色
        waitPakIn.setWeight(matCode.getWeight()); // 单重
        //waitPakIn.setWeight(matCode.getWeight()); // 单重
    }
    // excel ----------------------------------------------------------------------
src/main/java/com/zy/common/service/CommonService.java
@@ -49,7 +49,7 @@
    /**
     * 生成工作号
     * @param wrkMk 0:入出库 ; 1:其他
     * @param wrkMk 0:入库 ; 1:出库;2拣选
     * @return workNo(工作号)
     */
    public int getWorkNo(Integer wrkMk) {
@@ -59,7 +59,7 @@
        }
        int workNo = 0;
        // 入出库类型
        if (wrkLastno.getWrkMk() == 0) {
        if (wrkLastno.getWrkMk() == 0 || wrkLastno.getWrkMk() == 1 || wrkLastno.getWrkMk() == 2) {
            workNo = wrkLastno.getWrkNo();
            int sNo = wrkLastno.getSNo();
            int eNo = wrkLastno.getENo();
@@ -105,11 +105,15 @@
    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, boolean emptyMk, List<String> matNos, LocTypeDto locTypeDto, LocTypeDto oldLocType, int times) {
        StartupDto startupDto = new StartupDto();
        // 生成工作号
        if (sourceStaNo == 103) {
        int crnNo = 0;
        if (sourceStaNo < 200) {
            whsType = 1;
        } else if (sourceStaNo == 203) {
            crnNo=1;
        } else if (sourceStaNo >= 200) {
            whsType = 2;
            crnNo=2;
        }
        int workNo = getWorkNo(0);
        RowLastno rowLastno = rowLastnoService.selectById(whsType);
        if (Cools.isEmpty(rowLastno)) {
@@ -121,12 +125,12 @@
        int crn_qty = rowLastno.getCrnQty();     // 堆垛机数量(巷道数量)
        int rowCount = eRow - sRow + 1;          // 库排总数
        // 目标堆垛机号
        int crnNo = 0;
//        int crnNo = 0;
        // 目标库位
        LocMast locMast = null;
        // 靠近摆放规则 --- 同天同规格物料
        if (!Cools.isEmpty(matNos)) {
        if (!Cools.isEmpty(matNos) && sourceStaNo < 200) {
            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
            for (String locNo : locNos) {
                if (Utils.isShallowLoc(slaveProperties, locNo)) {
@@ -235,7 +239,12 @@
        // 1.当检索库排为浅库位排时,优先寻找当前库排的深库位排
        if (locMast == null) {
            if (Utils.isShallowLoc(slaveProperties, curRow)) {
                Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
                Integer deepRow = 0;
                if(curRow == 2) {
                    deepRow = Utils.getDeepRow(slaveProperties, curRow);
                } else {
                    deepRow = curRow;
                }
                locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
                // 因库位移转、需预留空库位
                if (!locMastService.checkEmptyCount(locMast)) {
@@ -420,6 +429,7 @@
//        startupDto.setLocNo(locNo);
//        return startupDto;
//    }
//出深库位托盘
    public static void main(String[] args) {
        System.out.println(Arith.remainder(1, 4));
src/main/java/com/zy/common/web/WcsController.java
@@ -11,6 +11,7 @@
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.web.param.SearchLocParam;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -76,6 +77,10 @@
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
        if (Cools.isEmpty(sourceStaNo)){
            return R.error("入库站点不存在");
        }
        sourceStaNo.setLocType1(param.getLocType1());
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        locTypeDto.setLocType1(param.getLocType1());
@@ -165,6 +170,7 @@
        return dto;
    }
    @Synchronized
    @Transactional
    public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto) {
        // 源站点状态检测
src/main/resources/application.yml
@@ -19,7 +19,7 @@
    #url: jdbc:sqlserver://192.168.3.99:1433;databasename=gdasrs
    #username: sa
    #password: eisoft
    url: jdbc:sqlserver://192.168.4.208:1433;databasename=sxjzasrs
    url: jdbc:sqlserver://localhost:1433;databasename=sxjzasrs
    username: sa
    password: sa@123
  mvc:
src/main/resources/mapper/WaitPakinMapper.xml
@@ -4,16 +4,14 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WaitPakin">
        <result column="mat_no" property="matNo" />
        <result column="mat_name" property="matName" />
        <result column="specs" property="specs" />
        <result column="size" property="size" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="color" property="color" />
        <result column="supplier" property="supplier" />
        <result column="warehouse" property="warehouse" />
        <result column="brand" property="brand" />
        <result column="qty" property="qty" />
        <result column="unit" property="unit" />
        <result column="anfme" property="anfme" />
        <result column="altme" property="altme" />
        <result column="zpallet" property="zpallet" />
        <result column="bname" property="bname" />
        <result column="loc_no" property="locNo" />