From 4c236ba83da7c69ac838b004d0a4b83c25fc9bea Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 23 二月 2024 16:41:02 +0800
Subject: [PATCH] mrshi
---
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java | 190 +++++++++++++++++++++++++++++-----------------
1 files changed, 119 insertions(+), 71 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 c14e455..b906342 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
@@ -8,10 +8,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.DispatchUnitMapper;
-import com.doumee.dao.business.DuLogMapper;
-import com.doumee.dao.business.DuSolutionMapper;
-import com.doumee.dao.business.DuWorktypeMapper;
+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;
@@ -71,6 +68,9 @@
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private NoticesMapper noticesMapper;
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public Integer checkWorktype(DispatchUnit param) {
@@ -102,7 +102,10 @@
dispatchUnitMapper.updateById(update);
if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
//瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
- newVersionData(dispatchUnitMapper.selectById(param.getId()),update);
+ newVersionData(dispatchUnitMapper.selectById(param.getId()),update,false);
+ //瀛樺偍鎿嶄綔鍘嗗彶
+ this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo());
+
}else{
//鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
@@ -111,27 +114,54 @@
.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());
}
+
+
+ //瀛樺偍寰呭姙淇℃伅
+ Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+ //鍒犻櫎鍏朵粬寰呭姙
+ noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.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()));
+ 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.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)
@@ -146,7 +176,6 @@
.eq(DuSolution::getStatus,Constants.ZERO)
.eq(DuSolution::getDispatchUnitId,model.getId())
);
-
if(solutions == null || solutions.size() ==0){
@@ -226,9 +255,9 @@
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,null);
+ this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,update.getCheckInfo());
}else{
//鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
@@ -238,28 +267,24 @@
.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(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶆湭璁剧疆鏂规宸ョ淇℃伅锛屽鏍搁�氳繃澶辫触锛�");
- }
- 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());
}
+
+ //瀛樺偍寰呭姙淇℃伅
+ Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+ //鍒犻櫎鍏朵粬寰呭姙
+ noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+
+
return 1;
}
@Override
@@ -346,12 +371,23 @@
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);
duWorktypeMapper.insert(duWorktype);
}
}
+
+
+ //瀛樺偍寰呭姙淇℃伅
+ Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+ //鍒犻櫎鍏朵粬寰呭姙
+ noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+ Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(),
+ dispatchUnit.getCompanyId(), Constants.NoticeType.ZERO);
+ noticesMapper.insert(notices);
+
return dispatchUnit.getId();
}
@@ -398,6 +434,15 @@
// this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
+
+ //瀛樺偍寰呭姙淇℃伅
+ Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+ //鍒犻櫎鍏朵粬寰呭姙
+ noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+ Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(),
+ dispatchUnit.getCompanyId(), Constants.NoticeType.ZERO);
+ noticesMapper.insert(notices);
+
return dispatchUnit.getId();
}
@@ -418,6 +463,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());
@@ -429,6 +477,15 @@
//瀛樺偍鎿嶄綔鍘嗗彶
this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.ADD_WORK_TYPE,null);
this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
+
+ //瀛樺偍寰呭姙淇℃伅
+ Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+ //鍒犻櫎鍏朵粬寰呭姙
+ noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+ Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(),
+ dispatchUnit.getCompanyId(), Constants.NoticeType.ONE);
+ noticesMapper.insert(notices);
+
return dispatchUnit.getId();
}
@@ -478,6 +535,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);
@@ -508,7 +566,7 @@
if(Objects.isNull(dispatchUnit)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅淇℃伅");
}
- //娲鹃仯鍗曚綅瀹℃壒
+ //娲鹃仯鍗曚綅瀹℃牳
if(dispatchUnitAuditDTO.getAuditType().equals(Constants.ZERO)){
if(dispatchUnit.getStatus().equals(Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娲鹃仯鍗曚綅淇℃伅宸插鏍�");
@@ -763,13 +821,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;
}
@@ -844,34 +905,21 @@
@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)
- .leftJoin(DuSolution.class,DuSolution::getDispatchUnitId,DispatchUnit::getId)
.eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getStatus,Constants.ZERO)
+ .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()+" limit 1) as du_solution_id" )
.eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
.eq(DispatchUnit::getStatus,Constants.ZERO)
- .eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
- .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId())
+ .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.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 ")
+ " and ad.du_id = t.id ")
);
-
-
return dispatchUnitList;
}
--
Gitblit v1.9.3