|
|
@@ -50,6 +50,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
@@ -74,29 +75,23 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
|
|
|
private final IXjrUserService xjrUserService;
|
|
|
private final IFormExecuteService formExecuteService;
|
|
|
|
|
|
- private final CommonPropertiesConfig commonPropertiesConfig;
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Long add(AddMaterialTaskDto dto) {
|
|
|
MaterialTask materialTask = BeanUtil.toBean(dto, MaterialTask.class);
|
|
|
- //新增任务
|
|
|
- materialTask.setStatus(2);
|
|
|
- if(dto.getUserList() != null && !dto.getUserList().isEmpty()){
|
|
|
- materialTask.setAssignPerson(dto.getUserList().size());
|
|
|
- }
|
|
|
- materialTaskMaterialTaskMapper.insert(materialTask);
|
|
|
|
|
|
- //新增任务人
|
|
|
+ //梳理提交人
|
|
|
+ List<MaterialTaskAssign> materialTaskAssignList = new ArrayList<>();
|
|
|
for (MaterialAssignUserDto materialAssignUserDto : dto.getUserList()){
|
|
|
if(materialAssignUserDto.getUserType() == 1){
|
|
|
List<XjrUserVo> xjrUserVos = xjrUserService.selectJoinList(XjrUserVo.class,
|
|
|
- new MPJLambdaWrapper<XjrUser>()
|
|
|
- .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
|
|
|
- .eq(UserDeptRelation::getDeptId, materialAssignUserDto.getUserId())
|
|
|
- .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ new MPJLambdaWrapper<XjrUser>()
|
|
|
+ .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
|
|
|
+ .eq(UserDeptRelation::getDeptId, materialAssignUserDto.getUserId())
|
|
|
+ .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
);
|
|
|
for (XjrUserVo xjrUserVo : xjrUserVos) {
|
|
|
- materialTaskMaterialTaskAssignMapper.insert(new MaterialTaskAssign(){{
|
|
|
+ materialTaskAssignList.add(new MaterialTaskAssign(){{
|
|
|
setMaterialTaskId(materialTask.getId());
|
|
|
setUserId(xjrUserVo.getId());
|
|
|
setUserType(materialAssignUserDto.getUserType());
|
|
|
@@ -108,13 +103,13 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
|
|
|
}
|
|
|
}else if(materialAssignUserDto.getUserType() == 2){
|
|
|
List<XjrUserVo> xjrUserVos = xjrUserService.selectJoinList(XjrUserVo.class,
|
|
|
- new MPJLambdaWrapper<XjrUser>()
|
|
|
- .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
|
|
|
- .eq(BaseStudentSchoolRoll::getClassId, materialAssignUserDto.getUserId())
|
|
|
- .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ new MPJLambdaWrapper<XjrUser>()
|
|
|
+ .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
|
|
|
+ .eq(BaseStudentSchoolRoll::getClassId, materialAssignUserDto.getUserId())
|
|
|
+ .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
);
|
|
|
for (XjrUserVo xjrUserVo : xjrUserVos) {
|
|
|
- materialTaskMaterialTaskAssignMapper.insert(new MaterialTaskAssign(){{
|
|
|
+ materialTaskAssignList.add(new MaterialTaskAssign(){{
|
|
|
setMaterialTaskId(materialTask.getId());
|
|
|
setUserId(xjrUserVo.getId());
|
|
|
setUserType(materialAssignUserDto.getUserType());
|
|
|
@@ -125,7 +120,7 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
|
|
|
}});
|
|
|
}
|
|
|
}else if(materialAssignUserDto.getUserType() == 3){
|
|
|
- materialTaskMaterialTaskAssignMapper.insert(new MaterialTaskAssign(){{
|
|
|
+ materialTaskAssignList.add(new MaterialTaskAssign(){{
|
|
|
setMaterialTaskId(materialTask.getId());
|
|
|
setUserId(materialAssignUserDto.getUserId());
|
|
|
setUserType(materialAssignUserDto.getUserType());
|
|
|
@@ -137,6 +132,18 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //新增任务
|
|
|
+ materialTask.setStatus(2);
|
|
|
+ if(dto.getUserList() != null && !dto.getUserList().isEmpty()){
|
|
|
+ materialTask.setAssignPerson(materialTaskAssignList.size());
|
|
|
+ }
|
|
|
+ materialTaskMaterialTaskMapper.insert(materialTask);
|
|
|
+
|
|
|
+ //新增任务人
|
|
|
+ for(MaterialTaskAssign materialTaskAssign : materialTaskAssignList){
|
|
|
+ materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
|
|
|
+ }
|
|
|
+
|
|
|
// materialTaskMaterialTaskMapper.insert(materialTask);
|
|
|
// if (materialTask.getMaterialTaskAssignList() != null && materialTask.getMaterialTaskAssignList().size() > 0) {
|
|
|
// for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
|
|
|
@@ -408,8 +415,9 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
|
|
|
|
|
|
MPJLambdaWrapper<MaterialTaskAssign> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
queryWrapper
|
|
|
+ .disableSubLogicDel()
|
|
|
.distinct()
|
|
|
- .like(dto.getName() != null && !dto.getName().equals(""), XjrUser::getName, dto.getName())
|
|
|
+ .like(dto.getName() != null && !"".equals(dto.getName()), XjrUser::getName, dto.getName())
|
|
|
.eq(MaterialTaskAssign::getMaterialTaskId, dto.getMaterialTaskId())
|
|
|
.eq(dto.getState() != null, MaterialTaskAssign::getStatus, dto.getState())
|
|
|
.select(MaterialTaskAssign::getId)
|
|
|
@@ -423,6 +431,10 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
|
|
|
.leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId, ext -> ext.selectAs(Department::getName, MaterialTaskAssignListVo::getDeptName))
|
|
|
.leftJoin(MaterialTask.class, MaterialTask::getId, MaterialTaskAssign::getMaterialTaskId)
|
|
|
.leftJoin(MaterialTaskAppendix.class, MaterialTaskAppendix::getMaterialTaskId, MaterialTaskAssign::getId)
|
|
|
+ .eq(MaterialTaskAssign::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(MaterialTask::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
// .select("(\n" +
|
|
|
// "SELECT id FROM xjr_file WHERE id IN (\n" +
|
|
|
// "SELECT file_id FROM material_task_appendix WHERE material_task_id = t.id\n" +
|