From beea81f59962e10358672365cb16f0eeda7893df Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 24 一月 2024 10:50:44 +0800 Subject: [PATCH] 开发业务接口 --- server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java | 145 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 141 insertions(+), 4 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java index 4f25c0a..a53a69d 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java @@ -30,10 +30,7 @@ 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.*; /** * 娲鹃仯鍗曚綅淇℃伅琛⊿ervice瀹炵幇 @@ -64,7 +61,147 @@ @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(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶅皻鏈鏍搁�氳繃锛屼笉鏀寔璇ユ搷浣滐紒"); + } + if(Constants.equalsInteger(model.getWorktypeStatus(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶅伐绉嶅凡瀹℃牳锛岃鍕块噸澶嶆彁浜"); + } + 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(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶆湭璁剧疆鏂规宸ョ淇℃伅锛屽鏍搁�氳繃澶辫触锛�"); + } + 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(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶆柟妗堝瓨鍦ㄦ柟妗堟槸鏈缃伐绉嶄俊鎭俊鎭紝瀹℃牳閫氳繃澶辫触锛�"); + } + 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(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶅伐绉嶅凡瀹℃牳锛岃鍕块噸澶嶆彁浜"); + } + 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) { -- Gitblit v1.9.3