|
|
@ -21,30 +21,33 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.epmet.commons.dynamic.datasource.annotation.DataSource; |
|
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
import com.epmet.constant.DataSourceConstant; |
|
|
|
import com.epmet.dao.evaluationindex.screen.ScreenProjectProcessAttachmentDao; |
|
|
|
import com.epmet.dao.evaluationindex.screen.ScreenProjectProcessDao; |
|
|
|
import com.epmet.dto.screen.ScreenProjectProcessAttachmentDTO; |
|
|
|
import com.epmet.dto.screen.ScreenProjectProcessDTO; |
|
|
|
import com.epmet.dto.screen.form.ScreenProjectProcessFormDTO; |
|
|
|
import com.epmet.dto.screencoll.ScreenCollFormDTO; |
|
|
|
import com.epmet.entity.evaluationindex.screen.ScreenProjectProcessAttachmentEntity; |
|
|
|
import com.epmet.entity.evaluationindex.screen.ScreenProjectProcessEntity; |
|
|
|
import com.epmet.service.evaluationindex.screen.ScreenProjectProcessAttachmentService; |
|
|
|
import com.epmet.service.evaluationindex.screen.ScreenProjectProcessService; |
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
|
import org.apache.commons.collections4.ListUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* 中央区-项目数据项目处理进展表 |
|
|
@ -58,6 +61,8 @@ public class ScreenProjectProcessServiceImpl extends BaseServiceImpl<ScreenProje |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ScreenProjectProcessAttachmentDao screenProjectProcessAttachmentDao; |
|
|
|
@Resource |
|
|
|
private ScreenProjectProcessAttachmentService screenProjectProcessAttachmentService; |
|
|
|
@Override |
|
|
|
public PageData<ScreenProjectProcessDTO> page(Map<String, Object> params) { |
|
|
|
IPage<ScreenProjectProcessEntity> page = baseDao.selectPage( |
|
|
@ -114,45 +119,47 @@ public class ScreenProjectProcessServiceImpl extends BaseServiceImpl<ScreenProje |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
@DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true) |
|
|
|
public void collect(ScreenCollFormDTO<ScreenProjectProcessFormDTO> param) { |
|
|
|
if (CollectionUtils.isEmpty(param.getDataList())){ |
|
|
|
return; |
|
|
|
} |
|
|
|
if (param.getIsFirst()) { |
|
|
|
int affectedRows = baseDao.deleteByDateIdAndCustomerId(param.getCustomerId(), param.getDateId()); |
|
|
|
while (affectedRows > 0) { |
|
|
|
affectedRows = baseDao.deleteByDateIdAndCustomerId(param.getCustomerId(), param.getDateId()); |
|
|
|
} |
|
|
|
} |
|
|
|
param.getDataList().forEach(item -> { |
|
|
|
//先删除旧数据
|
|
|
|
QueryWrapper<ScreenProjectProcessEntity> screenProjectProcessEntityQueryWrapper = new QueryWrapper<>(); |
|
|
|
screenProjectProcessEntityQueryWrapper.eq(StringUtils.isNotBlank(item.getProjectId()), "project_id", item.getProjectId()) |
|
|
|
.eq(StringUtils.isNotBlank(param.getCustomerId()), "customer_id", param.getCustomerId()) |
|
|
|
.eq(StringUtils.isNotBlank(item.getProcessId()), "process_id", item.getProcessId()); |
|
|
|
baseDao.delete(screenProjectProcessEntityQueryWrapper); |
|
|
|
|
|
|
|
QueryWrapper<ScreenProjectProcessAttachmentEntity> screenProjectProcessAttachmentEntityQueryWrapper = new QueryWrapper<>(); |
|
|
|
screenProjectProcessAttachmentEntityQueryWrapper.eq(StringUtils.isNotBlank(item.getProjectId()), "project_id", item.getProjectId()) |
|
|
|
.eq(StringUtils.isNotBlank(param.getCustomerId()), "customer_id", param.getCustomerId()) |
|
|
|
.eq(StringUtils.isNotBlank(item.getProcessId()), "process_id", item.getProcessId()); |
|
|
|
screenProjectProcessAttachmentDao.delete(screenProjectProcessAttachmentEntityQueryWrapper); |
|
|
|
//插入
|
|
|
|
ScreenProjectProcessEntity screenProjectProcessEntity = ConvertUtils.sourceToTarget(item, ScreenProjectProcessEntity.class); |
|
|
|
screenProjectProcessEntity.setCustomerId(param.getCustomerId()); |
|
|
|
screenProjectProcessEntity.setDataEndTime(param.getDateId()); |
|
|
|
baseDao.insert(screenProjectProcessEntity); |
|
|
|
|
|
|
|
List<ScreenProjectProcessAttachmentDTO> attachments = item.getAttachments(); |
|
|
|
if (!CollectionUtils.isEmpty(attachments)){ |
|
|
|
for (int i = 0; i < attachments.size(); i++) { |
|
|
|
ScreenProjectProcessAttachmentEntity attachmentEntity = ConvertUtils.sourceToTarget(attachments.get(i), ScreenProjectProcessAttachmentEntity.class); |
|
|
|
attachmentEntity.setCustomerId(param.getCustomerId()); |
|
|
|
attachmentEntity.setProcessId(item.getProcessId()); |
|
|
|
attachmentEntity.setProjectId(item.getProjectId()); |
|
|
|
if (attachmentEntity.getSort() == null) { |
|
|
|
attachmentEntity.setSort(i); |
|
|
|
} |
|
|
|
screenProjectProcessAttachmentDao.insert(attachmentEntity); |
|
|
|
List<String> processIdList = |
|
|
|
param.getDataList().stream().map(ScreenProjectProcessFormDTO :: getProcessId).collect(Collectors.toList()).stream().distinct() |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (CollectionUtils.isEmpty(processIdList)){ |
|
|
|
return; |
|
|
|
} |
|
|
|
//删除旧数据
|
|
|
|
baseDao.deleteByProcessIds(param.getCustomerId(), processIdList); |
|
|
|
screenProjectProcessAttachmentDao.deleteByProcessIds(param.getCustomerId(), processIdList); |
|
|
|
|
|
|
|
List<ScreenProjectProcessAttachmentEntity> attachmentList = new ArrayList<>(); |
|
|
|
|
|
|
|
List<ScreenProjectProcessEntity> processList = param.getDataList().stream().map(item -> { |
|
|
|
ScreenProjectProcessEntity entity = ConvertUtils.sourceToTarget(item, ScreenProjectProcessEntity.class); |
|
|
|
entity.setCustomerId(param.getCustomerId()); |
|
|
|
entity.setDataEndTime(param.getDateId()); |
|
|
|
AtomicInteger i = new AtomicInteger(0); |
|
|
|
List<ScreenProjectProcessAttachmentEntity> attachments = item.getAttachments().stream().map(attachment -> { |
|
|
|
ScreenProjectProcessAttachmentEntity attachmentEntity = ConvertUtils.sourceToTarget(attachment, ScreenProjectProcessAttachmentEntity.class); |
|
|
|
attachmentEntity.setCustomerId(param.getCustomerId()); |
|
|
|
attachmentEntity.setProcessId(item.getProcessId()); |
|
|
|
attachmentEntity.setProjectId(item.getProjectId()); |
|
|
|
if (attachmentEntity.getSort() == null) { |
|
|
|
attachmentEntity.setSort(i.getAndIncrement()); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
return attachmentEntity; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
attachmentList.addAll(attachments); |
|
|
|
return entity; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
this.insertBatch(processList); |
|
|
|
screenProjectProcessAttachmentService.insertBatch(attachmentList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|