| | |
| | | import com.doumee.dao.business.join.ApproveJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.vo.ApproveDataVO; |
| | | import com.doumee.dao.system.join.NoticesJoinMapper; |
| | | import com.doumee.dao.system.model.Notices; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.response.InternalHomeVO; |
| | | import com.doumee.service.business.ApproveService; |
| | |
| | | import com.doumee.service.system.NoticesService; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.xpath.operations.Bool; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | @Autowired |
| | | private VisitsMapper visitsMapper; |
| | | |
| | | @Autowired |
| | | private NoticesJoinMapper noticesJoinMapper; |
| | | |
| | | @Override |
| | | public Integer create(Approve approve) { |
| | |
| | | } |
| | | } |
| | | |
| | | public void createNoticesData(List<Approve> approveList){ |
| | | for (Approve approve:approveList) { |
| | | Notices notices = new Notices(); |
| | | notices.setCreateDate(new Date()); |
| | | notices.setIsdeleted(Constants.ZERO); |
| | | notices.setObjId(approve.getObjId()); |
| | | notices.setObjId(approve.getApproveType()); |
| | | if(Constants.equalsInteger(approve.getType(),Constants.approveObjectType.unConstructionVisit) |
| | | || Constants.equalsInteger(approve.getType(),Constants.approveObjectType.constructionVisit)){ |
| | | notices.setType(Constants.ZERO); |
| | | }else if(Constants.equalsInteger(approve.getType(),Constants.approveObjectType.visitReporting)){ |
| | | notices.setType(Constants.ONE); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | public void organizeApproveCopyData(ApproveTempl approveTempl,List<ApproveParam> approveCopyList,Integer businessId,List<Approve> approveList){ |
| | | for (ApproveParam approveParam:approveCopyList) { |
| | |
| | | return auditCompany; |
| | | } |
| | | |
| | | public ApproveDataVO arrangeApprovedDataNew(Integer businessId, Integer businessType, Integer memberId){ |
| | | @Override |
| | | public ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId){ |
| | | ApproveDataVO approveDateVO = new ApproveDataVO(); |
| | | approveDateVO.setApproveList(new ArrayList<>()); |
| | | approveDateVO.setCanBeApproved(Constants.ZERO); |
| | | List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class, |
| | | new MPJLambdaWrapper<Approve>(). |
| | | selectAll(Approve.class) |
| | | .selectAs(Member::getName,Approve::getMemberName) |
| | | .selectAs(Member::getPhone,Approve::getMemberPhone) |
| | | .selectAs(Member::getFaceImg,Approve::getFaceImg) |
| | | .selectAs(Company::getCompanyNamePath,Approve::getCompanyName) |
| | | .leftJoin(Member.class,Member::getId,Approve::getChekorId) |
| | | .leftJoin(Company.class,Company::getId,Member::getCompanyId) |
| | | .eq(Approve::getIsdeleted,Constants.ZERO) |
| | | .eq(Approve::getObjId,businessId) |
| | | .eq(Approve::getObjType,businessType) |
| | |
| | | ); |
| | | |
| | | //查找全部levelList |
| | | List<Approve> levelList = getLevelListFromResult(approveGroupList); |
| | | List<Approve> levelList = getLevelListFromResult(approveGroupList,approveDateVO,memberId); |
| | | List<Approve> copyList = getAllCopyList(approveGroupList); |
| | | //遍历level查询每一级别业务数据 |
| | | for(Approve level:levelList){ |
| | | List<Approve> tlist = getLevelInfoFromList(level,approveGroupList); |
| | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | //处理抄送记录 |
| | | if (CollectionUtils.isNotEmpty(copyList)) { |
| | | Approve waitModel = new Approve(); |
| | | waitModel.setApproveType(Constants.ONE); |
| | | waitModel.setStatusInfo("抄送"); |
| | | waitModel.setStatus(Constants.ONE); |
| | | waitModel.setType(Constants.ONE); |
| | | waitModel.setApproveList(copyList); |
| | | approveDateVO.getApproveList().add(waitModel); |
| | | } |
| | | |
| | | return approveDateVO; |
| | | } |
| | | |
| | | private List<Approve> getAllCopyList(List<Approve> approveGroupList) { |
| | | List<Approve> copyList = new ArrayList<>(); |
| | | if (CollectionUtils.isNotEmpty(approveGroupList)) { |
| | | copyList.addAll(approveGroupList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).collect(Collectors.toList())); |
| | | } |
| | | return copyList; |
| | | } |
| | | |
| | | private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) { |
| | |
| | | Approve refuseModel = new Approve();//已拒绝的记录 |
| | | List<Approve> waitList = new ArrayList<>(); //查询全部未处理的集合 |
| | | List<Approve> otherPassList = new ArrayList<>();//他人已处理的记录集 |
| | | dealGroupListBiz(level,passList,refuseModel,waitList,otherPassList); |
| | | if(refuseModel !=null){ |
| | | List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList()); |
| | | dealGroupListBiz(level,levelApprove,approveGroupList,passList,refuseModel,waitList,otherPassList); |
| | | if(Objects.nonNull(refuseModel) && Objects.nonNull(refuseModel.getId())){ |
| | | //存在拒绝的,只需要返回一条处理数据,后续不需要回显 |
| | | list.add(refuseModel); |
| | | return list; |
| | |
| | | Approve waitModel = new Approve(); |
| | | waitModel.setApproveType(Constants.ONE); |
| | | waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"审批人")+"处理中"); |
| | | waitModel.setStatus(Constants.ONE); |
| | | waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO); |
| | | waitModel.setApproveList(waitList); |
| | | list.add(waitModel); |
| | | } |
| | | }else { |
| | | //如果是或签 |
| | | if(otherPassList.size()>0){ |
| | | if((waitList.size()> 0 || otherPassList.size()>0)){ |
| | | Approve waitModel = new Approve(); |
| | | waitModel.setApproveType(Constants.ONE); |
| | | waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"审批人")+"(抄送或签审批人)"); |
| | | waitModel.setStatus(Constants.ONE); |
| | | waitModel.setApproveList(otherPassList); |
| | | waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"审批人"):"抄送或签审批人"); |
| | | waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO); |
| | | List<Approve> approveList = new ArrayList<>(); |
| | | approveList.addAll(waitList); |
| | | //如果是或签 |
| | | if(passList.size()>0){ |
| | | approveList.addAll(otherPassList); |
| | | } |
| | | waitModel.setApproveList(approveList); |
| | | list.add(waitModel); |
| | | } |
| | | //如果是或签 |
| | | // if(otherPassList.size()>0){ |
| | | // Approve waitModel = new Approve(); |
| | | // waitModel.setApproveType(Constants.ONE); |
| | | // waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"审批人")+"(抄送或签审批人)"); |
| | | // waitModel.setStatus(Constants.ONE); |
| | | // waitModel.setApproveList(otherPassList); |
| | | // list.add(waitModel); |
| | | // } |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | private void dealGroupListBiz(Approve level, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) { |
| | | |
| | | //TODO----------rk |
| | | private void dealGroupListBiz(Approve level, List<Approve> levelApprove,List<Approve> approveGroupList, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) { |
| | | //查询是否存在拒绝数据 |
| | | for (Approve approve:levelApprove) { |
| | | if(Constants.equalsInteger(Constants.approveStatus.pass,approve.getStatus())){ |
| | | passList.add(approve); |
| | | }else if(Constants.equalsInteger(Constants.approveStatus.otherDeal,approve.getStatus())){ |
| | | otherPassList.add(approve); |
| | | }else if(Constants.equalsInteger(Constants.approveStatus.auditIng,approve.getStatus())||Constants.equalsInteger(Constants.approveStatus.wait,approve.getStatus())){ |
| | | waitList.add(approve); |
| | | }else if(Constants.equalsInteger(Constants.approveStatus.unPass,approve.getStatus())){ |
| | | refuseModel = approve; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private List<Approve> sortByCreateTime(List<Approve> passList) { |
| | | //TODO----------rk |
| | | |
| | | Collections.sort(passList, (a, b) -> a.getCheckDate().compareTo(b.getCheckDate())); |
| | | return passList; |
| | | } |
| | | |
| | | |
| | | private List<Approve> getLevelListFromResult(List<Approve> approveGroupList) { |
| | | //TODO----------rk |
| | | return null; |
| | | private List<Approve> getLevelListFromResult(List<Approve> approveGroupList,ApproveDataVO approveDataVO,Integer memberId) { |
| | | approveDataVO.setCanBeApproved(Constants.ZERO); |
| | | approveDataVO.setDriverParam(Constants.ZERO); |
| | | List<Approve> approveList = new ArrayList<>(); |
| | | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); |
| | | for (Approve approve:approveGroupList) { |
| | | if(StringUtils.isNotBlank(approve.getFaceImg())){ |
| | | approve.setFaceImg(path + approve.getFaceImg()); |
| | | } |
| | | if(Constants.equalsInteger(approve.getType(),Constants.ONE)){ |
| | | continue; |
| | | } |
| | | if(Constants.equalsInteger(approve.getChekorId(),memberId)){ |
| | | approveDataVO.setCanBeApproved(Constants.ONE); |
| | | approveDataVO.setDriverParam(approve.getDriverParam()); |
| | | } |
| | | if(notExsits(approveList,approve.getLevel())){ |
| | | approveList.add(approve); |
| | | } |
| | | } |
| | | |
| | | if(CollectionUtils.isEmpty(approveList)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批信息:级别数据异常"); |
| | | } |
| | | |
| | | return approveList; |
| | | } |
| | | |
| | | private boolean notExsits(List<Approve> approveList, Integer level) { |
| | | for (Approve approve:approveList) { |
| | | if(Constants.equalsInteger(approve.getLevel(),level)){ |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 整理 审批数据 |
| | |
| | | * @param businessType |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId){ |
| | | // @Override |
| | | public ApproveDataVO arrangeApprovedDataOld(Integer businessId, Integer businessType, Integer memberId){ |
| | | ApproveDataVO approveDateVO = new ApproveDataVO(); |
| | | approveDateVO.setCanBeApproved(Constants.ZERO); |
| | | List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class, |
| | | new MPJLambdaWrapper<Approve>(). |
| | | select(Approve::getLevel,Approve::getType) |
| | | select(Approve::getLevel,Approve::getType,Approve::getTitle,Approve::getApproveType) |
| | | .eq(Approve::getIsdeleted,Constants.ZERO) |
| | | .eq(Approve::getObjId,businessId) |
| | | .isNotNull(Approve::getLevel) |
| | | .eq(Approve::getObjType,businessType) |
| | | .groupBy(Approve::getLevel,Approve::getType) |
| | | .groupBy(Approve::getLevel,Approve::getType,Approve::getTitle,Approve::getApproveType) |
| | | ); |
| | | if(CollectionUtils.isEmpty(approveGroupList)){ |
| | | return approveDateVO; |
| | |
| | | approve.setCheckInfo(approveDTO.getCheckInfo()); |
| | | approve.setCheorId(approveDTO.getLoginUserInfo().getMemberId().toString()); |
| | | approve.setCheckorName(approve.getLoginUserInfo().getRealname()); |
| | | approve.setCheckDate(new Date()); |
| | | approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"审批通过":approveDTO.getCheckInfo()); |
| | | Visits visits = new Visits(); |
| | | CarUseBook carUseBook = new CarUseBook(); |
| | |
| | | //TODO 审批未通过通知 |
| | | |
| | | } |
| | | |
| | | |
| | | }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){ |
| | | //TODO 物流车预约 |
| | | |