123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- package com.xjrsoft.module.material.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.xjrsoft.module.material.dto.AddMaterialTaskAppendixDto;
- import com.xjrsoft.module.material.dto.AddMaterialTaskDto;
- import com.xjrsoft.module.material.dto.MaterialAssignUserDto;
- import com.xjrsoft.module.material.dto.MaterialTaskAssignAppendixDto;
- import com.xjrsoft.module.material.entity.MaterialTask;
- import com.xjrsoft.module.material.entity.MaterialTaskAppendix;
- import com.xjrsoft.module.material.entity.MaterialTaskAssign;
- import com.xjrsoft.module.material.mapper.MaterialTaskAppendixMapper;
- import com.xjrsoft.module.material.mapper.MaterialTaskAssignMapper;
- import com.xjrsoft.module.material.mapper.MaterialTaskMapper;
- import com.xjrsoft.module.material.service.IMaterialTaskService;
- import lombok.AllArgsConstructor;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- import java.util.Objects;
- import java.util.stream.Collectors;
- /**
- * @title: 材料提交任务
- * @Author baicai
- * @Date: 2023-10-31
- * @Version 1.0
- */
- @Service
- @AllArgsConstructor
- public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapper, MaterialTask> implements IMaterialTaskService {
- private final MaterialTaskMapper materialTaskMaterialTaskMapper;
- private final MaterialTaskAssignMapper materialTaskMaterialTaskAssignMapper;
- private final MaterialTaskAppendixMapper materialTaskMaterialTaskAppendixMapper;
- @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.setSubmitedPerson(dto.getUserList().size());
- }
- materialTaskMaterialTaskMapper.insert(materialTask);
- for (MaterialAssignUserDto materialAssignUserDto : dto.getUserList()){
- materialTaskMaterialTaskAssignMapper.insert(new MaterialTaskAssign(){{
- setMaterialTaskId(materialTask.getId());
- setUserId(materialAssignUserDto.getUserId());
- setUserType(materialAssignUserDto.getUserType());
- setUserNumber(materialAssignUserDto.getUserNumber());
- setStatus(1);
- setExecutiveStatus(1);
- setSendMessage(dto.getSendMessageStatus());
- }});
- }
- // materialTaskMaterialTaskMapper.insert(materialTask);
- // if (materialTask.getMaterialTaskAssignList() != null && materialTask.getMaterialTaskAssignList().size() > 0) {
- // for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
- // materialTaskAssign.setMaterialTaskId(materialTask.getId());
- // materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
- // }
- // }
- // for (MaterialTaskAppendix materialTaskAppendix : materialTask.getMaterialTaskAppendixList()) {
- // materialTaskAppendix.setMaterialTaskId(materialTask.getId());
- // materialTaskMaterialTaskAppendixMapper.insert(materialTaskAppendix);
- // }
- return materialTask.getId();
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean update(MaterialTask materialTask) {
- materialTaskMaterialTaskMapper.updateById(materialTask);
- //********************************* MaterialTaskAssign 增删改 开始 *******************************************/
- {
- if (materialTask.getMaterialTaskAssignList() != null && materialTask.getMaterialTaskAssignList().size() > 0) {
- // 查出所有子级的id
- List<MaterialTaskAssign> materialTaskAssignList = materialTaskMaterialTaskAssignMapper.selectList(Wrappers.lambdaQuery(MaterialTaskAssign.class).eq(MaterialTaskAssign::getMaterialTaskId, materialTask.getId()).select(MaterialTaskAssign::getId));
- List<Long> materialTaskAssignIds = materialTaskAssignList.stream().map(MaterialTaskAssign::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> materialTaskAssignOldIds = materialTask.getMaterialTaskAssignList().stream().map(MaterialTaskAssign::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> materialTaskAssignRemoveIds = materialTaskAssignIds.stream().filter(item -> !materialTaskAssignOldIds.contains(item)).collect(Collectors.toList());
- for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
- //如果不等于空则修改
- if (materialTaskAssign.getId() != null) {
- materialTaskMaterialTaskAssignMapper.updateById(materialTaskAssign);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- materialTaskAssign.setMaterialTaskId(materialTask.getId());
- materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
- }
- }
- //已经不存在的id 删除
- if (materialTaskAssignRemoveIds.size() > 0) {
- materialTaskMaterialTaskAssignMapper.deleteBatchIds(materialTaskAssignRemoveIds);
- }
- }
- }
- //********************************* MaterialTaskAssign 增删改 结束 *******************************************/
- //********************************* MaterialTaskAppendix 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<MaterialTaskAppendix> materialTaskAppendixList = materialTaskMaterialTaskAppendixMapper.selectList(Wrappers.lambdaQuery(MaterialTaskAppendix.class).eq(MaterialTaskAppendix::getMaterialTaskId, materialTask.getId()).select(MaterialTaskAppendix::getId));
- List<Long> materialTaskAppendixIds = materialTaskAppendixList.stream().map(MaterialTaskAppendix::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> materialTaskAppendixOldIds = materialTask.getMaterialTaskAppendixList().stream().map(MaterialTaskAppendix::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> materialTaskAppendixRemoveIds = materialTaskAppendixIds.stream().filter(item -> !materialTaskAppendixOldIds.contains(item)).collect(Collectors.toList());
- for (MaterialTaskAppendix materialTaskAppendix : materialTask.getMaterialTaskAppendixList()) {
- //如果不等于空则修改
- if (materialTaskAppendix.getId() != null) {
- materialTaskMaterialTaskAppendixMapper.updateById(materialTaskAppendix);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- materialTaskAppendix.setMaterialTaskId(materialTask.getId());
- materialTaskMaterialTaskAppendixMapper.insert(materialTaskAppendix);
- }
- }
- //已经不存在的id 删除
- if (materialTaskAppendixRemoveIds.size() > 0) {
- materialTaskMaterialTaskAppendixMapper.deleteBatchIds(materialTaskAppendixRemoveIds);
- }
- }
- //********************************* MaterialTaskAppendix 增删改 结束 *******************************************/
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean delete(List<Long> ids) {
- materialTaskMaterialTaskMapper.deleteBatchIds(ids);
- materialTaskMaterialTaskAssignMapper.delete(Wrappers.lambdaQuery(MaterialTaskAssign.class).in(MaterialTaskAssign::getMaterialTaskId, ids));
- materialTaskMaterialTaskAppendixMapper.delete(Wrappers.lambdaQuery(MaterialTaskAppendix.class).in(MaterialTaskAppendix::getMaterialTaskId, ids));
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean submited(MaterialTaskAssignAppendixDto materialTaskAssignAppendixDto) {
- if (materialTaskAssignAppendixDto.getMaterialTaskAppendixList() != null && materialTaskAssignAppendixDto.getMaterialTaskAppendixList().size() > 0) {
- MaterialTaskAssign materialTaskAssign = materialTaskMaterialTaskAssignMapper.selectByIdDeep(materialTaskAssignAppendixDto.getMaterialTaskAssignId());
- Integer oldStatus = materialTaskAssign.getStatus();
- materialTaskAssign.setStatus(2);
- if (oldStatus == 1) {
- MaterialTask materialTask = materialTaskMaterialTaskMapper.selectByIdDeep(materialTaskAssign.getMaterialTaskId());
- materialTask.setSubmitedPerson(materialTask.getSubmitedPerson() + 1);
- materialTaskMaterialTaskMapper.updateById(materialTask);
- }
- materialTaskMaterialTaskAssignMapper.updateById(materialTaskAssign);
- if (oldStatus == 4) { // 重做删除原来的
- materialTaskMaterialTaskAppendixMapper.delete(Wrappers.lambdaQuery(MaterialTaskAppendix.class).eq(MaterialTaskAppendix::getMaterialTaskId, materialTaskAssignAppendixDto.getMaterialTaskAssignId()));
- }
- for (AddMaterialTaskAppendixDto materialTaskAppendixDto : materialTaskAssignAppendixDto.getMaterialTaskAppendixList()) {
- MaterialTaskAppendix materialTaskAppendix = new MaterialTaskAppendix();
- materialTaskAppendix.setMaterialTaskId(materialTaskAssignAppendixDto.getMaterialTaskAssignId());
- materialTaskAppendix.setFileId(materialTaskAppendixDto.getFileId());
- materialTaskMaterialTaskAppendixMapper.insert(materialTaskAppendix);
- }
- }
- return true;
- }
- }
|