| | |
| | | |
| | | /**节点表(link)状态*/ |
| | | STATUS_PENDING("待处理",0), |
| | | STATUS_TAKE("待接单",1), |
| | | STATUS_TAKING("待接单",1), |
| | | STATUS_DEALING("处理中",2), |
| | | STATUS_WAIT_FOR_REPLY("待回复",3), |
| | | STATUS_DEAL_WITH_REPLY("处理回复",4), |
| | | STATUS_FINISH("完成",5), |
| | | STATUS_FINISH("通过",5), |
| | | STATUS_WAIT_FOR_APPROVE("待审批",6), |
| | | STATUS_CANCEL("已撤销",7), |
| | | STATUS_REJECT("驳回",8), |
| | | |
| | | /**工单流类型*/ |
| | | MAIN_TYPE_DISCHARGE_PLAN("放电计划工单",1), |
| | |
| | | package com.whyc.controller; |
| | | |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.dto.WorkflowLinkDTO; |
| | | import com.whyc.pojo.WorkflowLink; |
| | | import com.whyc.service.WorkflowLinkService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | return new Response<List<WorkflowLink>>().set(1,service.getWorkflowInfo(mainId)); |
| | | } |
| | | |
| | | /** |
| | | * 新建 主表记录:status更新为 |
| | | * 当前link表记录: |
| | | * |
| | | * 派发 dealType=0 |
| | | * 当前link表记录:status更新为2(处理中) |
| | | * 新增同级节点link表记录:dealType设置为0,status设置为3(待回复) |
| | | * |
| | | * 转派 dealType=1 (分为指定给班组或者个人) |
| | | * 主表记录:status更新为4(二级处理中) |
| | | * 当前link表记录:status更新为2(处理中) |
| | | * 新增link表记录:如果指定的是role_id(班组),则班组下面的所有人可见,status为0(待处理) |
| | | * |
| | | * 移交 dealType=2 |
| | | * 当前link表记录:status更新为5(已完成) |
| | | * 新增link表记录:status更新为0(待处理) |
| | | * |
| | | * 分派 dealType=3 |
| | | * 当前link表记录:status更新为2(处理中),deal_task_num更新 |
| | | * 新增link表记录:status更新为3(待回复),dealType为3(分派) |
| | | * |
| | | * 驳回 dealType=4 |
| | | * 当前link表记录:status更新为5 {同时doc指示dealType更新为5(回复),这里我认为不需要改变该值} |
| | | * 父节点表记录: deal_tasks_reply_num 减1 |
| | | * 新增link表记录:重新分派给他,status设置为3(待回复) |
| | | * |
| | | * 通过 dealType=5 |
| | | * 当前link表记录:status更新为5,填写deal_reason |
| | | * 父节点表记录: 查看是否全部回复,如果是,则更新status为 |
| | | * |
| | | * 回复 dealType=6 |
| | | * 当前link表记录:status更新为6(待审批) |
| | | * 父节点表记录:status更新为4(处理回复),deal_task_reply_num 加1 |
| | | * |
| | | * 处理并归档 dealType=7 |
| | | * 主表记录:status更新为5(归档),填写end_reason |
| | | * 当前link表记录:status更新为5(完成) |
| | | * |
| | | * @param link |
| | | * @return |
| | | */ |
| | | @PutMapping("updateLink") |
| | | @ApiOperation(value = "处理工单节点") |
| | | public Response updateLink(@RequestBody WorkflowLink link){ |
| | | boolean updateFlag = service.update(link); |
| | | if(updateFlag) { |
| | | return new Response().set(1,true, "提交成功"); |
| | | }else{ |
| | | return new Response().set(1,false,"已被接单,无法进行接单操作,请知悉"); |
| | | } |
| | | @PutMapping("linkOfDischargePlanTemp") |
| | | @ApiOperation("更新节点-放电计划") |
| | | public Response updateLinkOfDischargePlanTemp(@RequestBody WorkflowLinkDTO linkDTO){ |
| | | return service.updateLinkOfDischargePlanTemp(linkDTO); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.pojo.WorkflowLink; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.pojo.WorkflowMain; |
| | | import com.whyc.service.WorkflowLinkService; |
| | | import com.whyc.service.WorkflowMainService; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | @RequestMapping("workflowMain") |
| | |
| | | @Autowired |
| | | private WorkflowLinkService linkService; |
| | | |
| | | @PostMapping("workflowMainList") |
| | | @ApiOperation(value = "查询各状态工单列表",notes = "待处理:type=0,已处理:type=1,已归档:type=2,已撤销:type=3") |
| | | public Response<PageInfo<WorkflowMain>> getList(@RequestBody WorkflowMain main,@RequestParam Integer type, @RequestParam Integer pageNum, @RequestParam Integer pageSize){ |
| | | Long userId = ActionUtil.getUser().getUId(); |
| | | return new Response<PageInfo<WorkflowMain>>().set(1,service.getPendingList(userId,type,pageNum,pageSize,main)); |
| | | } |
| | | |
| | | @GetMapping("basicInfo") |
| | | @ApiOperation(value = "工单基本状态") |
| | | public Response<WorkflowMain> getBasicInfo(@RequestParam Integer mainId){ |
| | | return new Response<WorkflowMain>().set(1,service.getBaseInfo(mainId)); |
| | | } |
| | | |
| | | //本人的单据: 已审批,审批中,已撤销,已驳回 |
| | | //接收到的单据: 待审核,(待接单审核?),已审核 |
| | | /** |
| | | * 本人的单据: |
| | | * 已审批,审批中,已撤销,已驳回 |
| | | * */ |
| | | @GetMapping("ownStatistics") |
| | | @ApiOperation(value = "本人的单据统计") |
| | | public Response<Map<Integer,Integer>> getOwnStatistics(int type){ |
| | | int userId = ActionUtil.getUser().getUId().intValue(); |
| | | return service.getOwnStatistics(userId,type); |
| | | } |
| | | |
| | | /** |
| | | * 本人的单据: |
| | | * 已审批,审批中,已撤销,已驳回 |
| | | * */ |
| | | @GetMapping("ownListPage") |
| | | @ApiOperation(value = "本人的单据列表分页") |
| | | public Response<PageInfo<WorkflowMain>> ownListPage(int type,int status,int pageNum,int pageSize){ |
| | | int userId = ActionUtil.getUser().getUId().intValue(); |
| | | return service.ownListPage(userId,type,status,pageNum,pageSize); |
| | | } |
| | | |
| | | /** |
| | | * 接收到的单据: |
| | | * 放电计划临时表中存在: 待审核,待接单审核,已审核 |
| | | * */ |
| | | @GetMapping("receivedStatistics") |
| | | @ApiOperation(value = "接收到的单据统计") |
| | | public Response<Map<Integer,Integer>> getReceivedStatistics(int type){ |
| | | UserInf user = ActionUtil.getUser(); |
| | | return service.getReceivedStatistics(type,user); |
| | | } |
| | | |
| | | /** |
| | | * 接收到的单据: |
| | | * 放电计划临时表中存在: 待审核,待接单审核,已审核 |
| | | * */ |
| | | @GetMapping("receivedListPage") |
| | | @ApiOperation(value = "接收到的单据列表分页") |
| | | public Response<PageInfo<WorkflowMain>> getReceivedListPage(int type,int status,int pageNum,int pageSize){ |
| | | UserInf user = ActionUtil.getUser(); |
| | | return service.getReceivedListPage(type,status,user,pageNum,pageSize); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.whyc.dto; |
| | | |
| | | import com.whyc.pojo.BattDischargePlanTemp; |
| | | import com.whyc.pojo.WorkflowLink; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class WorkflowLinkDTO { |
| | | private WorkflowLink link; |
| | | private List<BattDischargePlanTemp> tempList; |
| | | |
| | | public WorkflowLink getLink() { |
| | | return link; |
| | | } |
| | | |
| | | public void setLink(WorkflowLink link) { |
| | | this.link = link; |
| | | } |
| | | |
| | | public List<BattDischargePlanTemp> getTempList() { |
| | | return tempList; |
| | | } |
| | | |
| | | public void setTempList(List<BattDischargePlanTemp> tempList) { |
| | | this.tempList = tempList; |
| | | } |
| | | } |
| | |
| | | |
| | | public interface BattDevAlarmDataMapper extends CustomMapper<BattDevAlarmData> { |
| | | int searchNums(int uId); |
| | | int getRealTimeWithLevel1(int uId); |
| | | } |
| | |
| | | //实时告警记录总数查询 |
| | | int serchRealTime(int uId); |
| | | |
| | | int getRealTimeWithLevel1(int uId); |
| | | |
| | | //电池单体健康率 |
| | | List<AlarmRes> serchGood(int uId); |
| | | |
| | |
| | | //电源告警个数 |
| | | int getAlarmNum(int uId); |
| | | |
| | | int getRealTimeWithLevel1(int uId); |
| | | |
| | | //通信电源告警--认证送检-配电柜专用 |
| | | List<PwrdevAlarm> getAllPage2(PwrdevAlarm pwrdevAlarm); |
| | | |
| | |
| | | package com.whyc.mapper; |
| | | |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.pojo.WorkflowLink; |
| | | |
| | | import java.util.List; |
| | | |
| | | public interface WorkflowLinkMapper extends CustomMapper<WorkflowLink>{ |
| | | |
| | | List<WorkflowLink> getReceivedList(int type, UserInf user); |
| | | |
| | | } |
| | |
| | | package com.whyc.mapper; |
| | | |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.pojo.WorkflowMain; |
| | | |
| | | import java.util.List; |
| | | |
| | | public interface WorkflowMainMapper extends CustomMapper<WorkflowMain>{ |
| | | |
| | | List<WorkflowMain> getPendingWorkflowList(Long userId,Integer type,WorkflowMain main); |
| | | |
| | | WorkflowMain getBaseInfo(Integer mainId); |
| | | |
| | | List<WorkflowMain> getReceivedListByUserAndType(UserInf user, int type, int status); |
| | | |
| | | } |
| | |
| | | /**是否及时*/ |
| | | @TableField("is_in_time") |
| | | private Integer inTime; |
| | | /**告警工单拓展:告警工单id*/ |
| | | private Integer alarmOrderId; |
| | | @TableField(exist = false) |
| | | private WorkflowAlarm workflowAlarm; |
| | | @TableField(exist = false) |
| | | private List<WorkflowLink> linkList; |
| | | /**工单状态: |
| | |
| | | * */ |
| | | private Integer type; |
| | | |
| | | @TableField(exist = false) |
| | | private BattDischargePlanTemp temp; |
| | | |
| | | public WorkflowMain(Integer id, Integer status,String endReason,Date endTime) { |
| | | this.id = id; |
| | | this.status = status; |
| | | this.endReason = endReason; |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public WorkflowMain() { |
| | | |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | |
| | | |
| | | public void setOrderId(String orderId) { |
| | | this.orderId = orderId; |
| | | } |
| | | |
| | | public Integer getAlarmOrderId() { |
| | | return alarmOrderId; |
| | | } |
| | | |
| | | public void setAlarmOrderId(Integer alarmOrderId) { |
| | | this.alarmOrderId = alarmOrderId; |
| | | } |
| | | |
| | | public String getTitle() { |
| | |
| | | this.inTime = inTime; |
| | | } |
| | | |
| | | public WorkflowAlarm getWorkflowAlarm() { |
| | | return workflowAlarm; |
| | | } |
| | | |
| | | public void setWorkflowAlarm(WorkflowAlarm workflowAlarm) { |
| | | this.workflowAlarm = workflowAlarm; |
| | | } |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public BattDischargePlanTemp getTemp() { |
| | | return temp; |
| | | } |
| | | |
| | | public void setTemp(BattDischargePlanTemp temp) { |
| | | this.temp = temp; |
| | | } |
| | | } |
| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.whyc.constant.WorkflowDischargePlanEnum; |
| | | import com.whyc.constant.WorkflowEnum; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.factory.ThreadPoolExecutorFactory; |
| | | import com.whyc.mapper.BattDischargePlanTempMapper; |
| | | import com.whyc.pojo.*; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.DateUtil; |
| | | import com.whyc.util.ExcelUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.ServletContext; |
| | | import javax.swing.*; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | import java.util.concurrent.CountDownLatch; |
| | | import java.util.concurrent.ThreadPoolExecutor; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | |
| | | item.setCreateTime(now); |
| | | item.setMainId(main.getId()); |
| | | }); |
| | | updateList(list); |
| | | |
| | | return new Response().setII(1,"提交完成"); |
| | | } |
| | | |
| | | public void updateList(List<BattDischargePlanTemp> list) { |
| | | //化整为零,避免sql拼接太长导致无法执行 |
| | | int step = 20; |
| | | for (int i = 0; i < list.size(); i = i+step) { |
| | |
| | | mapper.updateList(list.subList(i, list.size())); |
| | | } |
| | | } |
| | | |
| | | return new Response().setII(1,"更新完成"); |
| | | } |
| | | |
| | | |
| | |
| | | return new Response().set(number); |
| | | } |
| | | |
| | | //实时1级告警记录总数查询 |
| | | public Response getRealTimeWithLevel1(int uId) { |
| | | int number=mapper.getRealTimeWithLevel1(uId); |
| | | return new Response().set(number); |
| | | } |
| | | |
| | | //电池告警实时查询(确认告警) |
| | | public Response update(int num) { |
| | | UpdateWrapper wrapper = new UpdateWrapper<>(); |
| | |
| | | return battDevAlarmDataMapper.searchNums(userId); |
| | | } |
| | | |
| | | public int getRealTimeWithLevel1(int userId) { |
| | | return battDevAlarmDataMapper.getRealTimeWithLevel1(userId); |
| | | } |
| | | |
| | | //今日实时告警 |
| | | public Response getDalmToday(int userId) { |
| | | try { |
| | |
| | | public int getAlarmNumByUserId(int userId) { |
| | | return mapper.getAlarmNum(userId); |
| | | } |
| | | //实时1级电源告警个数 |
| | | public int getRealTimeWithLevel1(int userId) { |
| | | return mapper.getRealTimeWithLevel1(userId); |
| | | } |
| | | |
| | | //首页电源总个数 |
| | | public int getHomeAlarmNum(int uId) { |
| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.whyc.constant.RoleEnum; |
| | | import com.whyc.constant.WorkflowDischargePlanEnum; |
| | | import com.whyc.constant.WorkflowEnum; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.dto.WorkflowLinkDTO; |
| | | import com.whyc.mapper.WorkflowLinkMapper; |
| | | import com.whyc.mapper.WorkflowMainMapper; |
| | | import com.whyc.pojo.BattDischargePlanTemp; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.pojo.WorkflowLink; |
| | | import com.whyc.pojo.WorkflowMain; |
| | | import com.whyc.util.ActionUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class WorkflowLinkService { |
| | |
| | | @Resource |
| | | private WorkflowLinkMapper mapper; |
| | | |
| | | @Resource |
| | | private WorkflowMainMapper mainMapper; |
| | | @Autowired |
| | | private WorkflowMainService mainService; |
| | | |
| | | @Autowired |
| | | private BattDischargePlanTempService battDischargePlanTempService; |
| | | |
| | | public void addBatch(List<WorkflowLink> links){ |
| | | mapper.insertBatchSomeColumn(links); |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 新建 主表记录:status更新为 |
| | | * 当前link表记录: |
| | | * |
| | | * 派发 dealType=0 |
| | | * 当前link表记录:status更新为2(处理中) |
| | | * 新增同级节点link表记录:dealType设置为0,status设置为3(待回复) |
| | | * |
| | | * 转派 dealType=1 (分为指定给班组或者个人) |
| | | * 主表记录:status更新为4(二级处理中) |
| | | * 当前link表记录:status更新为2(处理中) |
| | | * 新增link表记录:如果指定的是role_id(班组),则班组下面的所有人可见,status为0(待处理) |
| | | * |
| | | * 移交 dealType=2 |
| | | * 当前link表记录:status更新为5(已完成) |
| | | * 新增link表记录:status更新为0(待处理) |
| | | * |
| | | * 分派 dealType=3 |
| | | * 当前link表记录:status更新为2(处理中),deal_task_num更新 |
| | | * 新增link表记录:status更新为3(待回复),dealType为3(分派) |
| | | * |
| | | * 驳回 dealType=4 |
| | | * 当前link表记录:status更新为5 {同时doc指示dealType更新为5(回复),这里我认为不需要改变该值} |
| | | * 父节点表记录: deal_tasks_reply_num 减1 |
| | | * 新增link表记录:重新分派给他,status设置为3(待回复) |
| | | * |
| | | * 通过 dealType=5 |
| | | * 当前link表记录:status更新为5,填写deal_reason |
| | | * 父节点表记录: 查看是否全部回复,如果是,则更新status为 |
| | | * |
| | | * 回复 dealType=6 |
| | | * 当前link表记录:status更新为6(待审批) |
| | | * 父节点表记录:status更新为4(处理回复),deal_task_reply_num 加1 |
| | | * |
| | | * 处理并归档 dealType=7 |
| | | * 主表记录:status更新为5(归档),填写end_reason |
| | | * 当前link表记录:status更新为5(完成) |
| | | * |
| | | */ |
| | | public boolean update(WorkflowLink link) { |
| | | boolean updateFlag = true; |
| | | switch (link.getDealType()){ |
| | | case 0: { |
| | | boolean updateRes = updateDealType0(link); |
| | | updateFlag = updateRes; |
| | | /**传入id,mainId,processLevel,status,dealReason或者dealRejectReason |
| | | * @param linkDTO 节点数据传输类 |
| | | * */ |
| | | public Response updateLinkOfDischargePlanTemp(WorkflowLinkDTO linkDTO) { |
| | | WorkflowLink link = linkDTO.getLink(); |
| | | List<BattDischargePlanTemp> tempList = linkDTO.getTempList(); |
| | | String processLevel = link.getProcessLevel(); |
| | | Date now = new Date(); |
| | | int userId = ActionUtil.getUser().getUId().intValue(); |
| | | switch (processLevel){ |
| | | case "P1"://当前节点为过程1-会签,本场景没有拒绝选项 |
| | | { |
| | | battDischargePlanTempService.updateList(tempList); |
| | | updateLinkField(link); |
| | | //判断会签是否完成,完成则新建下一步的节点 |
| | | int leftAssignNum = getLeftAssignNum(link.getMainId(),link.getProcessLevel()); |
| | | if(leftAssignNum == 0){ //剩余会签数量为0,说明会签已经完成 |
| | | WorkflowLink linkNew = new WorkflowLink(); |
| | | linkNew.setMainId(link.getMainId()); |
| | | linkNew.setParentId(link.getId()); |
| | | linkNew.setProcessLevel(WorkflowDischargePlanEnum.PROCESS_MANAGER1SIGN.getProcessLevel()); |
| | | linkNew.setProcessLevelName(WorkflowDischargePlanEnum.PROCESS_MANAGER1SIGN.getProcessLevelName()); |
| | | linkNew.setCreateTime(now); |
| | | linkNew.setDealRoleId(RoleEnum.ADMIN.getId()); |
| | | linkNew.setDealType(WorkflowEnum.TYPE_TRANSFER_DISPATCH.getValue()); |
| | | linkNew.setDealDesc("班组会签完成"); |
| | | linkNew.setStatus(WorkflowEnum.STATUS_TAKING.getValue()); |
| | | mapper.insert(linkNew); |
| | | } |
| | | break; |
| | | } |
| | | case 1: { |
| | | updateDealType1(link); |
| | | case "P2"://当前节点为过程2-管理审核 |
| | | { |
| | | link.setDealUserId(userId); |
| | | if(link.getStatus() == WorkflowEnum.STATUS_REJECT.getValue().intValue()){ //驳回 |
| | | updateLinkFieldAndFinish(link); |
| | | }else{ //通过 |
| | | updateLinkField(link); |
| | | //新建下一节点-领导层 |
| | | WorkflowLink linkNew = new WorkflowLink(); |
| | | linkNew.setMainId(link.getMainId()); |
| | | linkNew.setParentId(link.getId()); |
| | | linkNew.setProcessLevel(WorkflowDischargePlanEnum.PROCESS_MANAGER2SIGN.getProcessLevel()); |
| | | linkNew.setProcessLevelName(WorkflowDischargePlanEnum.PROCESS_MANAGER2SIGN.getProcessLevelName()); |
| | | linkNew.setCreateTime(now); |
| | | linkNew.setDealRoleId(RoleEnum.LEADER.getId()); |
| | | linkNew.setDealType(WorkflowEnum.TYPE_TRANSFER_DISPATCH.getValue()); |
| | | String dealUserName = ActionUtil.getUser().getUName(); |
| | | linkNew.setDealDesc(dealUserName+"审核完成"); |
| | | linkNew.setStatus(WorkflowEnum.STATUS_TAKING.getValue()); |
| | | mapper.insert(linkNew); |
| | | } |
| | | break; |
| | | } |
| | | case 2:{ |
| | | updateDealType2(link); |
| | | break; |
| | | } |
| | | case 3:{ |
| | | updateDealType3(link); |
| | | break; |
| | | } |
| | | case 4:{ |
| | | updateDealType4(link); |
| | | break; |
| | | } |
| | | case 5:{ |
| | | updateDealType5(link); |
| | | break; |
| | | } |
| | | case 6:{ |
| | | updateDealType6(link); |
| | | break; |
| | | } |
| | | case 7:{ |
| | | updateDealType7(link); |
| | | case "P3"://当前节点为过程3-领导审批 |
| | | { |
| | | link.setDealUserId(userId); |
| | | updateLinkFieldAndFinish(link); |
| | | break; |
| | | } |
| | | } |
| | | return updateFlag; |
| | | return new Response().setII(1,"更新完成"); |
| | | } |
| | | |
| | | /** |
| | | * 接单 |
| | | * 先判断:是否已经被接单 |
| | | * |
| | | * @param mainId 特定的单据 |
| | | * @param processLevel 特定的过程 |
| | | * @return 特定单据,特定过程,未完成的会签的数量 |
| | | */ |
| | | private boolean updateDealType0(WorkflowLink link) { |
| | | QueryWrapper<WorkflowLink> queryWrapper = Wrappers.query(); |
| | | UpdateWrapper<WorkflowLink> wrapper = Wrappers.update(); |
| | | private int getLeftAssignNum(Integer mainId, String processLevel) { |
| | | QueryWrapper<WorkflowLink> query = Wrappers.query(); |
| | | query.select("count(*) as id").eq("main_id",mainId).eq("process_level",processLevel).ne("status",WorkflowEnum.STATUS_FINISH.getValue()); |
| | | return mapper.selectOne(query).getId(); |
| | | } |
| | | |
| | | //先判断,是否已经被接单 |
| | | queryWrapper.select("deal_user_id").eq("id",link.getId()).last(" limit 1"); |
| | | WorkflowLink workflowLink = mapper.selectOne(queryWrapper); |
| | | if(workflowLink.getDealUserId()!=null){ |
| | | return false; |
| | | /** |
| | | * 更新节点,主节点不完结 |
| | | * @param link 参数id,status,dealReason或者dealRejectReason |
| | | */ |
| | | private void updateLinkField(WorkflowLink link) { |
| | | Date now = new Date(); |
| | | link.setDealTime(now); |
| | | mapper.updateById(link); |
| | | } |
| | | |
| | | /** |
| | | * 更新节点,主节点完结,单据完结 |
| | | * @param link 参数id,mainId,status,dealReason或者dealRejectReason |
| | | */ |
| | | private void updateLinkFieldAndFinish(WorkflowLink link) { |
| | | updateLinkField(link); |
| | | Date now = link.getDealTime(); |
| | | if(link.getStatus() == WorkflowEnum.STATUS_FINISH.getValue().intValue()){ //通过 |
| | | mainService.updateStatus(link.getMainId(),WorkflowEnum.MAIN_STATUS_END_PASS.getValue(),link.getDealReason(),now); |
| | | }else{ //驳回 |
| | | mainService.updateStatus(link.getMainId(),WorkflowEnum.MAIN_STATUS_END_REJECT.getValue(),link.getDealRejectReason(),now); |
| | | } |
| | | |
| | | wrapper.set("deal_user_id",link.getDealUserId()).set("status",WorkflowEnum.STATUS_PENDING) |
| | | .eq("id",link.getId()); |
| | | mapper.update(null,wrapper); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 转派 |
| | | */ |
| | | private void updateDealType1(WorkflowLink link) { |
| | | |
| | | updateLinkStatus(link.getId(),WorkflowEnum.STATUS_DEALING.getValue(),null,null,null,null); |
| | | |
| | | if(link.getDealUserId()==null){ |
| | | link.setStatus(WorkflowEnum.STATUS_TAKE.getValue()); |
| | | }else{ |
| | | |
| | | link.setStatus(WorkflowEnum.STATUS_PENDING.getValue()); |
| | | public Map<Integer, Integer> getReceivedStatistics(int type, UserInf user) { |
| | | Map<Integer,Integer> statistics = new HashMap<>(); |
| | | statistics.put(1,0); |
| | | statistics.put(6,0); |
| | | statistics.put(58,0); |
| | | List<WorkflowLink> links = mapper.getReceivedList(type,user); |
| | | Map<Integer, List<WorkflowLink>> receivedListMap = links.stream().collect(Collectors.groupingBy(WorkflowLink::getStatus)); |
| | | Set<Integer> statusSet = receivedListMap.keySet(); |
| | | for (Integer status : statusSet) { |
| | | if(status == 5 || status == 8){ |
| | | statistics.put(58,statistics.get(58)+receivedListMap.get(status).size()); |
| | | }else{ |
| | | statistics.put(status,receivedListMap.get(status).size()); |
| | | } |
| | | } |
| | | link.setParentId(link.getId()); |
| | | /* link.setDealUserId(link.getDealUserId()); |
| | | link.setDealRoleId(link.getDealRoleId()); |
| | | link.setMainId(link.getMainId());*/ |
| | | link.setDealDesc(link.getDealDesc()+";"+link.getDealReason()); |
| | | link.setDealReason(null); |
| | | mapper.insert(link); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 移交 |
| | | */ |
| | | private void updateDealType2(WorkflowLink link) { |
| | | updateLinkStatus(link.getId(),WorkflowEnum.STATUS_FINISH.getValue(),null,null,link.getDealReason(),null); |
| | | |
| | | if(link.getDealUserId()==null){ |
| | | link.setStatus(WorkflowEnum.STATUS_TAKE.getValue()); |
| | | }else{ |
| | | |
| | | link.setStatus(WorkflowEnum.STATUS_PENDING.getValue()); |
| | | } |
| | | //link.setParentId(link.getId()); |
| | | link.setParentId(link.getParentId()); |
| | | link.setDealDesc(link.getDealReason()); |
| | | link.setDealReason(null); |
| | | mapper.insert(link); |
| | | } |
| | | |
| | | /** |
| | | * 分派 |
| | | */ |
| | | private void updateDealType3(WorkflowLink link) { |
| | | List<Integer> dealUserIdList = link.getDealUserIdList(); |
| | | updateLinkStatus(link.getId(), WorkflowEnum.STATUS_DEALING.getValue(), dealUserIdList.size(), null, null,null); |
| | | |
| | | List<WorkflowLink> workflowLinkList = new LinkedList<>(); |
| | | dealUserIdList.stream().forEach(dealUserId->{ |
| | | WorkflowLink linkTemp = new WorkflowLink(); |
| | | |
| | | linkTemp.setCreateTime(new Date()); |
| | | linkTemp.setRequiredFinishTime(link.getRequiredFinishTime()); |
| | | linkTemp.setMainId(link.getMainId()); |
| | | linkTemp.setParentId(link.getId()); |
| | | linkTemp.setDealUserId(dealUserId); |
| | | linkTemp.setDealDesc(link.getDealReason()); |
| | | linkTemp.setDealType(link.getDealType()); |
| | | linkTemp.setStatus(WorkflowEnum.STATUS_WAIT_FOR_REPLY.getValue()); |
| | | |
| | | workflowLinkList.add(linkTemp); |
| | | }); |
| | | |
| | | mapper.insertBatchSomeColumn(workflowLinkList); |
| | | } |
| | | |
| | | /** |
| | | * 驳回 |
| | | */ |
| | | private void updateDealType4(WorkflowLink link) { |
| | | updateLinkStatus(link.getId(),WorkflowEnum.STATUS_FINISH.getValue(),null,null,null,link.getReplyContent()); |
| | | |
| | | updateLinkStatus(link.getParentId(),null,null,link.getDealTaskReplyNum()-1,null,null); |
| | | |
| | | WorkflowLink newLink = new WorkflowLink(); |
| | | newLink.setMainId(link.getMainId()); |
| | | newLink.setParentId(link.getId()); |
| | | newLink.setDealType(WorkflowEnum.TYPE_ASSIGN.getValue()); |
| | | newLink.setStatus(WorkflowEnum.STATUS_WAIT_FOR_REPLY.getValue()); |
| | | newLink.setDealUserId(link.getDealUserId()); |
| | | newLink.setDealDesc(link.getReplyContent()); |
| | | |
| | | mapper.insert(newLink); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 通过 |
| | | */ |
| | | private void updateDealType5(WorkflowLink link) { |
| | | updateLinkStatus(link.getId(),WorkflowEnum.STATUS_FINISH.getValue(),null,null,null,link.getReplyContent()); |
| | | } |
| | | |
| | | /** |
| | | * 回复 |
| | | */ |
| | | private void updateDealType6(WorkflowLink link) { |
| | | updateLinkStatus(link.getId(),WorkflowEnum.STATUS_WAIT_FOR_APPROVE.getValue(),null,null,link.getDealReason(),null); |
| | | |
| | | updateLinkStatus(link.getParentId(),WorkflowEnum.STATUS_DEAL_WITH_REPLY.getValue(),null,link.getDealTaskReplyNum()+1,link.getDealReason(),null); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 处理并归档 |
| | | * TODO 最后处理这个逻辑 |
| | | */ |
| | | private void updateDealType7(WorkflowLink link) { |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 抽取出来共用的更新表记录方法 |
| | | */ |
| | | private void updateMainStatus(Integer mainId,Integer status){ |
| | | UpdateWrapper<WorkflowMain> mainWrapper = Wrappers.update(); |
| | | |
| | | mainWrapper.set("status",status) |
| | | .eq("id",mainId); |
| | | mainMapper.update(null,mainWrapper); |
| | | } |
| | | |
| | | /** |
| | | * 抽取出来共用的更新表记录方法 |
| | | */ |
| | | private void updateLinkStatus(Integer linkId,Integer status,Integer dealTaskNum,Integer dealTaskReplyNum,String dealReason,String replyContent){ |
| | | UpdateWrapper<WorkflowLink> linkWrapper = Wrappers.update(); |
| | | |
| | | linkWrapper.set("status",status) |
| | | .eq("id",linkId); |
| | | if(dealTaskNum!=null){ |
| | | linkWrapper.set("deal_task_num",dealTaskNum); |
| | | } |
| | | if(dealTaskReplyNum!=null){ |
| | | linkWrapper.set("deal_task_reply_num",dealTaskReplyNum); |
| | | } |
| | | if(dealReason!=null){ |
| | | linkWrapper.set("deal_reason",dealReason).set("deal_time",new Date()); |
| | | } |
| | | if(replyContent!=null){ |
| | | linkWrapper.set("reply_content",replyContent).set("reply_time",new Date()); |
| | | } |
| | | |
| | | mapper.update(null,linkWrapper); |
| | | return statistics; |
| | | } |
| | | } |
| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.mapper.WorkflowLinkMapper; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.WorkflowMainMapper; |
| | | import com.whyc.pojo.WorkflowAlarm; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.pojo.WorkflowLink; |
| | | import com.whyc.pojo.WorkflowMain; |
| | | import com.whyc.util.ActionUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.ServletContext; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Comparator; |
| | | import java.util.Date; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class WorkflowMainService { |
| | |
| | | @Resource |
| | | private WorkflowMainMapper mapper; |
| | | |
| | | @Resource |
| | | private WorkflowLinkMapper linkMapper; |
| | | @Autowired |
| | | private WorkflowLinkService linkService; |
| | | |
| | | /** |
| | | * 分派单号: |
| | |
| | | mapper.insertBatchSomeColumn(workflowMainList); |
| | | } |
| | | |
| | | public PageInfo<WorkflowMain> getPendingList(Long userId,Integer type,Integer pageNum,Integer pageSize,WorkflowMain main) { |
| | | PageHelper.startPage(pageNum,pageSize,true); |
| | | //获取系统生成,待处理的工单,获取正在工单节点表中待处理的工单 |
| | | List<WorkflowMain> workflowList = mapper.getPendingWorkflowList(userId,type,main); |
| | | PageInfo<WorkflowMain> pageInfo = new PageInfo<>(workflowList); |
| | | |
| | | return pageInfo; |
| | | } |
| | | |
| | | |
| | | public WorkflowMain getBaseInfo(Integer mainId) { |
| | | return mapper.getBaseInfo(mainId); |
| | |
| | | //return linkMapper. |
| | | return null; |
| | | } |
| | | |
| | | public void updateStatus(Integer id, Integer status,String endReason,Date endTime) { |
| | | WorkflowMain main = new WorkflowMain(id,status,endReason,endTime); |
| | | mapper.updateById(main); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param userId |
| | | * @param type |
| | | * @see com.whyc.constant.WorkflowEnum |
| | | * |
| | | * @return |
| | | */ |
| | | public Response<Map<Integer,Integer>> getOwnStatistics(int userId, int type) { |
| | | Map<Integer,Integer> statistics = new HashMap<>(); |
| | | statistics.put(1,0); |
| | | statistics.put(2,0); |
| | | statistics.put(3,0); |
| | | statistics.put(4,0); |
| | | QueryWrapper<WorkflowMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",userId); |
| | | List<WorkflowMain> mains = mapper.selectList(query); |
| | | Map<Integer, List<WorkflowMain>> statusListMap = mains.stream().collect(Collectors.groupingBy(WorkflowMain::getStatus)); |
| | | Set<Integer> statusSet = statusListMap.keySet(); |
| | | for (Integer status : statusSet) { |
| | | statistics.put(status,statusListMap.get(status).size()); |
| | | } |
| | | return new Response<Map<Integer,Integer>>().set(1,statistics); |
| | | } |
| | | |
| | | public Response<PageInfo<WorkflowMain>> ownListPage(int userId, int type, int status, int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<WorkflowMain> mains = getOwnListByUserAndType(userId,type,status); |
| | | PageInfo<WorkflowMain> pageInfo = new PageInfo<>(mains); |
| | | return new Response<PageInfo<WorkflowMain>>().set(1,pageInfo); |
| | | } |
| | | |
| | | private List<WorkflowMain> getOwnListByUserAndType(int userId, int type, int status) { |
| | | QueryWrapper<WorkflowMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",userId).eq("type",type).eq("status",status); |
| | | return mapper.selectList(query); |
| | | } |
| | | |
| | | public Response<Map<Integer,Integer>> getReceivedStatistics(int type, UserInf user) { |
| | | Map<Integer,Integer> statisticsMap = linkService.getReceivedStatistics(type,user); |
| | | return new Response<Map<Integer,Integer>>().set(1,statisticsMap); |
| | | } |
| | | |
| | | public Response<PageInfo<WorkflowMain>> getReceivedListPage(int type, int status, UserInf user, int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<WorkflowMain> mains = getReceivedListByUserAndType(user,type,status); |
| | | PageInfo<WorkflowMain> pageInfo = new PageInfo<>(mains); |
| | | return new Response<PageInfo<WorkflowMain>>().set(1,pageInfo); |
| | | } |
| | | |
| | | private List<WorkflowMain> getReceivedListByUserAndType(UserInf user, int type, int status) { |
| | | return mapper.getReceivedListByUserAndType(user,type,status); |
| | | } |
| | | } |
| | |
| | | Response res_devAlarmNum = new Response(); |
| | | Map<String, Integer> devAlarmNumMap = new HashMap<>(); |
| | | try { |
| | | int battAlarmNum = battAlarmDataService.serchRealTime(userId).getCode(); |
| | | int devAlarmNum = devAlarmDataService.getAlarmNum(userId); |
| | | int powerAlarmNum = powerAlarmService.getAlarmNumByUserId(userId); |
| | | int battAlarmNum = battAlarmDataService.getRealTimeWithLevel1(userId).getCode(); |
| | | int devAlarmNum = devAlarmDataService.getRealTimeWithLevel1(userId); |
| | | int powerAlarmNum = powerAlarmService.getRealTimeWithLevel1(userId); |
| | | devAlarmNumMap.put("battAlarmNum",battAlarmNum); |
| | | devAlarmNumMap.put("devAlarmNum",devAlarmNum); |
| | | devAlarmNumMap.put("powerAlarmNum",powerAlarmNum); |
| | |
| | | and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid |
| | | and db_user.tb_user_inf.uid=#{uId} ) |
| | | </select> |
| | | |
| | | <select id="getRealTimeWithLevel1" resultType="java.lang.Integer"> |
| | | select count(dev_id) |
| | | from db_alarm.tb_devalarm_data |
| | | where alm_level=1 |
| | | and tb_devalarm_data.dev_id in (select distinct db_battinf.tb_battinf.FbsDeviceId |
| | | from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf |
| | | where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId |
| | | and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id |
| | | and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid |
| | | and db_user.tb_user_inf.uid=#{uId} ) |
| | | </select> |
| | | </mapper> |
| | |
| | | <mapper namespace="com.whyc.mapper.BattDischargePlanTempMapper" > |
| | | <update id="updateList"> |
| | | <foreach collection="list" item="item"> |
| | | update web_site.tb_battdischarge_plan_temp set discharge_start_time = #{item.dischargeStartTime},create_time = #{item.createTime},submit_status=1,main_id=#{item.mainId} where id = #{item.id}; |
| | | update web_site.tb_battdischarge_plan_temp set discharge_start_time = #{item.dischargeStartTime},submit_status=1 |
| | | <if test="item.createTime!=null"> |
| | | ,create_time = #{item.createTime} |
| | | ,main_id=#{item.mainId} |
| | | </if> |
| | | where id = #{item.id}; |
| | | </foreach> |
| | | </update> |
| | | <select id="getValidOneByYear" resultType="com.whyc.pojo.BattDischargePlanTemp"> |
| | |
| | | and db_user.tb_user_inf.uid=#{uId} ) |
| | | </select> |
| | | |
| | | <select id="getRealTimeWithLevel1" parameterType="java.lang.Integer" resultType="java.lang.Integer"> |
| | | select count(num) as number from db_alarm.tb_battalarm_data |
| | | where |
| | | alm_cleared_type=0 |
| | | and alm_level=1 |
| | | and db_alarm.tb_battalarm_data.BattGroupId |
| | | in (select distinct db_battinf.tb_battinf.battgroupid |
| | | from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf |
| | | where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId |
| | | and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id |
| | | and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid |
| | | and db_user.tb_user_inf.uid=#{uId} ) |
| | | </select> |
| | | |
| | | <select id="serchGood" parameterType="java.lang.Integer" resultType="AlarmStaticRes"> |
| | | SELECT battgroupid,count(DISTINCT MonNum) as number,alm_id |
| | | FROM db_alarm.tb_battalarm_data |
| | |
| | | and db_user.tb_user_inf.uid=#{uid} ) ; |
| | | </select> |
| | | |
| | | <select id="getRealTimeWithLevel1" parameterType="java.lang.Integer" resultType="java.lang.Integer"> |
| | | select count(*) as num from db_pwrdev_alarm.tb_pwrdev_alarm alarm,db_pwrdev_inf.tb_pwrdev_inf inf |
| | | where alarm.PowerDeviceId = inf.PowerDeviceId |
| | | and alarm.alm_level=1 |
| | | and inf.StationId in ( select distinct inf.StationId from |
| | | (select StationId from db_battinf.tb_battinf union select StationId from db_pwrdev_inf.tb_pwrdev_inf ) inf, |
| | | db_user.tb_user_battgroup_baojigroup_battgroup, |
| | | db_user.tb_user_battgroup_baojigroup_usr, |
| | | db_user.tb_user_inf |
| | | where db_user.tb_user_battgroup_baojigroup_battgroup.StationId=inf.StationId |
| | | and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id |
| | | and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid |
| | | and db_user.tb_user_inf.uid=#{uid} ) ; |
| | | </select> |
| | | |
| | | <select id="getAllPage2" resultType="com.whyc.pojo.PwrdevAlarm"> |
| | | select alarm.*,inf.StationName from db_pwrdev_alarm.tb_pwrdev_alarm alarm,db_pwrdev_inf.tb_pwrdev_inf inf |
| | | <where> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.whyc.mapper.WorkflowLinkMapper" > |
| | | |
| | | |
| | | <select id="getReceivedList" resultType="com.whyc.pojo.WorkflowLink"> |
| | | ( |
| | | SELECT l.* FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l |
| | | where m.id = l.main_id |
| | | and m.type = #{type} |
| | | and l.deal_user_id = #{user.uId} |
| | | ) |
| | | union all |
| | | ( |
| | | SELECT l.* FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l |
| | | where m.id = l.main_id |
| | | and m.type = #{type} |
| | | and l.deal_role_id = #{user.uRole} |
| | | and l.deal_user_id is null |
| | | ) |
| | | </select> |
| | | </mapper> |
| | |
| | | <mapper namespace="com.whyc.mapper.WorkflowMainMapper" > |
| | | |
| | | <sql id="linkColumn"> |
| | | link.id link_id, |
| | | link.main_id, |
| | | link.parent_id, |
| | | link.process_level, |
| | | link.process_level_name, |
| | | link.create_time link_create_time, |
| | | link.deal_user_id, |
| | | link.deal_type, |
| | | link.deal_desc, |
| | | link.deal_file_name, |
| | | link.deal_file_url, |
| | | link.deal_pic_name, |
| | | link.deal_pic_url, |
| | | link.status link_status, |
| | | link.deal_role_id, |
| | | link.deal_and_close, |
| | | link.deal_reject_reason, |
| | | link.deal_task_num, |
| | | link.deal_task_reply_num, |
| | | link.deal_reason, |
| | | link.required_finish_time, |
| | | link.deal_time, |
| | | link.reply_content, |
| | | link.reply_time |
| | | l.id link_id, |
| | | l.main_id, |
| | | l.parent_id, |
| | | l.process_level, |
| | | l.process_level_name, |
| | | l.create_time link_create_time, |
| | | l.deal_user_id, |
| | | l.deal_type, |
| | | l.deal_desc, |
| | | l.deal_file_name, |
| | | l.deal_file_url, |
| | | l.deal_pic_name, |
| | | l.deal_pic_url, |
| | | l.status link_status, |
| | | l.deal_role_id, |
| | | l.deal_and_close, |
| | | l.deal_reject_reason, |
| | | l.deal_task_num, |
| | | l.deal_task_reply_num, |
| | | l.deal_reason, |
| | | l.required_finish_time, |
| | | l.deal_time, |
| | | l.reply_content, |
| | | l.reply_time |
| | | </sql> |
| | | <resultMap id="Map_WorkflowMain" type="WorkflowMain"> |
| | | <id column="id" property="id" /> |
| | |
| | | <result column="status" property="status"/> |
| | | <result column="is_auto" property="auto"/> |
| | | <result column="type" property="type"/> |
| | | <association property="workflowAlarm" javaType="WorkflowAlarm"> |
| | | <result column="alarm_num" property="alarmNum"/> |
| | | <result column="alarm_record_id" property="alarmRecordId"/> |
| | | <result column="station_id" property="stationId"/> |
| | | <result column="station_name" property="stationName"/> |
| | | <result column="batt_group_id" property="battGroupId"/> |
| | | <result column="batt_group_name" property="battGroupName"/> |
| | | <result column="device_id" property="deviceId"/> |
| | | <result column="alarm_level" property="alarmLevel"/> |
| | | <result column="alarm_name" property="alarmName"/> |
| | | <result column="alarm_time" property="alarmTime"/> |
| | | </association> |
| | | <collection property="linkList" ofType="WorkflowLink"> |
| | | <id column="link_id" property="id"/> |
| | | <result column="main_id" property="mainId"/> |
| | |
| | | and link.main_id = main.id |
| | | and main.id = #{mainId} |
| | | </select> |
| | | <select id="getPendingWorkflowList" resultMap="Map_WorkflowMain"> |
| | | <select id="getReceivedListByUserAndType" resultMap="Map_WorkflowMain"> |
| | | <choose> |
| | | <!-- |
| | | /**节点表(link)状态*/ |
| | | STATUS_PENDING("待处理",0), |
| | | STATUS_TAKE("接单",1), |
| | | STATUS_DEALING("处理中",2), |
| | | STATUS_WAIT_FOR_REPLY("待回复",3), |
| | | STATUS_DEAL_WITH_REPLY("处理回复",4), |
| | | STATUS_FINISH("完成",5), |
| | | STATUS_WAIT_FOR_APPROVE("待审批",6), |
| | | STATUS_CANCEL("已撤销",7), |
| | | --> |
| | | <!--待处理--> |
| | | <when test="type==0"> |
| | | ( |
| | | SELECT |
| | | main.*, |
| | | <include refid="linkColumn" /> |
| | | FROM |
| | | web_site.tb_workflow_main main, |
| | | web_site.tb_workflow_link link |
| | | where |
| | | link.main_id = main.id |
| | | and link.status = 1 |
| | | and deal_role_id in (select distinct baoji_group_id from db_user.tb_user_battgroup_baojigroup_usr where uId = #{userId}) |
| | | <if test="main.title!=null"> |
| | | and title like concat('%',#{main.title},'%') |
| | | </if> |
| | | ) union |
| | | (SELECT |
| | | main.*, |
| | | <include refid="linkColumn" /> |
| | | FROM web_site.tb_workflow_main main, |
| | | web_site.tb_workflow_link link |
| | | WHERE link.main_id = main.id |
| | | and link.status in (0,3,4) |
| | | and deal_user_id = #{userId} |
| | | <if test="main.title!=null"> |
| | | and title like concat('%',#{main.title},'%') |
| | | </if> |
| | | ) |
| | | <!--待接单--> |
| | | <when test="status==1"> |
| | | SELECT m.*,<include refid="linkColumn" /> |
| | | FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l |
| | | where m.id = l.main_id |
| | | and m.type = #{type} |
| | | and l.deal_role_id = #{user.uRole} |
| | | and l.deal_user_id is null |
| | | and l.status = #{status} |
| | | </when> |
| | | <!--已处理--> |
| | | <when test="type==1"> |
| | | SELECT |
| | | main.*, |
| | | <include refid="linkColumn" /> |
| | | FROM |
| | | web_site.tb_workflow_main main, |
| | | web_site.tb_workflow_link link |
| | | WHERE link.main_id = main.id |
| | | and link.status in (2,5,6) |
| | | and deal_user_id = #{userId} |
| | | <if test="main.title!=null"> and title like concat('%',#{main.title},'%')</if> |
| | | </when> |
| | | <!--已归档--> |
| | | <when test="type==2"> |
| | | SELECT * FROM web_site.tb_workflow_main where status = 2 |
| | | <if test="main.title!=null"> and title like concat('%',#{main.title},'%')</if> |
| | | and create_user_id = #{userId}; |
| | | </when> |
| | | <!--已撤销--> |
| | | <otherwise> |
| | | SELECT * FROM web_site.tb_workflow_main where status = 6 |
| | | <if test="main.title!=null"> and title like concat('%',#{main.title},'%')</if> |
| | | and create_user_id = #{userId}; |
| | | SELECT m.*,<include refid="linkColumn" /> |
| | | FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l |
| | | where m.id = l.main_id |
| | | and m.type = #{type} |
| | | and l.deal_user_id = #{user.uId} |
| | | and l.status = #{status} |
| | | </otherwise> |
| | | </choose> |
| | | |
| | | </select> |
| | | </mapper> |