| | |
| | | //处理上报日志 DCA工单 日志存储至子业务 不存在于父级 与跌绊滑 |
| | | String logTitle = Constants.equalsInteger(workorder.getType(), Constants.THREE) ? "跌绊滑风险" : "DCA"; |
| | | workorder.setCreateDate(workorder.getSubmitDate()); |
| | | this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null,null); |
| | | this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null,null,null); |
| | | } |
| | | } |
| | | |
| | |
| | | * @param memberId |
| | | * @param paramr2 转交给的处理人 |
| | | */ |
| | | public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2){ |
| | | public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2,String remark){ |
| | | WorkorderLog workorderLog = new WorkorderLog(); |
| | | workorderLog.setCreateDate(afterWorkorder.getEditDate()); |
| | | workorderLog.setEditDate(afterWorkorder.getEditDate()); |
| | |
| | | workorderLog.setObjType(objType); |
| | | workorderLog.setTitle(title); |
| | | workorderLog.setContent(content); |
| | | workorderLog.setRemark(remark); |
| | | workorderLogMapper.insert(workorderLog); |
| | | return workorderLog.getId(); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | //查询附件信息 |
| | | List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .ne(Multifile::getObjType,Constants.multiFileType.upload) |
| | | .eq(Multifile::getObjId,workorderLog.getId()) |
| | | .orderByAsc(Multifile::getId)); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | | multifile.setFileurlFull(path+multifile.getFileurl()); |
| | | if(!Constants.equalsInteger(workorderLog.getObjType(),Constants.FOUR)){ |
| | | //查询附件信息 |
| | | List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .ne(Multifile::getObjType,Constants.multiFileType.upload) |
| | | .eq(Multifile::getObjId,workorderLog.getId()) |
| | | .orderByAsc(Multifile::getId)); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | | multifile.setFileurlFull(path+multifile.getFileurl()); |
| | | } |
| | | workorderLog.setMultifileList(multifileList); |
| | | } |
| | | workorderLog.setMultifileList(multifileList); |
| | | } |
| | | } |
| | | } |
| | |
| | | .ne(org.apache.commons.lang3.StringUtils.isNotBlank(pageWrap.getQwId()),Workorder::getType,Constants.TWO) |
| | | .in(Objects.nonNull(pageWrap.getDealStatus())&& |
| | | Constants.equalsInteger(pageWrap.getDealStatus(),Constants.ZERO), |
| | | Workorder::getStatus,Constants.WorkOrderStatus.waitConfirm.getKey(),Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) |
| | | Workorder::getStatus,Constants.WorkOrderStatus.waitConfirm.getKey(), |
| | | Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) |
| | | .in(Objects.nonNull(pageWrap.getDealStatus())&& |
| | | Constants.equalsInteger(pageWrap.getDealStatus(),Constants.ONE), |
| | | Workorder::getStatus,Constants.WorkOrderStatus.sheClose.getKey(),Constants.WorkOrderStatus.close.getKey(),Constants.WorkOrderStatus.wtsClose.getKey()) |
| | |
| | | .eq( pageWrap.getDcaNoNum() != null, Workorder::getDcaNoNum, pageWrap.getDcaNoNum()) |
| | | .eq( pageWrap.getDcaRecordId() != null, Workorder::getDcaRecordId, pageWrap.getDcaRecordId()) |
| | | .likeRight( pageWrap.getTypeIdPath() != null,"c3.id_path", pageWrap.getTypeIdPath()) |
| | | .eq( pageWrap.getDcaCsIds() != null, Workorder::getDcaCsIds, pageWrap.getDcaCsIds()) ; |
| | | .eq( pageWrap.getDcaCsIds() != null, Workorder::getDcaCsIds, pageWrap.getDcaCsIds()) |
| | | .ge( pageWrap.getQueryStartTime() != null, Workorder::getCreateDate,pageWrap.getQueryStartTime()) |
| | | .le( pageWrap.getQueryEndTime() != null, Workorder::getCreateDate,pageWrap.getQueryEndTime()) ; |
| | | if ( pageWrap.getMemberName() != null) { |
| | | queryWrapper.and( ms->ms.like(Member::getName, pageWrap.getMemberName()) |
| | | .or().like(Member::getPhone, pageWrap.getMemberName()) ); |
| | |
| | | if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); |
| | | if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); |
| | | }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); |
| | | qwIds.add(workorder.getManagerId()); |
| | | qwIds.remove(closeDTO.getMember().getQwId()); |
| | |
| | | && !workorder.getDealerId().equals(closeDTO.getMember().getQwId()) ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); |
| | | if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); |
| | | }else if(workorder.getDealerId().equals(closeDTO.getMember().getQwId())){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.close.getKey()); |
| | | }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); |
| | | qwIds.add(workorder.getManagerId()); |
| | | qwIds.remove(closeDTO.getMember().getQwId()); |
| | |
| | | workorder.setEditDate(new Date()); |
| | | workorder.setDealTime(new Date()); |
| | | workorder.setDealInfo(closeDTO.getInfo()); |
| | | //子工单 则查询父级工单数据 是否付存在未完成的 如果不存在未完成的则进行主工单状态变化 |
| | | if(Constants.equalsInteger(workorder.getType(),Constants.TWO)&& |
| | | workorderMapper.selectCount(new QueryWrapper<Workorder>().lambda().eq(Workorder::getDcaRecordId,workorder.getDcaRecordId()).eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .ne(Workorder::getId,workorder.getId()).in(Workorder::getStatus, |
| | | Constants.WorkOrderStatus.waitConfirm.getKey(),Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey() |
| | | ))<=Constants.ZERO){ |
| | | Workorder parentWorkorder = new Workorder(); |
| | | parentWorkorder.setId(workorder.getDcaRecordId()); |
| | | parentWorkorder.setEditDate(new Date()); |
| | | parentWorkorder.setStatus(Constants.WorkOrderStatus.close.getKey()); |
| | | workorderMapper.updateById(parentWorkorder); |
| | | } |
| | | workorderMapper.updateById(workorder); |
| | | //处理上报日志 |
| | | Integer logId = this.saveLog(beforeJson,workorder,Constants.THREE,closeDTO.getMember().getId(),"任务已处理",closeDTO.getInfo(),null); |
| | | Integer logId = this.saveLog(beforeJson,workorder,Constants.THREE,closeDTO.getMember().getId(),"任务已处理",closeDTO.getInfo(),null,closeDTO.getInfo()); |
| | | List<Multifile> multifileList = closeDTO.getMultifileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | |
| | | //处理上报日志 |
| | | Integer logId = this.saveLog(beforeJson,workorder, |
| | | Constants.equalsInteger(passOnDTO.getPassOnType(),Constants.ZERO)?Constants.ONE:Constants.TWO |
| | | ,passOnDTO.getMember().getId(),"任务分配",passOnDTO.getInfo(),paramr2); |
| | | ,passOnDTO.getMember().getId(),"任务分配",passOnDTO.getInfo(),paramr2,null); |
| | | List<Multifile> multifileList = passOnDTO.getMultifileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | |
| | | |
| | | this.saveLog(null,workorder, |
| | | Constants.FOUR |
| | | ,member.getId(),"催促","已催促 "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null); |
| | | ,member.getId(),"催促","已催促 "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null,null); |
| | | //发送企微通知 |
| | | Category category = categoryMapper.selectById(workorder.getTypeId()); |
| | | if(Objects.nonNull(category)){ |
| | |
| | | @Override |
| | | public WorkorderIndexNumVO getIndexData(Workorder workorder) { |
| | | WorkorderIndexNumVO model = new WorkorderIndexNumVO(); |
| | | Date startdate = getStartDateByType(workorder.getTimeType()); |
| | | //查询今年所有的数据 |
| | | List<Workorder> list = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() |
| | | .select("type,count(id) as num") |
| | | .eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .ge(startdate!=null,Workorder::getCreateDate,startdate) |
| | | // .lt(endDate!=null,Workorder::getCreateDate,endDate) |
| | | .groupBy(Workorder::getType )); |
| | | if(list !=null){ |
| | | for(Workorder w : list){ |
| | |
| | | } |
| | | } |
| | | } |
| | | List<Workorder> todays = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() |
| | | .select("type,count(id) as num") |
| | | .eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .groupBy(Workorder::getType )); |
| | | if(todays !=null){ |
| | | for(Workorder w : todays){ |
| | | if(Constants.equalsInteger(w.getType(),Constants.ZERO)){ |
| | | //SHE |
| | | model.setTodaySheNum(Constants.formatLongNum(w.getNum())); |
| | | }else if(Constants.equalsInteger(w.getType(),Constants.ONE)){ |
| | | //DCA提交数 |
| | | model.setTodayDcaNum(Constants.formatLongNum(w.getNum())); |
| | | }else if(Constants.equalsInteger(w.getType(),Constants.TWO)){ |
| | | //DCA子工单 |
| | | model.setTodayDcaChildNum(Constants.formatLongNum(w.getNum())); |
| | | }else if(Constants.equalsInteger(w.getType(),Constants.THREE)){ |
| | | //跌绊滑 |
| | | model.setTodayDbhNum(Constants.formatLongNum(w.getNum())); |
| | | } |
| | | } |
| | | } |
| | | |
| | | List<Workorder> yeslist = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() |
| | | .select("type,count(id) as num") |
| | | .eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .in(Workorder::getStatus,Constants.THREE,Constants.FOUR,Constants.FIVE) |
| | | .in(Workorder::getType,Constants.THREE,Constants.TWO) |
| | | .ge(startdate!=null,Workorder::getCreateDate,startdate) |
| | | .groupBy(Workorder::getType )); |
| | | if(yeslist !=null){ |
| | | for(Workorder w : yeslist){ |
| | |
| | | } |
| | | } |
| | | } |
| | | Workorder dcaList = workorderMapper.selectJoinOne(Workorder.class,new MPJLambdaWrapper<Workorder>() |
| | | .select("sum(dca_yes_num) as dcaYesNum,sum(dca_no_num) as dcaNoNum") |
| | | .eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Workorder::getType,Constants.ONE) ); |
| | | if(dcaList !=null){ |
| | | //DCA符合项和不符合项统计 |
| | | model.setDcaYesNum((long)Constants.formatIntegerNum(dcaList.getDcaYesNum())); |
| | | model.setDcaNoNum((long)Constants.formatIntegerNum(dcaList.getDcaNoNum())); |
| | | if(workorder.getTimeType() == null){ |
| | | List<Workorder> todays = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() |
| | | .select("type,count(id) as num") |
| | | .eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_date)=to_days(now())") |
| | | .groupBy(Workorder::getType )); |
| | | if(todays !=null){ |
| | | for(Workorder w : todays){ |
| | | if(Constants.equalsInteger(w.getType(),Constants.ZERO)){ |
| | | //SHE |
| | | model.setTodaySheNum(Constants.formatLongNum(w.getNum())); |
| | | }else if(Constants.equalsInteger(w.getType(),Constants.ONE)){ |
| | | //DCA提交数 |
| | | model.setTodayDcaNum(Constants.formatLongNum(w.getNum())); |
| | | }else if(Constants.equalsInteger(w.getType(),Constants.TWO)){ |
| | | //DCA子工单 |
| | | model.setTodayDcaChildNum(Constants.formatLongNum(w.getNum())); |
| | | }else if(Constants.equalsInteger(w.getType(),Constants.THREE)){ |
| | | //跌绊滑 |
| | | model.setTodayDbhNum(Constants.formatLongNum(w.getNum())); |
| | | } |
| | | } |
| | | } |
| | | Workorder dcaList = workorderMapper.selectJoinOne(Workorder.class,new MPJLambdaWrapper<Workorder>() |
| | | .select("sum(dca_yes_num) as dcaYesNum,sum(dca_no_num) as dcaNoNum") |
| | | .eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Workorder::getType,Constants.ONE) ); |
| | | if(dcaList !=null){ |
| | | //DCA符合项和不符合项统计 |
| | | model.setDcaYesNum((long)Constants.formatIntegerNum(dcaList.getDcaYesNum())); |
| | | model.setDcaNoNum((long)Constants.formatIntegerNum(dcaList.getDcaNoNum())); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | return model; |
| | | } |
| | | |
| | | private Date getStartDateByType(Integer timeType) { |
| | | Date date = null; |
| | | if(timeType == null){ |
| | | return null; |
| | | } else if (timeType == 0) { |
| | | //本周 |
| | | date = DateUtil.getBeginDayOfWeek(0); |
| | | }else if (timeType == 1) { |
| | | //本月 |
| | | date = DateUtil.getBeginDayOfMonth(0); |
| | | }else if (timeType == 2) { |
| | | //本季度 |
| | | date = DateUtil.getBeginDayOfSeason(0); |
| | | }else if (timeType == 3) { |
| | | //本年 |
| | | date = DateUtil.getBeginDayOfYear(0); |
| | | } |
| | | |
| | | return date; |
| | | } |
| | | |
| | | } |