2 Incheckningar b33d3aab19 ... bbcc3f5291

Upphovsman SHA1 Meddelande Datum
  lenovodn bbcc3f5291 Merge remote-tracking branch 'origin/master' 2 år sedan
  lenovodn 61e8c8ea43 bug修复 2 år sedan
22 ändrade filer med 228 tillägg och 65 borttagningar
  1. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/InpatientSettlementDetailResponse.java
  2. 3 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/PatientInfoResponse.java
  3. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/before/AuditAdvanceWarningAuditDetailResponse.java
  4. 2 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/mid/request/AuditMidDetailListRequest.java
  5. 1 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AfterStatisticsController.java
  6. 11 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AfterwardsAuditController.java
  7. 12 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MedicalInsRuleProjectController.java
  8. 18 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/ViolationAnalysisController.java
  9. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/ViolationAuditAfterController.java
  10. 2 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterwardsAuditDetail.java
  11. 4 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditMapper.java
  12. 1 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterStatisticsMapper.xml
  13. 11 6
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditDetailMapper.xml
  14. 58 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditMapper.xml
  15. 26 20
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditDetailMapper.xml
  16. 6 6
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml
  17. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditService.java
  18. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IViolationAuditAfterService.java
  19. 19 13
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditServiceImpl.java
  20. 10 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MedicalInsRuleProjectServiceImpl.java
  21. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAnalysisServiceImpl.java
  22. 15 6
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAuditAfterServiceImpl.java

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/InpatientSettlementDetailResponse.java

@@ -21,7 +21,7 @@ public class InpatientSettlementDetailResponse implements Serializable {
 
 
     @ApiModelProperty("患者信息")
-    private PatientInfoResponse patientInfo;
+    private List<PatientInfoResponse> patientInfo;
 
     @ApiModelProperty("医保项目明细")
     private List<MedicalInsuranceProjectDetailsResponse> hospitalizationSettleDetailResponse;

+ 3 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/PatientInfoResponse.java

@@ -26,7 +26,9 @@ public class PatientInfoResponse implements Serializable {
     private String personalCode;
 
     @ApiModelProperty(value = "结算单据号")
-    private String settlementBillNumber;
+    private String hisid;
+    @ApiModelProperty(value = "门诊/住院类型")
+    private String treatmentType;
 
     @ApiModelProperty(value = "总发生金额")
     private BigDecimal totalAmount;

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/before/AuditAdvanceWarningAuditDetailResponse.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.medical.common.bo.before;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -50,4 +51,7 @@ public class AuditAdvanceWarningAuditDetailResponse {
     @ApiModelProperty(value = "规则管理级别")
     @Dict(dicCode = "violation_level")
     private String reminderLevel;
+
+    @TableField(exist = false)
+    private String[] createAt;
 }

+ 2 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/mid/request/AuditMidDetailListRequest.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.medical.common.bo.mid.request;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.jeecg.common.aspect.annotation.Dict;
@@ -47,4 +48,5 @@ public class AuditMidDetailListRequest implements Serializable {
     private String medicalDeptCode;
     private String startTime;
     private String endTime;
+     private String[] createAt;
 }

+ 1 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AfterStatisticsController.java

@@ -71,6 +71,7 @@ public class AfterStatisticsController extends JeecgController<AfterStatistics,
 								   HttpServletRequest req) {
 		QueryWrapper<AfterStatistics> queryWrapper = QueryGenerator.initQueryWrapper(afterStatistics, req.getParameterMap());
 		Page<AfterStatistics> page = new Page<AfterStatistics>(pageNo, pageSize);
+		queryWrapper.orderByDesc("statistics_date");
 		IPage<AfterStatistics> pageList = afterStatisticsService.queryAfterStatistics(page, startTime,endTime);
 
 		return Result.OK(pageList);

+ 11 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AfterwardsAuditController.java

@@ -110,12 +110,12 @@ public class AfterwardsAuditController extends JeecgController<AfterwardsAudit,
 
 	@ApiOperation(value = "审核端-医院结算明细")
 	@GetMapping(value = "/audit/settlement/detail")
-	public Result<InpatientSettlementDetailResponse> loadInpatientSettlementDetail( @RequestParam("id") Integer id,
+	public Result<InpatientSettlementDetailResponse> loadInpatientSettlementDetail( @RequestParam("id") Integer id, @RequestParam(name = "hisid",required=false) String hisid,
 																					@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 																					@RequestParam(name="pageSize", defaultValue="10") Integer pageSize
 																					) {
 		Page<MedicalInsuranceProjectDetailsResponse> page = new Page<>(pageNo, pageSize);
-		InpatientSettlementDetailResponse inpatientSettlementDetailResponse = afterwardsAuditService.loadInpatientSettlementDetail(page,id);
+		InpatientSettlementDetailResponse inpatientSettlementDetailResponse = afterwardsAuditService.loadInpatientSettlementDetail(page,id,hisid);
 		return Result.OK("获取成功", inpatientSettlementDetailResponse);
 	}
 
@@ -125,8 +125,16 @@ public class AfterwardsAuditController extends JeecgController<AfterwardsAudit,
 																						  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 																						  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize
 																						  ) {
+		AfterwardsAudit byId = afterwardsAuditService.getById(id);
+
 		Page<MedicalInsuranceProjectDetailsResponse> page = new Page<>(pageNo, pageSize);
-		IPage<InpatientSettlementMasterResponse> result = afterwardsAuditService.loadInpatientSettlementMaster(page, id);
+		IPage<InpatientSettlementMasterResponse> result = new Page<>();
+		if(byId.getTreatmentType().equals("2")){
+			result = afterwardsAuditService.loadTreatSettlementMaster(page, id);
+		}else{
+			result = afterwardsAuditService.loadInpatientSettlementMaster(page, id);
+		}
+//		afterwardsAuditService.loadInpatientSettlementMaster(page, id);
 		return Result.OK("获取成功", result);
 	}
 

+ 12 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MedicalInsRuleProjectController.java

@@ -14,7 +14,9 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.medical.Constant;
+import org.jeecg.modules.medical.entity.MedicalInsRuleInfo;
 import org.jeecg.modules.medical.entity.MedicalInsRuleProject;
+import org.jeecg.modules.medical.service.IMedicalInsRuleInfoService;
 import org.jeecg.modules.medical.service.IMedicalInsRuleProjectDiagnoseService;
 import org.jeecg.modules.medical.service.IMedicalInsRuleProjectService;
 
@@ -53,9 +55,12 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 public class MedicalInsRuleProjectController extends JeecgController<MedicalInsRuleProject, IMedicalInsRuleProjectService> {
     @Autowired
     private IMedicalInsRuleProjectService medicalInsRuleProjectService;
+    private IMedicalInsRuleInfoService medicalInsRuleInfoService;
     @Autowired
     private IMedicalInsRuleProjectDiagnoseService diagnoseService;
 
+
+
     /**
      * 分页列表查询
      *
@@ -89,6 +94,9 @@ public class MedicalInsRuleProjectController extends JeecgController<MedicalInsR
     @PostMapping(value = "/add")
     public Result<String> add(@RequestBody MedicalInsRuleProject medicalInsRuleProject) {
         String medicalDiagnoseCode = medicalInsRuleProject.getMedicalDiagnoseCode();
+        MedicalInsRuleInfo byId = medicalInsRuleInfoService.getById(medicalInsRuleProject.getMedicalInsRuleInfoId());
+        medicalInsRuleProject.setCallScenario(byId.getCallScenario());
+        medicalInsRuleProject.setTreatmentType(byId.getTreatmentType());
         String correlationMedicalDiagnoseCode = medicalInsRuleProject.getCorrelationMedicalDiagnoseCode();
         //多行文本
         medicalInsRuleProjectService.save(medicalInsRuleProject);
@@ -119,8 +127,12 @@ public class MedicalInsRuleProjectController extends JeecgController<MedicalInsR
     @ApiOperation(value = "medical_ins_rule_project-编辑", notes = "medical_ins_rule_project-编辑")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> edit(@RequestBody MedicalInsRuleProject medicalInsRuleProject) {
+        Integer medicalInsRuleInfoId = medicalInsRuleProject.getMedicalInsRuleInfoId();
         String medicalDiagnoseCode = medicalInsRuleProject.getMedicalDiagnoseCode();
         String correlationMedicalDiagnoseCode = medicalInsRuleProject.getCorrelationMedicalDiagnoseCode();
+        MedicalInsRuleInfo byId = medicalInsRuleInfoService.getById(medicalInsRuleInfoId);
+        medicalInsRuleProject.setCallScenario(byId.getCallScenario());
+        medicalInsRuleProject.setTreatmentType(byId.getTreatmentType());
         medicalInsRuleProjectService.updateById(medicalInsRuleProject);
         if (StringUtils.hasText(medicalDiagnoseCode)) {
             List<String> code = Arrays.asList(medicalDiagnoseCode.split("\n"));

+ 18 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/ViolationAnalysisController.java

@@ -441,12 +441,22 @@ public class ViolationAnalysisController {
                                                               @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                                               @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                                               HttpServletRequest req) {
+
         QueryWrapper<AfterwardsAuditDetail> queryWrapper = QueryGenerator.initQueryWrapper(afterwardsAuditDetail, req.getParameterMap());
         if (StringUtils.hasText(afterwardsAuditDetail.getSearchContent())) {
             queryWrapper.and(q1 ->
                     q1.eq("proejct_code", afterwardsAuditDetail.getSearchContent().trim()).or().eq("proejct_name", afterwardsAuditDetail.getSearchContent().trim())
             );
         }
+        String[] createTime = afterwardsAuditDetail.getCreateAt();
+        if (createTime != null && createTime.length == 2) {
+            String start = createTime[0].substring(0, 10);
+            String startTime = start + " 00:00:00";
+            String end = createTime[1].substring(0, 10);
+            String endTime = end + " 23:59:59";
+            queryWrapper.ge("create_time",startTime);
+            queryWrapper.le("create_time",endTime);
+        }
         queryWrapper.orderByDesc("create_time");
         Page<AfterwardsAuditDetail> page = new Page<AfterwardsAuditDetail>(pageNo, pageSize);
         IPage<AfterwardsAuditDetail> pageList = afterwardsAuditDetailService.page(page, queryWrapper);
@@ -684,13 +694,14 @@ public class ViolationAnalysisController {
     @GetMapping(value = "/audit/settlement/detail")
     public Result<InpatientSettlementDetailResponse> loadInpatientSettlementDetail(HttpServletRequest request,
                                                                                    @RequestParam("detailId") Integer detailId,
+                                                                                   @RequestParam(name = "hisid",required = false) String hisid,
                                                                                     @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                                                                    @RequestParam(name="pageSize", defaultValue="10") Integer pageSize
                                                                                     ) {
         AfterwardsAuditDetail byId = afterwardsAuditDetailService.getById(detailId);
         Page<MedicalInsuranceProjectDetailsResponse> page = new Page<>(pageNo, pageSize);
 //        InpatientSettlementDetailResponse result = afterwardsAuditService.loadInpatientSettlementDetail(byId.getAfterwardsAuditId());
-        InpatientSettlementDetailResponse inpatientSettlementDetailResponse = afterwardsAuditService.loadInpatientSettlementDetail(page, byId.getAfterwardsAuditId());
+        InpatientSettlementDetailResponse inpatientSettlementDetailResponse = afterwardsAuditService.loadInpatientSettlementDetail(page, byId.getAfterwardsAuditId(),hisid);
         return Result.OK(inpatientSettlementDetailResponse);
     }
 
@@ -701,7 +712,12 @@ public class ViolationAnalysisController {
                                                                                          @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
         AfterwardsAuditDetail byId = afterwardsAuditDetailService.getById(detailId);
         Page<MedicalInsuranceProjectDetailsResponse> page = new Page<>(pageNo, pageSize);
-        IPage<InpatientSettlementMasterResponse> result = afterwardsAuditService.loadInpatientSettlementMaster(page, byId.getAfterwardsAuditId());
+        IPage<InpatientSettlementMasterResponse> result=new Page<>() ;
+        if(byId.getTreatmentType().equals("2")){
+            result=afterwardsAuditService.loadTreatSettlementMaster(page, byId.getAfterwardsAuditId());
+        }else{
+            result= afterwardsAuditService.loadInpatientSettlementMaster(page, byId.getAfterwardsAuditId());
+        }
         return Result.OK("获取成功", result);
     }
 

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/ViolationAuditAfterController.java

@@ -79,10 +79,11 @@ public class ViolationAuditAfterController {
     @GetMapping(value = "/audit/settlement/detail")
     public Result<InpatientSettlementDetailResponse> loadInpatientSettlementDetail(HttpServletRequest request,
                                                                                    @RequestParam("id") Integer id,
+                                                                                   @RequestParam(name="hisid",required = false) String hisid,
                                                                                    @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                                                                    @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
         Page<MedicalInsuranceProjectDetailsResponse> page = new Page<>(pageNo, pageSize);
-        InpatientSettlementDetailResponse result = violationAuditAfterService.loadInpatientSettlementDetail(page, id);
+        InpatientSettlementDetailResponse result = violationAuditAfterService.loadInpatientSettlementDetail(page, id,hisid);
         return Result.OK(result);
     }
 

+ 2 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterwardsAuditDetail.java

@@ -210,5 +210,7 @@ public class AfterwardsAuditDetail implements Serializable {
      * 新的hisid
      */
     private String backNewHisid;
+    @TableField(exist = false)
+    private String[] createAt;
 
 }

+ 4 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditMapper.java

@@ -87,7 +87,7 @@ public interface AfterwardsAuditMapper extends BaseMapper<AfterwardsAudit> {
      * @param id
      * @return
      */
-    PatientInfoResponse loadInpatientSettlementInfo(@Param("id") Integer id);
+    List<PatientInfoResponse> loadInpatientSettlementInfo(@Param("id") Integer id);
 
     /**
      * 事后结算工单id,查询医保明细
@@ -95,6 +95,7 @@ public interface AfterwardsAuditMapper extends BaseMapper<AfterwardsAudit> {
      * @return
      */
     IPage<MedicalInsuranceProjectDetailsResponse> loadMedicalInsuranceProjectDetails(Page<MedicalInsuranceProjectDetailsResponse> page, @Param("hisid") String hisid);
+    IPage<MedicalInsuranceProjectDetailsResponse> loadMedicalOutpatientProjectDetails(Page<MedicalInsuranceProjectDetailsResponse> page, @Param("hisid") String hisid);
 
     IPage<InpatientSettlementMasterResponse> loadInpatientSettlementMaster(Page<MedicalInsuranceProjectDetailsResponse> page, @Param("id") Integer id);
 
@@ -109,4 +110,6 @@ public interface AfterwardsAuditMapper extends BaseMapper<AfterwardsAudit> {
 
     List<StaticResponse> statisticsProject(String startTime, String endTime);
     Double statisticsAmount(String startTime, String endTime);
+
+    IPage<InpatientSettlementMasterResponse> loadTreatSettlementMaster(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id);
 }

+ 1 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterStatisticsMapper.xml

@@ -25,5 +25,6 @@
                 and <![CDATA[ a.statistics_date <=  DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59') ]]>
             </if>
         </where>
+order by a.statistics_date desc
     </select>
 </mapper>

+ 11 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditDetailMapper.xml

@@ -66,11 +66,12 @@
             <if test="projectCode != null and projectCode != '' ">
                 AND m.project_code = #{projectCode}
             </if>
+
             <if test="startTime != null and startTime != ''">
-                and <![CDATA[ m.create_time >= #{startTime} ]]>
+                and <![CDATA[ m.create_time >=    DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
             <if test="endTime != null and endTime != ''">
-                and <![CDATA[ m.create_time <= #{endTime} ]]>
+                and <![CDATA[ m.create_time <=  DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59') ]]>
             </if>
         </where>
 
@@ -126,12 +127,16 @@
             <if test="ew.medicalDeptCode != null and ew.medicalDeptCode != ''">
                 AND medical_dept_code = #{ew.medicalDeptCode}
             </if>
-            <if test="ew.startTime != null and ew.startTime != '' ">
-                AND <![CDATA[ create_time >= #{ew.startTime} ]]>
+
+            <if test="ew.startTime != null and ew.startTime != ''">
+                and <![CDATA[ create_time >=    DATE_FORMAT(#{ew.startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
-            <if test="ew.endTime != null and ew.endTime != '' ">
-                AND <![CDATA[  create_time <= #{ew.endTime} ]]>
+            <if test="ew.endTime != null and ew.endTime != ''">
+                and <![CDATA[ create_time <=  DATE_FORMAT(#{ew.endTime}, '%Y-%m-%d 23:59:59') ]]>
             </if>
+
+
+
             <if test="ew.medicalProjectCode != null and ew.medicalProjectCode != '' " >
                 AND medical_project_code = #{ew.medicalProjectCode}
             </if>

+ 58 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditMapper.xml

@@ -34,12 +34,15 @@
             <if test="ew.medicalDeptCode != null and ew.medicalDeptCode != ''" >
                 AND m.medical_dept_code = #{ew.medicalDeptCode}
             </if>
+
             <if test="ew.startTime != null and ew.startTime != ''">
-                AND <![CDATA[ m.create_time >= #{ew.startTime,jdbcType=VARCHAR} ]]>
+                and <![CDATA[ m.create_time >=    DATE_FORMAT(#{ew.startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
             <if test="ew.endTime != null and ew.endTime != ''">
-                AND <![CDATA[ m.create_time <= #{ew.endTime,jdbcType=VARCHAR} ]]>
+                and <![CDATA[ m.create_time <=  DATE_FORMAT(#{ew.endTime}, '%Y-%m-%d 23:59:59') ]]>
             </if>
+
+
         </where>
         GROUP BY m.medical_dept_code
         ORDER BY violationDoctorNumber DESC
@@ -294,7 +297,8 @@
             a.outpatient_number AS admissionNumber, -- 住院号
             a.patient_name AS patientName, -- 患者姓名
             a.patient_id AS personalCode, -- 个人编码
-            mab.hisid AS settlementBillNumber, -- 结算单据号
+            a.treatment_type,
+            a.hisid, -- 结算单据号
             mab.medfee_sumamt AS totalAmount -- 总发生金额
         FROM
             afterwards_audit AS a
@@ -428,5 +432,56 @@
         where a.create_time BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')  AND DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')
 
     </select>
+    <select id="loadMedicalOutpatientProjectDetails"
+            resultType="org.jeecg.modules.medical.common.bo.MedicalInsuranceProjectDetailsResponse">
+        SELECT
+            id,
+            item_id_hosp,
+            item_name_hosp,
+            usage_date AS usageDate, -- "项目使用时间"
+            admission_dept_name AS dischargeDeptName, -- "科室名称"
+            p_category AS pCategory, -- "费用类别"
+            item_id AS itemId, -- "医保项目编码"
+            item_name AS itemName, -- "医保项目名称"
+            drug_spec AS drugSpec, -- "规格"
+            unit_price AS unitPrice, -- "单价"
+            num AS num, -- "数量"
+            cost AS cost, -- "发生金额"
+            expense_category  AS pCategory, -- "费用类别"
+            p_category AS pType -- "支付列表"
+        FROM
+           outpatient_settlement_details
+
+        WHERE
+            hisid = #{hisid}
+
+    </select>
+    <select id="loadTreatSettlementMaster"
+            resultType="org.jeecg.modules.medical.common.bo.InpatientSettlementMasterResponse">
+
+
+
+
+        SELECT
+            ad.id,
+            ad.outpatient_number AS zyh,  -- 住院号
+            ad.patient_name AS patientName,  -- 患者姓名
+            ad.patient_id AS personalCode,  -- 个人编码
+            his.gender AS gender,  -- 患者性别
+            his.birthday AS dateOfBirth,  -- 出生日期,计算年龄
+            mab.benefit_type AS insuranceType,  -- 险种类型
+            mab.pay_method AS paymentMethod,  -- 医保支付方式
+            mab.admission_dept_name AS dischargeDepartment,  -- 出院科室
+            mab.visit_time AS admissionDate,  -- 入院日期
+            0 AS lengthOfStay,  -- 住院天数
+            mab.fund_pay_sumamt AS fundPaymentAmount,  -- 基金支付金额
+            mab.fulamt_ownpay_amt AS totalPersonalPaymentAmount,  -- 全自付金额-------图稿是个人支付金额要确认
+            mab.medfee_sumamt AS totalMedicalExpenses  -- 医疗总发生费用
+        FROM afterwards_audit AS ad
+                 LEFT JOIN outpatient_settle_bill AS mab ON ad.hisid = mab.hisid
+                 LEFT JOIN his_patient AS his ON ad.patient_id = his.patient_no
+        WHERE ad.id = #{id,jdbcType=INTEGER}
+
+    </select>
 
 </mapper>

+ 26 - 20
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditDetailMapper.xml

@@ -100,11 +100,13 @@
             <if test="medicalDeptCode != null and medicalDeptCode != ''" >
                 AND m.medical_dept_code = #{medicalDeptCode}
             </if>
-            <if test="startTime != null and startTime != ''">
-                and <![CDATA[ m.create_time >= #{startTime} ]]>
+
+
+            <if test="startTime != null and startTime != '' ">
+                AND <![CDATA[ m.create_time >= DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
-            <if test="endTime != null and endTime != ''">
-                and <![CDATA[ m.create_time <= #{endTime} ]]>
+            <if test="endTime != null and endTime != '' ">
+                AND <![CDATA[ m.create_time <= DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
         </where>
         GROUP BY m.medical_dept_code
@@ -142,11 +144,12 @@
             <if test="medicalDeptCode != null and medicalDeptCode != ''" >
                 AND m.medical_dept_code = #{medicalDeptCode}
             </if>
-            <if test="startTime != null and startTime != ''">
-                and <![CDATA[ m.create_time >= #{startTime} ]]>
+
+            <if test="startTime != null and startTime != '' ">
+                AND <![CDATA[ m.create_time >= DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
-            <if test="endTime != null and endTime != ''">
-                and <![CDATA[ m.create_time <= #{endTime} ]]>
+            <if test="endTime != null and endTime != '' ">
+                AND <![CDATA[ m.create_time <= DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
         </where>
         GROUP BY m.medical_dept_code
@@ -172,11 +175,12 @@
                     proejct_name LIKE concat(concat('%',#{projectSearch}),'%')
                 )
             </if>
-            <if test="startTime != null and startTime != ''">
-                and <![CDATA[ m.create_time >= #{startTime} ]]>
+
+            <if test="startTime != null and startTime != '' ">
+                AND <![CDATA[ m.create_time >= DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
-            <if test="endTime != null and endTime != ''">
-                and <![CDATA[ m.create_time <= #{endTime} ]]>
+            <if test="endTime != null and endTime != '' ">
+                AND <![CDATA[ m.create_time <= DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
         </where>
 
@@ -201,11 +205,12 @@
             <if test="projectType != null and projectType != ''">
                 AND project_type = #{projectType}
             </if>
-            <if test="startTime != null and startTime != ''">
-                and <![CDATA[ create_time >= #{startTime} ]]>
+
+            <if test="startTime != null and startTime != '' ">
+                AND <![CDATA[ m.create_time >= DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
-            <if test="endTime != null and endTime != ''">
-                and <![CDATA[ create_time <= #{endTime} ]]>
+            <if test="endTime != null and endTime != '' ">
+                AND <![CDATA[ m.create_time <= DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
 
         </where>
@@ -230,11 +235,12 @@
             <if test="projectType != null and projectType != ''">
                 AND project_type = #{projectType}
             </if>
-            <if test="startTime != null and startTime != ''">
-                and <![CDATA[ create_time >= #{startTime} ]]>
+
+            <if test="startTime != null and startTime != '' ">
+                AND <![CDATA[ m.create_time >= DATE_FORMAT(#{startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
-            <if test="endTime != null and endTime != ''">
-                and <![CDATA[ create_time <= #{endTime} ]]>
+            <if test="endTime != null and endTime != '' ">
+                AND <![CDATA[ m.create_time <= DATE_FORMAT(#{endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
         </where>
         GROUP BY medical_ins_rule_info_code

+ 6 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml

@@ -50,10 +50,10 @@
                 AND medical_dept_code = #{ew.medicalDeptCode}
             </if>
             <if test="ew.startTime != null and ew.startTime != '' ">
-                AND <![CDATA[ create_time >= #{ew.startTime} ]]>
+                AND <![CDATA[ create_time >= DATE_FORMAT(#{ew.startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
             <if test="ew.endTime != null and ew.endTime != '' ">
-                AND <![CDATA[  create_time <= #{ew.endTime} ]]>
+                AND <![CDATA[ create_time <= DATE_FORMAT(#{ew.endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
             <if test="ew.medicalProjectCode != null and ew.medicalProjectCode != '' " >
                 AND medical_project_code = #{ew.medicalProjectCode}
@@ -108,10 +108,10 @@
                 AND medical_dept_name = #{ew.medicalDeptName}
             </if>
             <if test="ew.startTime != null and ew.startTime != '' ">
-                AND <![CDATA[ create_time >= #{ew.startTime} ]]>
+                AND <![CDATA[ create_time >= DATE_FORMAT(#{ew.startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
             <if test="ew.endTime != null and ew.endTime != '' ">
-                AND <![CDATA[  create_time <= #{ew.endTime} ]]>
+                AND <![CDATA[ create_time <= DATE_FORMAT(#{ew.endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
             <if test="ew.medicalProjectCode != '' and ew.medicalProjectCode != null" >
                 AND medical_project_code = #{ew.medicalProjectCode}
@@ -148,10 +148,10 @@
                 AND medical_dept_code = #{ew.medicalDeptCode}
             </if>
             <if test="ew.startTime != null and ew.startTime != '' ">
-                AND <![CDATA[ create_time >= #{ew.startTime} ]]>
+                AND <![CDATA[ create_time >= DATE_FORMAT(#{ew.startTime}, '%Y-%m-%d 00:00:00')]]>
             </if>
             <if test="ew.endTime != null and ew.endTime != '' ">
-                AND <![CDATA[  create_time <= #{ew.endTime} ]]>
+                AND <![CDATA[ create_time <= DATE_FORMAT(#{ew.endTime}, '%Y-%m-%d 23:59:59')]]>
             </if>
             <if test="ew.medicalProjectCode != '' and ew.medicalProjectCode != null" >
                 AND medical_project_code = #{ew.medicalProjectCode}

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditService.java

@@ -115,7 +115,7 @@ public interface IAfterwardsAuditService extends IService<AfterwardsAudit> {
      * @param id 事后审核工单id
      * @return
      */
-    InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id);
+    InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id,String hisid);
 
     /**
      * 根据事后审核工单id, 查询审核申诉记录表
@@ -131,6 +131,7 @@ public interface IAfterwardsAuditService extends IService<AfterwardsAudit> {
      * @return
      */
     IPage<InpatientSettlementMasterResponse> loadInpatientSettlementMaster(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id);
+    IPage<InpatientSettlementMasterResponse> loadTreatSettlementMaster(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id);
 
     BigDecimal statisticsAfterAuditTotal(AfterDeptDetailRequest afterwardsAuditDetail);
 

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IViolationAuditAfterService.java

@@ -19,7 +19,7 @@ import java.util.List;
 public interface IViolationAuditAfterService {
     List<PrescriptionOrder> loadPrescriptionOrderInfo(Integer id);
 
-    InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id);
+    InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id,String hisid);
 
     IPage<InpatientSettlementMasterResponse> loadInpatientSettlementMaster(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id);
 

+ 19 - 13
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditServiceImpl.java

@@ -14,30 +14,21 @@ import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.medical.common.bo.*;
 import org.jeecg.modules.medical.common.bo.after.response.AfterDeptDetailRequest;
-import org.jeecg.modules.medical.common.bo.after.response.AfterwardsAuditDetailResponse;
-import org.jeecg.modules.medical.common.bo.before.AuditAdvanceWarningAuditDetailResponse;
-import org.jeecg.modules.medical.common.bo.mid.AuditMidDetailListResponse;
-import org.jeecg.modules.medical.common.bo.mid.request.AuditMidDetailListRequest;
-import org.jeecg.modules.medical.common.bo.mid.response.MidAuditViolateProjectStatisticsResponse;
 import org.jeecg.modules.medical.common.enums.AfterwardsAuditStatusEnum;
 import org.jeecg.modules.medical.entity.AfterwardsAudit;
 import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
 import org.jeecg.modules.medical.entity.MedicalDoctorAppealRecord;
 import org.jeecg.modules.medical.entity.PrescriptionOrder;
 import org.jeecg.modules.medical.mapper.AfterwardsAuditMapper;
-import org.jeecg.modules.medical.ruleengine.projectcache.HisMedicalProjectCache;
 import org.jeecg.modules.medical.service.*;
 import org.jeecg.modules.medical.vo.StaticResponse;
 import org.jeecg.modules.system.entity.SysDepart;
 import org.jeecg.modules.system.entity.SysUser;
-import org.jeecg.modules.system.entity.SysUserDepart;
-import org.jeecg.modules.system.model.DepartIdModel;
 import org.jeecg.modules.system.service.ISysDepartService;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.jeecg.modules.system.service.ISysUserDepartService;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -593,12 +584,22 @@ public class AfterwardsAuditServiceImpl extends ServiceImpl<AfterwardsAuditMappe
     }
 
     @Override
-    public InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id) {
+    public InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id,String hisid) {
         // 获取患者信息
-        PatientInfoResponse patientInfo = baseMapper.loadInpatientSettlementInfo(id);
-        String hisid = patientInfo.getSettlementBillNumber();
+        List<PatientInfoResponse> patientInfo = baseMapper.loadInpatientSettlementInfo(id);
+        if(oConvertUtils.isEmpty(hisid)){
+            hisid=patientInfo.get(0).getHisid();
+        }
         // 获取医保项目明细
-        IPage<MedicalInsuranceProjectDetailsResponse> medicalInsuranceProjects = baseMapper.loadMedicalInsuranceProjectDetails(page, hisid);
+        IPage<MedicalInsuranceProjectDetailsResponse> medicalInsuranceProjects = new Page<>();
+        if(patientInfo.get(0).getTreatmentType().equals("2")){
+            //门诊
+            medicalInsuranceProjects = baseMapper.loadMedicalOutpatientProjectDetails(page, hisid);
+        }else{
+            medicalInsuranceProjects = baseMapper.loadMedicalInsuranceProjectDetails(page, hisid);
+        }
+
+
         InpatientSettlementDetailResponse r = new InpatientSettlementDetailResponse();
         r.setPatientInfo(patientInfo);
 
@@ -640,6 +641,11 @@ public class AfterwardsAuditServiceImpl extends ServiceImpl<AfterwardsAuditMappe
         return baseMapper.loadInpatientSettlementMaster(page, id);
     }
 
+    @Override
+    public IPage<InpatientSettlementMasterResponse> loadTreatSettlementMaster(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id) {
+        return baseMapper.loadTreatSettlementMaster(page, id);
+    }
+
     @Override
     public BigDecimal statisticsAfterAuditTotal(AfterDeptDetailRequest afterwardsAuditDetail) {
         return baseMapper.statisticsAfterAuditTotal(afterwardsAuditDetail);

+ 10 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MedicalInsRuleProjectServiceImpl.java

@@ -18,8 +18,10 @@ import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.common.ExcelImportUtilService;
 import org.jeecg.modules.medical.common.bo.ExportRuleFieldDTO;
 import org.jeecg.modules.medical.common.bo.ExportRuleTitleDTO;
+import org.jeecg.modules.medical.entity.MedicalInsRuleInfo;
 import org.jeecg.modules.medical.entity.MedicalInsRuleProject;
 import org.jeecg.modules.medical.mapper.MedicalInsRuleProjectMapper;
+import org.jeecg.modules.medical.service.IMedicalInsRuleInfoService;
 import org.jeecg.modules.medical.service.IMedicalInsRuleProjectDiagnoseService;
 import org.jeecg.modules.medical.service.IMedicalInsRuleProjectService;
 import org.jeecg.modules.system.service.ISysDictService;
@@ -82,6 +84,7 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
     private String upLoadPath;
 
     private final ISysDictService sysDictService;
+    private final IMedicalInsRuleInfoService medicalInsRuleInfoService;
     private final ExcelImportUtilService<MedicalInsRuleProject, String> excelImportUtilService;
 
     @Override
@@ -213,6 +216,7 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
 
             //需要ID
             ExportRuleTitleDTO exportRuleTitle = baseMapper.selectTitleNameById(id);
+            MedicalInsRuleProject medicalInsRuleProject = baseMapper.selectById(id);
             if (null == exportRuleTitle) {
                 log.error("根据规则id={},获取不到规则表头配置");
                 throw new JeecgBootException("找不到规则表头");
@@ -397,7 +401,12 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
                     }
                 }
                 list = resultList;
+                MedicalInsRuleInfo byId = medicalInsRuleInfoService.getById(id);
 
+                list.forEach(it->{
+                    it.setCallScenario(byId.getCallScenario());
+                    it.setTreatmentType(byId.getTreatmentType());
+                });
                 // 去重
                 // 倒序去重
                 List<MedicalInsRuleProject> collect = list.stream().map(item -> item).collect(Collectors.toList());
@@ -471,6 +480,7 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
                     Integer finalId = id;
                     instalList = instalList.stream().map(item -> {
                         item.setMedicalInsRuleInfoId(finalId);
+
                         return item;
                     }).collect(Collectors.toList());
                     //                    this.saveBatch(instalList, 500);

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAnalysisServiceImpl.java

@@ -91,8 +91,18 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         IPage<AuditAdvanceWarningAuditDetailResponse> resultPage = new Page<>(pageNo, pageSize);
 
         AdvanceWarningAuditDetail entity = new AdvanceWarningAuditDetail();
+
         BeanUtils.copyProperties(advanceWarningAuditDetail, entity);
         QueryWrapper<AdvanceWarningAuditDetail> queryWrapper = QueryGenerator.initQueryWrapper(entity, parameterMap);
+        String[] createTime = advanceWarningAuditDetail.getCreateAt();
+        if (createTime != null && createTime.length == 2) {
+            String start = createTime[0].substring(0, 10);
+            String startTime = start + " 00:00:00";
+            String end = createTime[1].substring(0, 10);
+            String endTime = end + " 23:59:59";
+            queryWrapper.ge("create_time",startTime);
+            queryWrapper.le("create_time",endTime);
+        }
         Page<AdvanceWarningAuditDetail> page = new Page<>(pageNo, pageSize);
         IPage<AdvanceWarningAuditDetail> pageList = advanceWarningAuditDetailService.page(page, queryWrapper);
         List<AdvanceWarningAuditDetail> records = pageList.getRecords();
@@ -121,6 +131,15 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
     @Override
     public IPage<AuditMidDetailListResponse> loadMidAuditPageList(AuditMidDetailListRequest request, Integer pageNo, Integer pageSize, Map<String, String[]> parameterMap) {
         Page<AuditMidDetailListResponse> page = new Page<>(pageNo, pageSize);
+        String[] createTime = request.getCreateAt();
+        if (createTime != null && createTime.length == 2) {
+            String start = createTime[0].substring(0, 10);
+            String startTime = start + " 00:00:00";
+            String end = createTime[1].substring(0, 10);
+            String endTime = end + " 23:59:59";
+            request.setStartTime(startTime);
+            request.setEndTime(endTime);
+        }
         IPage<AuditMidDetailListResponse> resultPage = midIncidentAuditService.loadMidAuditPageList(page, request);
 //        List<AuditMidDetailListResponse> records = resultPage.getRecords();
 //        records.stream().map(item -> {

+ 15 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAuditAfterServiceImpl.java

@@ -6,12 +6,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.medical.common.bo.*;
 import org.jeecg.modules.medical.entity.AfterwardsAudit;
-import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
 import org.jeecg.modules.medical.entity.PrescriptionOrder;
 import org.jeecg.modules.medical.mapper.AfterwardsAuditMapper;
-import org.jeecg.modules.medical.service.IAfterwardsAuditDetailService;
 import org.jeecg.modules.medical.service.IAfterwardsAuditService;
 import org.jeecg.modules.medical.service.IPrescriptionOrderService;
 import org.jeecg.modules.medical.service.IViolationAuditAfterService;
@@ -55,12 +54,22 @@ public class ViolationAuditAfterServiceImpl implements IViolationAuditAfterServi
     }
 
     @Override
-    public InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id) {
+    public InpatientSettlementDetailResponse loadInpatientSettlementDetail(Page<MedicalInsuranceProjectDetailsResponse> page, Integer id,String hisid) {
         // 获取患者信息
-        PatientInfoResponse patientInfo = afterwardsAuditMapper.loadInpatientSettlementInfo(id);
-        String hisid = patientInfo.getSettlementBillNumber();
+        List<PatientInfoResponse> patientInfo = afterwardsAuditMapper.loadInpatientSettlementInfo(id);
+        if(oConvertUtils.isEmpty(hisid)){
+            hisid = patientInfo.get(0).getHisid();
+        }
         // 获取医保项目明细
-        IPage<MedicalInsuranceProjectDetailsResponse> medicalInsuranceProjects = afterwardsAuditMapper.loadMedicalInsuranceProjectDetails(page, hisid);
+//        IPage<MedicalInsuranceProjectDetailsResponse> medicalInsuranceProjects = afterwardsAuditMapper.loadMedicalInsuranceProjectDetails(page, hisid);
+
+        IPage<MedicalInsuranceProjectDetailsResponse> medicalInsuranceProjects;
+        if(patientInfo.get(0).getTreatmentType().equals(2)){
+            //门诊
+            medicalInsuranceProjects = afterwardsAuditMapper.loadMedicalOutpatientProjectDetails(page, hisid);
+        }else{
+            medicalInsuranceProjects = afterwardsAuditMapper.loadMedicalInsuranceProjectDetails(page, hisid);
+        }
         List<MedicalInsuranceProjectDetailsResponse> resultList = new ArrayList<>();
         Long total = 0L;
         if (medicalInsuranceProjects != null) {