TUploadDrgGroupService.java 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package thyyxxk.webserver.service.medicalinsurance;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import org.jetbrains.annotations.NotNull;
  8. import org.springframework.stereotype.Service;
  9. import thyyxxk.webserver.constants.sidicts.MedType;
  10. import thyyxxk.webserver.constants.sidicts.PsnType;
  11. import thyyxxk.webserver.dao.his.medicalinsurance.TUploadDrgGroupDao;
  12. import thyyxxk.webserver.entity.HeadInfo;
  13. import thyyxxk.webserver.entity.querydata.TUploadDrgGroup;
  14. import thyyxxk.webserver.service.hutoolcache.RegionCache;
  15. import thyyxxk.webserver.utils.ExcelUtil;
  16. import thyyxxk.webserver.utils.StringUtil;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * <p>
  23. * 服务实现类
  24. * </p>
  25. *
  26. * @author lihong
  27. * @since 2023-01-29
  28. */
  29. @Service
  30. public class TUploadDrgGroupService extends ServiceImpl<TUploadDrgGroupDao, TUploadDrgGroup> {
  31. @Resource
  32. private RegionCache regionCache;
  33. public IPage<TUploadDrgGroup> queryUploadDrgGroupPage(TUploadDrgGroup uploadDrgGroup){
  34. IPage<TUploadDrgGroup> page = new Page(uploadDrgGroup.getCurrentPage(),uploadDrgGroup.getPageSize());
  35. QueryWrapper<TUploadDrgGroup> query = gettUploadDrgGroupQueryWrapper(uploadDrgGroup);
  36. baseMapper.listPage(page,query);
  37. for(TUploadDrgGroup item : page.getRecords()){
  38. item.setMedTypeName(MedType.getName(item.getMedType()));
  39. if(StrUtil.isBlank(item.getClrOptinsName())){
  40. if("439900".equals(item.getClrOptins())){
  41. item.setClrOptinsName("省本级");
  42. }else if("430199".equals(item.getClrOptins())){
  43. item.setClrOptinsName("市本级");
  44. }
  45. }
  46. item.setInsuplcAdmdvsName(regionCache.get(item.getInsuplcAdmdvs()));
  47. item.setPsnTypeName(PsnType.get(item.getPsnType()) == null? "" : PsnType.get(item.getPsnType()).getName());
  48. }
  49. return page;
  50. }
  51. @NotNull
  52. private QueryWrapper<TUploadDrgGroup> gettUploadDrgGroupQueryWrapper(TUploadDrgGroup uploadDrgGroup) {
  53. QueryWrapper<TUploadDrgGroup> query = new QueryWrapper<>();
  54. query.eq("1",1);
  55. query.eq(StringUtil.notBlank(uploadDrgGroup.getPatNo()),"t1.pat_no", uploadDrgGroup.getPatNo());
  56. query.eq(uploadDrgGroup.getTimes() !=null,"t1.times", uploadDrgGroup.getTimes());
  57. query.eq(uploadDrgGroup.getLedgerSn() !=null,"t1.ledger_sn", uploadDrgGroup.getLedgerSn());
  58. query.ge(StringUtil.notBlank(uploadDrgGroup.getSetlStartTime()), "t1.setl_time", uploadDrgGroup.getSetlStartTime());
  59. query.le(StringUtil.notBlank(uploadDrgGroup.getSetlEndTime()), "t1.setl_time", uploadDrgGroup.getSetlEndTime());
  60. query.likeRight(uploadDrgGroup.getBlType() != null && uploadDrgGroup.getBlType() != 0 && uploadDrgGroup.getBlType() !=11,"t1.bl", TUploadDrgGroup.BlTypeEnum.getNameByCode(uploadDrgGroup.getBlType()));
  61. query.likeLeft(uploadDrgGroup.getBlType() != null && uploadDrgGroup.getBlType()==11 ,"t1.code","QY" );
  62. return query;
  63. }
  64. public void delAndSaveData(TUploadDrgGroup uploadDrgGroup) {
  65. QueryWrapper<TUploadDrgGroup> query = new QueryWrapper<>();
  66. query.eq("pat_no",uploadDrgGroup.getPatNo());
  67. query.eq("times", uploadDrgGroup.getTimes());
  68. query.eq("ledger_sn",uploadDrgGroup.getLedgerSn());
  69. baseMapper.delete(query);
  70. baseMapper.insert(uploadDrgGroup);
  71. }
  72. /**
  73. * @description:导出
  74. * @author: lihong
  75. * @date: 2023/1/30 9:23
  76. * @param: response
  77. * @param: query
  78. **/
  79. public void exportDrgGroupInfo(HttpServletResponse response, TUploadDrgGroup query) {
  80. query.setPageSize(100000);
  81. query.setCurrentPage(1);
  82. IPage<TUploadDrgGroup> tUploadDrgGroupIPage = queryUploadDrgGroupPage(query);
  83. List<Map<String, Object>> result = ExcelUtil.beanToMap(tUploadDrgGroupIPage.getRecords(),TUploadDrgGroup.class);
  84. String[] display = {"住院号","住院次数","账页号","出院科室","分组编码","分组名称","权重","病历类型","盈亏额","标杆费用","总费用","结算时间","医疗类别","参保地","清算机构","人员类别","分组提示"};
  85. String[] names = {"patNo","times","ledgerSn","outDeptName","code","name","weight","bl","profit","feeStand","totalFee","setlTime","medTypeName","insuplcAdmdvsName","clrOptinsName","psnTypeName","groupMessages"};
  86. List<HeadInfo> headList = ExcelUtil.createHeadInfos(display,names);
  87. ExcelUtil.exportExcelReport(response,result,headList,"drg分组信息");
  88. }
  89. }