#
zzgtfwq
1 天以前 9fd5e6fbcb1d8badf1835478d862ac40bfb60f3c
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.controller.TaskWrkController;
import com.zy.asrs.domain.enums.LedErrorAreaType;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.*;
@@ -66,19 +67,15 @@
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private LocMastService locMastService;
    private BasDevpOptService basDevpOptService;
    @Autowired
    private StaDescService staDescService;
    private LocMastService locMastService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasDevpService basDevpService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private BasErrLogService basErrLogService;
    @Autowired
    private BasCrnErrorMapper basCrnErrorMapper;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
@@ -140,16 +137,6 @@
                if (barcodeThread == null) {
                    continue;
                }
                String barcode = barcodeThread.getBarcode();
                if (!Cools.isEmpty(barcode)) {
//                    log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                    if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
                        continue;
                    }
                } else {
                    continue;
                }
                // 获取入库站信息
//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -159,6 +146,17 @@
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                String barcode = barcodeThread.getBarcode();
                if (!Cools.isEmpty(barcode)) {
//                    log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                    if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
                        continue;
                    }
                } else {
                    continue;
                }
                // 尺寸检测异常
@@ -194,6 +192,15 @@
                }
                // 退回
                if (back) {
                    barcodeThread.setBarcode("");
                    // 获取工作号
                    int workNo = commonService.getWorkNo(3);
                    staProtocol.setWorkNo(workNo);
                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false,201);
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    // led 异常显示
                    LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc());
                    continue;
@@ -232,7 +239,7 @@
//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                        barcodeThread.setBarcode("");
                        staProtocol.setWorkNo(wrkMast.getWrkNo());
                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                        staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
                        devpThread.setPakMk(staProtocol.getSiteId(), false,238);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -277,7 +284,9 @@
//                            if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
//                                staProtocol.setStaNo(607);//607
//                            } else {//如果存在RGV编号,说明需要RGV接驳,先下发任务到RGV源站
                            staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
//                            staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
                            staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
//                            }
                            devpThread.setPakMk(staProtocol.getSiteId(), false,283);
@@ -287,6 +296,14 @@
                                throw new CoolException("更新plc站点信息失败");
                            }
                        } else {
                            // 获取工作号
                            int workNo = commonService.getWorkNo(3);
                            staProtocol.setWorkNo(workNo);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false,201);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            // led 异常显示
                            LedErrorThreadUtil.ledErrorThread("入库请求失败"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
                            log.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
@@ -307,7 +324,7 @@
     */
    public synchronized void storeEmptyPlt() {
        for (DevpSlave devp : slaveProperties.getDevp()) {
            if (devp.getId()==1) continue;
//            if (devp.getId()==1) continue;
            // 遍历空板入库口
            for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
                // 获取空板入库站信息
@@ -341,7 +358,7 @@
                            // 更新站点信息 且 下发plc命令
                            staProtocol.setWorkNo(dto.getWorkNo());
                            staProtocol.setStaNo(dto.getStaNo().shortValue());
                            staProtocol.setStaNo(dto.getStaNoSou$(dto.getStaNo(),staProtocol.getSiteId()).shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false,4087);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            if (!result) {
@@ -733,7 +750,7 @@
            }
            // 双深库位且浅库位有货,则需先对浅库位进行库位移转
            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo()) && crnProtocol.getCrnNo()!=3) {
                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
@@ -880,7 +897,7 @@
                }
                // 双深库位且浅库位有货,则需先对浅库位进行库位移转
                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo()) && crnProtocol.getCrnNo()!=3) {
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                    // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
@@ -890,10 +907,10 @@
                            log.error("{}库位异常,未检索到相应工作档!", shallowLocNo);
                        } else {
                            if (waitWrkMast.getWrkSts() == 11) {
                                if (waitWrkMast.getIoPri() + 100000D < 999999999D) {
                                    waitWrkMast.setIoPri(waitWrkMast.getIoPri()+100000D);
                                if (waitWrkMast.getIoPri() + 10D < 9999D) {
                                    waitWrkMast.setIoPri(waitWrkMast.getIoPri()+10D);
                                } else {
                                    waitWrkMast.setIoPri(999999999D);
                                    waitWrkMast.setIoPri(9999D);
                                }
                                waitWrkMast.setModiTime(new Date());
                                if (wrkMastMapper.updateById(waitWrkMast) == 0) {
@@ -1119,7 +1136,7 @@
            }
            //  状态:等待确认 并且  任务完成位 = 1
            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
                if (crnProtocol.getTaskNo() == 32222) {
                if (crnProtocol.getTaskNo() == 32222 || crnProtocol.getTaskNo() == 999) {
                    // 堆垛机复位
                    crnThread.setResetFlag(true);
                } else {
@@ -1145,6 +1162,192 @@
                    }
                }
            }
        }
    }
    /**
     * 出库  ===>> 工作档信息写入led显示器
     */
    public synchronized void ledExecute() {
        for (LedSlave led : slaveProperties.getLed()) {
            // 获取输送线plc线程
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
            // 命令集合
            List<LedCommand> commands = new ArrayList<>();
            // 工作档集合
            List<WrkMast> wrkMasts = new ArrayList<>();
            for (Integer staNo : led.getStaArr()) {
                // 获取叉车站点
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                // 获取工作档数据
                WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
                if (null == wrkMast) {
                    if(staProtocol.getWorkNo() > 9999){ //异常退出
                        String err = basDevpOptService.getErr(staProtocol.getWorkNo());
                        MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, err));
                    }
                    continue;
                }
                wrkMasts.add(wrkMast);
                // 组装命令
                LedCommand ledCommand = new LedCommand();
                ledCommand.setWorkNo(wrkMast.getWrkNo());
                ledCommand.setIoType(wrkMast.getIoType());
                // 出库模式
                switch (wrkMast.getIoType()) {
                    case 1:
                        ledCommand.setTitle("全板入库");
                        break;
                    case 10:
                        ledCommand.setTitle("空板入库");
                        break;
                    case 12:
                        ledCommand.setTitle("物料衔接");
                        break;
                    case 57:
                        ledCommand.setTitle("盘点再入库");
                        break;
                    case 53:
                        ledCommand.setTitle("拣料再入库");
                        break;
                    case 101:
                        ledCommand.setTitle("全板出库");
                        break;
                    case 103:
                        ledCommand.setTitle("拣料出库");
                        break;
                    case 104:
                        ledCommand.setTitle("并板出库");
                        break;
                    case 107:
                        ledCommand.setTitle("盘点出库");
                        break;
                    case 110:
                        ledCommand.setTitle("空板出库");
                        ledCommand.setEmptyMk(true);
                        break;
                    default:
                        News.error("任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                        break;
                }
                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                ledCommand.setStaNo(wrkMast.getStaNo());
                ledCommand.setBarcode(wrkMast.getBarcode());
                if(wrkMast.getIoType() == 12){
                    List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(wrkMast.getBarcode());
                    wrkDetls.forEach(wrkDetl -> {
                        Double total = 0.0;
                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
                        if (Cools.isEmpty(locDetl)) {
                            total = wrkDetl.getAnfme();
                        } else {
                            total = locDetl.getAnfme();
                        }
                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                    });
                }
                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
                    wrkDetls.forEach(wrkDetl -> {
                        Double total = 0.0;
                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
                        if (Cools.isEmpty(locDetl)) {
                            total = wrkDetl.getAnfme();
                        } else {
                            total = locDetl.getAnfme();
                        }
                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                        }
                        if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                        }
                        if (wrkMast.getIoType() == 107) {
                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                        }
                    });
                }
                commands.add(ledCommand);
            }
            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
            // 获取LED线程
            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
            // 相同工作号集合则过滤
            if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
                continue;
            }
            // 命令下发 -------------------------------------------------------------------------------
            if (!commands.isEmpty()) {
                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
                    News.error("{}号LED显示内容命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                    continue;
                }
            }
            try {
                // 修改主档led标记
                for (WrkMast wrkMast : wrkMasts) {
                    wrkMast.setOveMk("Y");
                    wrkMast.setModiTime(new Date());
                    if (wrkMastMapper.updateById(wrkMast) == 0) {
                        throw new CoolException("更新工作档失败");
                    }
                }
                // 更新线程当前工作号集合
                ledThread.setWorkNos(workNos);
            } catch (Exception e) {
                e.printStackTrace();
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            }
        }
    }
    /**
     * 其他  ===>> LED显示器复位,显示默认信息
     */
    public synchronized void ledReset() {
        for (LedSlave led : slaveProperties.getLed()) {
            // 获取输送线plc线程
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
            // 命令集合
            boolean reset = true;
            for (Integer staNo : led.getStaArr()) {
//                System.out.println("staArr = " + staNo);
                // 获取叉车站点
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (staProtocol == null) { continue; }
                if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) {
                    reset = false;
                    break;
                }
            }
            // 获取led线程
            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
            // led显示默认内容
            if (reset) {
                if (ledThread == null) {
                    continue;
                }
                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
                    News.error("{}号LED显示默认命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                }
//                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
//                    News.error("{}号LED显示默认命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
//                }
            }
        }
    }
@@ -1180,7 +1383,7 @@
                        if (!WrkMastLogList.isEmpty()) {
                            boolean signT = false;
                            for (WrkMast wrkMast : WrkMastLogList){
                                Date completeTime = wrkMast.getIoTime();
                                Date completeTime = wrkMast.getModiTime();
                                if (completeTime==null){
                                    continue;
                                }
@@ -1202,11 +1405,16 @@
                        crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号
                        crnCommand.setTaskNo((short)999); // 工作号
                        crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                        crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 任务模式:  站位移转4
                        crnCommand.setSourcePosX((short) 1);     // 源库位排
                        crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式:  站位移转4
                        Integer crnNo = crnProtocol.getCrnNo();
                        int row1 = crnNo * 4-1;
                        if (crnNo>2){
                            row1 = row1-2;
                        }
                        crnCommand.setSourcePosX((short) row1);     // 源库位排
                        crnCommand.setSourcePosY((short) 1);     // 源库位列
                        crnCommand.setSourcePosZ((short) 1);   // 源库位层
                        crnCommand.setDestinationPosX((short) 1);     // 目标库位排
                        crnCommand.setDestinationPosX((short) row1);     // 目标库位排
                        crnCommand.setDestinationPosY((short) 1);     // 目标库位层
                        crnCommand.setDestinationPosZ((short) 1);     // 目标库位列
                        if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
@@ -1237,6 +1445,45 @@
    /////////////////////////////////////RGV调度/////////////////////////////////////
    public synchronized void taskCreate() {
        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
            try {
                for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) {
                    WrkMast wrkMast = deviceDetectionCreate(inSta);
                    if (!Cools.isEmpty(wrkMast)) {
                        TaskWrk taskWrk = new TaskWrk(wrkMast);
                        taskWrkService.insert(taskWrk);
                    }
                }
            } catch (Exception e){
            }
        }
    }
    public synchronized void taskCancel() {
        try {
            List<String> taskList = new ArrayList<>();
            for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
                ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
                for (TaskProtocol taskProtocol : allTaskProtocol.values()){
                    taskList.add(taskProtocol.getTaskNo().toString());
                }
            }
            Wrapper<TaskWrk> wrkWrapper = new EntityWrapper<TaskWrk>().eq("status", 5);
            for (String taskNo : taskList){
                wrkWrapper.ne("task_no", taskNo);
            }
            int count = taskWrkService.selectCount(wrkWrapper);
            if (count>0){
                taskWrkService.delete(wrkWrapper);
            }
        } catch (Exception e){
        }
    }
    public synchronized void taskStart() {
        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
            try {
@@ -1719,6 +1966,34 @@
        return true;
    }
    public WrkMast deviceDetectionCreate(RgvSlave.RgvStn inSta) {
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
        StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
        if (staProtocol == null) {
            return null;
        }
        // 判断是否满足取货条件
        if (staProtocol.isAutoing()
//                && staProtocol.isLoading()
//                && staProtocol.isStaOk()
                && staProtocol.getWorkNo() != 0) {
            WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
            if (!Cools.isEmpty(wrkMast)){
                if (inSta.getStaNo()==117 || inSta.getStaNo()==120 || inSta.getStaNo()==123
                        || inSta.getStaNo()==217 || inSta.getStaNo()==220 || inSta.getStaNo()==223){
                    if (wrkMast.getIoType()>100){
                        return null;
                    }
                }
                TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
                if (Cools.isEmpty(taskWrk)){
                    return wrkMast;
                }
            }
        }
        return null;
    }
    public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) {
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
@@ -1736,7 +2011,7 @@
//                && staProtocol.isLoading()
//                && staProtocol.isStaOk()
                && staProtocol.getWorkNo() != 0) {
            TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo());
            TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo());
            if (taskWrk != null) {
                Integer stano = staProtocol.getStaNo().intValue();
                if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){
@@ -1854,7 +2129,7 @@
                // 判断是否满足取货条件
                if (staProtocolOther.isAutoing()
                        && staProtocolOther.getWorkNo() != 0) {
                    TaskWrk taskWrkOther = taskWrkService.selectByWrkNo(staProtocolOther.getWorkNo());
                    TaskWrk taskWrkOther = taskWrkService.selectByTaskNo(staProtocolOther.getWorkNo());
                    if (taskWrkOther != null) {
                        return taskWrkOther;
                    }
@@ -1964,6 +2239,7 @@
                issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
                issuedTake.setTaskStatus(2);
                issuedTake.setTargetPositionStaNo(basDevpPositionSou.getDevNo());
                issuedTake.setTargetPositionStaNoEnd(basDevpPositionSou.getDevNo$());
                issuedTake.setTargetPositionStaNoPlcId(basDevpPositionSou.getPlcId());
                issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
                issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition());
@@ -1974,6 +2250,7 @@
                issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo()));
                issuedPut.setTaskStatus(3);
                issuedPut.setTargetPositionStaNo(basDevpPositionEnd.getDevNo());
                issuedPut.setTargetPositionStaNoEnd(basDevpPositionEnd.getDevNo$());
                issuedPut.setTargetPositionStaNoPlcId(basDevpPositionEnd.getPlcId());
                issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
                issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition());
@@ -1981,13 +2258,11 @@
                issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1);
                try{
                    if (taskWrk.getIoType()==2 && basDevpPositionEnd.getRgvSign()==1){
                        Date now = new Date();
                        taskWrk.setStatus(TaskStatusType.OVER.id);
                        taskWrk.setModiTime(now);//更新时间
                        taskWrk.setCompleteTime(now);//完结时间
                        taskWrkService.updateById(taskWrk);
                    }
                    Date now = new Date();
                    taskWrk.setStatus(TaskStatusType.OVER.id);
                    taskWrk.setModiTime(now);//更新时间
                    taskWrk.setCompleteTime(now);//完结时间
                    taskWrkService.updateById(taskWrk);
                } catch (Exception e){
                }