shc пре 5 месеци
родитељ
комит
ebe44725be

+ 21 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/task/WmTaskControllerV2.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskReqVO;
 import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO;
+import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO.ToDirectCheck;
 import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO.ToTileCheck;
 import com.qunzhixinxi.hnqz.admin.manager.TaskManager;
 import com.qunzhixinxi.hnqz.admin.util.RedisUtils;
@@ -47,6 +48,18 @@ public class WmTaskControllerV2 {
   @Resource private RedisUtils redisUtils;
   @Resource private TaskManager taskManager;
 
+  /**
+   * 获取当前操作人审核过的任务
+   *
+   * @param query 筛选条件
+   * @return 分页结果
+   */
+  @GetMapping(value = "/page/checked")
+  public R<Page<ToDirectCheck>> pageCheckedTasks(@Valid TaskReqVO.OnPage query) {
+    Page<ToDirectCheck> checkPage = taskManager.pageChecked(query, SecurityUtils.getUser());
+    return R.ok(checkPage);
+  }
+
   /**
    * 获取待审核的页面
    *
@@ -73,12 +86,14 @@ public class WmTaskControllerV2 {
         taskManager.pageTaskToCheckInTile(query, SecurityUtils.getUser());
 
     // 封装token
-    IPage<ToTileCheck> convert = page.convert(r -> {
-      ToTileCheck toTileCheck = new ToTileCheck();
-      toTileCheck.setInfo(r);
-      toTileCheck.setToken(redisUtils.generateToken(r.getTaskId().toString()));
-      return toTileCheck;
-    });
+    IPage<ToTileCheck> convert =
+        page.convert(
+            r -> {
+              ToTileCheck toTileCheck = new ToTileCheck();
+              toTileCheck.setInfo(r);
+              toTileCheck.setToken(redisUtils.generateToken(r.getTaskId().toString()));
+              return toTileCheck;
+            });
 
     return ok(convert);
   }

+ 66 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/TaskManager.java

@@ -44,7 +44,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -751,4 +750,70 @@ public class TaskManager {
     //      //      throw new BizException("当前包已经关闭,不能追加新服务记录");
     //    }
   }
+
+  /**
+   * 获取审核后的任务
+   *
+   * @param query 筛选条件
+   * @param user 操作人
+   * @return 分页结果
+   */
+  public Page<ToDirectCheck> pageChecked(@Valid TaskReqVO.OnPage query, HnqzUser user) {
+
+    // 分页结果
+    Page<ToDirectCheck> checkPage = new Page<>(query.getCurrent(), query.getSize());
+
+    // 获取当前操作人的审核记录
+    List<Integer> tIds =
+        listChecked(new Page<>(query.getCurrent(), query.getSize()), user.getUsername());
+
+    if (CollUtil.isEmpty(tIds)) {
+      return checkPage;
+    }
+
+    // 获取vendor
+    List<Integer> vendorList = getVendorList(query.getVendorId(), user);
+
+    // 计算服务包查询周期
+    Map<String, LocalDate> pkgPeriod = this.calcPkgPeriod(query.getYear(), query.getQuarter());
+    LocalDate issueDate = pkgPeriod.get("issueDate");
+    LocalDate expiryDate = pkgPeriod.get("expiryDate");
+
+    LocalDateTime startTime = null;
+    LocalDateTime endTime = null;
+    LocalDate createTime = query.getCreateTime();
+    if (createTime != null) {
+      startTime = LocalDateTime.of(query.getCreateTime(), LocalTime.MIN);
+      endTime = LocalDateTime.of(query.getCreateTime(), LocalTime.MAX);
+    }
+
+    // 获取产品信息
+    List<String> skuIds = getSkuIds(query.getMahName(), query.getSkuId());
+
+    // 分页结果
+    taskMapper.pageDirectChecked(
+        checkPage,
+        issueDate,
+        expiryDate,
+        StrUtil.isEmpty(query.getPkgIds())
+            ? Collections.emptyList()
+            : StrUtil.split(query.getPkgIds(), StrPool.COMMA),
+        startTime,
+        endTime,
+        query.getTaskTypeId(),
+        vendorList,
+        skuIds,
+        query.getSalesId(),
+        query.getProvAbbr(),
+        tIds,
+        query.getTaskStatus());
+    return build(checkPage, false);
+  }
+
+  private List<Integer> listChecked(Page<Integer> page, String username) {
+
+    checkChainNodeCheckHistoryMapper.pageCheckHisByUsername(page, username);
+
+    return page.getRecords();
+  }
 }

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/SysCheckChainNodeCheckHistoryMapper.java

@@ -29,4 +29,9 @@ public interface SysCheckChainNodeCheckHistoryMapper
   List<Map<String, Object>> getTaskCheckHis(@Param("taskId") Integer taskId);
 
   List<Map<String, Object>> listTaskCheckHis(@Param("taskIds") List<Integer> taskIds);
+
+  @Select(
+      value =
+          "SELECT DISTINCT ch.target_id FROM sys_chain_node_check_his ch WHERE ch.create_by1 = #{createBy} ORDER BY ch.target_id")
+  Page<Integer> pageCheckHisByUsername(Page<Integer> page, @Param("createBy") String createBy);
 }

+ 17 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmTaskV2Mapper.java

@@ -36,4 +36,21 @@ public interface WmTaskV2Mapper extends BaseMapper<WmTask> {
       @Param("taskStatus") String taskStatus
       );
 
+
+  Page<TaskRespVO.ToDirectCheck> pageDirectChecked(
+      Page<TaskRespVO.ToDirectCheck> page,
+      @Param("pkgIssueDate") LocalDate pkgIssueDate,
+      @Param("pkgExpiryDate") LocalDate pkgExpiryDay,
+      @Param("pkgIds") List<String> pkgIds,
+      @Param("taskStartTime") LocalDateTime taskStartTime,
+      @Param("taskEndTime") LocalDateTime taskEndTime,
+      @Param("taskTypeId") String taskTypeId,
+      @Param("vendorIds") List<Integer> vendorIds,
+      @Param("skuIds") List<String> skuIds,
+      @Param("salesId") Integer salesId,
+      @Param("prov") String prov,
+      @Param("taskIds") List<Integer> taskIds,
+      @Param("taskStatus") String taskStatus
+  );
+
 }

+ 68 - 8
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskV2Mapper.xml

@@ -45,14 +45,14 @@
     LEFT JOIN wm_score_package AS pkg ON pkg.id = t.score_package_id
     LEFT JOIN wm_score_package AS ppkg ON ppkg.id = pkg.relation_score_id
     INNER JOIN (SELECT DISTINCT tmp.target_id AS task_id
-                FROM (SELECT h.target_id, SUM(DISTINCT h.node_id) AS node_sum
-                      FROM sys_chain_node_check_his AS h
-                      GROUP BY h.target_id) tmp
-                      WHERE tmp.node_sum IN
-                      <foreach collection="nodeIds" item="nodeId" open="(" close=")" separator=",">
-                        #{nodeId}
-                      </foreach>
-                ORDER BY task_id) AS his
+    FROM (SELECT h.target_id, SUM(DISTINCT h.node_id) AS node_sum
+    FROM sys_chain_node_check_his AS h
+    GROUP BY h.target_id) tmp
+    WHERE tmp.node_sum IN
+    <foreach collection="nodeIds" item="nodeId" open="(" close=")" separator=",">
+      #{nodeId}
+    </foreach>
+    ORDER BY task_id) AS his
     ON his.task_id = t.id
     <where>
       <if test="pkgIssueDate != null and pkgExpiryDate != null">
@@ -94,4 +94,64 @@
     </where>
   </select>
 
+  <select id="pageDirectChecked" resultMap="wmTaskMap">
+    SELECT t.id,
+    t.task_number,
+    t.task_type_id,
+    t.score,
+    t.task_user_id,
+    t.task_status,
+    t.create_time,
+    t.task_content_id,
+    pkg.dept_id,
+    pkg.score_package_name,
+    ppkg.score_package_name AS rel_pkg_name,
+    pkg.start_time,
+    pkg.end_time,
+    ppkg.prov_abbr,
+    pkg.drugtable
+    FROM wm_task AS t
+    LEFT JOIN wm_score_package AS pkg ON pkg.id = t.score_package_id
+    LEFT JOIN wm_score_package AS ppkg ON ppkg.id = pkg.relation_score_id
+    <where>
+      t.id IN
+      <foreach collection="taskIds" item="tid" open="(" close=")" separator=",">
+        #{tid}
+      </foreach>
+      <if test="pkgIssueDate != null and pkgExpiryDate != null">
+        AND pkg.start_time &gt;= #{pkgIssueDate} AND pkg.end_time &lt;= #{pkgExpiryDate}
+      </if>
+      <if test="prov != null and prov != ''">
+        AND ppkg.prov_abbr = #{prov}
+      </if>
+      <if test="vendorIds != null and vendorIds.size > 0">
+        AND pkg.dept_id IN
+        <foreach collection="vendorIds" item="vid" open="(" close=")" separator=",">
+          #{vid}
+        </foreach>
+      </if>
+      <if test="skuIds != null and skuIds.size > 0">
+        AND pkg.drugtable IN
+        <foreach collection="skuIds" item="skuId" open="(" close=")" separator=",">
+          #{skuId}
+        </foreach>
+      </if>
+      <if test="pkgIds != null and pkgIds.size > 0">
+        AND t.score_package_id IN
+        <foreach collection="pkgIds" item="pid" open="(" close=")" separator=",">
+          #{pid}
+        </foreach>
+      </if>
+      <if test="taskTypeId != null and taskTypeId != ''">
+        AND t.task_type_id = #{taskTypeId}
+      </if>
+      <if test="salesId != null">
+        AND t.task_user_id = #{salesId}
+      </if>
+      <if test="taskStartTime != null and taskEndTime != null">
+        AND (t.create_time BETWEEN #{taskStartTime} AND #{taskEndTime})
+      </if>
+    </where>
+  </select>
+
 </mapper>