| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.UUID; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 派遣单位信息表Service实现 |
| | |
| | | @Autowired |
| | | private DuWorkTypeJoinMapper duWorkTypeJoinMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer checkWorktype(DispatchUnit param) { |
| | | if(Objects.isNull(param) |
| | | ||Objects.isNull(param.getId()) |
| | | ||param.getWorktypeStatus() == null |
| | | ||!(param.getWorktypeStatus() ==Constants.ONE || param.getWorktypeStatus() == Constants.TWO)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | 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)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到派遣单位信息"); |
| | | } |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位尚未审核通过,不支持该操作!"); |
| | | } |
| | | if(Constants.equalsInteger(model.getWorktypeStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位工种已审核,请勿重复提交~"); |
| | | } |
| | | DispatchUnit update = new DispatchUnit(); |
| | | update.setEditor(user.getId()); |
| | | update.setEditDate(new Date()); |
| | | update.setId(model.getId()); |
| | | update.setWorktypeStatus(param.getWorktypeStatus()); |
| | | update.setCheckDate(update.getEditDate()); |
| | | update.setCheckUserId(user.getId()); |
| | | update.setCheckInfo(param.getCheckInfo()); |
| | | dispatchUnitMapper.updateById(update); |
| | | if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){ |
| | | //审核通过,修改状态,产生历史版本 |
| | | newVersionData(model,update); |
| | | }else{ |
| | | //更新明细数据为审核失败 |
| | | duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda() |
| | | .set(DuSolution::getCheckDate,new Date() ) |
| | | .set(DuSolution::getStatus,Constants.TWO) |
| | | .set(DuSolution::getCheckUserId,update.getCheckUserId()) |
| | | .set(DuSolution::getCheckInfo,update.getCheckInfo()) |
| | | .eq(DuSolution::getDispatchUnitId,update.getId())); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | private void newVersionData(DispatchUnit model, DispatchUnit update) { |
| | | dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda() |
| | | .set(DispatchUnit::getDataType,Constants.ZERO) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(DispatchUnit::getBaseId,model.getId())); |
| | | DispatchUnit newVersion = new DispatchUnit(); |
| | | BeanUtils.copyProperties(model, newVersion); |
| | | newVersion.setWorktypeStatus(Constants.ONE); |
| | | newVersion.setCheckDate(update.getEditDate()); |
| | | newVersion.setCheckUserId(update.getCheckUserId()); |
| | | newVersion.setCheckInfo(update.getCheckInfo()); |
| | | newVersion.setCreateDate(update.getCreateDate()); |
| | | newVersion.setCreator(update.getEditor()); |
| | | newVersion.setBaseId(model.getBaseId()); |
| | | newVersion.setDataType(Constants.TWO); |
| | | dispatchUnitMapper.insert(newVersion); |
| | | |
| | | List<DuWorktype> newWorktypes = new ArrayList<>(); |
| | | List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda() |
| | | .eq(DuSolution::getIsdeleted,Constants.ZERO) |
| | | .eq(DuSolution::getDispatchUnitId,model.getSolutionId())); |
| | | if(solutions == null || solutions.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位未设置方案工种信息,审核通过失败!"); |
| | | } |
| | | for (DuSolution s : solutions){ |
| | | DuSolution ns = new DuSolution(); |
| | | BeanUtils.copyProperties(s, ns); |
| | | ns.setDispatchUnitId(newVersion.getId()); |
| | | ns.setCheckDate(update.getEditDate()); |
| | | ns.setStatus(Constants.ONE); |
| | | ns.setCheckInfo(update.getCheckInfo()); |
| | | ns.setCheckUserId(update.getCheckUserId()); |
| | | duSolutionMapper.insert(ns); |
| | | List<DuWorktype> worktypes = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda() |
| | | .eq(DuWorktype::getIsdeleted,Constants.ZERO) |
| | | .eq(DuWorktype::getDuSolutionId,s.getId())); |
| | | if(worktypes == null || worktypes.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位方案存在方案是未设置工种信息信息,审核通过失败!"); |
| | | } |
| | | for (DuWorktype w : worktypes) { |
| | | DuWorktype nw = new DuWorktype(); |
| | | BeanUtils.copyProperties(w, nw); |
| | | nw.setCheckDate(update.getEditDate()); |
| | | nw.setStatus(Constants.ONE); |
| | | nw.setDuSolutionId(ns.getId()); |
| | | nw.setCheckInfo(update.getCheckInfo()); |
| | | nw.setCheckUserId(update.getCheckUserId()); |
| | | newWorktypes.add(nw); |
| | | } |
| | | } |
| | | if(newWorktypes!=null &&newWorktypes.size()>0){ |
| | | //批量查询工种关联记录 |
| | | duWorktypeMapper.insertBatchSomeColumn(newWorktypes); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer check(DispatchUnit param) { |
| | | if(Objects.isNull(param) |
| | | ||Objects.isNull(param.getId()) |
| | | ||param.getStatus() == null |
| | | ||!(param.getStatus() ==Constants.ONE || param.getStatus() == Constants.TWO)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | 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)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到派遣单位信息"); |
| | | } |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位工种已审核,请勿重复提交~"); |
| | | } |
| | | DispatchUnit update = new DispatchUnit(); |
| | | update.setEditor(user.getId()); |
| | | update.setEditDate(new Date()); |
| | | update.setId(model.getId()); |
| | | update.setStatus(param.getStatus()); |
| | | update.setWorktypeStatus(param.getWorktypeStatus()); |
| | | update.setCheckDate(update.getEditDate()); |
| | | update.setCheckUserId(user.getId()); |
| | | update.setCheckInfo(param.getCheckInfo()); |
| | | dispatchUnitMapper.updateById(update); |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){ |
| | | //审核通过,修改状态,产生历史版本 |
| | | newVersionData(model,update); |
| | | }else{ |
| | | //更新明细数据为审核失败 |
| | | duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda() |
| | | .set(DuSolution::getCheckDate,new Date() ) |
| | | .set(DuSolution::getStatus,Constants.TWO) |
| | | .set(DuSolution::getCheckUserId,update.getCheckUserId()) |
| | | .set(DuSolution::getCheckInfo,update.getCheckInfo()) |
| | | .eq(DuSolution::getDispatchUnitId,update.getId())); |
| | | } |
| | | return 1; |
| | | } |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer create(SaveDispatchUnitDTO saveDispatchUnitDTO) { |