whycxzp
7 天以前 98d543674b46dcd169dcfbc1c856e9641a44bb64
维修调度-维修-入库-报废
2个文件已修改
52 ■■■■ 已修改文件
src/main/java/com/whyc/service/WorkflowLinkService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorkflowMainService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorkflowLinkService.java
@@ -46,23 +46,43 @@
        User user = CommonUtil.getUser();
        Date now = new Date();
        //根据id.查询关联的主表
        WorkflowMain main = mainService.getById(linkInDB.getMainId());
        WorkflowMain mainInDB = mainService.getById(linkInDB.getMainId());
        //查看申请流程类型
        switch (main.getType()) {
        switch (mainInDB.getType()) {
            case 1: { //设备维修申请
                //查看主表的状态
                if(main.getStatus() == WorkflowEnum.MAIN_STATUS_DEALING.getValue().intValue()){ //待处理,下一步是审批通过,待处理 或者驳回
                //因为是单个链路节点,所以不需要判断是不是待处理,肯定只有1个节点. 审批通过或者驳回
                //if(main.getStatus() == WorkflowEnum.MAIN_STATUS_DEALING.getValue().intValue()){ //待处理,下一步是审批通过,待处理 或者驳回
                    if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
                        main.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
                        mainService.updateStatus(main);
                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
                    mainService.updateById(mainInDB);
                    }else if(link.getStatus() == WorkflowEnum.LINK_STATUS_REJECT.getValue().intValue()){
                        main.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
                        main.setEndReason(link.getDealRejectReason());
                        main.setEndTime(now);
                        mainService.updateStatus(main);
                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
                    mainInDB.setEndReason(link.getDealRejectReason());
                    mainInDB.setEndTime(now);
                    mainService.updateById(mainInDB);
                        link.setDealAndClose(1);
                    }
                }
            //设备入库申请
            case 2:
            //设备报废申请
            case 3:{
                if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
                    mainService.updateById(mainInDB);
                }else if(link.getStatus() == WorkflowEnum.LINK_STATUS_REJECT.getValue().intValue()){
                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
                    mainInDB.setEndReason(link.getDealRejectReason());
                    mainInDB.setEndTime(now);
                    //检查是否有关联工单.如果有关联工单,关联工单状态重置为完结待处理,完成时间重置为空
                    if(mainInDB.getRelatedId() != null){
                        Integer relatedId = mainInDB.getRelatedId();
                        mainService.resetRepairStatus(relatedId,mainInDB.getQuantity());
                    }
                    mainService.updateById(mainInDB);
                    link.setDealAndClose(1);
                }
            }
        }
src/main/java/com/whyc/service/WorkflowMainService.java
@@ -107,7 +107,7 @@
        return null;
    }
    public void updateStatus(WorkflowMain main) {
    public void updateById(WorkflowMain main) {
        mapper.updateById(main);
    }
@@ -356,7 +356,7 @@
                relatedMain.setEndReason("用户提交维修申请后的报废申请,维修流程结束");
            }
            relatedMain.setQuantityUnprocessed(0);
            updateStatus(relatedMain);
            updateById(relatedMain);
        }
    }
@@ -406,4 +406,14 @@
        update.set("process_level",processLevel).eq("id",mainId);
        mapper.update((WorkflowMain) ActionUtil.objeNull,update);
    }
    public void resetRepairStatus(Integer relatedId, Integer quantity) {
        UpdateWrapper<WorkflowMain> update = Wrappers.update();
        update.set("status",WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue())
                .set("end_time",null)
                .set("end_reason",null)
                .set("quantity_unprocessed",quantity)
                .eq("id",relatedId);
        mapper.update((WorkflowMain) ActionUtil.objeNull,update);
    }
}