jiangping
2024-02-01 d4920f7a0b3146a2218a210d3f93b655ff010eb3
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -82,13 +82,13 @@
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        DispatchUnit model = dispatchUnitMapper.selectById(param.getId());
        if(Objects.isNull(model) || Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ||!Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
        if(Objects.isNull(model) || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ||!Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到派遣单位信息");
        }
        if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){
        if(!Constants.equalsInteger(model.getUnitStatus(),Constants.ONE)){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位尚未审核通过,不支持该操作!");
        }
        if(Constants.equalsInteger(model.getWorktypeStatus(),Constants.ZERO)){
        if(!Constants.equalsInteger(model.getWorktypeStatus(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位工种已审核,请勿重复提交~");
        }
        DispatchUnit update = new DispatchUnit();
@@ -103,6 +103,9 @@
        if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
            //审核通过,修改状态,产生历史版本
            newVersionData(dispatchUnitMapper.selectById(param.getId()),update);
            //存储操作历史
            this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo());
        }else{
            //更新明细数据为审核失败
            duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
@@ -111,6 +114,17 @@
                    .set(DuSolution::getCheckUserId,update.getCheckUserId())
                    .set(DuSolution::getCheckInfo,update.getCheckInfo())
                    .eq(DuSolution::getDispatchUnitId,update.getId()));
            duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda()
                    .set(DuWorktype::getStatus,Constants.TWO)
                    .set(DuWorktype::getCheckUserId,update.getCheckUserId())
                    .set(DuWorktype::getCheckInfo,update.getCheckInfo())
                    .set(DuWorktype::getCheckDate,new Date() )
                    .eq(DuWorktype::getIsdeleted,Constants.ZERO)
                    .eq(DuWorktype::getStatus,Constants.ZERO)
                    .eq(DuWorktype::getDispatchUnitId,update.getId()));
            //存储操作历史
            this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_UN_PASS,update.getCheckInfo());
        }
        return  1;
    }
@@ -139,6 +153,9 @@
        duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
                        .set(DuSolution::getStatus,Constants.ONE)
                .set(DuSolution::getCheckDate,update.getEditDate() )
                .set(DuSolution::getCheckUserId,update.getCheckUserId())
                .set(DuSolution::getCheckInfo,update.getCheckInfo())
                .eq(DuSolution::getIsdeleted,Constants.ZERO)
                .eq(DuSolution::getStatus,Constants.ZERO)
                .eq(DuSolution::getDispatchUnitId,model.getId())
@@ -164,6 +181,9 @@
            duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda()
                    .set(DuWorktype::getStatus,Constants.ONE)
                    .set(DuWorktype::getCheckDate,update.getEditDate())
                    .set(DuWorktype::getCheckUserId,update.getCheckUserId())
                    .set(DuWorktype::getCheckInfo,update.getCheckInfo())
                    .eq(DuWorktype::getIsdeleted,Constants.ZERO)
                    .eq(DuWorktype::getStatus,Constants.ZERO)
                    .eq(DuWorktype::getDuSolutionId,s.getId()));
@@ -212,7 +232,7 @@
        update.setEditDate(new Date());
        update.setId(model.getId());
        update.setUnitStatus(param.getUnitStatus());
        update.setWorktypeStatus(param.getWorktypeStatus());
        update.setWorktypeStatus(param.getUnitStatus());
        update.setCheckDate(update.getEditDate());
        update.setCheckUserId(user.getId());
        update.setCheckInfo(param.getCheckInfo());
@@ -222,35 +242,24 @@
            //审核通过,修改状态,产生历史版本
            newVersionData(dispatchUnit,update);
            //存储操作历史
            this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,null);
            this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,update.getCheckInfo());
        }else{
            //更新明细数据为审核失败
            duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
                    .set(DuSolution::getCheckDate,new Date() )
                    .set(DuSolution::getStatus,Constants.TWO)
                    .set(DuSolution::getCheckDate,new Date() )
                    .set(DuSolution::getCheckUserId,update.getCheckUserId())
                    .set(DuSolution::getCheckInfo,update.getCheckInfo())
                    .eq(DuSolution::getDispatchUnitId,update.getId()));
            List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
                    .eq(DuSolution::getIsdeleted,Constants.ZERO)
                    .eq(DuSolution::getDispatchUnitId,model.getId()));
            if(solutions == null || solutions.size() ==0){
                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位未设置方案工种信息,审核通过失败!");
            }
            for (DuSolution s : solutions){
                duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda()
                        .set(DuWorktype::getStatus,Constants.TWO)
                        .set(DuWorktype::getCheckUserId,update.getCheckUserId())
                        .set(DuWorktype::getCheckInfo,update.getCheckInfo())
                        .set(DuWorktype::getCheckDate,new Date() )
                        .eq(DuWorktype::getIsdeleted,Constants.ZERO)
                        .eq(DuWorktype::getStatus,Constants.ZERO)
                        .eq(DuWorktype::getDuSolutionId,s.getId()));
            }
            duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda()
                    .set(DuWorktype::getStatus,Constants.TWO)
                    .set(DuWorktype::getCheckUserId,update.getCheckUserId())
                    .set(DuWorktype::getCheckInfo,update.getCheckInfo())
                    .set(DuWorktype::getCheckDate,new Date() )
                    .eq(DuWorktype::getIsdeleted,Constants.ZERO)
                    .eq(DuWorktype::getStatus,Constants.ZERO)
                    .eq(DuWorktype::getDispatchUnitId,update.getId()));
            //存储操作历史
            this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_UN_PASS,update.getCheckInfo());
        }
@@ -340,6 +349,7 @@
                duWorktype.setDuSolutionId(duSolution.getId());
                duWorktype.setStatus(Constants.ZERO);
                duWorktype.setSortnum(j);
                duWorktype.setDispatchUnitId(dispatchUnit.getId());
                duWorktype.setWorkTypeId(saveDuWorkTypeDTO.getWorkTypeId());
                duWorktype.setVideoUrl(saveDuWorkTypeDTO.getVideoUrl());
                duWorktype.setStatus2(Constants.ZERO);
@@ -472,6 +482,7 @@
                duWorktype.setDuSolutionId(duSolution.getId());
                duWorktype.setStatus(Constants.ZERO);
                duWorktype.setSortnum(duWorkTypeNum + j);
                duWorktype.setDispatchUnitId(saveDispatchUnitDTO.getId());
                duWorktype.setWorkTypeId(saveDuWorkTypeDTO.getWorkTypeId());
                duWorktype.setVideoUrl(saveDuWorkTypeDTO.getVideoUrl());
                duWorktype.setStatus2(Constants.ZERO);
@@ -669,74 +680,93 @@
    @Override
    public PageData<DispatchUnit> findPage(PageWrap<DispatchUnit> pageWrap) {
        IPage<DispatchUnit> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<DispatchUnit> queryWrapper = new QueryWrapper<>();
        if(pageWrap.getModel().getDataType() ==null){
            pageWrap.getModel().setDataType(Constants.ZERO);
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda().eq(DispatchUnit::getIsdeleted,Constants.ZERO);
        MPJLambdaWrapper<DispatchUnit>  queryWrapper =    new MPJLambdaWrapper<DispatchUnit>();
        queryWrapper.selectAll(DispatchUnit.class)
                .selectAs(Company::getName,DispatchUnit::getCompanyName)
                .leftJoin(Company.class,Company::getId,DispatchUnit::getCompanyId);
        queryWrapper.eq(DispatchUnit::getIsdeleted,Constants.ZERO);
        if(Constants.equalsInteger(user.getType(),Constants.ZERO)){
            //只能看权限范围内
            if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){
                queryWrapper. eq(Company::getId,-1);//设置无效访问
            }else {
                queryWrapper. in(Company::getId, user.getCompanyIdList());
            }
        } else  {
            //企业用户只看自己的数据
            pageWrap.getModel().setCompanyId(user.getCompanyId());
        }
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getId, pageWrap.getModel().getId());
            queryWrapper.eq(DispatchUnit::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(DispatchUnit::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(DispatchUnit::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(DispatchUnit::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(DispatchUnit::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(DispatchUnit::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(DispatchUnit::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(DispatchUnit::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(DispatchUnit::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(DispatchUnit::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(DispatchUnit::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(DispatchUnit::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getName, pageWrap.getModel().getName());
            queryWrapper.like(DispatchUnit::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(DispatchUnit::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(DispatchUnit::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getUnitStatus() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getUnitStatus, pageWrap.getModel().getUnitStatus());
            queryWrapper.eq(DispatchUnit::getUnitStatus, pageWrap.getModel().getUnitStatus());
        }
        if (pageWrap.getModel().getWorktypeStatus() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getWorktypeStatus, pageWrap.getModel().getWorktypeStatus());
            queryWrapper.eq(DispatchUnit::getWorktypeStatus, pageWrap.getModel().getWorktypeStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getSortnum, pageWrap.getModel().getSortnum());
            queryWrapper.eq(DispatchUnit::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getCompanyId() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getCompanyId, pageWrap.getModel().getCompanyId());
            queryWrapper.eq(DispatchUnit::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        if (pageWrap.getModel().getPhone() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getPhone, pageWrap.getModel().getPhone());
            queryWrapper.eq(DispatchUnit::getPhone, pageWrap.getModel().getPhone());
        }
        if (pageWrap.getModel().getLinkname() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getLinkname, pageWrap.getModel().getLinkname());
            queryWrapper.eq(DispatchUnit::getLinkname, pageWrap.getModel().getLinkname());
        }
        if (pageWrap.getModel().getCheckDate() != null) {
            queryWrapper.lambda().ge(DispatchUnit::getCheckDate, Utils.Date.getStart(pageWrap.getModel().getCheckDate()));
            queryWrapper.lambda().le(DispatchUnit::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate()));
            queryWrapper.ge(DispatchUnit::getCheckDate, Utils.Date.getStart(pageWrap.getModel().getCheckDate()));
            queryWrapper.le(DispatchUnit::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate()));
        }
        if (pageWrap.getModel().getCheckInfo() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getCheckInfo, pageWrap.getModel().getCheckInfo());
            queryWrapper.eq(DispatchUnit::getCheckInfo, pageWrap.getModel().getCheckInfo());
        }
        if (pageWrap.getModel().getCheckUserId() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getCheckUserId, pageWrap.getModel().getCheckUserId());
            queryWrapper.eq(DispatchUnit::getCheckUserId, pageWrap.getModel().getCheckUserId());
        }
        if (pageWrap.getModel().getVersion() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getVersion, pageWrap.getModel().getVersion());
            queryWrapper.eq(DispatchUnit::getVersion, pageWrap.getModel().getVersion());
        }
        if (pageWrap.getModel().getDataType() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getDataType, pageWrap.getModel().getDataType());
            queryWrapper.eq(DispatchUnit::getDataType, pageWrap.getModel().getDataType());
        }
        if (pageWrap.getModel().getBaseId() != null) {
            queryWrapper.lambda().eq(DispatchUnit::getBaseId, pageWrap.getModel().getBaseId());
            queryWrapper.eq(DispatchUnit::getBaseId, pageWrap.getModel().getBaseId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -745,8 +775,8 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        PageData<DispatchUnit> dispatchUnitPageData = PageData.from(dispatchUnitMapper.selectPage(page, queryWrapper));
        return dispatchUnitPageData;
        PageData<DispatchUnit> pageData = PageData.from(dispatchUnitJoinMapper.selectJoinPage(page,DispatchUnit.class, queryWrapper));
        return pageData;
    }
    @Override
@@ -758,7 +788,12 @@
    @Override
    public DispatchUnit detailById(Integer id) {
        DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(id);
        DispatchUnit dispatchUnit = dispatchUnitJoinMapper.selectJoinOne(DispatchUnit.class,
                new MPJLambdaWrapper<DispatchUnit>()
                        .selectAll(DispatchUnit.class)
                        .selectAs(Company::getName,DispatchUnit::getCompanyName)
                        .leftJoin(Company.class,Company::getId,DispatchUnit::getCompanyId)
                        .eq(DispatchUnit::getId,id) );
        //方案配置表
        List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,
                new MPJLambdaWrapper<DuSolution>()
@@ -794,6 +829,7 @@
        List<DuLog> duLogList = duLogJoinMapper.selectJoinList(DuLog.class,
                new MPJLambdaWrapper<DuLog>()
                        .selectAll(DuLog.class)
                        .selectAs(SystemUser::getType,DuLog::getCreatorType)
                        .selectAs(SystemUser::getRealname,DuLog::getCreatorName)
                        .selectAs(Company::getName,DuLog::getCompanyName)
                        .leftJoin(SystemUser.class,SystemUser::getId,DuLog::getCreator)
@@ -813,19 +849,6 @@
    @Override
    public List<DispatchUnit> findByDTO(DispatchUnitQueryDTO dispatchUnitQueryDTO) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
//        List<DispatchUnit> dispatchUnitList = dispatchUnitMapper.selectList(new QueryWrapper<DispatchUnit>().lambda()
//                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
//                .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
//                .eq(DispatchUnit::getStatus,Constants.ZERO)
//                .eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
//                .apply(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()), " id in ( select d.dispatch_unit_id from du_solution d where d.solution_id = "+dispatchUnitQueryDTO.getSolutionId()+"  ) " )
//                .exists(!Objects.isNull(dispatchUnitQueryDTO.getApplyId()),
//                        " select 1 from apply_detail ad where ad.isdeleted = 0 and ad.apply_id = "+dispatchUnitQueryDTO.getApplyId()+" " +
//                                " ad.du_id = t.id ")
//                .orderByAsc(DispatchUnit::getSortnum)
//        );
        List<DispatchUnit> dispatchUnitList  = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class,
                new MPJLambdaWrapper<DispatchUnit>().selectAll(DispatchUnit.class)
                        .selectAs(DuSolution::getId,DispatchUnit::getDuSolutionId)
@@ -833,14 +856,13 @@
                        .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
                        .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
                        .eq(DispatchUnit::getStatus,Constants.ZERO)
                        .eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
                        //.eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
                        .eq(DispatchUnit::getDataType,Constants.TWO)
                        .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId())
                        .exists(!Objects.isNull(dispatchUnitQueryDTO.getApplyId()),
                                " select 1 from apply_detail ad where ad.isdeleted = 0 and ad.apply_id = "+dispatchUnitQueryDTO.getApplyId()+" " +
                                        " ad.du_id = t.id ")
                                        " and ad.du_id = t.id ")
        );
        return dispatchUnitList;
    }