自动化立体仓库 - WMS系统
#
lsh
2024-01-13 3f194f5ef62ef33d16291540da3fc8f47fa9bc63
#
6个文件已修改
2个文件已添加
288 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocMastController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/LocMoveAllHandler.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/RailwayPlatformHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/staDesc/staDesc.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -199,9 +199,9 @@
                }
            }
        }
        locMastService.delete(new EntityWrapper<>());
        locDetlService.delete(new EntityWrapper<>());
        locMastService.insertBatch(list);
//        locMastService.delete(new EntityWrapper<>());
//        locDetlService.delete(new EntityWrapper<>());
//        locMastService.insertBatch(list);
        return R.ok("初始化成功");
    }
}
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -69,6 +69,8 @@
    private WrkMastStaService wrkMastStaService;
    @Autowired
    private WrkMastStaLogService wrkMastStaLogService;
    @Autowired
    private StaDescService staDescService;
    @Override
    @Transactional
@@ -962,13 +964,80 @@
    @Override
    @Transactional
    public void cs2() {
        BasDevp basDevp = basDevpService.selectById(216);
        basDevp.setWrkNo(0);
        basDevp.setBarcode("");
        basDevpService.updateById(basDevp);
//        int[] staNos =new int[]{122};
//        for (Integer staNo:staNos){
//            int[] crnNos =new int[]{6};
//            for (Integer crnNo:crnNos){
//                descSta(staNo,crnNo);
//            }
//        }
    }
    /*
    private void descSta(Integer staNo,Integer crnNo){
//        int[] typeNos =new int[]{1,10,53,101,103,110};
        int[] typeNos =new int[]{10,110};
        for (Integer typeNo:typeNos){
            descSta3(staNo,crnNo,typeNo);
        }
    }
    private void descSta3(Integer staNo,Integer crnNo,Integer typeNo){
        StaDesc staDesc = new StaDesc();
        staDesc.setTypeNo(typeNo);
        staDesc.setStnNo(staNo);
        staDesc.setCrnNo(crnNo);
        staDesc.setCrnStn(CrnNoRC(crnNo,staDesc.getTypeNo()>100));
        descSta2(staDesc);
    }
    private void descSta2(StaDesc staDesc){
        Date now = new Date();
        //入库
        int sameRes = staDescService.selectCount(new EntityWrapper<StaDesc>()
                .eq("type_no", staDesc.getTypeNo())
                .eq("stn_no", staDesc.getStnNo())
                .eq("crn_no", staDesc.getCrnNo())
                .eq("crn_stn", staDesc.getCrnStn()));
        if (sameRes == 0) {
            staDesc.setModiUser(9527L);
            staDesc.setModiTime(now);
            staDesc.setAppeUser(9527L);
            staDesc.setAppeTime(now);
            staDescService.insert(staDesc);
        }
    }
    private Integer CrnNoRC(Integer crnNo,boolean sign){
        Integer crnStn = 0;
        switch (crnNo){
            case 1:
                crnStn = 102;
                break;
            case 2:
                crnStn = 105;
                break;
            case 3:
                crnStn = 108;
                break;
            case 4:
                crnStn = 111;
                break;
            case 5:
                crnStn = 114;
                break;
            case 6:
                crnStn = 117;
                break;
        }
        if (sign){
            return crnStn-2;
        }
        return crnStn;
    }
        /*
     *
     * */
    @Override
src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java
New file
@@ -0,0 +1,91 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.LocMoveAllHandler;
import com.zy.asrs.utils.Utils;
import com.zy.common.properties.SlaveProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * Created by vincent on 2020/7/7
 */
@Slf4j
@Component
public class LocMoveAllScheduler {
    @Value("${loc-move.move-all}")
    private boolean moveAll;
    @Autowired
    private LocMoveAllHandler locMoveAllHandler;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private SlaveProperties slaveProperties;
//    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        if (!moveAll) return;
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
        if (basCrnps.isEmpty()){
            return;
        }
        for (BasCrnp basCrnp:basCrnps){
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no",basCrnp.getCrnNo()));
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0) {
                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",basCrnp.getCrnNo()).orderBy("appe_time",true));//空板所在
                if (Cools.isEmpty(locMastStart)){
                    continue;
                }
                if (!Utils.isShallowLoc(slaveProperties, locMastStart.getLocNo())){
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastStart.getLocNo());
                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
                    if (!locNo.getLocSts().equals("O")){
                        locMastStart = locNo;
                    }
                }
                LocMast locMastEnd = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("crn_no",basCrnp.getCrnNo()).ne("modi_user",66).orderBy("row1",true));//目标
                if (Cools.isEmpty(locMastEnd)){
                    continue;
                }
                if (!Utils.isShallowLoc(slaveProperties, locMastEnd.getLocNo())){
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastEnd.getLocNo());
                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
                    if (locNo.getLocSts().equals("O")){
                    }else {
                        locMastEnd.setModiUser(66L);
                        locMastService.updateById(locMastEnd);
                        continue;
                    }
                }
//                if (Cools.isEmpty(locMastStart) || Cools.isEmpty(locMastEnd)){
                ReturnT<String> result = locMoveAllHandler.start(locMastStart,locMastEnd,basCrnp.getCrnNo());
                if (!result.isSuccess()) {
                    log.error("处理失败");
                }
            }
        }
    }
}
src/main/java/com/zy/asrs/task/handler/LocMoveAllHandler.java
New file
@@ -0,0 +1,80 @@
package com.zy.asrs.task.handler;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
/**
 * Created by vincent on 2020/7/6
 */
@Slf4j
@Service
public class LocMoveAllHandler extends AbstractHandler<String> {
    @Autowired
    private WorkService workService;
    @Autowired
    private LocMastService locMastService;
    private final Integer BAY = 20;//YINGTAN
    @Transactional
    public ReturnT<String> start(LocMast locMastStart, LocMast locMastEnd, Integer crnNo) {
        try {
            LocMast locMastEndNew = null;
            Integer row1 = locMastStart.getRow1();
            Integer row2 = 0;
            Integer bay1 = locMastStart.getBay1();
            Integer lev1 = locMastStart.getLev1();
            if (row1==crnNo*4){
                row1 = crnNo*4-3;
                row2 = row1+1;
            }else {
                row1=crnNo*4;
                row2 = row1-1;
            }
            Integer signInt = 0;
            while (Cools.isEmpty(locMastEndNew) && lev1<10 && signInt<100){
                signInt++;
                bay1 = BAY+1-bay1;
                if ((bay1<BAY && bay1>0) || (bay1.equals(BAY) && lev1>3)){
                }else {
                    bay1=1;
                    lev1++;
                }
                locMastEndNew = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("row1",row1).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66));
                LocMast locMastEndNew2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("row1",row2).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66));
                if (!Cools.isEmpty(locMastEndNew) && !Cools.isEmpty(locMastEndNew2)){
                    locMastEnd = locMastEndNew;
                }
                if ((bay1<BAY && bay1>0)){
                    bay1++;
                }
                if (signInt==100){
                    bay1=1;
                    lev1++;
                    signInt=0;
                }
            }
            workService.locMove(locMastStart.getLocNo(), locMastEnd.getLocNo(), 66L);
        } catch (Exception e) {
            log.error("fail", e);
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/RailwayPlatformHandler.java
@@ -52,7 +52,7 @@
    public ReturnT<String> start(int staNo) {
        try {
            BasDevp basDevp = basDevpService.selectById(staNo);
            if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()<9990){
            if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getWrkNo()) && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()).eq("sta_no", staNo).eq("wrk_sts", 55L));
                if (!Cools.isEmpty(wrkMast)){
                    List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java
@@ -72,17 +72,19 @@
                ReturnT<String> result = null;
                result = postMesData(reportOutPath,singleMountUnstackingCompleteParam);
                System.out.println(result);
//                if (true){
//                    for (WrkDetl wrkDetl:wrkDetls){
//                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
//                        wrkDetlSingle.sync(wrkDetl);
//                        wrkDetlSingle.setWrkNo(wrkDetl.getWrkNo().longValue());
//                        wrkDetlSingleService.insert(wrkDetlSingle);
//                    }
//                    wrkMast.setSheetNo("1");
//                    wrkMastService.updateById(wrkMast);
//                    return SUCCESS;
//                }
                if (true){
                    for (WrkDetl wrkDetl:wrkDetls){
                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
                        wrkDetlSingle.sync(wrkDetl);
                        wrkDetlSingle.setWrkNo(wrkDetl.getWrkNo().longValue());
                        wrkDetlSingleService.insert(wrkDetlSingle);
                    }
                    wrkMast.setSheetNo("1");
                    wrkMastService.updateById(wrkMast);
                    basDevp.setReportSign(1);
                    basDevpService.updateById(basDevp);
                    return SUCCESS;
                }
                if (result.getCode()==200){
                    for (WrkDetl wrkDetl:wrkDetls){
                        WrkDetlSingle wrkDetlSingle = new WrkDetlSingle();
src/main/resources/application.yml
@@ -72,4 +72,6 @@
  # 拆垛信息上传
  reportOutPath: api/DepalletizingInfo/Post
  # 码垛信息上传
  reportInPath: api/PalletizingInfo/Post
  reportInPath: api/PalletizingInfo/Post
loc-move:
  move-all: true
src/main/webapp/views/staDesc/staDesc.html
@@ -79,7 +79,7 @@
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">编辑</a>
<!--    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">编辑</a>-->
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>