From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 27 十二月 2024 14:37:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
---
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java | 158 ++++++++++++++++++++++++++++++++--------------------
1 files changed, 98 insertions(+), 60 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 d8b8640..07bb1c5 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
@@ -10,10 +10,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dto.*;
-import com.doumee.dao.business.join.DispatchUnitJoinMapper;
-import com.doumee.dao.business.join.DuLogJoinMapper;
-import com.doumee.dao.business.join.DuSolutionJoinMapper;
-import com.doumee.dao.business.join.DuWorkTypeJoinMapper;
+import com.doumee.dao.business.join.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.DispatchUnitService;
@@ -49,6 +46,9 @@
@Autowired
private DuSolutionMapper duSolutionMapper;
+
+ @Autowired
+ private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
@Autowired
private DuWorktypeMapper duWorktypeMapper;
@@ -102,10 +102,9 @@
dispatchUnitMapper.updateById(update);
if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
//瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
- newVersionData(dispatchUnitMapper.selectById(param.getId()),update);
+ newVersionData(model,update,false);
//瀛樺偍鎿嶄綔鍘嗗彶
this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo());
-
}else{
//鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
@@ -136,23 +135,34 @@
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()));
+ private void newVersionData(DispatchUnit model, DispatchUnit update,Boolean flag) {
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);
-
+ if(flag){
+ dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
+ .set(DispatchUnit::getDataType,Constants.ZERO)
+ .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getBaseId,model.getId()));
+ BeanUtils.copyProperties(model, newVersion);
+ newVersion.setWorktypeStatus(Constants.ONE);
+ newVersion.setCheckDate(update.getEditDate());
+ newVersion.setCheckUserId(update.getCheckUserId());
+ newVersion.setCheckInfo(update.getCheckInfo());
+ newVersion.setStatus(Constants.ZERO);
+ newVersion.setCreateDate(update.getCreateDate());
+ newVersion.setCreator(update.getEditor());
+ newVersion.setBaseId(model.getId());
+ newVersion.setDataType(Constants.TWO);
+ dispatchUnitMapper.insert(newVersion);
+ }else{
+ newVersion = dispatchUnitMapper.selectOne(new QueryWrapper<DispatchUnit>().lambda()
+ .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getDataType,Constants.TWO)
+ .eq(DispatchUnit::getBaseId,model.getId())
+ .last(" limit 1"));
+ }
+ if(Objects.isNull(newVersion)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅鏈�鏂扮増鏈�");
+ }
List<DuWorktype> newWorktypes = new ArrayList<>();
List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
.eq(DuSolution::getIsdeleted,Constants.ZERO)
@@ -167,7 +177,6 @@
.eq(DuSolution::getStatus,Constants.ZERO)
.eq(DuSolution::getDispatchUnitId,model.getId())
);
-
if(solutions == null || solutions.size() ==0){
@@ -201,8 +210,12 @@
for (DuWorktype w : worktypes) {
+ if(Constants.equalsInteger(w.getStatus(),Constants.TWO)){
+ continue;
+ }
DuWorktype nw = new DuWorktype();
BeanUtils.copyProperties(w, nw);
+ nw.setCreateDate(new Date());
nw.setCheckDate(update.getEditDate());
nw.setStatus(Constants.ONE);
nw.setDuSolutionId(ns.getId());
@@ -247,7 +260,7 @@
DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(param.getId());
if(Constants.equalsInteger(param.getUnitStatus(),Constants.ONE)){
//瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
- newVersionData(dispatchUnit,update);
+ newVersionData(dispatchUnit,update,true);
//瀛樺偍鎿嶄綔鍘嗗彶
this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,update.getCheckInfo());
}else{
@@ -276,7 +289,6 @@
//鍒犻櫎鍏朵粬寰呭姙
noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
-
return 1;
}
@Override
@@ -284,8 +296,6 @@
public Integer create(SaveDispatchUnitDTO saveDispatchUnitDTO) {
if(Objects.isNull(saveDispatchUnitDTO)
|| StringUtils.isEmpty(saveDispatchUnitDTO.getName())
- || StringUtils.isEmpty(saveDispatchUnitDTO.getCode())
- || StringUtils.isEmpty(saveDispatchUnitDTO.getContent())
|| CollectionUtils.isEmpty(saveDispatchUnitDTO.getSaveDuSolutionDTOList())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -295,16 +305,17 @@
.eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
.eq(DispatchUnit::getName,saveDispatchUnitDTO.getName())
.eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getDataType,Constants.ZERO)
)> Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶅悕绉般�戝凡瀛樺湪");
};
- if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
- .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
- .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode())
- .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
- )> Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶄俊鐢ㄤ唬鐮併�戝凡瀛樺湪");
- };
+// if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
+// .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
+// .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode())
+// .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+// )> Constants.ZERO){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶄俊鐢ㄤ唬鐮併�戝凡瀛樺湪");
+// };
DispatchUnit dispatchUnit = new DispatchUnit();
dispatchUnit.setCreateDate(new Date());
dispatchUnit.setCreator(loginUserInfo.getId());
@@ -371,7 +382,6 @@
}
}
-
//瀛樺偍寰呭姙淇℃伅
Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
//鍒犻櫎鍏朵粬寰呭姙
@@ -399,20 +409,14 @@
}
if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
.ne(DispatchUnit::getId,saveDispatchUnitDTO.getId())
+ .ne(DispatchUnit::getBaseId,saveDispatchUnitDTO.getId())
.eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
.eq(DispatchUnit::getName,saveDispatchUnitDTO.getName())
.eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getDataType,Constants.ZERO)
)> Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶅悕绉般�戝凡瀛樺湪");
};
- if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
- .ne(DispatchUnit::getId,saveDispatchUnitDTO.getId())
- .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
- .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode())
- .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
- )> Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶄俊鐢ㄤ唬鐮併�戝凡瀛樺湪");
- }
dispatchUnit.setCode(saveDispatchUnitDTO.getCode());
dispatchUnit.setContent(saveDispatchUnitDTO.getContent());
dispatchUnit.setName(saveDispatchUnitDTO.getName());
@@ -421,11 +425,13 @@
dispatchUnit.setEditor(loginUserInfo.getId());
dispatchUnitMapper.updateById(dispatchUnit);
+ dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda().set(DispatchUnit::getDataType,Constants.ONE).eq(DispatchUnit::getBaseId,dispatchUnit.getId())
+ .eq(DispatchUnit::getDataType,Constants.TWO)
+ );
+
+
//瀛樺偍鎿嶄綔璁板綍
this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.EDIT_UNIT,null);
-
-// this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
-
//瀛樺偍寰呭姙淇℃伅
Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
@@ -455,6 +461,9 @@
}
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
DispatchUnit dispatchUnit = this.dispatchUnitMapper.selectById(saveDispatchUnitDTO.getId());
+ if(!dispatchUnit.getUnitStatus().equals(Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娲鹃仯鍗曚綅鏈鎵归�氳繃,鏃犳硶杩涜璇ユ搷浣�");
+ }
dispatchUnit.setWorktypeStatus(Constants.ZERO);
dispatchUnit.setEditDate(new Date());
dispatchUnit.setEditor(loginUserInfo.getId());
@@ -510,6 +519,11 @@
if(Objects.isNull(saveDuWorkTypeDTO.getWorkTypeId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+saveDuSolutionDTO.getSolutionName()+"銆戣鏂规涓�"+saveDuWorkTypeDTO.getWorkTypeName()+"璇ュ伐绉嶄俊鎭紓甯�");
}
+ //楠岃瘉鏂规涓庡伐绉嶇殑鍏崇郴
+ if(solutionWorktypeJoinMapper.selectCount(new QueryWrapper<SolutionWorktype>().lambda().eq(SolutionWorktype::getSolutionId,saveDuSolutionDTO.getSolutionId())
+ .eq(SolutionWorktype::getWorktypeId,saveDuWorkTypeDTO.getWorkTypeId()))<=0){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+saveDuSolutionDTO.getSolutionName()+"銆戣鏂规涓�"+saveDuWorkTypeDTO.getWorkTypeName()+"璇ュ伐绉嶄俊鎭棤缁戝畾鍏崇郴");
+ };
if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>()
.lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId())
.eq(DuWorktype::getIsdeleted,Constants.ZERO)
@@ -668,7 +682,20 @@
@Override
public void deleteById(Integer id) {
- dispatchUnitMapper.deleteById(id);
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(id);
+ if(Objects.isNull(dispatchUnit)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(dispatchUnit.getUnitStatus().equals(Constants.TWO)){
+ dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
+ .set(DispatchUnit::getEditor,loginUserInfo.getId())
+ .set(DispatchUnit::getEditDate,new Date())
+ .set(DispatchUnit::getIsdeleted,Constants.ONE)
+ .eq(DispatchUnit::getId,id));
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠娲鹃仯鍗曚綅鐘舵�佹棤娉曡繘琛岃鎿嶄綔");
+ }
}
@Override
@@ -688,6 +715,14 @@
@Override
public void updateById(DispatchUnit dispatchUnit) {
dispatchUnitMapper.updateById(dispatchUnit);
+ //鏇存柊鍘嗗彶琛ㄧ姸鎬�
+ if(Objects.nonNull(dispatchUnit.getId())&& Objects.nonNull(dispatchUnit.getStatus())){
+ dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
+ .set(DispatchUnit::getStatus,dispatchUnit.getStatus())
+ .eq(DispatchUnit::getDataType,Constants.TWO)
+ .eq(DispatchUnit::getBaseId,dispatchUnit.getId())
+ );
+ }
}
@Override
@@ -810,13 +845,16 @@
if (pageWrap.getModel().getBaseId() != null) {
queryWrapper.eq(DispatchUnit::getBaseId, pageWrap.getModel().getBaseId());
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
+ queryWrapper.orderByAsc(DispatchUnit::getUnitStatus);
+ queryWrapper.orderByAsc(DispatchUnit::getWorktypeStatus);
+ queryWrapper.orderByDesc(DispatchUnit::getCreateDate);
+// for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+// if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+// queryWrapper.orderByDesc(sortData.getProperty());
+// } else {
+// queryWrapper.orderByAsc(sortData.getProperty());
+// }
+// }
PageData<DispatchUnit> pageData = PageData.from(dispatchUnitJoinMapper.selectJoinPage(page,DispatchUnit.class, queryWrapper));
return pageData;
}
@@ -893,14 +931,14 @@
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
List<DispatchUnit> dispatchUnitList = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class,
new MPJLambdaWrapper<DispatchUnit>().selectAll(DispatchUnit.class)
- .selectAs(DuSolution::getId,DispatchUnit::getDuSolutionId)
- .leftJoin(DuSolution.class,DuSolution::getDispatchUnitId,DispatchUnit::getId)
.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,Constants.TWO)
- .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId())
+ .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+dispatchUnitQueryDTO.getSolutionId()+" order by b.CHECK_DATE desc limit 1) as du_solution_id" )
+ .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
+ .eq(Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,Constants.TWO)
+ .eq(!Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
+ .exists(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),
+ "select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.status = 1 and b.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()+" " +
" and ad.du_id = t.id ")
--
Gitblit v1.9.3