解决流水号和处方号重叠问题

ctyxyb
qiuyt 3 months ago
parent 0209de8150
commit 0aead4e483

@ -1443,6 +1443,15 @@ public class CtqyyClient extends CommonHttpClient {
wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsPhysic::getPSN_NAME, fromCorpName)); wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsPhysic::getPSN_NAME, fromCorpName));
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType()); udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
IPage<VYpzsPresInfo> page = new Page<>(); IPage<VYpzsPresInfo> page = new Page<>();
if(StringUtils.isNotEmpty(udiwmsBasicSkPrescribeRequest.getCode())){
udiwmsBasicSkPrescribeRequest.setQueryCode("'"+udiwmsBasicSkPrescribeRequest.getCode()+"'");
}else if(StringUtils.isNotEmpty(udiwmsBasicSkPrescribeRequest.getKey())) {
udiwmsBasicSkPrescribeRequest.setQueryCode("'"+udiwmsBasicSkPrescribeRequest.getKey()+"'");
}else {
udiwmsBasicSkPrescribeRequest.setQueryCode("null");
}
if (udiwmsBasicSkPrescribeRequest.getBusType().equals("YPCF003")) { if (udiwmsBasicSkPrescribeRequest.getBusType().equals("YPCF003")) {
udiwmsBasicSkPrescribeRequest.setIN_HOSP("1"); udiwmsBasicSkPrescribeRequest.setIN_HOSP("1");
// 住院只拉取结算后的处方 // 住院只拉取结算后的处方
@ -1459,13 +1468,29 @@ public class CtqyyClient extends CommonHttpClient {
} }
if (page.getTotal() == 0) { if (page.getTotal() == 0) {
PageSimpleResponse<IoCollectOrder> pageSimpleResponse = new PageSimpleResponse<>(); PageSimpleResponse<IoCollectOrder> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(page.getTotal()); pageSimpleResponse.setTotal(page.getTotal());
pageSimpleResponse.setList(null); pageSimpleResponse.setList(null);
return ResultVOUtils.success(pageSimpleResponse); return ResultVOUtils.success(pageSimpleResponse);
} }
// 分组
if(StringUtils.isNotEmpty(udiwmsBasicSkPrescribeRequest.getQueryCode()) && !udiwmsBasicSkPrescribeRequest.getQueryCode().equals("null")){
Map<String, List<VYpzsPresInfo>> groupedRecords = page.getRecords().stream()
.collect(Collectors.groupingBy(VYpzsPresInfo::getQUERY_CODE));
List<VYpzsPresInfo> latestRecords = new ArrayList<>();
for (List<VYpzsPresInfo> group : groupedRecords.values()) {
VYpzsPresInfo latest = group.stream()
.max(Comparator.comparing(VYpzsPresInfo::getLAY_TIME))
.orElse(null);
if (latest != null) {
latestRecords.add(latest);
}
}
page.setRecords(latestRecords);
}
return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, page); return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, page);
} else { } else {
@ -1773,7 +1798,15 @@ public class CtqyyClient extends CommonHttpClient {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 转换为 LocalDateTime 并计算时间范围 // 转换为 LocalDateTime 并计算时间范围
LocalDateTime layTime = LocalDateTime.parse(layTimeStr, formatter); LocalDateTime layTime;
try {
layTime = LocalDateTime.parse(layTimeStr, formatter);
}catch (Exception e){
formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
layTime = LocalDateTime.parse(layTimeStr, formatter);
}
LocalDateTime startTime = layTime.minusMinutes(10); // 向前10分钟 LocalDateTime startTime = layTime.minusMinutes(10); // 向前10分钟
LocalDateTime endTime = layTime.plusMinutes(10); // 向后10分钟 LocalDateTime endTime = layTime.plusMinutes(10); // 向后10分钟

@ -73,6 +73,7 @@ public class VYpzsPresInfo implements Serializable {
private String IN_HOSP; private String IN_HOSP;
@TableField(value = "DEPT_CODE") @TableField(value = "DEPT_CODE")
private String DEPT_CODE; private String DEPT_CODE;
@TableField(exist = false)
private String QUERY_CODE;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

@ -136,5 +136,8 @@ public class UdiwmsBasicSkPrescribeRequest extends ListPageRequest {
private String databaseProductName; private String databaseProductName;
private String IN_HOSP; private String IN_HOSP;
private String queryCode;
} }

@ -40,15 +40,8 @@ public class YbClient {
@Resource @Resource
ThrYbSetupMapper thrYbSetupMapper; ThrYbSetupMapper thrYbSetupMapper;
@Resource @Resource
YbUploadingLogMapper YbUploadingLogMapper; YbUploadingLogMapper ybUploadingLogMapper;
/**
*
*
* @param apiNo
* @param data
* @return
*/
public BaseResponse ybPost(String apiNo, JSONObject data,String billNo) { public BaseResponse ybPost(String apiNo, JSONObject data,String billNo) {
// log.info("[" + apiNo + "]医保接口请求参数:" + data); // log.info("[" + apiNo + "]医保接口请求参数:" + data);
@ -81,7 +74,11 @@ public class YbClient {
req.setInput(data); req.setInput(data);
req.setSignNo(thrYbSetup.getSignNo()); req.setSignNo(thrYbSetup.getSignNo());
reqStr =JSONObject.toJSONString(req); reqStr =JSONObject.toJSONString(req);
// 如果是纯无码类型
if(!reqStr.contains("drug_trac_codg") ){
return ResultVOUtils.error(500,"【" + apiNo + "】当前单据是纯无码类型单据无法上传");
}
log.error("【" + apiNo + "】医保接口请求参数:" + reqStr); log.error("【" + apiNo + "】医保接口请求参数:" + reqStr);
ChsMedicalResponse resp = client.execute(req); ChsMedicalResponse resp = client.execute(req);
respStr = JSONObject.toJSONString(resp); respStr = JSONObject.toJSONString(resp);
@ -117,7 +114,7 @@ public class YbClient {
ybUploadingLog.setBillNo(billNo); ybUploadingLog.setBillNo(billNo);
ybUploadingLog.setApiNo(apiNo); ybUploadingLog.setApiNo(apiNo);
ybUploadingLog.setUpdateTime(new Date()); ybUploadingLog.setUpdateTime(new Date());
YbUploadingLogMapper.insert(ybUploadingLog); ybUploadingLogMapper.insert(ybUploadingLog);
} }
} }
@ -132,6 +129,7 @@ public class YbClient {
{ {
throw new RuntimeException("未配置医保接口"); throw new RuntimeException("未配置医保接口");
} }
// 组装访问数据 // 组装访问数据
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
// 获取当前日期和时间 // 获取当前日期和时间

@ -5,10 +5,10 @@
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table yb_uploading_log--> <!--@Table yb_uploading_log-->
<id column="id" jdbcType="INTEGER" property="id" /> <id column="id" jdbcType="INTEGER" property="id" />
<result column="ybParam" jdbcType="LONGVARCHAR" property="ybparam" /> <result column="ybParam" jdbcType="LONGVARCHAR" property="ybParam" />
<result column="ybReturn" jdbcType="LONGVARCHAR" property="ybreturn" /> <result column="ybReturn" jdbcType="LONGVARCHAR" property="ybParam" />
<result column="billNo" jdbcType="VARCHAR" property="billno" /> <result column="billNo" jdbcType="VARCHAR" property="ybParam" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updatetime" /> <result column="updateTime" jdbcType="TIMESTAMP" property="ybParam" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->

@ -45,7 +45,7 @@
<select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsPresInfo"> <select id="selectGroupedWithPagination" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsPresInfo">
SELECT PRESCRIBE_NUMBER SELECT PRESCRIBE_NUMBER,LAY_TIME, ${udiwmsBasicSkPrescribeRequest.queryCode} AS QUERY_CODE
FROM v_ypzs_pres_info FROM v_ypzs_pres_info
<where> <where>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != '' <if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''
@ -100,7 +100,7 @@
</if> </if>
</where> </where>
GROUP BY GROUP BY
PRESCRIBE_NUMBER PRESCRIBE_NUMBER,LAY_TIME
<!-- <choose>--> <!-- <choose>-->
<!-- <when test="udiwmsBasicSkPrescribeRequest.IN_HOSP == '1'">--> <!-- <when test="udiwmsBasicSkPrescribeRequest.IN_HOSP == '1'">-->
<!-- PRESCRIBE_NUMBER--> <!-- PRESCRIBE_NUMBER-->
@ -110,7 +110,7 @@
<!-- </otherwise>--> <!-- </otherwise>-->
<!-- </choose>--> <!-- </choose>-->
ORDER BY ORDER BY
PRESCRIBE_NUMBER PRESCRIBE_NUMBER,LAY_TIME
</select> </select>
<select id="selectGroupedWithPaginationNew" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsPresInfo"> <select id="selectGroupedWithPaginationNew" resultType="com.glxp.mipsdl.entity.ctqyy.VYpzsPresInfo">

Loading…
Cancel
Save