国贸2.0系统合同分页查询:添加查询条件:合同有效期起、合同有效期止、签约地、签约日期;去除查询条件:合同编号
This commit is contained in:
@@ -6,8 +6,24 @@ import lombok.Data;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class IntContractPageReq extends PageParam {
|
public class IntContractPageReq extends PageParam {
|
||||||
@Schema(description = "合同编号")
|
|
||||||
private String contractCode;
|
// 合同名称:模糊搜索
|
||||||
@Schema(description = "合同名称")
|
@Schema(description = "合同名称")
|
||||||
private String contractName;
|
private String contractName;
|
||||||
|
// 合同有效期起:日期选择
|
||||||
|
@Schema(description = "合同有效期起")
|
||||||
|
private String contractStartDate;
|
||||||
|
// 合同有效期止:日期选择
|
||||||
|
@Schema(description = "合同有效期止")
|
||||||
|
private String contractEndDate;
|
||||||
|
// 合同版本号:精确搜索 TODO 不确定
|
||||||
|
// 签约地:模糊搜索
|
||||||
|
@Schema(description = "签约地")
|
||||||
|
private String signSite;
|
||||||
|
// 经办人姓名:模糊搜索
|
||||||
|
@Schema(description = "经办人姓名")
|
||||||
|
private String createdUserName;
|
||||||
|
// 签约日期: 模糊搜索
|
||||||
|
@Schema(description = "签约日期")
|
||||||
|
private String signDate;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,9 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -250,6 +252,12 @@ public class ContractApiImpl implements ContractApi {
|
|||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国贸合同信息未映射合同主信息字段保存到动态条款
|
||||||
|
*
|
||||||
|
* @param reqVO 国贸合同信息
|
||||||
|
* @param contractId 合同主信息ID
|
||||||
|
*/
|
||||||
private void saveIntContractFields(IntContract reqVO, Long contractId) {
|
private void saveIntContractFields(IntContract reqVO, Long contractId) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -370,10 +378,28 @@ public class ContractApiImpl implements ContractApi {
|
|||||||
DictEnum.SPLY_BSN_TP_03BX.getCode()
|
DictEnum.SPLY_BSN_TP_03BX.getCode()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
// 合同编号
|
// 合同名称:模糊搜索
|
||||||
queryWrapperX.likeIfPresent(ContractMainDO::getContractPaperNumber, pageReq.getContractCode());
|
|
||||||
// 合同名称
|
|
||||||
queryWrapperX.likeIfPresent(ContractMainDO::getContractName, pageReq.getContractName());
|
queryWrapperX.likeIfPresent(ContractMainDO::getContractName, pageReq.getContractName());
|
||||||
|
// 合同有效期起:日期选择
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||||
|
queryWrapperX.geIfPresent(ContractMainDO::getStartDate,
|
||||||
|
pageReq.getContractStartDate() != null
|
||||||
|
? LocalDateTime.of(LocalDate.parse(pageReq.getContractStartDate(), formatter), LocalTime.MIN)
|
||||||
|
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
|
||||||
|
: null);
|
||||||
|
// 合同有效期止:日期选择
|
||||||
|
queryWrapperX.leIfPresent(ContractMainDO::getEndDate,
|
||||||
|
pageReq.getContractEndDate() != null
|
||||||
|
? LocalDateTime.of(LocalDate.parse(pageReq.getContractEndDate(), formatter), LocalTime.MAX)
|
||||||
|
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
|
||||||
|
: null);
|
||||||
|
// 签约地:模糊搜索
|
||||||
|
queryWrapperX.likeIfPresent(ContractMainDO::getSignPlace, pageReq.getSignSite());
|
||||||
|
// 经办人姓名:模糊搜索
|
||||||
|
// 签约日期: 模糊搜索
|
||||||
|
if (pageReq.getSignDate() != null) {
|
||||||
|
queryWrapperX.apply("to_char(SGN_DT, 'yyyymmdd') like concat('%',{0},'%')", pageReq.getSignDate());
|
||||||
|
}
|
||||||
|
|
||||||
// 查询
|
// 查询
|
||||||
PageResult<ContractMainDO> pageResult = contractMainMapper.selectPage(pageReq, queryWrapperX);
|
PageResult<ContractMainDO> pageResult = contractMainMapper.selectPage(pageReq, queryWrapperX);
|
||||||
@@ -387,63 +413,66 @@ public class ContractApiImpl implements ContractApi {
|
|||||||
|
|
||||||
// 遍历查询结果,设置返回数据列表
|
// 遍历查询结果,设置返回数据列表
|
||||||
if (pageResult.getTotal() > 0) {
|
if (pageResult.getTotal() > 0) {
|
||||||
pageResult.getList().forEach(contractMainDO -> {
|
pageResult.getList().forEach(contractMainDO
|
||||||
|
-> resultList.add(getIntContractByMainId(contractMainDO.getId())));
|
||||||
// 合同ID
|
|
||||||
Long mainDOId = contractMainDO.getId();
|
|
||||||
|
|
||||||
// 合同动态条款查询
|
|
||||||
List<ContractOtherFormDO> otherFormDOs = contractOtherFormMapper.selectList(
|
|
||||||
new LambdaQueryWrapperX<ContractOtherFormDO>()
|
|
||||||
.eq(ContractOtherFormDO::getContractMainId, mainDOId)
|
|
||||||
);
|
|
||||||
// 合同动态条款明细查询
|
|
||||||
List<ContractOtherFieldDO> otherFieldDOs = contractOtherFieldMapper.selectList(
|
|
||||||
new LambdaQueryWrapperX<ContractOtherFieldDO>()
|
|
||||||
.eq(ContractOtherFieldDO::getContractMainId, mainDOId)
|
|
||||||
);
|
|
||||||
|
|
||||||
JSONObject resultJson = new JSONObject();
|
|
||||||
|
|
||||||
// 设置主信息
|
|
||||||
otherFieldDOs.stream()
|
|
||||||
.filter(otherFieldDO -> otherFieldDO.getRelativityId() == null)
|
|
||||||
.forEach(otherFieldDO
|
|
||||||
-> resultJson.putOnce(otherFieldDO.getFieldNumber(), otherFieldDO.getFieldValue()));
|
|
||||||
|
|
||||||
// 设置明细信息
|
|
||||||
otherFormDOs.stream()
|
|
||||||
.collect(Collectors.groupingBy(ContractOtherFormDO::getFormNumber))
|
|
||||||
.forEach((key, value) -> {
|
|
||||||
JSONArray detailsJson = new JSONArray();
|
|
||||||
value.forEach(detail -> {
|
|
||||||
// 根据条款id筛选条款明细
|
|
||||||
Stream<ContractOtherFieldDO> stream = otherFieldDOs.stream()
|
|
||||||
.filter(otherFieldDO
|
|
||||||
-> Objects.equals(otherFieldDO.getRelativityId(), detail.getId()));
|
|
||||||
if ("attachList".equals(key)) {
|
|
||||||
// 基础数据类型
|
|
||||||
stream.forEach(otherFieldDO
|
|
||||||
-> detailsJson.add(otherFieldDO.getFieldValue()));
|
|
||||||
} else {
|
|
||||||
// 对象数据类型
|
|
||||||
JSONObject detailJson = new JSONObject();
|
|
||||||
stream.forEach(otherFieldDO
|
|
||||||
-> detailJson.putOnce(otherFieldDO.getFieldNumber(), otherFieldDO.getFieldValue()));
|
|
||||||
detailsJson.add(detailJson);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
resultJson.putOnce(key, detailsJson);
|
|
||||||
});
|
|
||||||
|
|
||||||
// 添加到结果集
|
|
||||||
resultList.add(resultJson.toBean(IntContract.class));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return success(result);
|
return success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取国贸合同信息通过合同主信息ID
|
||||||
|
*
|
||||||
|
* @param mainId 同主信息ID
|
||||||
|
* @return 国贸合同信息
|
||||||
|
*/
|
||||||
|
private IntContract getIntContractByMainId(Long mainId) {
|
||||||
|
// 合同动态条款查询
|
||||||
|
List<ContractOtherFormDO> otherFormDOs = contractOtherFormMapper.selectList(
|
||||||
|
new LambdaQueryWrapperX<ContractOtherFormDO>()
|
||||||
|
.eq(ContractOtherFormDO::getContractMainId, mainId)
|
||||||
|
);
|
||||||
|
// 合同动态条款明细查询
|
||||||
|
List<ContractOtherFieldDO> otherFieldDOs = contractOtherFieldMapper.selectList(
|
||||||
|
new LambdaQueryWrapperX<ContractOtherFieldDO>()
|
||||||
|
.eq(ContractOtherFieldDO::getContractMainId, mainId)
|
||||||
|
);
|
||||||
|
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
|
||||||
|
// 设置主信息
|
||||||
|
otherFieldDOs.stream()
|
||||||
|
.filter(otherFieldDO -> otherFieldDO.getRelativityId() == null)
|
||||||
|
.forEach(otherFieldDO
|
||||||
|
-> resultJson.putOnce(otherFieldDO.getFieldNumber(), otherFieldDO.getFieldValue()));
|
||||||
|
|
||||||
|
// 设置明细信息
|
||||||
|
otherFormDOs.stream()
|
||||||
|
.collect(Collectors.groupingBy(ContractOtherFormDO::getFormNumber))
|
||||||
|
.forEach((key, value) -> {
|
||||||
|
JSONArray detailsJson = new JSONArray();
|
||||||
|
value.forEach(detail -> {
|
||||||
|
// 根据条款id筛选条款明细
|
||||||
|
Stream<ContractOtherFieldDO> stream = otherFieldDOs.stream()
|
||||||
|
.filter(otherFieldDO
|
||||||
|
-> Objects.equals(otherFieldDO.getRelativityId(), detail.getId()));
|
||||||
|
if ("attachList".equals(key)) {
|
||||||
|
// 基础数据类型
|
||||||
|
stream.forEach(otherFieldDO
|
||||||
|
-> detailsJson.add(otherFieldDO.getFieldValue()));
|
||||||
|
} else {
|
||||||
|
// 对象数据类型
|
||||||
|
JSONObject detailJson = new JSONObject();
|
||||||
|
stream.forEach(otherFieldDO
|
||||||
|
-> detailJson.putOnce(otherFieldDO.getFieldNumber(), otherFieldDO.getFieldValue()));
|
||||||
|
detailsJson.add(detailJson);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
resultJson.putOnce(key, detailsJson);
|
||||||
|
});
|
||||||
|
return resultJson.toBean(IntContract.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<List<PurchaseOrderWithDetailsDTO>> getOrderByOrderIds(List<Long> ids) {
|
public CommonResult<List<PurchaseOrderWithDetailsDTO>> getOrderByOrderIds(List<Long> ids) {
|
||||||
if (ids == null || ids.isEmpty()) {
|
if (ids == null || ids.isEmpty()) {
|
||||||
@@ -475,6 +504,12 @@ public class ContractApiImpl implements ContractApi {
|
|||||||
return CommonResult.success(purchaseOrderDetails);
|
return CommonResult.success(purchaseOrderDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国贸合同信息映射到合同主信息
|
||||||
|
*
|
||||||
|
* @param reqVO 国贸合同信息
|
||||||
|
* @return 合同主信息
|
||||||
|
*/
|
||||||
private ContractMainDO internationalToMainDO(IntContract reqVO) {
|
private ContractMainDO internationalToMainDO(IntContract reqVO) {
|
||||||
|
|
||||||
// 合同主信息表映射
|
// 合同主信息表映射
|
||||||
|
|||||||
Reference in New Issue
Block a user