自动化立体仓库 - WMS系统
野心家
2 天以前 9ac70efe81c1909d63b89f9b18c4f367c0584ceb
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -12,11 +12,14 @@
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.entity.param.Review;
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.CodeRes;
import com.zy.common.constant.MesConstant;
import com.zy.common.entity.Parameter;
@@ -24,8 +27,7 @@
import com.zy.common.model.MesCombParam;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -35,6 +37,7 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -86,7 +89,9 @@
    @Autowired
    private WorkService workService;
    @Autowired
    private UserService userService;//只查询  无修改操作
    private PackQualifiedService packQualifiedService;
    @Autowired
    private ReportQueryMapper reportQueryMapper;
    @Value("${mes.url}")
    private String mesUrl;
@@ -106,7 +111,7 @@
    @Value("${ren.startUpTestPACK}")
    private String startUpTestPACK;
    @Value("${ren.startUpTestPACK}")
    @Value("${ren.suspendTestPACK}")
    private String suspendTestPACK;
    @Value("${mes.inPath}")
@@ -637,83 +642,60 @@
    @Transactional
    public void startUpTestPACK(TestMast testMast) {
        if(Cools.isEmpty(testMast.getLocNo())){
            throw new CoolException("库位号为空");
        }else if(Cools.isEmpty(testMast.getChannel())){
            throw new CoolException("用户编码为空");
            log.error("库位号为空");
            return;
        }else if(Cools.isEmpty(testMast.getBarcode())){
            throw new CoolException("PACK码为空");
        }
        User user = userService.selectOne(new EntityWrapper<User>().eq("username", testMast.getChannel().toString()));
        if (!Cools.isEmpty(user)){
            testMast.setUserId(user.getMobile());
        }else {
            throw new CoolException("未查到用户编号:"+testMast.getChannel()+"所属用户码");
            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);
        CombParam combParam = new CombParam();
        combParam.setPackNo(locMast.getBarcode());
        combParam.setLocNo(locMast.getLocNo());
        combParam.setPackSts(1);
        combParam.setRequestTime(DateUtils.convert(new Date()));
        postMesData(mesUrl,inpath,combParam);
        if (!locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no", testMast.getLocNo()))){
            throw new CoolException("申请测试失败");
            log.error("申请测试失败");
        }
//            throw new CoolException("异常!!!请规范使用或联系管理员");
//        //3.开始测试上报
//        CombParam combParam = new CombParam();
//        combParam.setPackNo(testMast.getBarcode());
//        combParam.setLocNo(locMast.getLocNo());
//        combParam.setPackSts(0);
//        combParam.setStepSts(3);
//        combParam.setRequestTime(DateUtils.convert(now));
//        new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
    }
    @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){
@@ -721,24 +703,26 @@
        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()<=8){
            if (testMast.getChannel()<1 || testMast.getChannel()>48){
                log.error("通道有误,请查看!");
                return null;
            } else if (testMast.getChannel()<=8){
                renUrl=renUrl1;
            }else if (testMast.getChannel()>=9 && testMast.getChannel()<=16){
            }else if (testMast.getChannel()<=16){
                renUrl=renUrl2;
            }else if (testMast.getChannel()>=17 && testMast.getChannel()<=24){
            }else if (testMast.getChannel()<=24){
                renUrl=renUrl3;
            }else if (testMast.getChannel()>=25 && testMast.getChannel()<=32){
            }else if (testMast.getChannel()<=32){
                renUrl=renUrl4;
            }else if (testMast.getChannel()>=33 && testMast.getChannel()<=40){
            }else if (testMast.getChannel()<=40){
                renUrl=renUrl5;
            }else if (testMast.getChannel()>=41 && testMast.getChannel()<=48){
            }else if (testMast.getChannel()<=48){
                renUrl=renUrl6;
            }
            return postMesData(renUrl,startUpTestPACK,review);
            return null;
        }catch (Exception e) {
            log.error("fail", e);
            e.printStackTrace();
@@ -815,8 +799,10 @@
                case "48":
                    renUrl=renUrl6;
                    break;
                default:
                    log.error("通道有误,请查看!");
            }
            return postMesData(renUrl,suspendTestPACK,review);
            return null;
        }catch (Exception e) {
            log.error("fail", e);
            e.printStackTrace();
@@ -825,70 +811,110 @@
        }
    }
    private ReturnT<String> postMesData(String URL,String Path,Object combParam){
        String name="";
        if (URL.equals(mesUrl)){
            name="mes系统";
        }else if (URL.equals(renUrl1)){
            name="测试系统";
        }else if (URL.equals(renUrl2)){
            name="测试系统";
        }else if (URL.equals(renUrl3)){
            name="测试系统";
        }else if (URL.equals(renUrl4)){
            name="测试系统";
        }else if (URL.equals(renUrl5)){
            name="测试系统";
        }else if (URL.equals(renUrl6)){
            name="测试系统";
        }
        if(combParam != null){
            String response = "";
            boolean success = false;
            try {
//                Map<String, Object> map = new HashMap<>();
//                map.put("appkey","ea1f0459efc02a79f046f982767939ae");
                response = new HttpHandler.Builder()
//                        .setHeaders(map)
                        .setUri(URL)
                        .setPath(Path)
                        .setJson(JSON.toJSONString(combParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
//                    if (jsonObject.getDate("isComplete").equals(true)){
                        success = true;
//                    }else if (jsonObject.getDate("isComplete").equals(false)){
//                        success = false;
//                    }else {
//                        log.error("返回值出错!!!url:{};request:{};response:{}", URL+Path, JSON.toJSONString(combParam), response);
//                        throw new CoolException("返回值出错");
//                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+Path, JSON.toJSONString(combParam), response);
                    throw new CoolException("上报mes系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "上报"+name,
                            URL +"/"+ Path,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(combParam),
                            response,
                            success
                    );
                } catch (Exception e) { log.error("", e); }
    /*
    * 测试库信息
    * */
    @Override
    @Transactional
    public List<LocMast> packTestBasicInformation() {
        List<LocMast> locMasts=locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_type1", 1).and().ne("loc_sts","O")
                .and().ne("loc_sts","X"));
        for (LocMast locMast:locMasts) {
            LocDetl locDetl=locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo()));
            if(Cools.isEmpty(locDetl)){
                locMast.setMk("无信息");
            }else{
                locMast.setMk(locDetl.getMatnr());
            }
        }
        return SUCCESS;
        return locMasts;
    }
    /*
     * 测试库使用情况
     * */
    @Override
    @Transactional
    public List<PackUsageRate> packUsageRate() {
        ArrayList<PackUsageRate> packUsageRates = new ArrayList<>();
        for (int i = 1 ;i<5;i++){
            PackUsageRate packUsageRate = new PackUsageRate();
            packUsageRate.setTotal(locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_type1", i)));
            packUsageRate.setCurrentQuantity(locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_type1", i).and().ne("loc_sts","O")));
            packUsageRates.add(packUsageRate);
        }
        return packUsageRates;
    }
    @Data
    public static class PackUsageRate{
        private int total;
        private int currentQuantity;
    }
    @Data
    public static class PackUsageRate2{
        private int total;
        private int qualified;
        private int unqualified;
        private String week;
    }
    /*
     * 测试库合格数
     * */
    @Override
    @Transactional
    public List<PackUsageRate2> packQualified() {
        Date now = new Date();
        ArrayList<PackUsageRate2> packUsageRates = new ArrayList<>();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        for(int i=1;i<8;i++){
            Date date7 = Utils.timeYesterday(now,i);
            PackUsageRate2 packUsageRate7 = new PackUsageRate2();
            packUsageRate7.setTotal(packQualifiedService.selectTotal(date7,now));
            packUsageRate7.setQualified(packQualifiedService.selectCurrentQuantity(true,date7,now));
            packUsageRate7.setUnqualified(packQualifiedService.selectCurrentQuantity(false,date7,now));
            String formattedDate = sdf.format(date7);
            int month = Integer.parseInt(formattedDate.substring(5, 7));
            int day = Integer.parseInt(formattedDate.substring(8, 10));
            packUsageRate7.setWeek(month+"-"+day);
            packUsageRates.add(packUsageRate7);
            now=date7;
        }
        return packUsageRates;
    }
    /*
     * 测试库合格数
     * */
    @Override
    @Transactional
    public List<PackUsageRate2> chartAxisEvening() {
        Date now = new Date();
        ArrayList<PackUsageRate2> packUsageRates = new ArrayList<>();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        for(int i=1;i<13;i++){
            Date date7 = Utils.timeYesterday1(now,i);
            PackUsageRate2 packUsageRate7 = new PackUsageRate2();
            packUsageRate7.setTotal(packQualifiedService.selectTotal1(date7,now));
            packUsageRate7.setQualified(packQualifiedService.selectCurrentQuantity1(true,date7,now));
            packUsageRate7.setUnqualified(packQualifiedService.selectCurrentQuantity1(false,date7,now));
            String formattedDate = sdf.format(date7);
            int hour= date7.getHours();
            packUsageRate7.setWeek(hour+"");
            packUsageRates.add(packUsageRate7);
            now=date7;
        }
        return packUsageRates;
    }
    /*
     * 测试库合格数
     * */
    @Override
    @Transactional
    public List<WorkChartAxis> chartAxisMorning() {
        return reportQueryMapper.getChartAxisMorning();
    }
    /*...........................赣州新增..............以上.............赣州新增...........................*/
}