lty
2025-03-04 c2fb1d1f0baba27c397b6bcfb48ed4a3a435a88c
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -109,7 +109,7 @@
    private SiteController siteController;
    public void generateStoreWrkFile1() throws IOException, InterruptedException {
    public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -311,7 +311,7 @@
        }
    }
    public void generateStoreWrkFile() throws IOException, InterruptedException {
    public synchronized void generateStoreWrkFile() throws IOException, InterruptedException {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -588,7 +588,7 @@
    /**
     * 堆垛机站出库到出库站
     */
    public void crnStnToOutStn() {
    public synchronized void crnStnToOutStn() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            // 遍历堆垛机出库站
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
@@ -693,7 +693,7 @@
    /**
     * 入库  ===>>  堆垛机站到库位
     */
    public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
    public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
            List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
            for (StaDesc staDesc : staDescs) {
@@ -778,7 +778,7 @@
     * 出库  ===>>  库位到堆垛机站
     * 2022-06-09 TQS修改,查询工作档LIST,遍历下发,防止第一个任务堵塞出库
     */
    public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
    public synchronized void  locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
        List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
        if (taskWrksInitial.size() == 0) {
            return;
@@ -863,36 +863,6 @@
                        command.setDestinationPosZ(crnStn.getLev().shortValue());     // 目标库位层
                        command.setCommand((short) 1);
                        if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){
                            HashMap<String, Object> hashMap = new HashMap<>();
                            hashMap.put("TaskNo",taskWrk.getTaskNo());
                            String response = "";
                            try {
                                //开始上报,出库任务开始时,WCS回调WMS
                                response = new HttpHandler.Builder()
                                        .setUri(wmsUrl)
                                        .setPath(taskStatusFeedbackPath)
                                        .setJson(JSON.toJSONString(hashMap))
                                        .build()
                                        .doPost();
                                JSONObject jsonObject = JSON.parseObject(response);
                                Boolean bool = false;
                                if(jsonObject.get("ReturnStatus").equals(0)){
                                    bool = true;
                                    taskWrk.setMarkStart(1);
                                }
                                apiLogService.save("wcs开始任务上报wms"
                                        , wmsUrl + TaskExecCallback
                                        , null
                                        , "127.0.0.1"
                                        , JSON.toJSONString(hashMap)
                                        , response
                                        , bool
                                );
                            } catch (Exception e) {
                            }
                        }
                        if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command), false)) {
                            log.error("堆垛机命令生成失败,堆垛机号={},任务数据={}", taskWrk.getCrnNo(), JSON.toJSON(command));
                            throw new CoolException("堆垛机命令生成失败");
@@ -901,7 +871,6 @@
                                // 修改工作档状态 11.生成出库ID => 12.吊车出库中
                                Date now = new Date();
                                taskWrk.setWrkSts(12);
                                taskWrk.setStatus(2);
                                taskWrk.setModiTime(now);
                                if (taskWrkMapper.updateById(taskWrk) == 0) {
                                    log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", taskWrk.getWrkNo());
@@ -947,7 +916,7 @@
    /**
     * 库位移转
     */
    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
    public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
            // 获取工作状态为11(生成出库ID)的移库工作档
            List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
@@ -1094,7 +1063,7 @@
    /**
     * 执行对工作档的完成操作
     */
    public void storeFinished() throws InterruptedException {
    public synchronized void storeFinished() throws InterruptedException {
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -1168,7 +1137,7 @@
    /**
     * 堆垛机异常信息记录
     */
    public void recCrnErr() {
    public synchronized void recCrnErr() {
        Date now = new Date();
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
@@ -1284,7 +1253,7 @@
    }
    //自动派发任务
    public void autoDistribute() {
    public synchronized void autoDistribute() {
        Config config = configService.selectByCode("autoDistribute");
        if (config == null) {
            return;