湖里妇幼初始化 第四次

Lhxyy
qiuyt 11 months ago
parent 2b73138bf9
commit 40e980cf36

@ -34,16 +34,12 @@ import com.glxp.mipsdl.util.ResultVOUtils;
import com.glxp.mipsdl.util.SubmitOrderUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
@ -79,7 +75,8 @@ public abstract class CommonHttpClient implements BaseHttpClient {
private IoOrderDetailBizDao orderDetailBizDao;
@Autowired
private SubmitOrderUtil submitOrderUtil;
@Value("${DSF_XML_SQL_TYPE:Mysql}")
private String defXmlSqlType;
@Override
public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) {
String response = httpClient.postJson(thrSystemDetailService.getUrl(Constants.URL_NAME_CORP_URL), udiwmsUnitRequest);
@ -325,28 +322,10 @@ public abstract class CommonHttpClient implements BaseHttpClient {
@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();
}finally {
// 释放连接资源
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public String getDefXmlSqlType(){
return databaseProductName;
return defXmlSqlType;
}
@Override

@ -65,6 +65,7 @@ import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -155,7 +156,8 @@ public class CtqyyClient extends CommonHttpClient {
private ThrProductsDao thrProductsDao;
@Resource
private RelCodeDetailService relCodeDetailService;
@Value("${DSF_XML_SQL_TYPE:Mysql}")
private String defXmlSqlType;
/**
* xml
*
@ -2297,4 +2299,9 @@ public class CtqyyClient extends CommonHttpClient {
buyTypeMap.put("buyType_3506", buyType_3506);
return ResultVOUtils.success(buyTypeMap);
}
public String getDataSourceType(){
return defXmlSqlType;
}
}

@ -92,7 +92,8 @@ public class HlfyyyClient extends CommonHttpClient {
private final String[] buyType_3502 = {"7", "6", "5", "4", "1", "16", "12", "28", "35"};
private final String[] buyType_3505 = {"QXCF001", "YPCF002"};
private final String[] buyType_3506 = {"YPTH001"};
@Value("${DSF_XML_SQL_TYPE:Mysql}")
private String defXmlSqlType;
@Resource
private ThrSystemDetailService thrSystemDetailService;
@Resource
@ -227,12 +228,12 @@ public class HlfyyyClient extends CommonHttpClient {
@Override
public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) {
udiwmsUnitRequest.setDatabaseProductName(getDataSourceType());
List<VA001> list = va001Service.filterList(udiwmsUnitRequest);
log.info("解析湖里妇幼返回往来单位,返回结果:{}", list);
PageInfo<VA001> pageInfo = new PageInfo<>(list);
IPage<VA001> iPage = va001Service.filterList(udiwmsUnitRequest);
log.info("解析湖里妇幼返回往来单位,返回结果:{}", iPage.getRecords());
PageInfo<VA001> pageInfo = new PageInfo<>(iPage.getRecords());
PageSimpleResponse<VA001> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(list);
pageSimpleResponse.setTotal(iPage.getTotal());
pageSimpleResponse.setList(iPage.getRecords());
return ResultVOUtils.success(pageSimpleResponse);
}
@ -1446,8 +1447,8 @@ public class HlfyyyClient extends CommonHttpClient {
return udiwmsPreInOrderRequest;
}
@Value("${DBTYPE}")
private String DBTYPE;
// @Value("${DBTYPE}")
// private String DBTYPE;
/**
* --------------------------------------------------------------------------------------------------------
*/
@ -1460,37 +1461,13 @@ public class HlfyyyClient extends CommonHttpClient {
@Override
public BaseResponse getPrescribes(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest) {
if (IntUtil.value(udiwmsBasicSkPrescribeRequest.getInOutType()) == 0) {
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(DBTYPE);
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
IPage<VA010> iPage = va010Service.getList(new Page<VA010>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), udiwmsBasicSkPrescribeRequest);
// List<VA010> list = iPage.getRecords();
// PageInfo<VA010> pageInfo = new PageInfo<>(list);
// PageSimpleResponse<VA010> pageSimpleResponse = new PageSimpleResponse<>();
// pageSimpleResponse.setTotal(iPage.getTotal());
// pageSimpleResponse.setList(list);
return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, iPage);
} else {
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 fromCorpName = udiwmsBasicSkPrescribeRequest.getFromCorpName();
String key = udiwmsBasicSkPrescribeRequest.getKey();
wrapper.and(StrUtil.isNotEmpty(key), t -> t.like(VInsurNationGoodsReturn::getAPPLY_NO, key)
.or().like(VInsurNationGoodsReturn::getPSN_NAME, key)
.or().like(VInsurNationGoodsReturn::getPSN_NO, key)
);
wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, code));
wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsReturn::getPSN_NAME, fromCorpName));
//拉取处方退货时改成拉取v_ypzs_pres_info_return
IPage<VYpzsPresInfoReturn> page = vYpzsPresInfoReturnMapper.selectGroupedWithPagination(new Page<VYpzsPresInfoReturn>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()),
udiwmsBasicSkPrescribeRequest);
return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, page);
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
IPage<VA011> iPage = va011Service.getList(new Page<VA011>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), udiwmsBasicSkPrescribeRequest);
return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, iPage);
}
}
@ -1722,7 +1699,7 @@ public class HlfyyyClient extends CommonHttpClient {
*/
private BaseResponse covertSellOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VA010> iPage) {
List<VA010> headList = iPage.getRecords();
// log.info("udiwmsBasicSkPrescribeRequest=="+udiwmsBasicSkPrescribeRequest+"====="+headList);
if (CollUtil.isNotEmpty(headList)) {
List<String> codefks = headList.stream().map(VA010::getCode).collect(Collectors.toList());
LambdaQueryWrapper<VA010Mx> wrapper1 = new LambdaQueryWrapper<>();
@ -1754,7 +1731,7 @@ public class HlfyyyClient extends CommonHttpClient {
}
Date date = null;
try {
date = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(item.getPrescribedate());
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(item.getPrescribedate());
} catch (ParseException e) {
}
@ -1812,7 +1789,7 @@ public class HlfyyyClient extends CommonHttpClient {
pageSimpleResponse.setList(ioCollectOrders);
return ResultVOUtils.success(pageSimpleResponse);
} else {
return ResultVOUtils.error(500, "下载失败!");
return ResultVOUtils.error(500, "未查询到数据!");
}
}
@ -1833,75 +1810,99 @@ public class HlfyyyClient extends CommonHttpClient {
return new ArrayList<>(summarizedMap.values());
}
private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VYpzsPresInfoReturn> page) {
List<VYpzsPresInfoReturn> presInfoEntities = page.getRecords();
List<VYpzsPresInfoReturn> vInsurNationGoodsReturns = new ArrayList<>();
if (CollUtil.isNotEmpty(presInfoEntities)) {
List<String> collect = presInfoEntities.stream().map(VYpzsPresInfoReturn::getAPPLY_NO).collect(Collectors.toList());
LambdaQueryWrapper<VYpzsPresInfoReturn> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(VYpzsPresInfoReturn::getAPPLY_NO, collect);
vInsurNationGoodsReturns = vYpzsPresInfoReturnMapper.selectList(wrapper1);
}
// TODO: 2024/9/19 这边在转换的时候就不能用vInsurNationGoodsReturns
if (CollUtil.isNotEmpty(vInsurNationGoodsReturns)) {
Map<String, List<VYpzsPresInfoReturn>> groupedByPrescribeNumber = vInsurNationGoodsReturns.stream()
.collect(Collectors.groupingBy(VYpzsPresInfoReturn::getAPPLY_NO));
private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VA011> iPage) {
List<VA011> headList = iPage.getRecords();
// log.info("udiwmsBasicSkPrescribeRequest=="+udiwmsBasicSkPrescribeRequest+"====="+headList);
if (CollUtil.isNotEmpty(headList)) {
List<String> codefks = headList.stream().map(VA011::getCode).collect(Collectors.toList());
LambdaQueryWrapper<VA011Mx> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(VA011Mx::getCodefk, codefks);
List<VA011Mx> va011MxList = va011MxMapper.selectList(wrapper1);
Map<String, List<VA011Mx>> detailsMap = new HashMap<>();
if (CollUtil.isNotEmpty(va011MxList)) {
detailsMap = va011MxList.stream()
.collect(Collectors.groupingBy(VA011Mx::getCodefk));
}
List<IoCollectOrder> ioCollectOrders = new ArrayList<>();
groupedByPrescribeNumber.forEach((key, value) -> {
VYpzsPresInfoReturn presInfoEntity = value.get(0);
Map<String, List<VA011Mx>> finalDetailsMap = detailsMap;
headList.forEach(item -> {
StringBuilder errorMsg = new StringBuilder();
IoCollectOrder ioCollectOrder = new IoCollectOrder();
ioCollectOrder.setBillNo(presInfoEntity.getAPPLY_NO());
ioCollectOrder.setBillNo(item.getCode());
ioCollectOrder.setFromType("HIS系统");
ioCollectOrder.setFromCorp(presInfoEntity.getSICK_ID());
ioCollectOrder.setFromCorp(item.getDeptcode());
ioCollectOrder.setWorkPlaceCode(udiwmsBasicSkPrescribeRequest.getWorkPlaceCode());
ioCollectOrder.setFromCorpName(presInfoEntity.getSICK_NAME());
// Date date = DateUtil.parseDate(presInfoEntity.get());
ioCollectOrder.setBillTime(presInfoEntity.getKEEP_BOOK_TIME());
ioCollectOrder.setFromCorpName(item.getSickname());
ioCollectOrder.setShipperName(item.getDeptname());
if (item.getRemark().equals("门诊")) {
ioCollectOrder.setBusType("YPCF002");
} else {
ioCollectOrder.setBusType("YPCF003");
}
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(item.getPrescribedate());
} catch (ParseException e) {
}
ioCollectOrder.setBillTime(date);
ioCollectOrder.setCreateTime(new Date());
ioCollectOrder.setCreateUser(udiwmsBasicSkPrescribeRequest.getCreateUser());
// ioCollectOrder.setBusType(udiwmsBasicSkPrescribeRequest.getBusType());
ioCollectOrder.setBackupOrderRemark1(item.getCode());
// ioCollectOrder.setBackupOrderRemark2(presInfoEntity.getSICK_ID());
// ioCollectOrder.setBackupOrderRemark3(presInfoEntity.getPSN_NAME());
// ioCollectOrder.setBackupOrderRemark4(presInfoEntity.getPSN_NO());
ioCollectOrder.setUpdateTime(new Date());
ioCollectOrder.setSplitStatus(0);
ioCollectOrder.setTagStatus(0);
List<VA011Mx> itemDetails = finalDetailsMap.get(item.getCode());
List<IoCollectOrderBiz> bizList = new ArrayList<>();
value.forEach(entity -> {
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper<BasicUdirelEntity>().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE()));
if (basicUdirelEntity != null) {
collectOrderBiz.setRelId(basicUdirelEntity.getId());
} else {
errorMsg.append(entity.getPHYSIC_NAME()).append("字典未对照").append(";");
}
List<VYpzsPresInfoReturn> vYpzsPresInfoReturns = vYpzsPresInfoReturnMapper.selectList(new LambdaQueryWrapper<VYpzsPresInfoReturn>().eq(VYpzsPresInfoReturn::getAPPLY_NO, entity.getAPPLY_NO()).eq(VYpzsPresInfoReturn::getPHYSIC_CODE, entity.getPHYSIC_CODE()));
if (CollUtil.isNotEmpty(itemDetails)) {
itemDetails.forEach(entity -> {
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
List<BasicUdirelEntity> basicUdirelEntities = basicUdirelDao.selectList(new LambdaQueryWrapper<BasicUdirelEntity>().eq(BasicUdirelEntity::getMainId, entity.getItemcode()));
if (CollUtil.isNotEmpty(basicUdirelEntities)) {
BasicUdirelEntity basicUdirelEntity = basicUdirelEntities.get(0);
collectOrderBiz.setRelId(basicUdirelEntity.getId());
} else {
errorMsg.append(entity.getItemname()).append("字典未对照").append(";");
}
if (CollUtil.isNotEmpty(vYpzsPresInfoReturns)) {
VYpzsPresInfoReturn vYpzsPresInfo = vYpzsPresInfoReturns.get(0);
collectOrderBiz.setGgxh(vYpzsPresInfo.getPHYSIC_SPEC());
collectOrderBiz.setMeasureUnit(vYpzsPresInfo.getPHYSIC_UNIT());
}
collectOrderBiz.setThrCode(entity.getPHYSIC_CODE());
collectOrderBiz.setCpmctymc(entity.getPHYSIC_NAME());
// collectOrderBiz.setBatchNo(entity.getBATCH_NUMBER());
collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo());
collectOrderBiz.setYbbm(entity.getFEE_SEQUENCE_NO());
collectOrderBiz.setCount(entity.getQUANTITY());
collectOrderBiz.setTagStatus(1);
collectOrderBiz.setUnTagCount(0);
bizList.add(collectOrderBiz);
});
collectOrderBiz.setGgxh(entity.getBzgg());
collectOrderBiz.setMeasureUnit(entity.getMeasureunit());
collectOrderBiz.setCount(IntUtil.value(entity.getCount()));
collectOrderBiz.setThrCode(entity.getItemcode());
collectOrderBiz.setCpmctymc(entity.getItemname());
collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo());
collectOrderBiz.setRemark1(entity.getRemark());
collectOrderBiz.setNameCode(entity.getItemcode());
collectOrderBiz.setTagStatus(1);
collectOrderBiz.setUnTagCount(0);
bizList.add(collectOrderBiz);
});
}
if (StrUtil.isNotBlank(errorMsg)) {
ioCollectOrder.setErrorMsg(errorMsg.toString());
ioCollectOrder.setTagStatus(4);
}
ioCollectOrder.setBizList(bizList);
ioCollectOrder.setBizList(summarizeByCode(bizList));
ioCollectOrders.add(ioCollectOrder);
});
PageSimpleResponse<IoCollectOrder> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(page.getTotal());
pageSimpleResponse.setTotal(iPage.getTotal());
pageSimpleResponse.setList(ioCollectOrders);
return ResultVOUtils.success(pageSimpleResponse);
} else {
return ResultVOUtils.error(500, "下载失败!");
return ResultVOUtils.error(500, "未查询到数据!");
}
}
@ -2201,6 +2202,9 @@ public class HlfyyyClient extends CommonHttpClient {
}
}
public String getDataSourceType(){
return defXmlSqlType;
}
}

@ -18,7 +18,7 @@ public class VA001 implements Serializable {
@TableField(value = "UNITID")
private String unitid;
@TableField(value = "`NAME`")
@TableField(value = "NAME")
private String name;
@TableField(value = "LASTUPDATETIME")

@ -21,13 +21,13 @@ public class VA002 implements Serializable {
@TableField(value = "CODE")
private String code;
@TableField(value = "`NAME`")
@TableField(value = "NAME")
private String name;
@TableField(value = "MEASNAME")
private String measname;
@TableField(value = "`STANDARD`")
@TableField(value = "STANDARD")
private String standard;
@TableField(value = "REGISTERNO")

@ -21,7 +21,7 @@ public class VA003 implements Serializable {
@TableField(value = "CODE")
private String code;
@TableField(value = "`NAME`")
@TableField(value = "NAME")
private String name;
@TableField(value = "NAMECODE")

@ -18,7 +18,7 @@ public class VA004 implements Serializable {
@TableField(value = "CODE")
private String code;
@TableField(value = "`NAME`")
@TableField(value = "NAME")
private String name;
@TableField(value = "REMARK")

@ -18,7 +18,7 @@ public class VA005 implements Serializable {
@TableField(value = "CODE")
private String code;
@TableField(value = "`NAME`")
@TableField(value = "NAME")
private String name;
@TableField(value = "INOUTTYPE")

@ -42,7 +42,7 @@ public class VA006Mx implements Serializable {
@TableField(value = "GGXH")
private String ggxh;
@TableField(value = "`COUNT`")
@TableField(value = "COUNT")
private String count;
@TableField(value = "PRICE")

@ -39,7 +39,7 @@ public class VA010Mx implements Serializable {
@TableField(value = "FREQUENCY")
private String frequency;
@TableField(value = "`COUNT`")
@TableField(value = "COUNT")
private String count;
@TableField(value = "BZGG")

@ -39,7 +39,7 @@ public class VA011Mx implements Serializable {
@TableField(value = "FREQUENCY")
private String frequency;
@TableField(value = "`COUNT`")
@TableField(value = "COUNT")
private String count;
@TableField(value = "BZGG")

@ -42,7 +42,7 @@ public class VA015Mx implements Serializable {
@TableField(value = "GGXH")
private String ggxh;
@TableField(value = "`COUNT`")
@TableField(value = "COUNT")
private String count;
@TableField(value = "PRICE")

@ -1,5 +1,6 @@
package com.glxp.mipsdl.service.hlfyyy;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.glxp.mipsdl.entity.hlfyyy.VA010;
@ -13,7 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.mipsdl.entity.hlfyyy.VA001;
@Service
public class VA001Service extends ServiceImpl<VA001Mapper, VA001> {
public List<VA001> filterList(UdiwmsUnitRequest udiwmsUnitRequest) {
public IPage<VA001> filterList(UdiwmsUnitRequest udiwmsUnitRequest) {
Page page = new Page<VA010>(udiwmsUnitRequest.getPage(), udiwmsUnitRequest.getLimit());
return this.baseMapper.filterList(page,udiwmsUnitRequest);

@ -1,29 +1,49 @@
package com.glxp.mipsdl.service.hlfyyy;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.mipsdl.req.base.UdiwmsBasicSkPrescribeRequest;
import com.glxp.mipsdl.thirddao.hlfyyy.VA010Mapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.mipsdl.entity.hlfyyy.VA010;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@Service
public class VA010Service extends ServiceImpl<VA010Mapper, VA010> {
@Resource
private VA010Mapper va010Mapper;
@Value("${DSF_XML_SQL_TYPE:Mysql}")
private String defXmlSqlType;
public IPage<VA010> getList(Page page , UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest){
IPage<VA010> iPage = va010Mapper.getList(page,udiwmsBasicSkPrescribeRequest);
// List<VA010> list = iPage.getRecords();
// List<String> codeList = new ArrayList<>();
// if(list!=null && list.size() >0){
// for (VA010 va010 : list) {
// codeList.add(va010.getCode());
// }
// List<VA010> listNew = va010Mapper.selectList(new QueryWrapper<VA010>().in("code",codeList).groupBy("code"));
// iPage.setRecords(listNew);
// }
List<VA010> list = iPage.getRecords();
List<VA010> listNew = new ArrayList<>();
list.sort( Comparator.comparing(VA010::getPrescribedate));
if(list!=null && list.size() >0){
String lastSql = "";
if(defXmlSqlType.equals("Mysql")){
lastSql = "AND limit = 1";
}else if(defXmlSqlType.equals("Oracle")){
lastSql = "AND rownum = 1";
}
for (VA010 va010 : list) {
VA010 va010New = va010Mapper.selectOne(new QueryWrapper<VA010>().eq("code",va010.getCode()).last(lastSql));
listNew.add(va010New);
}
}
iPage.setRecords(listNew);
return iPage;
};

@ -1,10 +1,49 @@
package com.glxp.mipsdl.service.hlfyyy;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.mipsdl.entity.hlfyyy.VA010;
import com.glxp.mipsdl.req.base.UdiwmsBasicSkPrescribeRequest;
import com.glxp.mipsdl.thirddao.hlfyyy.VA011Mapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.mipsdl.entity.hlfyyy.VA011;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@Service
public class VA011Service extends ServiceImpl<VA011Mapper, VA011> {
@Resource
private VA011Mapper va011Mapper;
@Value("${DSF_XML_SQL_TYPE:Mysql}")
private String defXmlSqlType;
public IPage<VA011> getList(Page page , UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest){
IPage<VA011> iPage = va011Mapper.getList(page,udiwmsBasicSkPrescribeRequest);
List<VA011> list = iPage.getRecords();
List<VA011> listNew = new ArrayList<>();
list.sort( Comparator.comparing(VA011::getPrescribedate));
if(list!=null && list.size() >0){
String lastSql = "";
if(defXmlSqlType.equals("Mysql")){
lastSql = "AND limit = 1";
}else if(defXmlSqlType.equals("Oracle")){
lastSql = "AND rownum = 1";
}
for (VA011 va011 : list) {
VA011 va011New = va011Mapper.selectOne(new QueryWrapper<VA011>().eq("code",va011.getCode()).last(lastSql));
listNew.add(va011New);
}
}
iPage.setRecords(listNew);
return iPage;
};
}

@ -2,6 +2,7 @@ package com.glxp.mipsdl.thirddao.hlfyyy;
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.hlfyyy.VA001;
import com.glxp.mipsdl.req.base.UdiwmsUnitRequest;
@ -13,6 +14,6 @@ import java.util.List;
@Mapper
@DS("hlfyyySql")
public interface VA001Mapper extends BaseMapper<VA001> {
List<VA001> filterList(Page page, @Param("req") UdiwmsUnitRequest udiwmsUnitRequest);
IPage<VA001> filterList(Page page, @Param("req") UdiwmsUnitRequest udiwmsUnitRequest);
}

@ -2,10 +2,17 @@ package com.glxp.mipsdl.thirddao.hlfyyy;
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.hlfyyy.VA010;
import com.glxp.mipsdl.entity.hlfyyy.VA011;
import com.glxp.mipsdl.req.base.UdiwmsBasicSkPrescribeRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
@DS("hlfyyySql")
public interface VA011Mapper extends BaseMapper<VA011> {
IPage<VA011> getList(Page page, @Param("req") UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest);
}

@ -17,31 +17,23 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
CODE,
SICKCODE,
SICKNAME,
PRESCRIBEDATE,
CREATEDR,
AMOUNT,
DEPTCODE,
DEPTNAME,
DIAGNOSIS,
REMARK
CODE
</sql>
<select id="getList" resultType="com.glxp.mipsdl.entity.hlfyyy.VA010">
SELECT
<include refid="Base_Column_List" />
CODE
FROM
v_a010
WHERE
1 = 1
<!-- 业务类型条件 -->
<if test="req.busType != null">
AND REMARK =
<choose>
<when test="req.busType == 'YPCF002'"> '门诊' </when>
<otherwise> '非门诊' </otherwise>
</choose>
<if test="req.busType == 'YPCF002'">
AND REMARK ='门诊'
</if>
<if test="req.busType != 'YPCF002'">
AND REMARK !='门诊'
</if>
</if>
<!-- 时间范围条件 -->
@ -50,14 +42,14 @@
<choose>
<when test="req.databaseProductName == 'MySQL'">
<![CDATA[
STR_TO_DATE(PRESCRIBEDATE, '%e/%c/%Y %H:%i:%s') >= #{req.startTime}
AND STR_TO_DATE(PRESCRIBEDATE, '%e/%c/%Y %H:%i:%s') < #{req.endTime}
STR_TO_DATE(PRESCRIBEDATE, '%Y/%c/%e %H:%i:%s') >= #{req.startTime}
AND STR_TO_DATE(PRESCRIBEDATE, '%Y/%c/%e %H:%i:%s') < #{req.endTime}
]]>
</when>
<when test="req.databaseProductName == 'Oracle'">
<![CDATA[
TO_DATE(PRESCRIBEDATE, 'dd/MM/yyyy HH:mm:ss') >= #{req.startTime}
AND TO_DATE(PRESCRIBEDATE, 'dd/MM/yyyy HH:mm:ss') < #{req.endTime}
PRESCRIBEDATE >= TO_TIMESTAMP(#{req.startTime}, 'YYYY-MM-DD HH24:MI:SS')
AND PRESCRIBEDATE < TO_TIMESTAMP(#{req.endTime}, 'YYYY-MM-DD HH24:MI:SS')
]]>
</when>
</choose>
@ -71,23 +63,31 @@
AND DEPTNAME = #{req.fromCorpName}
</if>
<if test="req.key != null and req.key != ''">
<if test="req.databaseProductName == 'MySQL'">
AND (
CODE LIKE CONCAT('%', #{req.key}, '%')
OR DEPTNAME LIKE CONCAT('%', #{req.key}, '%')
)
</if>
<if test="req.databaseProductName == 'Oracle'">
AND (
CODE like '%' || #{req.key} || '%'
or DEPTNAME like '%' || #{req.key} || '%'
)
</if>
</if>
<!-- 分组和排序 -->
GROUP BY CODE
ORDER BY
<choose>
<when test="req.databaseProductName == 'MySQL'">
PRESCRIBEDATE DESC
</when>
<when test="req.databaseProductName == 'Oracle'">
PRESCRIBEDATE DESC
</when>
</choose>
<!-- ORDER BY-->
<!-- <choose>-->
<!-- <when test="req.databaseProductName == 'MySQL'">-->
<!-- PRESCRIBEDATE DESC-->
<!-- </when>-->
<!-- <when test="req.databaseProductName == 'Oracle'">-->
<!-- PRESCRIBEDATE DESC-->
<!-- </when>-->
<!-- </choose>-->
</select>
</mapper>

@ -23,4 +23,67 @@
CODEFK, CODE, SICKCODE, SICKNAME, PRESCRIBEDATE, CREATEDR, AMOUNT, DEPTCODE, DEPTNAME,
INVCODE, SETTLENO, DIAGNOSIS, REMARK
</sql>
<select id="getList" resultMap="BaseResultMap">
SELECT
CODE
FROM
v_a011
WHERE
1 = 1
<!-- 业务类型条件 -->
<if test="req.busType != null">
<if test="req.busType == 'YPCF002'">
AND REMARK ='门诊'
</if>
<if test="req.busType != 'YPCF002'">
AND REMARK !='门诊'
</if>
</if>
<!-- 时间范围条件 -->
<if test="req.startTime != null and req.endTime != null">
AND
<choose>
<when test="req.databaseProductName == 'MySQL'">
<![CDATA[
STR_TO_DATE(PRESCRIBEDATE, '%Y/%c/%e %H:%i:%s') >= #{req.startTime}
AND STR_TO_DATE(PRESCRIBEDATE, '%Y/%c/%e %H:%i:%s') < #{req.endTime}
]]>
</when>
<when test="req.databaseProductName == 'Oracle'">
<![CDATA[
PRESCRIBEDATE >= TO_TIMESTAMP(#{req.startTime}, 'YYYY-MM-DD HH24:MI:SS')
AND PRESCRIBEDATE < TO_TIMESTAMP(#{req.endTime}, 'YYYY-MM-DD HH24:MI:SS')
]]>
</when>
</choose>
</if>
<!-- 其他条件 -->
<if test="req.code != null and req.code != ''">
AND CODE = #{req.code}
</if>
<if test="req.fromCorpName != null and req.fromCorpName != ''">
AND DEPTNAME = #{req.fromCorpName}
</if>
<if test="req.key != null and req.key != ''">
<if test="req.databaseProductName == 'MySQL'">
AND (
CODE LIKE CONCAT('%', #{req.key}, '%')
OR DEPTNAME LIKE CONCAT('%', #{req.key}, '%')
)
</if>
<if test="req.databaseProductName == 'Oracle'">
AND (
CODE like '%' || #{req.key} || '%'
or DEPTNAME like '%' || #{req.key} || '%'
)
</if>
</if>
<!-- 分组和排序 -->
GROUP BY CODE
</select>
</mapper>

Loading…
Cancel
Save