feat: 数据源兼容修改

scpwxyy
chenhc 9 months ago
parent 3357a41401
commit 3bf09cf9c5

@ -36,6 +36,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.List;
@Slf4j
@ -309,4 +314,23 @@ public abstract class CommonHttpClient implements BaseHttpClient {
public BaseResponse uploadCollectOrder(PostCollectOrderRequest postCollectOrderRequest) {
return null;
}
@Resource
private DataSource dataSource;
public String getDataSourceType(){
Connection conn = null;
DatabaseMetaData metaData = null;
String databaseProductName = "";
try {
conn = dataSource.getConnection();
metaData = conn.getMetaData();
databaseProductName = metaData.getDatabaseProductName();//MySQL //Oracle
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return databaseProductName;
}
}

@ -1390,6 +1390,9 @@ public class CtqyyClient extends CommonHttpClient {
.or().like(VInsurNationGoodsPhysic::getPSN_NO, key)
);
wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsPhysic::getPSN_NAME, fromCorpName));
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
// 拉取处方时改成拉取v_ypzs_pres_info
IPage<VYpzsPresInfo> page = vYpzsPresInfoMapper.selectGroupedWithPagination(new Page<VYpzsPresInfo>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()),
udiwmsBasicSkPrescribeRequest);
@ -1413,6 +1416,10 @@ public class CtqyyClient extends CommonHttpClient {
);
wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, code));
wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsReturn::getPSN_NAME, fromCorpName));
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
//拉取处方退货时改成拉取v_ypzs_pres_info_return
IPage<VYpzsPresInfoReturn> page = vYpzsPresInfoReturnMapper.selectGroupedWithPagination(new Page<VYpzsPresInfoReturn>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()),
udiwmsBasicSkPrescribeRequest);
@ -1445,7 +1452,7 @@ public class CtqyyClient extends CommonHttpClient {
wrapper.and(StrUtil.isNotEmpty(keywords), t -> t.like(VYpzsPlanInfo::getCGDBH, keywords)//单据号
);
wrapper.like(StrUtil.isNotEmpty(udiwmsThrOrderRequest.getFromCorpName()), VYpzsPlanInfo::getSCQYMC, udiwmsThrOrderRequest.getFromCorpName());
udiwmsThrOrderRequest.setDatabaseProductName(getDataSourceType());
Page<VYpzsPlanInfo> page = vYpzsPlanInfoMapper.selectGroupedWithPagination(
new Page<VYpzsPlanInfo>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), udiwmsThrOrderRequest);
@ -1525,6 +1532,8 @@ public class CtqyyClient extends CommonHttpClient {
.or().like(VYpzsIoInfo::getIO_SORT, keywords)//收货方
);
udiwmsThrOrderRequest.setDatabaseProductName(getDataSourceType());
Page<VYpzsIoInfo> page = vYpzsIoInfoMapper.selectGroupedWithPagination(new Page<VYpzsIoInfo>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), udiwmsThrOrderRequest);
List<VYpzsIoInfo> ioInfos = page.getRecords();

@ -131,5 +131,8 @@ public class UdiwmsBasicSkPrescribeRequest extends ListPageRequest {
private String key;
private String busType;
private String keyWords;
private String databaseProductName;
}

@ -202,5 +202,7 @@ public class UdiwmsThrOrderRequest extends ListPageRequest {
private String shipperName;
private String keyWords;//模糊 单据号、三方单据类型、发货方、收货方、单据时间,来源系统
private String databaseProductName;
}

@ -36,18 +36,32 @@
SELECT RECEIPT_NUMBER
FROM v_ypzs_io_info
<where>
<if test="udiwmsThrOrderRequest.startTime != null and udiwmsThrOrderRequest.startTime != ''">
<if test="udiwmsThrOrderRequest.startTime != null and udiwmsThrOrderRequest.startTime != ''
and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
<![CDATA[
and KEEP_BOOK_TIME >= TO_DATE(#{udiwmsThrOrderRequest.startTime}
, 'YYYY-MM-DD HH24:MI:SS')
]]>
</if>
<if test="udiwmsThrOrderRequest.endTime != null and udiwmsThrOrderRequest.endTime != ''">
<if test="udiwmsThrOrderRequest.endTime != null and udiwmsThrOrderRequest.endTime != ''
and udiwmsThrOrderRequest.databaseProductName == 'Oracle' ">
<![CDATA[
and KEEP_BOOK_TIME <= TO_DATE(#{udiwmsThrOrderRequest.endTime}
, 'YYYY-MM-DD HH24:MI:SS')
]]>
</if>
<if test="udiwmsThrOrderRequest.startTime != null and udiwmsThrOrderRequest.startTime != ''
and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
<![CDATA[
and KEEP_BOOK_TIME >= #{udiwmsThrOrderRequest.startTime}
]]>
</if>
<if test="udiwmsThrOrderRequest.endTime != null and udiwmsThrOrderRequest.endTime != ''
and udiwmsThrOrderRequest.databaseProductName == 'MySQL' ">
<![CDATA[
and KEEP_BOOK_TIME <= #{udiwmsThrOrderRequest.endTime}
]]>
</if>
<if test="udiwmsThrOrderRequest.corpName != null and udiwmsThrOrderRequest.corpName != ''">
and (CONSIGNOR_NAME LIKE '%' || #{udiwmsThrOrderRequest.corpName} || '%'
or CONSIGNEE_NAME LIKE '%' || #{udiwmsThrOrderRequest.corpName} || '%')

@ -34,18 +34,34 @@
SELECT PRESCRIBE_NUMBER
FROM v_ypzs_pres_info
<where>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''">
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle' ">
<![CDATA[
and LAY_TIME >= TO_DATE(#{udiwmsBasicSkPrescribeRequest.startTime}
, 'YYYY-MM-DD HH24:MI:SS')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.endTime != null and udiwmsBasicSkPrescribeRequest.endTime != ''">
<if test="udiwmsBasicSkPrescribeRequest.endTime != null and udiwmsBasicSkPrescribeRequest.endTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle' ">
<![CDATA[
and LAY_TIME <= TO_DATE(#{udiwmsBasicSkPrescribeRequest.endTime}
, 'YYYY-MM-DD HH24:MI:SS')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'MySQL'">
<![CDATA[
and LAY_TIME >= #{udiwmsBasicSkPrescribeRequest.startTime}
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.endTime != null and udiwmsBasicSkPrescribeRequest.endTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'MySQL'">
<![CDATA[
and LAY_TIME <= #{udiwmsBasicSkPrescribeRequest.endTime}
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.code != null and udiwmsBasicSkPrescribeRequest.code != ''">
and ( STOOUT_NO = #{udiwmsBasicSkPrescribeRequest.code}
or PHYSIC_CODE = #{udiwmsBasicSkPrescribeRequest.code}

@ -33,18 +33,36 @@
SELECT APPLY_NO
FROM v_ypzs_pres_info_return
<where>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''">
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle' ">
<![CDATA[
and SEL_RETN_TIME >= TO_DATE(#{udiwmsBasicSkPrescribeRequest.startTime}
, 'YYYY-MM-DD HH24:MI:SS')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.endTime != null and udiwmsBasicSkPrescribeRequest.endTime != ''">
<if test="udiwmsBasicSkPrescribeRequest.endTime != null and udiwmsBasicSkPrescribeRequest.endTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'Oracle' ">
<![CDATA[
and SEL_RETN_TIME <= TO_DATE(#{udiwmsBasicSkPrescribeRequest.endTime}
, 'YYYY-MM-DD HH24:MI:SS')
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.startTime != null and udiwmsBasicSkPrescribeRequest.startTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'MySQL' ">
<![CDATA[
and SEL_RETN_TIME >= #{udiwmsBasicSkPrescribeRequest.startTime}
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.endTime != null and udiwmsBasicSkPrescribeRequest.endTime != ''
and udiwmsBasicSkPrescribeRequest.databaseProductName == 'MySQL' ">
<![CDATA[
and SEL_RETN_TIME <= #{udiwmsBasicSkPrescribeRequest.endTime}
]]>
</if>
<if test="udiwmsBasicSkPrescribeRequest.code != null and udiwmsBasicSkPrescribeRequest.code != ''">
and (APPLY_NO = #{udiwmsBasicSkPrescribeRequest.code})
</if>

Loading…
Cancel
Save