Pārlūkot izejas kodu

feat: report by area

shc 8 mēneši atpakaļ
vecāks
revīzija
d3bb1edc93

+ 24 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmReportController.java

@@ -14,6 +14,8 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.dto.ReportTaskListPageDTO;
 import com.qunzhixinxi.hnqz.admin.api.vo.WmTaskVO;
+import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
@@ -58,6 +60,8 @@ public class WmReportController {
     private final WmScorePackageService wmScorePackageService;
     private final WmTaskService wmTaskService;
     private final WmTaskTypeService wmTaskTypeService;
+    private final SysUserAreaService userAreaService;
+    private final SysEnterpriseAreaService enterpriseAreaService;
     private final RedisTemplate redisTemplate;
 
     /**
@@ -172,21 +176,36 @@ public class WmReportController {
      * @param page     分页对象
      * @param wmReport 报告审核表
      * @param type     固定值,1结算报告管理,2结算报告审批
-     * @return
+     * @return 分页结果
      */
     @GetMapping("/reportPage")
-    public R reportPage(Page page, WmReport wmReport, String type, String queryScoreId, String queryName) {
+    public R<?> reportPage(Page page, WmReport wmReport, String type, String queryScoreId, String queryName) {
+
         HnqzUser user = SecurityUtils.getUser();
         wmReport.setDelFlag("0");
-        if ("1".equals(type)) {// 1结算报告管理,当前用户是申请结算企业
+
+        // 1结算报告管理,当前用户是申请结算企业
+        if ("1".equals(type)) {
             wmReport.setDrugEntId(null);
             wmReport.setApplyDrugEntId(user.getDeptId());
-        } else {// 2结算报告审批,当前用户是结算企业
+        }
+        // 2结算报告审批,当前用户是结算企业
+        else {
             wmReport.setApplyDrugEntId(null);
             wmReport.setDrugEntId(user.getDeptId());
         }
 
-        return R.ok(wmReportService.getReportListPage(page, wmReport, queryScoreId, queryName));
+        // 获取我的可见区域
+        List<Long> areaIds = userAreaService.listUserAreas(Long.valueOf(user.getId()));
+        List<Integer> deptIds;
+        if (CollUtil.isEmpty(areaIds)) {
+            deptIds = Collections.emptyList();
+        } else {
+            deptIds = enterpriseAreaService.listAreaEnts(areaIds).stream().mapToInt(Long::intValue).boxed().sorted().collect(Collectors.toList());
+        }
+
+
+        return R.ok(wmReportService.getReportListPage(page, wmReport, queryScoreId, queryName, deptIds));
     }
 
     /**

+ 7 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmReportMapper.java

@@ -8,6 +8,8 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
+
 /**
  * 报告审核表
  *
@@ -17,6 +19,11 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface WmReportMapper extends BaseMapper<WmReport> {
 	IPage<WmReport> getReportListPage(Page page, @Param("query") WmReport wmReport, @Param("queryScoreId")String scoreId, @Param("queryName")String name);
+	IPage<WmReport> getReportListPage1(Page page,
+									   @Param("query") WmReport wmReport,
+									   @Param("queryScoreId")String scoreId,
+									   @Param("queryName")String name,
+									   @Param("deptIds")Collection<String> deptIds);
 
 
 }

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmReportService.java

@@ -75,7 +75,7 @@ public interface WmReportService extends IService<WmReport> {
      */
     List<Map<String, Object>> listTaskInfo(Integer reportId, String taskTypeId);
 
-    IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name);
+    IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name,  List<Integer> deptIds);
 
     /**
      * 根据任务类型查询任务

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysEnterpriseAreaServiceImpl.java

@@ -122,7 +122,7 @@ public class SysEnterpriseAreaServiceImpl extends ServiceImpl<SysEnterpriseAreaM
 
     @Override
     public List<Long> listAreaEnts(List<Long> areas) {
-        Set<Long> collect = areas.stream().collect(Collectors.toSet());
+        List<Long> collect = areas.stream().distinct().sorted().collect(Collectors.toList());
         return this.list(Wrappers.<SysEnterpriseArea>lambdaQuery().in(SysEnterpriseArea::getAreaId, collect)).stream().map(SysEnterpriseArea::getEntId).distinct().collect(Collectors.toList());
     }
 }

+ 4 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -128,8 +128,10 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
     private final SysCheckChainNodeCheckHistoryService checkChainNodeCheckHistoryService;
 
     @Override
-    public IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name) {
-        IPage<WmReport> reportListPage = wmReportMapper.getReportListPage(page, wmReport, scoreId, name);
+    public IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name, List<Integer> deptIds) {
+
+        // IPage<WmReport> reportListPage = wmReportMapper.getReportListPage(page, wmReport, scoreId, name);
+        IPage<WmReport> reportListPage = wmReportMapper.getReportListPage1(page, wmReport, scoreId, name, deptIds.stream().map(Object::toString).collect(Collectors.toList()));
 
         List<WmReport> records = reportListPage.getRecords();
 

+ 103 - 59
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmReportMapper.xml

@@ -4,67 +4,111 @@
 
 <mapper namespace="com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper">
 
-    <resultMap id="wmReportMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmReport">
-        <id property="id" column="id"/>
-        <result property="reportNo" column="report_no"/>
-        <result property="drugEntId" column="drug_ent_id"/>
-        <result property="scoreId" column="score_id"/>
-        <result property="applyDrugEntId" column="apply_drug_ent_id"/>
-        <result property="packageScore" column="package_score"/>
-        <result property="taskNumber" column="task_number"/>
-        <result property="totalScore" column="total_score"/>
-        <result property="reportStatus" column="report_status"/>
-        <result property="createPeople" column="create_people"/>
-        <result property="createTime" column="create_time"/>
-        <result property="approvalPeople" column="approval_people"/>
-        <result property="approvalTime" column="approval_time"/>
-        <result property="updatePeople" column="update_people"/>
-        <result property="updateTime" column="update_time"/>
-        <result property="delFlag" column="del_flag"/>
-        <result property="export1" column="export1"/>
-        <result property="export2" column="export2"/>
-        <result property="export3" column="export3"/>
-        <result property="scorePackageName" column="score_package_name"/>
+  <resultMap id="wmReportMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmReport">
+    <id property="id" column="id"/>
+    <result property="reportNo" column="report_no"/>
+    <result property="drugEntId" column="drug_ent_id"/>
+    <result property="scoreId" column="score_id"/>
+    <result property="applyDrugEntId" column="apply_drug_ent_id"/>
+    <result property="packageScore" column="package_score"/>
+    <result property="taskNumber" column="task_number"/>
+    <result property="totalScore" column="total_score"/>
+    <result property="reportStatus" column="report_status"/>
+    <result property="createPeople" column="create_people"/>
+    <result property="createTime" column="create_time"/>
+    <result property="approvalPeople" column="approval_people"/>
+    <result property="approvalTime" column="approval_time"/>
+    <result property="updatePeople" column="update_people"/>
+    <result property="updateTime" column="update_time"/>
+    <result property="delFlag" column="del_flag"/>
+    <result property="export1" column="export1"/>
+    <result property="export2" column="export2"/>
+    <result property="export3" column="export3"/>
+    <result property="scorePackageName" column="score_package_name"/>
 
-    </resultMap>
+  </resultMap>
 
-    <select id="getReportListPage" resultMap="wmReportMap">
-        select p.score_package_name,
-        t.*
-        from wm_report t
-        left join wm_score_package p on p.id=t.score_id
-        <if test="query.drugEntId != null and query.drugEntId !=''">
-            left join sys_dept d on t.drug_ent_id=d.dept_id
-        </if>
-        <if test="query.applyDrugEntId != null and query.applyDrugEntId !=''">
-            left join sys_dept d on t.apply_drug_ent_id=d.dept_id
-        </if>
-        <where>
-            t.del_flag= 0
-            <if test="queryScoreId != null and queryScoreId !=''">
-                AND p.score_id like CONCAT('%',#{queryScoreId},'%')
-            </if>
-            <if test="queryName != null and queryName !=''">
-                AND d.`name` like CONCAT('%',#{queryName},'%')
-            </if>
-            <if test="query.reportNo != null and query.reportNo !=''">
-                AND t.report_no like CONCAT('%',#{query.reportNo},'%')
-            </if>
-            <if test="query.reportStatus != null and query.reportStatus !=''">
-                AND t.report_status =#{query.reportStatus}
-            </if>
-            <if test="query.drugEntId != null and query.drugEntId !=''">
-                AND t.drug_ent_id =#{query.drugEntId}
-            </if>
-            <if test="query.applyDrugEntId != null and query.applyDrugEntId !=''">
-                AND t.apply_drug_ent_id =#{query.applyDrugEntId}
-            </if>
-            <if test="query.scorePackageName != null and query.scorePackageName !=''">
-                AND p.score_package_name like CONCAT('%',#{query.scorePackageName},'%')
-            </if>
-        </where>
-        order by t.create_time desc
-    </select>
+  <select id="getReportListPage" resultMap="wmReportMap">
+    select p.score_package_name,
+    t.*
+    from wm_report t
+    left join wm_score_package p on p.id=t.score_id
+    <if test="query.drugEntId != null and query.drugEntId !=''">
+      left join sys_dept d on t.drug_ent_id=d.dept_id
+    </if>
+    <if test="query.applyDrugEntId != null and query.applyDrugEntId !=''">
+      left join sys_dept d on t.apply_drug_ent_id=d.dept_id
+    </if>
+    <where>
+      t.del_flag= '0'
+      <if test="queryScoreId != null and queryScoreId !=''">
+        AND p.score_id like CONCAT('%',#{queryScoreId},'%')
+      </if>
+      <if test="queryName != null and queryName !=''">
+        AND d.`name` like CONCAT('%',#{queryName},'%')
+      </if>
+      <if test="query.reportNo != null and query.reportNo !=''">
+        AND t.report_no like CONCAT('%',#{query.reportNo},'%')
+      </if>
+      <if test="query.reportStatus != null and query.reportStatus !=''">
+        AND t.report_status =#{query.reportStatus}
+      </if>
+      <if test="query.drugEntId != null and query.drugEntId !=''">
+        AND t.drug_ent_id =#{query.drugEntId}
+      </if>
+      <if test="query.applyDrugEntId != null and query.applyDrugEntId !=''">
+        AND t.apply_drug_ent_id =#{query.applyDrugEntId}
+      </if>
+      <if test="query.scorePackageName != null and query.scorePackageName !=''">
+        AND p.score_package_name like CONCAT('%',#{query.scorePackageName},'%')
+      </if>
+    </where>
+    order by t.create_time desc
+  </select>
+
+  <select id="getReportListPage1" resultMap="wmReportMap">
+    select p.score_package_name,
+    t.*
+    from wm_report t
+    left join wm_score_package p on p.id=t.score_id
+    <if test="query.drugEntId != null and query.drugEntId !=''">
+      left join sys_dept d on t.drug_ent_id=d.dept_id
+    </if>
+    <if test="query.applyDrugEntId != null and query.applyDrugEntId !=''">
+      left join sys_dept d on t.apply_drug_ent_id=d.dept_id
+    </if>
+    <where>
+      t.del_flag= '0'
+      <if test="queryScoreId != null and queryScoreId !=''">
+        AND p.score_id like CONCAT('%',#{queryScoreId},'%')
+      </if>
+      <if test="queryName != null and queryName !=''">
+        AND d.`name` like CONCAT('%',#{queryName},'%')
+      </if>
+      <if test="query.reportNo != null and query.reportNo !=''">
+        AND t.report_no like CONCAT('%',#{query.reportNo},'%')
+      </if>
+      <if test="query.reportStatus != null and query.reportStatus !=''">
+        AND t.report_status =#{query.reportStatus}
+      </if>
+      <if test="query.drugEntId != null and query.drugEntId !=''">
+        AND t.drug_ent_id =#{query.drugEntId}
+      </if>
+      <if test="query.applyDrugEntId != null and query.applyDrugEntId !=''">
+        AND t.apply_drug_ent_id =#{query.applyDrugEntId}
+      </if>
+      <if test="query.scorePackageName != null and query.scorePackageName !=''">
+        AND p.score_package_name like CONCAT('%',#{query.scorePackageName},'%')
+      </if>
+      <if test="deptIds != null and deptIds.size > 0">
+        AND p.dept_id IN
+        <foreach collection="deptIds" item="did" open="(" close=")" separator=",">
+          #{did}
+        </foreach>
+      </if>
+    </where>
+    order by t.create_time desc
+  </select>
 
 
 </mapper>