自动化立体仓库 - WMS系统
#
Administrator
18 小时以前 50eb871e7dfcf064639cc15e53573baf28e60f26
src/main/java/com/zy/common/web/WcsController.java
@@ -62,6 +62,7 @@
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
    public synchronized R getLocNo(@RequestBody SearchLocParam param) {
        StartupDto dto = null;
        log.info("收到WCS入库接口请求====>>入参:{}", param);
        if (Cools.isEmpty(param.getIoType())) {
            return R.error("入出库类型不能为空");
@@ -75,7 +76,7 @@
            //3S19000677895,M22003772,3  ,KP, 0A2030  ,0A2030202306050023
            //3S箱码号      ,端子物料号 ,数量,单位,供应商编号,供应商批次号
            //数量和重量转换出来的是否差不多
            //weight 为 43.39  去皮2.35  = 41.05
            //weight 为 43.39  去皮2.45  = 40.95
            //托盘码例子  845000820308,M11000787,1000,MT,0A1263,0A126320260120
            //换算需要41.05*24.36约等于1000
            if (Cools.isEmpty(param.getBarcode())) {
@@ -91,8 +92,22 @@
            String threeCode = param.getBarcode();
            param.setBarcode(barcode);
            //实际称重数量
            Double m = param.getWeight() -2.35;
            Double m = param.getWeight() -2.45;
            WrkMast wrkMast1 = wrkMastService.selectByBarcode(barcode);
            if (!Cools.isEmpty(wrkMast1)&&wrkMast1.getWrkSts()==2) {
                StartupDto dto1 =new StartupDto();
                dto1.setBarcode(barcode);
                dto1.setSourceStaNo(Integer.valueOf(wrkMast1.getSourceStaNo()));
                dto1.setStaNo(Integer.valueOf(wrkMast1.getStaNo()));
                String s = Utils.WMSLocToWCSLoc(wrkMast1.getLocNo());
                dto1.setLocNo(s);
                dto1.setCrnNo(wrkMast1.getCrnNo());
                dto1.setWorkNo(wrkMast1.getWrkNo());
                dto1.setTaskPri((int) Math.round(wrkMast1.getIoPri()));
                return R.ok(dto1);
            }
            Mat mat = matService.selectByMatnr(matnr);
            if(mat==null){
                log.info("没有找到该物料档案--"+matnr+"组托时自动新增物料,默认24.36KG/M");
@@ -132,6 +147,7 @@
                waitPakin.setZpallet(param.getBarcode());
                waitPakin.setAnfme(m);
                waitPakin.setThreeCode(threeCode);
                waitPakins.add(waitPakin);
                waitPakinService.insert(waitPakin);
            }else {
                for(WaitPakin waitPakin : waitPakins){
@@ -148,7 +164,9 @@
            if(Cools.isEmpty(waitPakin.getBeBatch())||waitPakin.getBeBatch()!=1){
                flag = true;
            }
            if (flag && (weight - m < -2.0 || weight - m > 2.0)) {
            //2.5KG * 每公斤长度 = 误差值
            Double dou= 2.5*mat.getVolume();
            if (flag && (weight - m < -dou || weight - m > dou)) {
                return R.error("二维码="+threeCode+"的物料实际称重转换成的米数和物料标签提供的米数相差较大需要退回或者标记后才能入库!");
            }
@@ -167,7 +185,6 @@
        sourceStaNo.setLocType1(param.getLocType1());
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        StartupDto dto = null;
        switch (param.getIoType()) {
            case 1://满托盘入库
                assert waitPakins != null;