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

scpwxyy
chenhc 10 months ago
parent 85ff833b43
commit a8c0ea3f30

@ -1383,26 +1383,35 @@ public class CtqyyClient extends CommonHttpClient {
String code = udiwmsBasicSkPrescribeRequest.getCode(); String code = udiwmsBasicSkPrescribeRequest.getCode();
String key = udiwmsBasicSkPrescribeRequest.getKey(); String key = udiwmsBasicSkPrescribeRequest.getKey();
wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsPhysic::getSTOOUT_NO, code).or().eq(VInsurNationGoodsPhysic::getRXNO, code)); wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsPhysic::getSTOOUT_NO, code).or().eq(VInsurNationGoodsPhysic::getRXNO, code));
wrapper.and(StrUtil.isNotEmpty(key), t -> t.eq(VInsurNationGoodsPhysic::getSTOOUT_NO, key) wrapper.and(StrUtil.isNotEmpty(key), t -> t.like(VInsurNationGoodsPhysic::getSTOOUT_NO, key)
.or().eq(VInsurNationGoodsPhysic::getRXNO, key) .or().like(VInsurNationGoodsPhysic::getRXNO, key)
.or().eq(VInsurNationGoodsPhysic::getPSN_NAME, key) .or().like(VInsurNationGoodsPhysic::getPSN_NAME, key)
.or().eq(VInsurNationGoodsPhysic::getPSN_NO, key) .or().like(VInsurNationGoodsPhysic::getPSN_NO, key)
); );
IPage<VInsurNationGoodsPhysic> page = goodsPhysicMapper
.selectPage(new Page<VInsurNationGoodsPhysic>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), wrapper); IPage<VInsurNationGoodsPhysic> page =goodsPhysicMapper.selectGroupedWithPagination(new Page<VInsurNationGoodsPhysic>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()),
udiwmsBasicSkPrescribeRequest);
return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, page); return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, page);
} else { } else {
LambdaQueryWrapper<VInsurNationGoodsReturn> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<VInsurNationGoodsReturn> wrapper = new LambdaQueryWrapper<>();
String startTime = udiwmsBasicSkPrescribeRequest.getStartTime();
String endTime = udiwmsBasicSkPrescribeRequest.getEndTime();
wrapper.ge(StrUtil.isNotEmpty(startTime), VInsurNationGoodsReturn::getSEL_RETN_TIME, startTime);
wrapper.le(StrUtil.isNotEmpty(endTime), VInsurNationGoodsReturn::getSEL_RETN_TIME, endTime);
String code = udiwmsBasicSkPrescribeRequest.getCode(); String code = udiwmsBasicSkPrescribeRequest.getCode();
String key = udiwmsBasicSkPrescribeRequest.getKey(); String key = udiwmsBasicSkPrescribeRequest.getKey();
wrapper.and(StrUtil.isNotEmpty(key), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, key) wrapper.and(StrUtil.isNotEmpty(key), t -> t.like(VInsurNationGoodsReturn::getAPPLY_NO, key)
.or().eq(VInsurNationGoodsReturn::getPSN_NAME, key) .or().like(VInsurNationGoodsReturn::getPSN_NAME, key)
.or().eq(VInsurNationGoodsReturn::getPSN_NO, key) .or().like(VInsurNationGoodsReturn::getPSN_NO, key)
); );
wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, code)); wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, code));
IPage<VInsurNationGoodsReturn> page = vInsurNationGoodsReturnMapper
.selectPage(new Page<VInsurNationGoodsReturn>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), wrapper); IPage<VInsurNationGoodsReturn> page =vInsurNationGoodsReturnMapper.selectGroupedWithPagination(new Page<VInsurNationGoodsReturn>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()),
udiwmsBasicSkPrescribeRequest);
return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, page); return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, page);
} }
@ -1634,8 +1643,14 @@ public class CtqyyClient extends CommonHttpClient {
*/ */
private BaseResponse covertSellOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VInsurNationGoodsPhysic> page) { private BaseResponse covertSellOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VInsurNationGoodsPhysic> page) {
List<VInsurNationGoodsPhysic> presInfoEntities = page.getRecords(); List<VInsurNationGoodsPhysic> presInfoEntities = page.getRecords();
if (CollUtil.isNotEmpty(presInfoEntities)) {
Map<String, List<VInsurNationGoodsPhysic>> groupedByPrescribeNumber = presInfoEntities.stream() List<String> collect = presInfoEntities.stream().map(VInsurNationGoodsPhysic::getRXNO).collect(Collectors.toList());
LambdaQueryWrapper<VInsurNationGoodsPhysic> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(VInsurNationGoodsPhysic::getRXNO,collect);
List<VInsurNationGoodsPhysic> vInsurNationGoodsPhysics = goodsPhysicMapper.selectList(wrapper1);
if (CollUtil.isNotEmpty(vInsurNationGoodsPhysics)) {
Map<String, List<VInsurNationGoodsPhysic>> groupedByPrescribeNumber = vInsurNationGoodsPhysics.stream()
.collect(Collectors.groupingBy(VInsurNationGoodsPhysic::getRXNO)); .collect(Collectors.groupingBy(VInsurNationGoodsPhysic::getRXNO));
List<IoCollectOrder> ioCollectOrders = new ArrayList<>(); List<IoCollectOrder> ioCollectOrders = new ArrayList<>();
groupedByPrescribeNumber.forEach((key, value) -> { groupedByPrescribeNumber.forEach((key, value) -> {
@ -1702,8 +1717,13 @@ public class CtqyyClient extends CommonHttpClient {
private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VInsurNationGoodsReturn> page) { private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VInsurNationGoodsReturn> page) {
List<VInsurNationGoodsReturn> presInfoEntities = page.getRecords(); List<VInsurNationGoodsReturn> presInfoEntities = page.getRecords();
if (CollUtil.isNotEmpty(presInfoEntities)) { List<String> collect = presInfoEntities.stream().map(VInsurNationGoodsReturn::getAPPLY_NO).collect(Collectors.toList());
Map<String, List<VInsurNationGoodsReturn>> groupedByPrescribeNumber = presInfoEntities.stream() LambdaQueryWrapper<VInsurNationGoodsReturn> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(VInsurNationGoodsReturn::getAPPLY_NO,collect);
List<VInsurNationGoodsReturn> vInsurNationGoodsReturns = vInsurNationGoodsReturnMapper.selectList(wrapper1);
if (CollUtil.isNotEmpty(vInsurNationGoodsReturns)) {
Map<String, List<VInsurNationGoodsReturn>> groupedByPrescribeNumber = vInsurNationGoodsReturns.stream()
.collect(Collectors.groupingBy(VInsurNationGoodsReturn::getAPPLY_NO)); .collect(Collectors.groupingBy(VInsurNationGoodsReturn::getAPPLY_NO));
List<IoCollectOrder> ioCollectOrders = new ArrayList<>(); List<IoCollectOrder> ioCollectOrders = new ArrayList<>();
groupedByPrescribeNumber.forEach((key, value) -> { groupedByPrescribeNumber.forEach((key, value) -> {

@ -2,10 +2,15 @@ package com.glxp.mipsdl.thirddao.ctqyy;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.VInsurNationGoodsPhysic; import com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsPhysic;
import com.glxp.mipsdl.req.base.UdiwmsBasicSkPrescribeRequest;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
@DS("ctqyySql") @DS("ctqyySql")
public interface VInsurNationGoodsPhysicMapper extends BaseMapper<VInsurNationGoodsPhysic> { public interface VInsurNationGoodsPhysicMapper extends BaseMapper<VInsurNationGoodsPhysic> {
IPage<VInsurNationGoodsPhysic> selectGroupedWithPagination(Page<VInsurNationGoodsPhysic> vInsurNationGoodsPhysicPage, @Param("udiwmsBasicSkPrescribeRequest")UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest);
} }

@ -2,10 +2,15 @@ package com.glxp.mipsdl.thirddao.ctqyy;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.VInsurNationGoodsReturn; import com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsReturn;
import com.glxp.mipsdl.req.base.UdiwmsBasicSkPrescribeRequest;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@DS("ctqyySql") @DS("ctqyySql")
@Mapper @Mapper
public interface VInsurNationGoodsReturnMapper extends BaseMapper<VInsurNationGoodsReturn> { public interface VInsurNationGoodsReturnMapper extends BaseMapper<VInsurNationGoodsReturn> {
IPage<VInsurNationGoodsReturn> selectGroupedWithPagination(Page<VInsurNationGoodsReturn> vInsurNationGoodsReturnPage,@Param("udiwmsBasicSkPrescribeRequest") UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest);
} }

@ -54,4 +54,43 @@
STOOUT_NO, BCHNO, RUG_PROD_BARC, SHELF_POSI, SEL_RETN_CNT, SEL_RETN_TIME, SEL_RETN_OPTER_NAME, STOOUT_NO, BCHNO, RUG_PROD_BARC, SHELF_POSI, SEL_RETN_CNT, SEL_RETN_TIME, SEL_RETN_OPTER_NAME,
MEMO, MDTRT_SETL_TYPE, DRUGTRACINFO, APPLY_NO, SETTLE_NO, SICK_ID MEMO, MDTRT_SETL_TYPE, DRUGTRACINFO, APPLY_NO, SETTLE_NO, SICK_ID
</sql> </sql>
<select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsPhysic">
SELECT
RXNO
FROM
v_insur_nation_goods_physic
<where>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null">
<![CDATA[
and SEL_RETN_TIME >= DATE_FORMAT(#{udiwmsBasicSkPrescribeRequest.startTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.endTime != null">
<![CDATA[
and SEL_RETN_TIME <= DATE_FORMAT(#{udiwmsBasicSkPrescribeRequest.endTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.code != null and udiwmsBasicSkPrescribeRequest.code != ''">
and (RXNO = #{udiwmsBasicSkPrescribeRequest.code}
or STOOUT_NO = #{udiwmsBasicSkPrescribeRequest.code}
)
</if>
<if test="udiwmsBasicSkPrescribeRequest.key != null and udiwmsBasicSkPrescribeRequest.key != ''">
and (STOOUT_NO like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
or RXNO like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
or PSN_NAME like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
or PSN_NO like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
)
</if>
</where>
GROUP BY
RXNO
ORDER BY
RXNO
</select>
</mapper> </mapper>

@ -35,4 +35,39 @@
TRDN_FLAG, FINL_TRNS_PRIC, SEL_RETN_CNT, SEL_RETN_TIME, SEL_RETN_OPTER_NAME, MEMO, TRDN_FLAG, FINL_TRNS_PRIC, SEL_RETN_CNT, SEL_RETN_TIME, SEL_RETN_OPTER_NAME, MEMO,
MEDINS_PROL_SEL_NO, DRUGTRACINFO, SETTLE_NO, SICK_ID MEDINS_PROL_SEL_NO, DRUGTRACINFO, SETTLE_NO, SICK_ID
</sql> </sql>
<select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsReturn">
SELECT
APPLY_NO
FROM
V_INSUR_NATION_GOODS_RETURN
<where>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null">
<![CDATA[
and SEL_RETN_TIME >= DATE_FORMAT(#{udiwmsBasicSkPrescribeRequest.startTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.endTime != null">
<![CDATA[
and SEL_RETN_TIME <= DATE_FORMAT(#{udiwmsBasicSkPrescribeRequest.endTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.code != null and udiwmsBasicSkPrescribeRequest.code != ''">
and (APPLY_NO = #{udiwmsBasicSkPrescribeRequest.code})
</if>
<if test="udiwmsBasicSkPrescribeRequest.key != null and udiwmsBasicSkPrescribeRequest.key != ''">
and (APPLY_NO like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
or PSN_NAME like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
or PSN_NO like concat('%', #{udiwmsBasicSkPrescribeRequest.key}, '%')
)
</if>
</where>
GROUP BY
APPLY_NO
ORDER BY
APPLY_NO
</select>
</mapper> </mapper>
Loading…
Cancel
Save