Bläddra i källkod

excel 编码、关联编码循环嵌套

lenovodn 2 år sedan
förälder
incheckning
7afd3a80b1

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

@@ -322,5 +322,26 @@ public class ViolationAnalysisController {
         return Result.OK(result);
     }
 
+    @ApiOperation(value="违规分析-事后违规项目统计-列表-里面的详情", notes="违规分析-事后违规项目统计-列表-里面的详情")
+    @GetMapping(value = "/after/rule/child/list")
+    public Result<IPage<AuditMidDetailListResponse>> afterRuleAuditByDeptDetailList(
+            @RequestParam("medicalInsRuleInfoCode") String medicalInsRuleInfoCode, //违反规则code
+            @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+            HttpServletRequest req) {
 
+        if (!StringUtils.hasText(medicalInsRuleInfoCode)) {
+            return Result.error("违反规则代码不可为空");
+        }
+        AuditMidDetailListRequest request = new AuditMidDetailListRequest();
+        request.setMedicalInsRuleInfoCode(medicalInsRuleInfoCode);
+        Map<String, String[]> parameterMap = req.getParameterMap();
+        IPage<AuditMidDetailListResponse> result = violationAnalysisService.loadMidAuditPageList(request, pageNo, pageSize, parameterMap);
+        BigDecimal totalAmount = violationAnalysisService.statisticsMidAuditTotal(request);
+        Result<IPage<AuditMidDetailListResponse>> ok = Result.OK(result);
+        JSONObject j = new JSONObject();
+        j.put("totalAmount", totalAmount);
+        ok.setExtend(j);
+        return ok;
+    }
 }

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

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface MidIncidentAuditMapper extends BaseMapper<MidIncidentAudit> {
 
     IPage<AuditMidDetailListResponse> loadMidAuditPageList(Page<AuditMidDetailListResponse> page, @Param("ew") AuditMidDetailListRequest ew);
+    IPage<AuditMidDetailListResponse> loadAfterAuditPageList(Page<AuditMidDetailListResponse> page, @Param("ew") AuditMidDetailListRequest ew);
 
     BigDecimal statisticsMidAuditTotal(@Param("ew") AuditMidDetailListRequest request);
     AuditMidDetailListResponse loadViolationDetail(@Param("detailId") Integer detailId);

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

@@ -53,6 +53,58 @@
         </where>
     </select>
 
+    <select id="loadAfterAuditPageList"
+            resultType="org.jeecg.modules.medical.common.bo.mid.AuditMidDetailListResponse">
+
+        SELECT
+        id
+        ,proejct_code as projectCode
+        ,proejct_name as projectName
+        ,patient_id,
+        patient_name,
+        treatment_type,
+        medical_dept_name,
+        doctor_name,
+        doctor_id,
+        create_time,
+        amount
+        ,(SELECT feedback_code from afterwards_audit WHERE id = afterwards_audit_id) as feedback_code
+        ,(SELECT feedback_result from afterwards_audit WHERE id = afterwards_audit_id) as feedback_result
+        ,description
+        FROM
+        afterwards_audit_detail
+        <where>
+            <if test="ew.projectSearch != null and ew.projectSearch != '' ">
+                AND(
+                proejct_code LIKE concat(concat('%',#{ew.projectSearch}),'%')
+                or
+                proejct_name LIKE concat(concat('%',#{ew.projectSearch}),'%')
+                )
+            </if>
+            <if test="ew.treatmentType != null and ew.treatmentType != '' ">
+                AND treatment_type = #{ew.treatmentType}
+            </if>
+            <if test="ew.doctorName != null and ew.doctorName != '' ">
+                AND doctor_name LIKE concat(concat('%',#{ew.doctorName}),'%')
+            </if>
+            <if test="ew.medicalDeptName != null and ew.medicalDeptName != ''">
+                AND medical_dept_name = #{ew.medicalDeptName}
+            </if>
+            <if test="ew.startTime != null and ew.startTime != '' ">
+                AND <![CDATA[ create_time >= #{ew.startTime} ]]>
+            </if>
+            <if test="ew.endTime != null and ew.endTime != '' ">
+                AND <![CDATA[  create_time <= #{ew.endTime} ]]>
+            </if>
+            <if test="ew.medicalProjectCode != null and ew.medicalProjectCode != null" >
+                AND medical_project_code = #{ew.medicalProjectCode}
+            </if>
+            <if test="ew.medicalInsRuleInfoCode != null and ew.medicalInsRuleInfoCode != ''">
+                AND medical_ins_rule_info_code = #{ew.medicalInsRuleInfoCode}
+            </if>
+        </where>
+    </select>
+
     <select id="statisticsMidAuditTotal" resultType="java.math.BigDecimal">
         SELECT
             ifnull(sum(amount), 0) as totalAmount

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

@@ -23,6 +23,7 @@ public interface IMidIncidentAuditService extends IService<MidIncidentAudit> {
 
 
     IPage<AuditMidDetailListResponse> loadMidAuditPageList(Page<AuditMidDetailListResponse> page, AuditMidDetailListRequest request);
+    IPage<AuditMidDetailListResponse> loadAfterAuditPageList(Page<AuditMidDetailListResponse> page, AuditMidDetailListRequest request);
     BigDecimal statisticsMidAuditTotal(AuditMidDetailListRequest request);
 
     /**

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

@@ -29,6 +29,7 @@ public interface IViolationAnalysisService {
      * @return
      */
     IPage<AuditMidDetailListResponse> loadMidAuditPageList(AuditMidDetailListRequest request, Integer pageNo, Integer pageSize, Map<String, String[]> parameterMap);
+    IPage<AuditMidDetailListResponse> loadAfterAuditPageList(AuditMidDetailListRequest request, Integer pageNo, Integer pageSize, Map<String, String[]> parameterMap);
 
     BigDecimal statisticsMidAuditTotal(AuditMidDetailListRequest request);
 

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

@@ -26,6 +26,9 @@ public class MidIncidentAuditServiceImpl extends ServiceImpl<MidIncidentAuditMap
     public IPage<AuditMidDetailListResponse> loadMidAuditPageList(Page<AuditMidDetailListResponse> page, AuditMidDetailListRequest request) {
         return baseMapper.loadMidAuditPageList(page, request);
     }
+    public IPage<AuditMidDetailListResponse> loadAfterAuditPageList(Page<AuditMidDetailListResponse> page, AuditMidDetailListRequest request) {
+        return baseMapper.loadAfterAuditPageList(page, request);
+    }
 
     @Override
     public BigDecimal statisticsMidAuditTotal(AuditMidDetailListRequest request) {

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

@@ -108,6 +108,27 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         return resultPage;
     }
 
+    @Override
+    public IPage<AuditMidDetailListResponse> loadAfterAuditPageList(AuditMidDetailListRequest request, Integer pageNo, Integer pageSize, Map<String, String[]> parameterMap) {
+        Page<AuditMidDetailListResponse> page = new Page<>(pageNo, pageSize);
+        IPage<AuditMidDetailListResponse> resultPage = midIncidentAuditService.loadMidAuditPageList(page, request);
+        List<AuditMidDetailListResponse> records = resultPage.getRecords();
+        records.stream().map(item -> {
+            BigDecimal detailTotalAmt = midIncidentAuditService.statissticsErrAmtByMidAuditRecordId(item.getId());
+            item.setErrorRelativelyFewAmt(new BigDecimal("0.00"));
+            item.setErrorRelativelyManyAmt(new BigDecimal("0.00"));
+            if (null != detailTotalAmt) {
+                if (detailTotalAmt.compareTo(BigDecimal.ZERO) > 0) { // 异常金额大于0,就是多收
+                    item.setErrorRelativelyManyAmt(detailTotalAmt);
+                } else if (detailTotalAmt.compareTo(BigDecimal.ZERO) < 0) {
+                    item.setErrorRelativelyFewAmt(detailTotalAmt);
+                }
+            }
+            return item;
+        }).collect(Collectors.toList());
+        return resultPage;
+    }
+
     @Override
     public BigDecimal statisticsMidAuditTotal(AuditMidDetailListRequest request) {
         return midIncidentAuditService.statisticsMidAuditTotal(request);