#
zwl
2025-07-19 6193eddf242c4b879402367704b8b5b2e8df84a4
src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
@@ -3,13 +3,16 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.mapper.TaskWrkMapper;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.service.TaskWrkService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
@@ -50,6 +53,10 @@
    private String taskStatusFeedbackPath;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private TaskWrkService taskWrkService;
    @Override
    public TaskWrk selectByTaskNo(String taskNo) {
@@ -74,29 +81,7 @@
    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void distribute(String taskNo, Long userId) {
        TaskWrk taskWrk = this.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            throw new CoolException("WMS任务不存在");
        }
        if (taskWrk.getStatus() != 1) {
            throw new CoolException("任务已派发");
        }
        //创建任务
        if (taskWrk.getIoType() == 1) {
            //1.入库
            if (taskWrk.getStartPoint() == null || taskWrk.getTargetPoint() == null) {
                throw new CoolException("未接收到起点和终点,不进行派发");
            }
            startup(taskWrk, userId);
        }else if(taskWrk.getIoType() == 2){
            //2.出库
            stockOut(taskWrk, userId);
        } else if (taskWrk.getIoType() == 3) {
            //3.库格移载
            locMove(taskWrk, userId);
        }
    }
    @Override
@@ -144,7 +129,7 @@
                headParam.put("status",taskWrk.getStatus());
                headParam.put("ioType",taskWrk.getIoType());
                headParam.put("barcode",taskWrk.getBarcode());
                headParam.put("reportTime",new Date());
//                headParam.put("reportTime",new Date());
                String response;
                response = new HttpHandler.Builder()
                        // .setHeaders(headParam)
@@ -165,7 +150,7 @@
                );
            }catch (Exception e){
                log.error("wcs派发入库任务上报wms失败", taskWrk);
                throw new CoolException("wcs派发入库任务上报wms失败");
//                throw new CoolException("wcs派发入库任务上报wms失败");
            }
        }
@@ -247,4 +232,63 @@
    public int saveToHistory(String taskNo) {
        return this.baseMapper.saveToHistory(taskNo);
    }
    @Override
    public R taskComplete(TaskWrk taskWrk) {
        LocMast locMast = new LocMast();
        switch (taskWrk.getIoType()) {
                //入库
            case 1:
                taskWrk.setModiTime(new Date());
                taskWrk.setWrkSts(6);//入库完成--准备上报wms
                locMast = locMastService.selectByLocNo(taskWrk.getOriginTargetPoint());
                if (locMast == null) {
                    return R.error("没有找到该库位="+taskWrk.getOriginTargetPoint());
                }
                locMast.setLocSts("F");
                locMastService.updateById(locMast);
                break;
                //出库
            case 2:
                if(taskWrk.getWrkSts()>=15){
                    return R.ok();
                }
                taskWrk.setModiTime(new Date());
                taskWrk.setWrkSts(15);//RCS出库完成--》写入输送线工作号
                locMast = locMastService.selectByLocNo(taskWrk.getOriginStartPoint());
                if (locMast == null) {
                    return R.error("没有找到该库位="+taskWrk.getOriginStartPoint());
                }
                locMast.setLocSts("O");
                locMastService.updateById(locMast);
                log.info("RCS出库任务完成更新WCS任务状态={}",taskWrk);
                break;
                //移库
//            case 3:
//                taskWrk.setModiTime(new Date());
//                taskWrk.setWrkSts(6);//入库完成--准备上报wms
//                //源库位
//                locMast = locMastService.selectByLocNo(taskWrk.getOriginTargetPoint());
//                if (locMast == null) {
//                    return R.error("没有找到该库位="+taskWrk.getOriginTargetPoint());
//                }
//                locMast.setLocSts("F");
//                locMastService.updateById(locMast);
//                //目标库位
//                locMast = locMastService.selectByLocNo(taskWrk.getOriginStartPoint());
//                if (locMast == null) {
//                    return R.error("没有找到该库位="+taskWrk.getOriginStartPoint());
//                }
//                locMast.setLocSts("0");
//                locMastService.updateById(locMast);
//                return R.ok();
//
        }
        if(taskWrkService.updateById(taskWrk)){
            return R.ok();
        }else {
            return R.error("RCS任务上报完成更新WCS任务状态失败"+taskWrk);
        }
    }
}