|
|
@@ -41,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@@ -82,6 +79,9 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
|
|
|
private final PtlAgreementAttributionHistoryService ptlAgreementAttributionHistoryService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PtlAgreementDeptHistoryService ptlAgreementDeptHistoryService;
|
|
|
+
|
|
|
|
|
|
public PtlAgreementServiceImpl(PtlAgreementProductCostsService ptlAgreementProductCostsService,
|
|
|
PtlAgreementAttributionService ptlAgreementAttributionService, PtlAgreementDeptService ptlAgreementDeptService,
|
|
|
@@ -110,6 +110,16 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
LocalDate localDate = LocalDate.now();
|
|
|
List<PtlAgreementInsCompanyDto> agreementCompany = baseMapper.getAgreementCompany(localDate, deptId);
|
|
|
|
|
|
+ for (PtlAgreementInsCompanyDto ptlAgreementInsCompanyDto : agreementCompany) {
|
|
|
+ List<PtlAgreementDto> agreement = ptlAgreementInsCompanyDto.getAgreement();
|
|
|
+ for (PtlAgreementDto ptlAgreementDto : agreement) {
|
|
|
+ if (ptlAgreementDto.getProductsCode() != null && !ptlAgreementDto.getProductsCode().equals("")) {
|
|
|
+ String[] split = ptlAgreementDto.getProductsCode().split(",");
|
|
|
+ ptlAgreementDto.setProductsCodes(split);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<String> agreementIdList = agreementCompany.stream()
|
|
|
.flatMap(x -> x.getAgreement().stream().map(PtlAgreementDto::getId))
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -149,6 +159,7 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
|
|
|
EsmInsCompany esmInsCompany = proxyObject.verifyLogin(ptlAgreement, agreementSaveDto, attribution);
|
|
|
// ptlAgreement.setId(IdGenerate.nextId());
|
|
|
+ ptlAgreement.setProductsCode(agreementSaveDto.getProductsCode());
|
|
|
ptlAgreement.setCreator(userName);
|
|
|
ptlAgreement.setCreateTime(LocalDateTime.now());
|
|
|
save(ptlAgreement);
|
|
|
@@ -157,7 +168,11 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
// 添加 历史记录表
|
|
|
//生成批次号
|
|
|
String batchNo = IdGenerate.nextId();
|
|
|
- PtlAgreementHistory ptlAgreementHistory = new PtlAgreementHistory(batchNo,userName, HistoryStatusConstants.HISTORY_TYPE_ADD, ptlAgreement);
|
|
|
+ //添加授权部门历史信息
|
|
|
+ List<String> dept = agreement.getDept();
|
|
|
+ List<PtlAgreementDeptHistory> ptlAgreementDeptList = PtlAgreementDeptHistory.toPtlAgreementDeptHistoryList(ptlAgreement.getId(), dept, batchNo);
|
|
|
+ ptlAgreementDeptHistoryService.saveBatch(ptlAgreementDeptList);
|
|
|
+ PtlAgreementHistory ptlAgreementHistory = new PtlAgreementHistory(batchNo, userName, HistoryStatusConstants.HISTORY_TYPE_ADD, ptlAgreement);
|
|
|
ptlAgreementHistory.setStartDate(ptlAgreement.getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
ptlAgreementHistory.setEndDate(ptlAgreement.getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
ptlAgreementHistory.setAgreementId(ptlAgreement.getId());
|
|
|
@@ -343,13 +358,64 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getValidStatus()), PtlAgreement::getValidStatus, ptlAgreementPageVo.getValidStatus())
|
|
|
// 供应商类型
|
|
|
.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getCompaniesType()), PtlAgreement::getCompaniesType, ptlAgreementPageVo.getCompaniesType())
|
|
|
+ // 协议类型
|
|
|
+ .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAgreementType()), PtlAgreement::getAgreementType, ptlAgreementPageVo.getAgreementType())
|
|
|
+ // 录入人
|
|
|
+ .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getCreator()), PtlAgreement::getCreator, ptlAgreementPageVo.getCreator())
|
|
|
+ // 修改人
|
|
|
+ .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getModifiedBy()), PtlAgreement::getModifiedBy, ptlAgreementPageVo.getModifiedBy())
|
|
|
// 合作公司
|
|
|
.in(!StringUtils.isEmpty(ptlAgreementPageVo.getPartnerCompaniesId()) && !lowerId.isEmpty(), PtlAgreement::getPartnerCompaniesId, lowerId)
|
|
|
// 录入时间
|
|
|
- .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate()), PtlAgreement::getCreateTime, ptlAgreementPageVo.getStartDate(), ptlAgreementPageVo.getEndDate());
|
|
|
- Page<PtlAgreement> ptlAgreementPage = new Page<>(pageNum, pageSize);
|
|
|
- Page<PtlAgreement> agreementPage = page(ptlAgreementPage, wrapper);
|
|
|
- PageResult<PtlAgreement> ptlAgreementPageResult = new PageResult<>(pageNum, pageSize, (int) agreementPage.getTotal(), agreementPage.getRecords());
|
|
|
+ .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate()), PtlAgreement::getCreateTime, ptlAgreementPageVo.getStartDate(), ptlAgreementPageVo.getEndDate())
|
|
|
+ // 修改时间
|
|
|
+ .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateStarTime()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getUpdateEndTime()), PtlAgreement::getUpdateTime, ptlAgreementPageVo.getUpdateStarTime(), ptlAgreementPageVo.getUpdateEndTime())
|
|
|
+ // 协议起期
|
|
|
+ .ge(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAgreementStartDate()), PtlAgreement::getStartDate, ptlAgreementPageVo.getAgreementStartDate())
|
|
|
+ // 协议止期
|
|
|
+ .le(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAgreementEndDate()), PtlAgreement::getEndDate, ptlAgreementPageVo.getAgreementEndDate());
|
|
|
+
|
|
|
+// Page<PtlAgreement> ptlAgreementPage = new Page<>(pageNum, pageSize);
|
|
|
+ List<PtlAgreement> records = list(wrapper);
|
|
|
+// Page<PtlAgreement> agreementPage = page(ptlAgreementPage, wrapper);
|
|
|
+// List<PtlAgreement> records = agreementPage.getRecords();
|
|
|
+ if (ptlAgreementPageVo.getAreaCode() != null && !"".equals(ptlAgreementPageVo.getAreaCode()) && ptlAgreementPageVo.getLevel() != null) {
|
|
|
+ String area = ptlAgreementPageVo.getAreaCode();
|
|
|
+ String prefix = null;
|
|
|
+ Integer sign = 0;
|
|
|
+ switch (ptlAgreementPageVo.getLevel()) {
|
|
|
+ case "1": { // 省级查询逻辑
|
|
|
+ sign = 7;
|
|
|
+ prefix = area.substring(0, 2);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "2": { // 市级查询逻辑
|
|
|
+ sign = 9;
|
|
|
+ prefix = area.substring(0, 4);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "3": { // 区县级查询逻辑
|
|
|
+ sign = 11;
|
|
|
+ prefix = area.substring(0, 6);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (records.size() != 0) {
|
|
|
+ List<PtlAgreement> ptlAgreements = new ArrayList<>();
|
|
|
+ for (PtlAgreement record : records) {
|
|
|
+ String substring = record.getPartnerCompaniesId().substring(5, sign);
|
|
|
+ if (substring.equals(prefix)) {
|
|
|
+ ptlAgreements.add(record);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ records.clear();
|
|
|
+ records.addAll(ptlAgreements);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<PtlAgreement> paginate = paginate(records, pageNum, pageSize);
|
|
|
+
|
|
|
+ PageResult<PtlAgreement> ptlAgreementPageResult = new PageResult<>(pageNum, pageSize, records.size(), paginate);
|
|
|
return HttpResult.ok(ptlAgreementPageResult);
|
|
|
}
|
|
|
|
|
|
@@ -416,7 +482,16 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
// 添加 历史记录表
|
|
|
//生成批次号
|
|
|
String batchNo = IdGenerate.nextId();
|
|
|
- PtlAgreementHistory ptlAgreementHistory = new PtlAgreementHistory(batchNo,userName, HistoryStatusConstants.HISTORY_TYPE_ADD, byAgreementId.getData().getAgreement());
|
|
|
+ List<PtlAgreementDept> dept = byAgreementId.getData().getDept();
|
|
|
+ ArrayList<PtlAgreementDeptHistory> histories = new ArrayList<>();
|
|
|
+ for (PtlAgreementDept ptlAgreementDept : dept) {
|
|
|
+ PtlAgreementDeptHistory deptHistory = new PtlAgreementDeptHistory();
|
|
|
+ deptHistory.setAgreementId(ptlAgreementDept.getAgreementId());
|
|
|
+ deptHistory.setDeptId(ptlAgreementDept.getDeptId());
|
|
|
+ deptHistory.setBatch(batchNo);
|
|
|
+ }
|
|
|
+ ptlAgreementDeptHistoryService.saveBatch(histories);
|
|
|
+ PtlAgreementHistory ptlAgreementHistory = new PtlAgreementHistory(batchNo, userName, HistoryStatusConstants.HISTORY_TYPE_ADD, byAgreementId.getData().getAgreement());
|
|
|
ptlAgreementHistory.setStartDate(byAgreementId.getData().getAgreement().getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
ptlAgreementHistory.setEndDate(byAgreementId.getData().getAgreement().getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
ptlAgreementHistory.setAgreementId(ptlAgreementHistory.getId());
|
|
|
@@ -445,6 +520,7 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
|
|
|
EsmInsCompany esmInsCompany = proxyObject.verifyLogin(ptlAgreement, agreementSaveDto, attribution);
|
|
|
|
|
|
+ ptlAgreement.setProductsCode(agreementSaveDto.getProductsCode());
|
|
|
ptlAgreement.setModifiedBy(userName);
|
|
|
ptlAgreement.setUpdateTime(LocalDateTime.now());
|
|
|
HttpResult<PtlAgreementQueryVo> byAgreementId = this.getByAgreementId(agreementId);
|
|
|
@@ -459,7 +535,11 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
// 添加 历史记录表
|
|
|
//生成批次号
|
|
|
String batchNo = IdGenerate.nextId();
|
|
|
- PtlAgreementHistory ptlAgreementHistory = new PtlAgreementHistory(batchNo,userName, HistoryStatusConstants.HISTORY_TYPE_ADD, ptlAgreement);
|
|
|
+ //添加授权部门历史信息
|
|
|
+ List<String> dept = agreement.getDept();
|
|
|
+ List<PtlAgreementDeptHistory> ptlAgreementDeptList = PtlAgreementDeptHistory.toPtlAgreementDeptHistoryList(ptlAgreement.getId(), dept, batchNo);
|
|
|
+ ptlAgreementDeptHistoryService.saveBatch(ptlAgreementDeptList);
|
|
|
+ PtlAgreementHistory ptlAgreementHistory = new PtlAgreementHistory(batchNo, userName, HistoryStatusConstants.HISTORY_TYPE_ADD, ptlAgreement);
|
|
|
ptlAgreementHistory.setStartDate(ptlAgreement.getStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
ptlAgreementHistory.setEndDate(ptlAgreement.getEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
ptlAgreementHistory.setAgreementId(ptlAgreement.getId());
|
|
|
@@ -638,4 +718,23 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
|
|
|
return ptlAgreements;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 手动对 QuUserNum 列表进行分页
|
|
|
+ *
|
|
|
+ * @param ptlAgreements 原始 QuUserNum 数据列表
|
|
|
+ * @param pageNum 期望获取的页码(从 1 开始)
|
|
|
+ * @param pageSize 每页包含的 QuUserNum 数量
|
|
|
+ * @return 对应页码的 QuUserNum 子列表,若输入参数无效则返回空列表
|
|
|
+ */
|
|
|
+ public List<PtlAgreement> paginate(List<PtlAgreement> ptlAgreements, int pageNum, int pageSize) {
|
|
|
+ if (ptlAgreements == null || ptlAgreements.isEmpty() || pageNum < 1 || pageSize < 1) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ int startIndex = (pageNum - 1) * pageSize;
|
|
|
+ int endIndex = Math.min(startIndex + pageSize, ptlAgreements.size());
|
|
|
+
|
|
|
+ return ptlAgreements.subList(startIndex, endIndex);
|
|
|
+ }
|
|
|
+
|
|
|
}
|