自动化立体仓库 - WMS系统
#
LSH
2023-05-17 f5f7889cd423667b4b6d63d12ff9c78750952262
#
9个文件已修改
2个文件已添加
309 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TestMast.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MobileService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/StartUpTestPACKScheduler.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/StarUpTestPACKHandler.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -330,22 +330,25 @@
    /*...........................赣州新增..............以下.............赣州新增...........................*/
    @PostMapping("/test/startUp/auth")
    @ManagerAuth(memo = "申请PACK测试")
    public synchronized R startUpTestPACK(@RequestBody TestMast testMast) {
        if (Cools.isEmpty(testMast)) {
            return R.parse(BaseRes.PARAM);
        }
        mobileService.startUpTestPACK(testMast); //提交测试系统
        return R.ok();
    }
//    @PostMapping("/test/startUp/auth")
//    @ManagerAuth(memo = "申请PACK测试")
//    public synchronized R startUpTestPACK(@RequestBody TestMast testMast) {
//        if (Cools.isEmpty(testMast)) {
//            return R.parse(BaseRes.PARAM);
//        }
//        mobileService.startUpTestPACK(testMast); //提交测试系统
//        return R.ok();
//    }
    @PostMapping("/test/suspend/auth")
//    @ManagerAuth(memo = "暂停测试")
    @ResponseBody
    public synchronized R suspendTestPACK(@RequestBody SearchLocParam param) {
        mobileService.suspendTestPACK(param.getBarcode());  //请求暂停测试
        return R.ok();
        if (mobileService.suspendTestPACK(param.getBarcode())){  //请求暂停测试
            return R.ok();
        }else {
            return R.error("暂停失败");
        }
    }
    /*...........................赣州新增..............以上.............赣州新增...........................*/
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -250,31 +250,30 @@
        return R.ok(map);
    }
    @PostMapping("/rpv/infoReview/auth/v1")
    @AppAuth(memo = "测试条码信息复核请求")
    public synchronized R infoReview(@RequestHeader(required = false) String appkey,
                                     @RequestBody(required = false) Review param,
                                     HttpServletRequest request) {
        appkey = "ea1f0459efc02a79f046f982767939ae";
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        TestMast testMast = openService.infoReview(param);
        if (testMast.getStatus() == 3) {
            return R.ok();
        } else if (testMast.getStatus() == 2) {
            return R.error("等待员工操作...");
        }
        return R.error();
    }
//    @PostMapping("/rpv/infoReview/auth/v1")
//    @AppAuth(memo = "测试条码信息复核请求")
//    public synchronized R infoReview(@RequestHeader(required = false) String appkey,
//                                     @RequestBody(required = false) Review param,
//                                     HttpServletRequest request) {
//        appkey = "ea1f0459efc02a79f046f982767939ae";
//        auth(appkey, param, request);
//        if (Cools.isEmpty(param)) {
//            return R.parse(BaseRes.PARAM);
//        }
//        TestMast testMast = openService.infoReview(param);
//        if (testMast.getStatus() == 3) {
//            return R.ok();
//        } else if (testMast.getStatus() == 2) {
//            return R.error("等待员工操作...");
//        }
//        return R.error();
//    }
    @PostMapping("/rpv/testFinish/auth/v1")
    @AppAuth(memo = "测试完成")
    public synchronized R testFinish(@RequestHeader(required = false) String appkey,
                                     @RequestBody(required = false) Review param,
                                     HttpServletRequest request) {
        appkey = "ea1f0459efc02a79f046f982767939ae";
        auth(appkey, param, request);
        Map<String, Boolean> map = new HashMap<>();
src/main/java/com/zy/asrs/entity/TestMast.java
@@ -103,7 +103,7 @@
            case 0:
                return "暂停";
            case 1:
                return "申请中";
                return "待测";
            case 2:
                return "复核中";
            case 3:
src/main/java/com/zy/asrs/service/MobileService.java
@@ -39,6 +39,6 @@
    //pda申请测试调用
    void startUpTestPACK(TestMast testMast);
    //暂停测试
    void suspendTestPACK(String channel);
    boolean suspendTestPACK(String channel);
}
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -634,70 +634,52 @@
    @Transactional
    public void startUpTestPACK(TestMast testMast) {
        if(Cools.isEmpty(testMast.getLocNo())){
            throw new CoolException("库位号为空");
        }else if(Cools.isEmpty(testMast.getUserId())){
            throw new CoolException("用户编码为空");
            log.error("库位号为空");
            return;
        }else if(Cools.isEmpty(testMast.getBarcode())){
            throw new CoolException("PACK码为空");
            log.error("PACK码为空");
            return;
        }
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                .eq("loc_no", testMast.getLocNo())
                .eq("loc_sts","F")
        );
        if (Cools.isEmpty(locMast)) {
            throw new CoolException("未查询到库位号:"+testMast.getLocNo()+" 请检查库位号或者检查库位状态是否未在库");
            log.error("未查询到库位号:"+testMast.getLocNo()+" 请检查库位号或者检查库位状态是否未在库");
            return;
        }
        Date now = new Date();
        testMast.setStatus(1);
        testMast.setChannel(locMast.getChannel());
        testMast.setModiTime(now);
        testMast.setAppeTime(now);
//        启动测试请求
        ReturnT<String> result=startUpTestPACK1(testMast);
        if (!result.isSuccess()) {
        if (Cools.isEmpty(result) || !result.isSuccess()) {
            log.error("测试申请失败", testMast.getBarcode());
            throw new CoolException("测试申请失败");
            return;
        }
        testMast.setStatus(3);
        if (!testMastService.update(testMast,new EntityWrapper<TestMast>().eq("barcode", testMast.getBarcode()))){
            log.error("更新testMast失败");
            return;
        }
        TestMast testMast1 = testMastService.selectOne(new EntityWrapper<TestMast>()
                .eq("loc_no", testMast.getLocNo())
                .eq("barcode", testMast.getBarcode())
                .eq("user_id",testMast.getUserId())
                .eq("channel",locMast.getChannel().toString())
                .lt("status",4)
        );
        if (Cools.isEmpty(testMast1)){
            if (!testMastService.insert(testMast)){
                throw new CoolException("添加testMast失败");
            }
        }else {
            if (!testMastService.update(testMast,new EntityWrapper<TestMast>()
                    .eq("loc_no", testMast.getLocNo())
                    .eq("barcode", testMast.getBarcode())
                    .eq("user_id",testMast.getUserId())
                    .eq("channel",locMast.getChannel().toString())
                    .lt("status",4)
            )){
                throw new CoolException("更新testMast失败");
            }
        }
        locMast.setPackStatus(1);
        locMast.setPackStatus(2);
        locMast.setModiTime(now);
        if (!locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no", testMast.getLocNo()))){
            throw new CoolException("申请测试失败");
            log.error("申请测试失败");
        }
//            throw new CoolException("异常!!!请规范使用或联系管理员");
    }
    @Override
    @Transactional
    public void suspendTestPACK(String channel) {
    public boolean suspendTestPACK(String channel) {
        ReturnT<String> result=suspendTestPACK1(channel);
        if (!result.isSuccess()) {
            log.error("暂停测试失败");
        }
        return result.isSuccess();
    }
    @Transactional
    public ReturnT<String> startUpTestPACK1(TestMast testMast){
@@ -705,12 +687,12 @@
        try {
            Review review=new Review();
            review.setLocNo(testMast.getLocNo());
            review.setUserId(testMast.getUserId());
            review.setBarcode(testMast.getBarcode());
            review.setChannel(testMast.getChannel().toString());
            review.setRequestTime(DateUtils.convert(new Date()));
            if (testMast.getChannel()<1 || testMast.getChannel()>48){
                log.error("通道有误,请查看!");
                return null;
            } else if (testMast.getChannel()<=8){
                renUrl=renUrl1;
            }else if (testMast.getChannel()<=16){
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -798,12 +798,12 @@
                Date date = new Date();
                locMast.setPackStatus(3);
                locMast.setModiTime(date);
                CombParam combParam = new CombParam();
                combParam.setPackNo(locMast.getBarcode());
                combParam.setLocNo(locMast.getLocNo());
                combParam.setPackSts(3);
                combParam.setRequestTime(DateUtils.convert(new Date()));
                new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
//                CombParam combParam = new CombParam();
//                combParam.setPackNo(locMast.getBarcode());
//                combParam.setLocNo(locMast.getLocNo());
//                combParam.setPackSts(3);
//                combParam.setRequestTime(DateUtils.convert(new Date()));
//                new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
                if (!locMastService.update(locMast, new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()))){
                    throw new CoolException("更改产品状态失败");
@@ -839,12 +839,12 @@
                Date date = new Date();
                locMast.setPackStatus(4);
                locMast.setModiTime(date);
                CombParam combParam = new CombParam();
                combParam.setPackNo(locMast.getBarcode());
                combParam.setLocNo(locMast.getLocNo());
                combParam.setPackSts(4);
                combParam.setRequestTime(DateUtils.convert(new Date()));
                new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
//                CombParam combParam = new CombParam();
//                combParam.setPackNo(locMast.getBarcode());
//                combParam.setLocNo(locMast.getLocNo());
//                combParam.setPackSts(4);
//                combParam.setRequestTime(DateUtils.convert(new Date()));
//                new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
                if (!locMastService.update(locMast, new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()))){
                    throw new CoolException("更改产品状态失败");
src/main/java/com/zy/asrs/task/StartUpTestPACKScheduler.java
New file
@@ -0,0 +1,34 @@
package com.zy.asrs.task;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.StarUpTestPACKHandler;
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;
@Component
@Slf4j
public class StartUpTestPACKScheduler {
    @Value("${wcs-slave.doubleDeep}")
    private boolean confirmDeep;
    @Autowired
    private StarUpTestPACKHandler starUpTestPACKHandler;
    /**
     *
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute() {
        if (confirmDeep) return;
        ReturnT<String> result = starUpTestPACKHandler.start();
        if (!result.isSuccess()) {
            log.error("申请测试失败");
        }
    }
}
src/main/java/com/zy/asrs/task/handler/StarUpTestPACKHandler.java
New file
@@ -0,0 +1,46 @@
package com.zy.asrs.task.handler;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.TestMast;
import com.zy.asrs.service.MobileService;
import com.zy.asrs.service.TestMastService;
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 java.util.List;
/**
 * Created by vincent on 2020/7/6
 */
@Service
@Slf4j
public class StarUpTestPACKHandler extends AbstractHandler<String> {
    @Autowired
    private MobileService mobileService;
    @Autowired
    private TestMastService testMastService;
    @Transactional
    public ReturnT<String> start() {
        try{
            List<TestMast> testMasts = testMastService.selectList(new EntityWrapper<TestMast>().eq("status", 2));
            if (Cools.isEmpty(testMasts)){
                return SUCCESS;
            }
            for (TestMast testMast : testMasts){
                mobileService.startUpTestPACK(testMast);
            }
        }catch (Exception e){
            log.error("申请测试异常,请联系管理员!");
        }
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -132,19 +132,19 @@
                            }
                        }
                        // 更新订单完成数量
                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        try {
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
//                                    exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
//                        // 更新订单完成数量
//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
//                        try {
//                            if(!Cools.isEmpty(orderDetl)){
//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
//                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
////                                    exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                                    return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
//                                }
//                            }
//                        } catch (Exception ignore){}
                    }
                    // 修改库位状态 S ====>> F
@@ -406,38 +406,21 @@
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("全板出库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                    }
                    for (WrkDetl wrkDetl : wrkDetls101) {
                        Date date = new Date();
                        WaitPakin waitPakin = new WaitPakin();
                        waitPakin.setMatnr(wrkDetl.getMatnr());
                        waitPakin.setMaktx(wrkDetl.getMaktx());
                        waitPakin.setZpallet(wrkDetl.getZpallet());   // Pack码
                        waitPakin.setIoStatus("N");     // 入出状态
                        waitPakin.setAnfme(1.0);  // 数量
                        waitPakin.setStatus("Y");    // 状态
                        waitPakin.setManuDate(date.toString());
                        waitPakin.setAppeUser(null);
                        waitPakin.setAppeTime(date);
                        waitPakin.setModiUser(null);
                        waitPakin.setModiTime(date);
//                        waitPakin.setDeadWarn(wrkDetl.getSettingTimes());
                        if (!waitPakinService.insert(waitPakin)) {
                            throw new CoolException("保存入库通知档失败");
                        }
                        // 更新订单完成数量
                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        try {
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
//                                    exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
                    }
//                    for (WrkDetl wrkDetl : wrkDetls101) {
//                        // 更新订单完成数量
//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
//                        try {
//                            if(!Cools.isEmpty(orderDetl)){
//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
//                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
////                                    exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                                    return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
//                                }
//                            }
//                        } catch (Exception ignore){}
//                    }
                    // 删除工作档源库位的库存明细
                    if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
//                        exceptionHandle("全板出库 ===>> 删除库存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
@@ -467,6 +450,8 @@
                        locMast.setBarcode("");
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        locMast.setFireStatus(0);
                        locMast.setPackStatus(0);
                        if (!locMastService.updateById(locMast)) {
//                            exceptionHandle("空板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -18,6 +18,10 @@
    private ApiLogService apiLogService = new ApiLogServiceImpl();
    public ReturnT<String> postMesData(String name,String URL,String mesPath, Object combParam){
        if (true){
            System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
            return SUCCESS;
        }
        if(combParam != null){
            String response = "";
            boolean success = false;
src/main/resources/application.yml
@@ -12,7 +12,7 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=zjfnasrs
    url: jdbc:sqlserver://192.168.4.13:1433;databasename=zjfnasrs
    username: sa
    password: sa@123
  mvc: