feat: 下载处方key模糊、修复分页接口

scpwxyy
chenhc 10 months ago
parent 4a7bd3f337
commit e02ad0aa93

@ -1427,18 +1427,22 @@ public class CtqyyClient extends CommonHttpClient {
// wrapper.le(StrUtil.isNotEmpty(endTime),VYpzsPlanInfo::getKEEP_BOOK_TIME,endTime+" 23:59:59");
wrapper.eq(StrUtil.isNotBlank(udiwmsThrOrderRequest.getBillNo()), VYpzsPlanInfo::getCGDBH, udiwmsThrOrderRequest.getBillNo());
//关键字模糊处理
wrapper.like(StrUtil.isNotBlank(udiwmsThrOrderRequest.getKeywords()), VYpzsPlanInfo::getCGDBH, udiwmsThrOrderRequest.getKeywords())
.or().
like(VYpzsPlanInfo::getCGDBH, udiwmsThrOrderRequest.getKeywords());
// TODO: 2024/9/17 字段进行匹配 //模糊 单据号、三方单据类型、发货方、收货方、单据时间,来源系统
String keywords = udiwmsThrOrderRequest.getKeyWords();
wrapper.and(StrUtil.isNotEmpty(keywords), t -> t.like(VYpzsPlanInfo::getCGDBH, keywords)//单据号
);
Page<VYpzsPlanInfo> page = vYpzsPlanInfoMapper.selectGroupedWithPagination(new Page<VYpzsPlanInfo>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), udiwmsThrOrderRequest);
IPage<VYpzsPlanInfo> page = vYpzsPlanInfoMapper.selectPage(new Page<VYpzsPlanInfo>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), wrapper);
List<VYpzsPlanInfo> planInfos = page.getRecords();
List<IoCollectOrder> ioCollectOrders = new ArrayList<>();
if (CollUtil.isNotEmpty(planInfos)) {
Map<String, List<VYpzsPlanInfo>> groupedByBz = planInfos.stream()
List<String> collect = planInfos.stream().map(VYpzsPlanInfo::getCGDBH).collect(Collectors.toList());
LambdaQueryWrapper<VYpzsPlanInfo> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(VYpzsPlanInfo::getCGDBH,collect);
List<VYpzsPlanInfo> vYpzsPlanInfos = vYpzsPlanInfoMapper.selectList(wrapper1);
Map<String, List<VYpzsPlanInfo>> groupedByBz = vYpzsPlanInfos.stream()
.collect(Collectors.groupingBy(VYpzsPlanInfo::getCGDBH));
groupedByBz.forEach((key, value) -> {
VYpzsPlanInfo planInfo = value.get(0);
@ -1493,11 +1497,27 @@ public class CtqyyClient extends CommonHttpClient {
wrapper.eq(StrUtil.isNotBlank(udiwmsThrOrderRequest.getBillNo()), VYpzsIoInfo::getPHYSIC_CODE, udiwmsThrOrderRequest.getBillNo());
wrapper.eq(StrUtil.isNotBlank(udiwmsThrOrderRequest.getBusType()), VYpzsIoInfo::getIO_SORT, udiwmsThrOrderRequest.getBusType());
Page<VYpzsIoInfo> page = vYpzsIoInfoMapper.selectPage(new Page<VYpzsIoInfo>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), wrapper);
//关键字模糊处理
String keywords = udiwmsThrOrderRequest.getKeyWords();
wrapper.and(StrUtil.isNotEmpty(keywords), t -> t.like(VYpzsIoInfo::getPHYSIC_CODE, keywords)//单据号
.or().like(VYpzsIoInfo::getCONSIGNOR_NAME, keywords)//发货方
.or().like(VYpzsIoInfo::getCONSIGNEE_NAME, keywords)//收货方
.or().like(VYpzsIoInfo::getKEEP_BOOK_TIME, keywords)//收货方
.or().like(VYpzsIoInfo::getIO_SORT, keywords)//收货方
);
Page<VYpzsIoInfo> page = vYpzsIoInfoMapper.selectGroupedWithPagination( new Page<VYpzsIoInfo>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), udiwmsThrOrderRequest);
List<VYpzsIoInfo> ioInfos = page.getRecords();
List<IoCollectOrder> ioCollectOrders = new ArrayList<>();
if (CollUtil.isNotEmpty(ioInfos)) {
Map<String, List<VYpzsIoInfo>> groupedByPhysicCode = ioInfos.stream()
List<String> collect = ioInfos.stream().map(VYpzsIoInfo::getRECEIPT_NUMBER).collect(Collectors.toList());
LambdaQueryWrapper<VYpzsIoInfo> vYpzsIoInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
vYpzsIoInfoLambdaQueryWrapper.in(VYpzsIoInfo::getRECEIPT_NUMBER,collect);
List<VYpzsIoInfo> vYpzsIoInfos = vYpzsIoInfoMapper.selectList(vYpzsIoInfoLambdaQueryWrapper);
Map<String, List<VYpzsIoInfo>> groupedByPhysicCode = vYpzsIoInfos.stream()
.collect(Collectors.groupingBy(VYpzsIoInfo::getRECEIPT_NUMBER));
groupedByPhysicCode.forEach((key, value) -> {
VYpzsIoInfo info = value.get(0);

@ -198,6 +198,6 @@ public class UdiwmsThrOrderRequest extends ListPageRequest {
private String startTime;
private String endTime;
private String keywords;//模糊 单据号、三方单据类型、发货方、收货方、单据时间,来源系统
private String keyWords;//模糊 单据号、三方单据类型、发货方、收货方、单据时间,来源系统
}

@ -1,9 +1,19 @@
package com.glxp.mipsdl.thirddao.ctqyy;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.mipsdl.entity.ctqyy.VYpzsIoInfo;
import com.glxp.mipsdl.req.base.UdiwmsThrOrderRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface VYpzsIoInfoMapper extends BaseMapper<VYpzsIoInfo> {
// 使用基本的 MyBatis 注解或 XML 映射
Page<VYpzsIoInfo> selectGroupedWithPagination(IPage<VYpzsIoInfo> page, @Param("udiwmsThrOrderRequest")UdiwmsThrOrderRequest udiwmsThrOrderRequest);
}

@ -2,12 +2,19 @@ package com.glxp.mipsdl.thirddao.ctqyy;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.mipsdl.entity.ctqyy.VYpzsIoInfo;
import com.glxp.mipsdl.entity.ctqyy.VYpzsPlanInfo;
import com.glxp.mipsdl.req.base.UdiwmsThrOrderRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
@DS("ctqyySql")
public interface VYpzsPlanInfoMapper extends BaseMapper<VYpzsPlanInfo> {
// 使用基本的 MyBatis 注解或 XML 映射
Page<VYpzsPlanInfo> selectGroupedWithPagination(IPage<VYpzsPlanInfo> page, @Param("udiwmsThrOrderRequest")UdiwmsThrOrderRequest udiwmsThrOrderRequest);
}

@ -31,4 +31,47 @@
CONSIGNEE_NAME, KEEP_BOOK_TIME, KEEP_BOOK_OPERATOR, PHYSIC_CODE, PHYSIC_NAME, BATCH_NO,
BATCH_NUMBER, QUANTITY, PACK_UNIT1, IMPORT_PRICE, IMPORT_MONEY, RETAIL_PRICE, RETAIL_MONEY
</sql>
<select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsIoInfo">
SELECT
RECEIPT_NUMBER
FROM
v_ypzs_io_info
<where>
<if test="udiwmsThrOrderRequest.startTime != null">
<![CDATA[
and KEEP_BOOK_TIME >= DATE_FORMAT(#{udiwmsThrOrderRequest.startTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="udiwmsThrOrderRequest.endTime != null">
<![CDATA[
and KEEP_BOOK_TIME <= DATE_FORMAT(#{udiwmsThrOrderRequest.endTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="udiwmsThrOrderRequest.corpName != null and udiwmsThrOrderRequest.corpName != ''">
and (CONSIGNOR_NAME like concat('%', #{udiwmsThrOrderRequest.corpName}, '%')
or CONSIGNEE_NAME like concat('%', #{udiwmsThrOrderRequest.corpName}, '%')
)
</if>
<if test="udiwmsThrOrderRequest.billNo != null and udiwmsThrOrderRequest.billNo != ''">
and PHYSIC_CODE like concat('%', #{udiwmsThrOrderRequest.billNo}, '%')
</if>
<if test="udiwmsThrOrderRequest.busType != null and udiwmsThrOrderRequest.busType != ''">
and IO_SORT like concat('%', #{udiwmsThrOrderRequest.busType}, '%')
</if>
<if test="udiwmsThrOrderRequest.keyWords != null and udiwmsThrOrderRequest.keyWords != ''">
and (KEEP_BOOK_TIME like concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
or CONSIGNOR_NAME like concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
or CONSIGNEE_NAME like concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
or PHYSIC_CODE like concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
or IO_SORT like concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
)
</if>
</where>
GROUP BY
RECEIPT_NUMBER
ORDER BY
RECEIPT_NUMBER
</select>
</mapper>

@ -2,4 +2,27 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.mipsdl.thirddao.ctqyy.VYpzsPlanInfoMapper">
<select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsPlanInfo">
SELECT
CGDBH
FROM
V_YPZS_PLAN_INFO
<where>
<if test="udiwmsThrOrderRequest.billNo != null and udiwmsThrOrderRequest.billNo != ''">
and CGDBH like concat('%', #{udiwmsThrOrderRequest.billNo}, '%')
</if>
<if test="udiwmsThrOrderRequest.keyWords != null and udiwmsThrOrderRequest.keyWords != ''">
and (CGDBH like concat('%', #{udiwmsThrOrderRequest.keyWords}, '%')
)
</if>
</where>
GROUP BY
CGDBH
ORDER BY
CGDBH
</select>
</mapper>

Loading…
Cancel
Save