新购接口优化
This commit is contained in:
parent
1beca0b8c9
commit
413d8a0e89
|
|
@ -86,9 +86,9 @@ public class PurchaseCheckDetails extends BaseEntity {
|
|||
@Excel(name = "物资厂家名称")
|
||||
private String supplierName;
|
||||
|
||||
/** 0-未验收,1-已验收,2-待通知,3-验收不通过,4-已入库,5-入库驳回,6-综合服务中心审核通过,7-综合服务中心不通过 */
|
||||
//@Excel(name = "0-未验收,1-已验收,2-待通知,3-验收不通过,4-已入库,5-入库驳回,6-综合服务中心审核通过,7-综合服务中心不通过")
|
||||
@ApiModelProperty(value = "0-未验收,1-已验收,2-待通知,3-验收不通过,4-已入库,5-入库驳回,6-综合服务中心审核通过,7-综合服务中心不通过")
|
||||
/** 状态,参考数据字典purchase_task_status键值 */
|
||||
@Excel(name = "状态")
|
||||
@ApiModelProperty(value = "状态,参考数据字典purchase_task_status键值")
|
||||
private Integer status;
|
||||
|
||||
/** 出厂日期 */
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ public interface PurchaseCheckDetailsMapper {
|
|||
* @param taskId * @param type 1-验收,2-入库
|
||||
* @return String类型,多个物资类型根据逗号分割
|
||||
*/
|
||||
String selectMaTypeNameByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status);
|
||||
//String selectMaTypeNameByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status);
|
||||
|
||||
String selectMaTypeNameByTaskAndStatusList(@Param("taskId") Long taskId, @Param("statusList") List<Integer> statusList);
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -68,15 +68,19 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
@Override
|
||||
public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) {
|
||||
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
|
||||
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
List<PurchaseCheckDetails> purchaseCheckDetails;
|
||||
if (isAllowPartTransfer) {
|
||||
purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
} else {
|
||||
purchaseQueryDto.setTaskStatus(null);
|
||||
purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
|
||||
if (purchaseCheckInfo != null) {
|
||||
purchaseCheckDtoResult.setPurchaseCheckInfo(purchaseCheckInfo);
|
||||
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
List<PurchaseCheckDetails> purchaseCheckDetails;
|
||||
if (isAllowPartTransfer) {
|
||||
purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
} else {
|
||||
purchaseQueryDto.setTaskStatus(null);
|
||||
purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
}
|
||||
purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetails);
|
||||
}
|
||||
purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetails);
|
||||
return purchaseCheckDtoResult;
|
||||
}
|
||||
|
||||
|
|
@ -95,16 +99,16 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
}
|
||||
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
// TODO 下一行需要前端传1后删除
|
||||
purchaseQueryDto.setTaskStatus(Objects.isNull(purchaseQueryDto.getTaskStatus()) ? PurchaseTaskStatusEnum.TO_NOTICE.getStatus() : purchaseQueryDto.getTaskStatus());
|
||||
// purchaseQueryDto.setTaskStatus(Objects.isNull(purchaseQueryDto.getTaskStatus()) ? PurchaseTaskStatusEnum.TO_NOTICE.getStatus() : purchaseQueryDto.getTaskStatus());
|
||||
for (PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) {
|
||||
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), null);
|
||||
OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min();
|
||||
OptionalInt maxStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).max();
|
||||
if (isAllowPartTransfer) {
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getTaskStatus().equals(o.getStatus())).collect(Collectors.toList());
|
||||
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), purchaseQueryDto.getTaskStatus()));
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getStatusList().contains(o.getStatus())).collect(Collectors.toList());
|
||||
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), purchaseQueryDto.getStatusList()));
|
||||
} else {
|
||||
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), null));
|
||||
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
|
||||
AtomicLong purchaseMaTotalNumber = new AtomicLong(0L);
|
||||
|
|
|
|||
|
|
@ -108,8 +108,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="productionTime != null">
|
||||
and pcd.production_time between #{startTime} and #{endTime}
|
||||
</if>
|
||||
<if test="taskStatus != null and taskStatus != ''">
|
||||
and pcd.status = #{taskStatus}
|
||||
<!-- <if test="taskStatus != null and taskStatus != ''">-->
|
||||
<!-- and pcd.status = #{taskStatus}-->
|
||||
<!-- </if>-->
|
||||
<if test="statusList != null and statusList.size() > 0">
|
||||
and pcd.status in
|
||||
<foreach item="item" collection="statusList" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="keyWord != null and keyWord != ''">
|
||||
and (mt.type_name like concat('%', #{keyWord}, '%')
|
||||
|
|
@ -231,28 +237,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectMaTypeNameByTaskId" resultType="java.lang.String">
|
||||
<!-- <select id="selectMaTypeNameByTaskId" resultType="java.lang.String">-->
|
||||
<!-- select-->
|
||||
<!-- GROUP_CONCAT(type_name) typeName-->
|
||||
<!-- from-->
|
||||
<!-- (-->
|
||||
<!-- select-->
|
||||
<!-- distinct pcd.task_id, mt1.type_name-->
|
||||
<!-- from-->
|
||||
<!-- purchase_check_details pcd-->
|
||||
<!-- left join-->
|
||||
<!-- ma_type mt on pcd.type_id = mt.type_id-->
|
||||
<!-- left join-->
|
||||
<!-- ma_type mt1 on mt.parent_id = mt1.type_id-->
|
||||
<!-- where-->
|
||||
<!-- 1=1-->
|
||||
<!-- <if test="status != null">-->
|
||||
<!-- and pcd.status = #{status}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="taskId != null">-->
|
||||
<!-- and pcd.task_id = #{taskId}-->
|
||||
<!-- </if>-->
|
||||
<!-- ) t-->
|
||||
<!-- GROUP BY task_id-->
|
||||
<!-- </select>-->
|
||||
|
||||
<select id="selectMaTypeNameByTaskAndStatusList" resultType="java.lang.String">
|
||||
select
|
||||
GROUP_CONCAT(type_name) typeName
|
||||
GROUP_CONCAT(type_name) typeName
|
||||
from
|
||||
(
|
||||
select
|
||||
distinct pcd.task_id, mt1.type_name
|
||||
from
|
||||
purchase_check_details pcd
|
||||
left join
|
||||
ma_type mt on pcd.type_id = mt.type_id
|
||||
left join
|
||||
ma_type mt1 on mt.parent_id = mt1.type_id
|
||||
where
|
||||
1=1
|
||||
<if test="status != null">
|
||||
and pcd.status = #{status}
|
||||
</if>
|
||||
<if test="taskId != null">
|
||||
and pcd.task_id = #{taskId}
|
||||
</if>
|
||||
) t
|
||||
(
|
||||
select
|
||||
distinct pcd.task_id, mt1.type_name
|
||||
from
|
||||
purchase_check_details pcd
|
||||
left join
|
||||
ma_type mt on pcd.type_id = mt.type_id
|
||||
left join
|
||||
ma_type mt1 on mt.parent_id = mt1.type_id
|
||||
where
|
||||
1=1
|
||||
<if test="statusList != null and statusList.size() > 0">
|
||||
and pcd.status in
|
||||
<foreach item="item" collection="statusList" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="taskId != null">
|
||||
and pcd.task_id = #{taskId}
|
||||
</if>
|
||||
) t
|
||||
GROUP BY task_id
|
||||
</select>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue