自动化立体仓库 - WCS系统
#
lsh
2024-07-12 bf5ef3b3e0a14781b447750f2b4b3dc02c781bd1
#
3个文件已添加
1个文件已修改
212 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/task/ScaleEscalationScheduler.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/escalationParam/ScaleEscalationParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/ScaleEscalationHandler.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/StaEscalationHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ScaleEscalationScheduler.java
New file
@@ -0,0 +1,37 @@
package com.zy.asrs.task;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.ScaleEscalationHandler;
import com.zy.asrs.task.handler.StaEscalationHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * Created by Monkey D. Luffy on 2024.07.11
 * 亳州煜星..............以下.............亳州煜星.............2楼翻转倒料信息上传处理失败
 */
@Slf4j
@Component
public class ScaleEscalationScheduler {
    @Autowired
    private ScaleEscalationHandler scaleEscalationHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){//2楼翻转倒料信息上传
        int[] staNos =new int[]{460,453};
        for (int staNo : staNos){
            try{
                ReturnT<String> result = scaleEscalationHandler.start(staNo);
                if (result.getCode()==200){
                    break;
                }
            }catch (Exception e){
                log.error("站点"+staNo+"2楼翻转倒料信息上传处理失败,异常信息:"+e);
            }
        }
    }
}
src/main/java/com/zy/asrs/task/escalationParam/ScaleEscalationParam.java
New file
@@ -0,0 +1,28 @@
package com.zy.asrs.task.escalationParam;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/*
 *  Created by Monkey D. Luffy on 2023.07.19
 * */
@Data
public class ScaleEscalationParam {
    private String barcode;//    是    字符串    托盘码
    private String boxType;//    是    字符串    码垛木箱类型(同一托盘一种类型)
    private String palletizingNo;//    是    字符串    码垛木箱类型(同一托盘一种类型)  废弃
    private String createTime;//        是    字符串    创建时间
    private Double weight;//        是    字符串    创建时间
    public ScaleEscalationParam(){}
    public ScaleEscalationParam(Double weight){
        this.weight = weight;
    }
}
src/main/java/com/zy/asrs/task/handler/ScaleEscalationHandler.java
New file
@@ -0,0 +1,145 @@
package com.zy.asrs.task.handler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.escalationParam.ScaleEscalationParam;
import com.zy.asrs.task.escalationParam.StaEscalationParam;
import com.zy.common.utils.HttpHandler;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.thread.SiemensDevpThread;
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.Date;
import java.util.List;
/**
 * Created by Monkey D. Luffy on 2024.07.11
 * 亳州煜星..............以下.............亳州煜星.............1楼翻转重量信息上传处理失败
 */
@Slf4j
@Service
@Transactional
public class ScaleEscalationHandler extends AbstractHandler<String> {
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private BasDevpService basDevpService;
//    @Value("${srHangJia.url}")
    private String erpUrl = "10.10.11.100:8580";
//    @Value("${srHangJia.reportOutPath}")
    private String reportOutPath = "mes/wms-service/boxWeight";
    public ReturnT<String> start(int staNo) {
        try{
            BasDevp basDevp = basDevpService.selectById(staNo);
            if (Cools.isEmpty(basDevp) || basDevp.getReportSign()==1){
                return FAIL;
            }
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(staNo);
            if (staProtocol == null) {
                return FAIL;
            } else {
                staProtocol = staProtocol.clone();
            }
            if (!Cools.isEmpty(basDevp) && basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()==0){
                if (staProtocol.isAutoing() && staProtocol.getWorkNo()==0 && staProtocol.isInEnable()){
                    log.error("1楼翻转重量信息上传时,站点状态:"+JSON.toJSONString(staProtocol));
                    ScaleEscalationParam scaleEscalationParam = new ScaleEscalationParam(basDevp.getGrossWt());
                    ReturnT<String> result = postMesData(reportOutPath,scaleEscalationParam);
                    if (result.getCode()==200){
                        basDevp.setReportSign(1);
                        basDevpService.updateById(basDevp);
                        return SUCCESS;
                    }else {
                        log.error("1楼翻转重量信息上传失败");
                    }
                }
            }
        }catch (Exception e){
            log.error("异常!!!"+e);
            return FAIL;
        }
        return FAIL;
    }
    private ReturnT<String> postMesData(String erpPath,Object combParam){
        if(combParam != null){
            String response = "";
            boolean success = false;
            try {
                response = new HttpHandler.Builder()
                        .setUri(erpUrl)
                        .setPath(erpPath)
                        .setJson(JSON.toJSONString(combParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("Code")==200) {
                    success = true;
                } else {
                    log.error("1楼翻转重量信息上传请求接口失败!!!url:{};request:{};response:{}"+erpUrl+erpPath, 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(
                            "上报MES系统",
                            erpUrl + erpPath,
                            null,
                            erpUrl,
                            JSON.toJSONString(combParam),
                            response,
                            success
                    );
                } catch (Exception e) { log.error("", e); }
            }
        }
        return SUCCESS;
    }
    public Integer getStaOther(Integer staNo){
        switch (staNo){
            case 118:
                return 119;
            case 119:
                return 118;
            case 120:
                return 121;
            case 121:
                return 120;
            default:
                return 0;
        }
    }
}
src/main/java/com/zy/asrs/task/handler/StaEscalationHandler.java
@@ -87,7 +87,7 @@
                        basDevpService.updateById(basDevp);
                        return SUCCESS;
                    }else {
                        log.error("拆垛信息上传失败");
                        log.error("2楼翻转倒料信息上传失败");
                    }
                }
            }