Ver Fonte

feat: part 1 replace pkg owner

shc há 4 meses atrás
pai
commit
aab1f612b6

+ 82 - 78
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/WmPkgDTO.java

@@ -26,114 +26,118 @@ import java.util.List;
 @NoArgsConstructor(access = AccessLevel.NONE)
 public final class WmPkgDTO {
 
-    @Data
-    public static class OnEntPkgBatchCreate {
+  @Data
+  public static class OnEntPkgBatchCreate {
 
-        @ExcelProperty(value = "执行包名称")
-        private String pkgName;
+    @ExcelProperty(value = "执行包名称")
+    private String pkgName;
 
+    @ExcelProperty(value = "计划包名称")
+    private String planName;
+  }
 
-        @ExcelProperty(value = "计划包名称")
-        private String planName;
+  @Data
+  public static class OnPkgPickup {
 
-    }
+    @NotBlank(message = "积分包ID必填")
+    private String pkgId;
 
+    private WmQuizResultModel[] quizResults;
+  }
 
-    @Data
-    public static class OnPkgPickup {
+  @Data
+  public static class OnRedemptionNoticeLaunch {
+    @NotNull(message = "兑付通知ID必填")
+    private Integer redemptionNoticeId;
+  }
 
-        @NotBlank(message = "积分包ID必填")
-        private String pkgId;
+  @Data
+  public static class OnRedemptionNoticeCheck {
+    @NotNull(message = "兑付通知ID必填")
+    private Integer redemptionNoticeId;
 
-        private WmQuizResultModel[] quizResults;
+    @NotNull(message = "审核结果必填")
+    private Boolean checkResult;
 
-    }
+    private String checkRemarks;
+  }
 
-    @Data
-    public static class OnRedemptionNoticeLaunch {
-        @NotNull(message = "兑付通知ID必填")
-        private Integer redemptionNoticeId;
-    }
+  @Data
+  public static class OnRedemptionNoticeCreate {
 
-    @Data
-    public static class OnRedemptionNoticeCheck {
-        @NotNull(message = "兑付通知ID必填")
-        private Integer redemptionNoticeId;
+    @NotNull(message = "执行包ID必填")
+    private Integer packageId;
 
-        @NotNull(message = "审核结果必填")
-        private Boolean checkResult;
+    @NotNull(message = "通知步进值必填")
+    @Max(value = 3, message = "步进值最大为${value}")
+    @Min(value = 1, message = "步进值最小为${value}")
+    private Integer step;
 
-        private String checkRemarks;
-    }
+    @NotNull(message = "发起方ID必填")
+    private Integer fromEntId;
 
+    @NotNull(message = "接收方ID必填")
+    private Integer toEntId;
 
-    @Data
-    public static class OnRedemptionNoticeCreate {
+    @NotEmpty(message = "通知项必填")
+    private List<WmPkgRedemptionNoticeItemModel> items;
 
-        @NotNull(message = "执行包ID必填")
-        private Integer packageId;
+    @NotNull(message = "本次兑付分值必填")
+    private Long currentRedemptionScore;
 
-        @NotNull(message = "通知步进值必填")
-        @Max(value = 3, message = "步进值最大为${value}")
-        @Min(value = 1, message = "步进值最小为${value}")
-        private Integer step;
+    @NotBlank(message = "本次兑付比例必填")
+    private String currentRedemptionRate;
 
-        @NotNull(message = "发起方ID必填")
-        private Integer fromEntId;
+    // @NotBlank(message = "本次兑付权重必填")
+    // private String currentRedemptionWeight;
 
-        @NotNull(message = "接收方ID必填")
-        private Integer toEntId;
+    @NotBlank(message = "兑付总值必填")
+    private String totalAmount;
 
-        @NotEmpty(message = "通知项必填")
-        private List<WmPkgRedemptionNoticeItemModel> items;
+    @NotBlank(message = "评价总值必填")
+    private String currentRedemptionTotal;
+  }
 
-        @NotNull(message = "本次兑付分值必填")
-        private Long currentRedemptionScore;
+  @Data
+  public static class OnRedemptionNoticePage {
 
-        @NotBlank(message = "本次兑付比例必填")
-        private String currentRedemptionRate;
+    @NotNull(message = "页码必填")
+    @Min(value = 1, message = "页码最小为{value}")
+    private Integer current;
 
-        // @NotBlank(message = "本次兑付权重必填")
-        // private String currentRedemptionWeight;
+    @NotNull(message = "分页数量必填")
+    @Min(value = 10, message = "分页数量最小为{value}")
+    @Max(value = 100, message = "分页数量最大为{value}")
+    private Integer size;
+  }
 
-        @NotBlank(message = "兑付总值必填")
-        private String totalAmount;
+  @Data
+  public static class OnNoticeRead {
 
-        @NotBlank(message = "评价总值必填")
-        private String currentRedemptionTotal;
+    @NotNull(message = "兑付通知必填")
+    private Integer noticeId;
+  }
 
-    }
+  @Data
+  public static class OnAcceptNotice {
 
-    @Data
-    public static class OnRedemptionNoticePage {
+    @NotNull(message = "兑付通知必填")
+    private Integer noticeId;
 
-        @NotNull(message = "页码必填")
-        @Min(value = 1, message = "页码最小为{value}")
-        private Integer current;
+    @NotBlank(message = "确认结果必填")
+    private String state;
 
-        @NotNull(message = "分页数量必填")
-        @Min(value = 10, message = "分页数量最小为{value}")
-        @Max(value = 100, message = "分页数量最大为{value}")
-        private Integer size;
-    }
+    @NotBlank(message = "确认信息必填")
+    private String remarks;
+  }
 
-    @Data
-    public static class OnNoticeRead {
+  @Data
+  public static class OnOwnerReplace {
 
-        @NotNull(message = "兑付通知必填")
-        private Integer noticeId;
-    }
+    @NotBlank(message = "执行包领取ID必填")
+    private Integer packageStatusId;
 
-    @Data
-    public static class OnAcceptNotice {
-
-        @NotNull(message = "兑付通知必填")
-        private Integer noticeId;
-
-        @NotBlank(message = "确认结果必填")
-        private String state;
-
-        @NotBlank(message = "确认信息必填")
-        private String remarks;
-    }
+    @NotBlank(message = "所有人ID必填")
+    private Integer ownerId;
+  }
 }

+ 418 - 592
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmScorePackage.java

@@ -28,610 +28,436 @@ import java.util.Set;
 @Data
 @TableName(value = "wm_score_package")
 public class WmScorePackage implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * id
-     */
-    @TableId(type = IdType.AUTO)
-    private String id;
-
-    /**
-     * 服务省份缩写
-     */
-    private String provAbbr;
-
-    /**
-     * 计划ID
-     */
-    @TableField(exist = false)
-    private Integer planId;
-    /**
-     * 药企ID
-     */
-    private Integer drugEntId;
-
-    /**
-     * 积分包序列号
-     */
-    @TableField(value = "pkg_sn")
-    private String packageSn;
-
-    /**
-     * 药企ID
-     */
-    private String taskRuleId;
-
-    /**
-     * 积分
-     */
-    private String scoreId;
-
-
-    /**
-     * 积分包名称
-     */
-    private String scoreName;
-    /**
-     * 积分
-     */
-    private Integer score;
-    /**
-     * 代理商类型
-     */
-    private String agentTypeId;
-
-    /**
-     * 积分包状态
-     */
-    @TableField(updateStrategy = FieldStrategy.IGNORED)
-    private String packageStatus;
-
-    /**
-     * 积分包完成状态:0->未完成,1->已完成
-     */
-    private String packageFinishStatus;
-
-    private String packageAuditStatus;
-
-    /**
-     * 一级代理商
-     */
-    private Integer level1Id;
-    /**
-     * 二级代理商
-     */
-    private Integer level2Id;
-    /**
-     * 众包ID
-     */
-    private String zbId;
-
-    /**
-     * 销售代表ID
-     */
-    private String xxdbId;
-
-    private String endLabelDate;
-
-    /**
-     * 1:定额积分包
-     * 2:定量积分包
-     * 3:通用包
-     * 4:结算包(证据链)
-     * 5:患者教育积分包
-     */
-    private String packageType1;
-
-    private String description;
-
-    private String relationScoreId;
-
-    /**
-     * 关联积分包名称
-     */
-    @TableField(exist = false)
-    private String relationScoreName;
-
-    private String relatedService;
-
-    /**
-     * 关联服务企业名称
-     */
-    @TableField(exist = false)
-    private String relatedServiceName;
-
-    private String scorePackageName;
-
-    private String packageIsConduct;
-    private String ruleId;
-
-    @TableField(exist = false)
-    private List<WmScoreTaskType> wmScoreTaskTypeList;
-
-    @TableField(exist = false)
-    private Set taskTypeSet;
-
-    /**
-     * 分配对象类型
-     */
-    private String typeid;
-
-    /**
-     * 组织机构ID
-     */
-    private String deptId;
-
-    /**
-     * 发包方组织机构ID
-     */
-    private String sendPackageDeptId;
-
-    /**
-     * 是否删除
-     */
-    private String delFlag;
-    /**
-     * 是否禁用
-     */
-    private String enableFlag;
-    /**
-     * 所属租户
-     */
-    private Integer tenantId;
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-    /**
-     * 结算时间
-     */
-    private LocalDateTime settlementDate;
-
-    /**
-     * 结算时间
-     */
-    @TableField(exist = false)
-    private LocalDateTime notifyDate;
-
-    /**
-     * 提交到零工时间
-     */
-    @TableField(exist = false)
-    private LocalDateTime subToGigTime;
-    /**
-     * 创建人
-     */
-    private Integer createUser;
-    /**
-     * 更新时间
-     */
-    private LocalDateTime updateTime;
-    /**
-     * 更新人
-     */
-    private Integer updateUser;
-
-
-    /**
-     * 所属月份
-     */
-    private String belongDate;
-
-    /**
-     * 分配日期
-     */
-    private String allocationDate;
-
-    /**
-     * 已支付百分比
-     */
-    private String payRate;
-
-    /**
-     * 已支付积分值
-     */
-    private Integer payScore;
-
-    /**
-     * 接包对象
-     */
-    private String acceptSug;
-
-    /**
-     * 接包对象名称
-     */
-    @TableField(exist = false)
-    private String acceptSugName;
-
-    /**
-     * 已完成百分比
-     */
-    private String finishRate;
-
-
-    private Integer ytj;
-    private Integer ysh;
-
-    private Integer dsh;
-
-
-    private Integer ytjtt;
-
-    private Integer ywctt;
-
-    @TableField(exist = false)
-    private Integer shtg;
-    @TableField(exist = false)
-    private Integer shbtg;
-    @TableField(exist = false)
-    private Integer shtgnum;
-    @TableField(exist = false)
-    private Integer shbtgnum;
-    @TableField(exist = false)
-    private Integer shtgtt;
-    @TableField(exist = false)
-    private Integer shbtgtt;
-
-    private Integer yshtt;
-    private String isConduct;
-
-    private BigDecimal settleAmount;
-
-    private BigDecimal discount;
-
-    private LocalDateTime receiveDate;
-
-    @TableField(exist = false)
-    private List<String> drugsIds;
-
-    private String statementNo;
-
-    private Integer settleStatus;
-
-    private String remark;
-
-
-    private Integer kfpjf;
+  private static final long serialVersionUID = 1L;
 
-    /**
-     * 发票类目
-     */
-    private Integer invoiceCategory;
-
-    /**
-     * 支付中心订单号
-     */
-    private String omsOrderSn;
+  /** id */
+  @TableId(type = IdType.AUTO)
+  private String id;
 
-    /**
-     * 1:任务包
-     * 2:结算包
-     */
-    private String packageType2;
+  /** 服务省份缩写 */
+  private String provAbbr;
 
-    private String packageUserScope;
+  /** 计划ID */
+  @TableField(exist = false)
+  private Integer planId;
 
-    /**
-     * 接单对象范围名称
-     */
-    @TableField(exist = false)
-    private String packageUserScopeName;
+  /** 药企ID */
+  private Integer drugEntId;
 
-    @TableField(exist = false)
-    private Integer certStatus;
+  /** 积分包序列号 */
+  @TableField(value = "pkg_sn")
+  private String packageSn;
 
-    private Integer userNum;
-    private Integer taskNum;
+  /** 药企ID */
+  private String taskRuleId;
 
+  /** 积分 */
+  private String scoreId;
 
-    /**
-     * 完成时间
-     */
-    private LocalDateTime packageFinishTime;
+  /** 积分包名称 */
+  private String scoreName;
 
+  /** 积分 */
+  private Integer score;
 
-    /**
-     * 有效任务类型
-     */
-    @TableField(exist = false)
-    private List<WmTaskTypeTree> taskTypeList;
+  /** 代理商类型 */
+  private String agentTypeId;
 
-    /**
-     * 有效任务类型
-     */
-    @TableField(exist = false)
-    private List<WmScoreTaskType> taskTypeList1;
+  /** 积分包状态 */
+  @TableField(updateStrategy = FieldStrategy.IGNORED)
+  private String packageStatus;
 
-    /**
-     * 有效任务类型--前端展示
-     */
-    @TableField(exist = false)
-    private String taskTypes;
+  /** 积分包完成状态:0->未完成,1->已完成 */
+  private String packageFinishStatus;
 
-    /**
-     * 个人预计包值
-     */
-    private String userScore;
-
-    /**
-     * 终止方式
-     */
-    private String enableType;
-
-    /**
-     * 已接单人数
-     */
-    @TableField(exist = false)
-    private Integer yjd;
-
-
-    /**
-     * 已接单待审核人数
-     */
-    @TableField(exist = false)
-    private Integer yjddsh;
-
-
-    /**
-     * 是否允许接单  0允许接单 1不允许接单
-     */
-    private String isReceive;
-
-    /**
-     * 是否可以新增任务1-可以  0-不可以
-     */
-    private String taskAddFlag;
-
-    /**
-     * 是否可以新增任务1-已经发起  0-没有
-     */
-    private String settleFlag;
-
-    /**
-     * 接单对象list
-     */
-    @TableField(exist = false)
-    private List<String> userList;
-
-    /**
-     * 接单对象id-list
-     */
-    @TableField(exist = false)
-    private List<String> userIdList;
-
-    /**
-     * 接单对象list人数
-     */
-    @TableField(exist = false)
-    private Integer userListNum;
-
-    /**
-     * 结算包--是否有任务
-     */
-    @TableField(exist = false)
-    private String isTask;
-
-    /**
-     * 积分包状态
-     */
-    private String scorePackageStatus;
-
-    /**
-     * 是否为旧数据
-     */
-    private String oldPackage;
-
-    /**
-     * 结算渠道
-     */
-    private String subType;
-
-    /**
-     * 税源地
-     */
-    @TableField(exist = false)
-    private String subjectLocation;
-
-    /**
-     * 数据来源类型(0:手动上传,1:系统对接)
-     */
-    private String sourceType;
-
-    /**
-     * 结算包--任务类型
-     */
-    @TableField(exist = false)
-    private String taskTypeId;
-
-    @TableField(exist = false)
-    private Integer wsTaskNum;
-
-    @TableField(exist = false)
-    private Integer asTaskNum;
-
-    /**
-     * 项目编号
-     */
-    private String projectNum;
-
-    /**
-     * 药企是否存在审核记录
-     */
-    @TableField(exist = false)
-    private PackageStopStatus stopStatus;
-
-    /**
-     * 报告操作状态
-     */
-    @TableField(exist = false)
-    private WmReportOpt reportOpt;
-
-    /**
-     * 新版报告-报告操作状态
-     */
-    @TableField(exist = false)
-    private WmReportOpt newReportOpt;
-
-    /**
-     * 新版excel报告-报告操作状态
-     */
-    @TableField(exist = false)
-    private WmReportOpt newExcelReportOpt;
-
-    /**
-     * 报告队列名
-     */
-    @TableField(exist = false)
-    private String reportMqName;
-
-    /**
-     * excel报告操作状态
-     */
-    @TableField(exist = false)
-    private WmReportOpt excelReportOpt;
-
-    /**
-     * 公对公结算记录
-     */
-    @TableField(value = "p2p_amount")
-    public BigDecimal p2pAmount;
-
-    /**
-     * 公对公结算服务费
-     */
-    public BigDecimal p2pServiceAmount;
-
-    public LocalDateTime p2pTime;
-
-    @TableField(exist = false)
-    public Boolean p2pDraft;
-
-    /**
-     * 关联药品的生产厂商列表
-     */
-    @TableField(value = "drug_producer")
-    private String[] drugProducerList;
-
-    /**
-     * MAH结算-药企deptId
-     */
-    private Integer mahSettleDeptId;
-
-    /**
-     * MAH结算-步进状态(BUSINESS-业务, FINANCE-财务)
-     */
-    private UpmsType.MahSettleStep mahSettleStep;
-
-    /**
-     * mah结算时间
-     */
-    private LocalDateTime mahSettleTime;
-
-    /**
-     * 企业任务上限(单位%)
-     */
-    private BigDecimal entTaskLimit;
-
-    /**
-     * 推广药品id
-     */
-    private String[] drugtable;
-
-    /**
-     * 推广药品名称
-     */
-    @TableField(exist = false)
-    private String[] drugtableName;
-
-    /**
-     * 审核管理费比例(单位%)
-     */
-    private BigDecimal auditManagementFeeRates;
-
-    /**
-     * 发票号码
-     */
-    private String invoiceNumber;
-
-    /**
-     * 开始日期
-     */
-    private LocalDate startTime;
-
-    /**
-     * 截止日期
-     */
-    private LocalDate endTime;
-
-    /**
-     * 发票文件
-     */
-    @TableField(typeHandler = FastjsonTypeHandler.class)
-    private List<FileUrlObj> invoiceFile;
-
-    /**
-     * 获取积分包的关联试卷
-     */
-    @TableField(exist = false)
-    private List<WmPkgQuizRelation> quizRelations;
-
-    /**
-     * 积分包关联的试卷名称
-     */
-    @TableField(exist = false)
-    private List<String> quizNames;
-
-    /**
-     * 积分包关联的试卷列表
-     */
-    @TableField(exist = false)
-    private List<Integer> quizIds;
-
-    /**
-     * 父级积分包关联的关系
-     */
-    @TableField(exist = false)
-    private List<Integer> quizRelationIds;
-
-    @TableField(exist = false)
-    private SysImplementPlan plan;
-
-    /**
-     * 积分包任务类型数量
-     */
-    @TableField(exist = false)
-    private List<Map<String, Object>> pkgTaskTypeQtyList;
-
-    @TableField(exist = false)
-    private WmPackageContract contract;
-
-    @Getter
-    @AllArgsConstructor
-    public enum PackageStopStatus {
-        NOTHING(0, "不能操作"),
-        ALL_IN(1, "全部收回"),
-        REMAIN_MSG(2, "剩余收回"),
-        REMAIN(3, "剩余收回(无信息提示)");
-
-        private final int code;
-
-        private final String msg;
-    }
-
-    /**
-     * 文件 URL obj
-     *
-     * @author lixuesong
-     * @date 2023/09/27
-     */
-    @Data
-    public static class FileUrlObj implements Serializable {
-        private static final long serialVersionUID = 7914265352319844404L;
-
-        private String fileName;
-
-        private String url;
-    }
+  private String packageAuditStatus;
 
+  /** 一级代理商 */
+  private Integer level1Id;
+
+  /** 二级代理商 */
+  private Integer level2Id;
+
+  /** 众包ID */
+  private String zbId;
+
+  /** 销售代表ID */
+  private String xxdbId;
+
+  private String endLabelDate;
+
+  /** 1:定额积分包 2:定量积分包 3:通用包 4:结算包(证据链) 5:患者教育积分包 */
+  private String packageType1;
+
+  private String description;
+
+  private String relationScoreId;
+
+  /** 关联积分包名称 */
+  @TableField(exist = false)
+  private String relationScoreName;
+
+  private String relatedService;
+
+  /** 关联服务企业名称 */
+  @TableField(exist = false)
+  private String relatedServiceName;
+
+  private String scorePackageName;
+
+  private String packageIsConduct;
+  private String ruleId;
+
+  @TableField(exist = false)
+  private List<WmScoreTaskType> wmScoreTaskTypeList;
+
+  @TableField(exist = false)
+  private Set taskTypeSet;
+
+  /** 分配对象类型 */
+  private String typeid;
+
+  /** 组织机构ID */
+  private String deptId;
+
+  /** 发包方组织机构ID */
+  private String sendPackageDeptId;
+
+  /** 是否删除 */
+  private String delFlag;
+
+  /** 是否禁用 */
+  private String enableFlag;
+
+  /** 所属租户 */
+  private Integer tenantId;
+
+  /** 创建时间 */
+  private LocalDateTime createTime;
+
+  /** 结算时间 */
+  private LocalDateTime settlementDate;
+
+  /** 结算时间 */
+  @TableField(exist = false)
+  private LocalDateTime notifyDate;
+
+  /** 提交到零工时间 */
+  @TableField(exist = false)
+  private LocalDateTime subToGigTime;
+
+  /** 创建人 */
+  private Integer createUser;
+
+  /** 更新时间 */
+  private LocalDateTime updateTime;
+
+  /** 更新人 */
+  private Integer updateUser;
+
+  /** 所属月份 */
+  private String belongDate;
+
+  /** 分配日期 */
+  private String allocationDate;
+
+  /** 已支付百分比 */
+  private String payRate;
+
+  /** 已支付积分值 */
+  private Integer payScore;
+
+  /** 接包对象 */
+  private String acceptSug;
+
+  /** 接包对象名称 */
+  @TableField(exist = false)
+  private String acceptSugName;
+
+  /** 已完成百分比 */
+  private String finishRate;
+
+  private Integer ytj;
+  private Integer ysh;
+
+  private Integer dsh;
+
+  private Integer ytjtt;
+
+  private Integer ywctt;
+
+  @TableField(exist = false)
+  private Integer shtg;
+
+  @TableField(exist = false)
+  private Integer shbtg;
+
+  @TableField(exist = false)
+  private Integer shtgnum;
+
+  @TableField(exist = false)
+  private Integer shbtgnum;
+
+  @TableField(exist = false)
+  private Integer shtgtt;
+
+  @TableField(exist = false)
+  private Integer shbtgtt;
+
+  private Integer yshtt;
+  private String isConduct;
+
+  private BigDecimal settleAmount;
+
+  private BigDecimal discount;
+
+  private LocalDateTime receiveDate;
+
+  @TableField(exist = false)
+  private List<String> drugsIds;
+
+  private String statementNo;
+
+  private Integer settleStatus;
+
+  private String remark;
+
+  private Integer kfpjf;
+
+  /** 发票类目 */
+  private Integer invoiceCategory;
+
+  /** 支付中心订单号 */
+  private String omsOrderSn;
+
+  /** 1:任务包 2:结算包 */
+  private String packageType2;
+
+  private String packageUserScope;
+
+  /** 接单对象范围名称 */
+  @TableField(exist = false)
+  private String packageUserScopeName;
+
+  @TableField(exist = false)
+  private Integer certStatus;
+
+  private Integer userNum;
+  private Integer taskNum;
+
+  /** 完成时间 */
+  private LocalDateTime packageFinishTime;
+
+  /** 有效任务类型 */
+  @TableField(exist = false)
+  private List<WmTaskTypeTree> taskTypeList;
+
+  /** 有效任务类型 */
+  @TableField(exist = false)
+  private List<WmScoreTaskType> taskTypeList1;
+
+  /** 有效任务类型--前端展示 */
+  @TableField(exist = false)
+  private String taskTypes;
+
+  /** 个人预计包值 */
+  private String userScore;
+
+  /** 终止方式 */
+  private String enableType;
+
+  /** 已接单人数 */
+  @TableField(exist = false)
+  private Integer yjd;
+
+  /** 已接单待审核人数 */
+  @TableField(exist = false)
+  private Integer yjddsh;
+
+  /** 是否允许接单 0允许接单 1不允许接单 */
+  private String isReceive;
+
+  /** 是否可以新增任务1-可以 0-不可以 */
+  private String taskAddFlag;
+
+  /** 是否可以新增任务1-已经发起 0-没有 */
+  private String settleFlag;
+
+  /** 接单对象list */
+  @TableField(exist = false)
+  private List<String> userList;
+
+  /** 接单对象id-list */
+  @TableField(exist = false)
+  private List<String> userIdList;
+
+  /** 领取记录 */
+  @TableField(exist = false)
+  private List<WmScorePackageStatus> packageStatusList;
+
+  /** 接单对象list人数 */
+  @TableField(exist = false)
+  private Integer userListNum;
+
+  /** 结算包--是否有任务 */
+  @TableField(exist = false)
+  private String isTask;
+
+  /** 积分包状态 */
+  private String scorePackageStatus;
+
+  /** 是否为旧数据 */
+  private String oldPackage;
+
+  /** 结算渠道 */
+  private String subType;
+
+  /** 税源地 */
+  @TableField(exist = false)
+  private String subjectLocation;
+
+  /** 数据来源类型(0:手动上传,1:系统对接) */
+  private String sourceType;
+
+  /** 结算包--任务类型 */
+  @TableField(exist = false)
+  private String taskTypeId;
+
+  @TableField(exist = false)
+  private Integer wsTaskNum;
+
+  @TableField(exist = false)
+  private Integer asTaskNum;
+
+  /** 项目编号 */
+  private String projectNum;
+
+  /** 药企是否存在审核记录 */
+  @TableField(exist = false)
+  private PackageStopStatus stopStatus;
+
+  /** 报告操作状态 */
+  @TableField(exist = false)
+  private WmReportOpt reportOpt;
+
+  /** 新版报告-报告操作状态 */
+  @TableField(exist = false)
+  private WmReportOpt newReportOpt;
+
+  /** 新版excel报告-报告操作状态 */
+  @TableField(exist = false)
+  private WmReportOpt newExcelReportOpt;
+
+  /** 报告队列名 */
+  @TableField(exist = false)
+  private String reportMqName;
+
+  /** excel报告操作状态 */
+  @TableField(exist = false)
+  private WmReportOpt excelReportOpt;
+
+  /** 公对公结算记录 */
+  @TableField(value = "p2p_amount")
+  public BigDecimal p2pAmount;
+
+  /** 公对公结算服务费 */
+  public BigDecimal p2pServiceAmount;
+
+  public LocalDateTime p2pTime;
+
+  @TableField(exist = false)
+  public Boolean p2pDraft;
+
+  /** 关联药品的生产厂商列表 */
+  @TableField(value = "drug_producer")
+  private String[] drugProducerList;
+
+  /** MAH结算-药企deptId */
+  private Integer mahSettleDeptId;
+
+  /** MAH结算-步进状态(BUSINESS-业务, FINANCE-财务) */
+  private UpmsType.MahSettleStep mahSettleStep;
+
+  /** mah结算时间 */
+  private LocalDateTime mahSettleTime;
+
+  /** 企业任务上限(单位%) */
+  private BigDecimal entTaskLimit;
+
+  /** 推广药品id */
+  private String[] drugtable;
+
+  /** 推广药品名称 */
+  @TableField(exist = false)
+  private String[] drugtableName;
+
+  /** 审核管理费比例(单位%) */
+  private BigDecimal auditManagementFeeRates;
+
+  /** 发票号码 */
+  private String invoiceNumber;
+
+  /** 开始日期 */
+  private LocalDate startTime;
+
+  /** 截止日期 */
+  private LocalDate endTime;
+
+  /** 发票文件 */
+  @TableField(typeHandler = FastjsonTypeHandler.class)
+  private List<FileUrlObj> invoiceFile;
+
+  /** 获取积分包的关联试卷 */
+  @TableField(exist = false)
+  private List<WmPkgQuizRelation> quizRelations;
+
+  /** 积分包关联的试卷名称 */
+  @TableField(exist = false)
+  private List<String> quizNames;
+
+  /** 积分包关联的试卷列表 */
+  @TableField(exist = false)
+  private List<Integer> quizIds;
+
+  /** 父级积分包关联的关系 */
+  @TableField(exist = false)
+  private List<Integer> quizRelationIds;
+
+  @TableField(exist = false)
+  private SysImplementPlan plan;
+
+  /** 积分包任务类型数量 */
+  @TableField(exist = false)
+  private List<Map<String, Object>> pkgTaskTypeQtyList;
+
+  @TableField(exist = false)
+  private WmPackageContract contract;
+
+  @Getter
+  @AllArgsConstructor
+  public enum PackageStopStatus {
+    NOTHING(0, "不能操作"),
+    ALL_IN(1, "全部收回"),
+    REMAIN_MSG(2, "剩余收回"),
+    REMAIN(3, "剩余收回(无信息提示)");
+
+    private final int code;
+
+    private final String msg;
+  }
+
+  /**
+   * 文件 URL obj
+   *
+   * @author lixuesong
+   * @date 2023/09/27
+   */
+  @Data
+  public static class FileUrlObj implements Serializable {
+    private static final long serialVersionUID = 7914265352319844404L;
+
+    private String fileName;
+
+    private String url;
+  }
 }

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmScorePackageStatus.java

@@ -78,6 +78,11 @@ public class WmScorePackageStatus implements Serializable {
      */
     private LocalDateTime updateTime;
 
+    /**
+     * 备注
+     */
+    private String remarks;
+
     /**
      * 更新人
      */

+ 2 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmTask.java

@@ -339,6 +339,8 @@ public class WmTask implements Serializable {
     @TableField(exist = false)
     private String nodeIds;
 
+    private String remarks;
+
 
     @Getter
     @AllArgsConstructor

+ 14 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/pkg/WmScorePackageControllerV2.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
 import com.pig4cloud.plugin.excel.annotation.Sheet;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
+import com.qunzhixinxi.hnqz.admin.api.dto.WmPkgDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageInfoExcelModel;
@@ -16,15 +17,20 @@ import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import io.prometheus.client.Collector;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.stream.Collectors;
+import javax.validation.Valid;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -84,13 +90,12 @@ public class WmScorePackageControllerV2 {
             .filter(p -> depts.contains(p.getSendPackageDeptId()))
             .collect(Collectors.toList());
 
-
     if (CollUtil.isEmpty(ppkgs)) {
       return R.ok(Collections.emptyMap());
     }
 
     Map<String, List<WmScorePackage>> collect =
-          avail.stream().collect(Collectors.groupingBy(WmScorePackage::getRelationScoreId));
+        avail.stream().collect(Collectors.groupingBy(WmScorePackage::getRelationScoreId));
 
     Map<String, String> map = new HashMap<>(ppkgs.size());
     ppkgs.forEach(
@@ -110,4 +115,11 @@ public class WmScorePackageControllerV2 {
 
     return R.ok(map);
   }
+
+  @SysLog("移交持有人")
+  @PostMapping("/pkg/owner/replace")
+  public R<Boolean> replacePkgOwner(@Valid @RequestBody WmPkgDTO.OnOwnerReplace req) {
+
+    return R.ok(packageManager.replacePkgOwner(req, SecurityUtils.getUser()));
+  }
 }

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/user/SysUserControllerV2.java

@@ -6,6 +6,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -74,4 +75,18 @@ public class SysUserControllerV2 {
 
     return R.ok(collect);
   }
+
+  @GetMapping(value = "/list")
+  public R<List<SysUser>> listVendor() {
+
+    List<SysUser> range = redisTemplate.opsForList().range(CacheConstants.USER_KEY, 0, -1);
+
+    Map<Integer, List<SysUser>> collect =
+        range.stream().collect(Collectors.groupingBy(SysUser::getDeptId));
+
+    return R.ok(
+        CollUtil.isEmpty(collect)
+            ? Collections.emptyList()
+            : collect.get(SecurityUtils.getUser().getDeptId()));
+  }
 }

+ 54 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -11,6 +11,7 @@ import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.api.dto.WmPkgDTO;
+import com.qunzhixinxi.hnqz.admin.api.dto.WmPkgDTO.OnOwnerReplace;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
@@ -22,10 +23,14 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageRedemptionNotice;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageInfoExcelModel;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntDrugtableMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageStatusMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
 import com.qunzhixinxi.hnqz.admin.service.SysCheckChainNodeCheckHistoryService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
@@ -44,9 +49,11 @@ import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.exception.BizException;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
+import javax.validation.Valid;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
@@ -80,6 +87,8 @@ public class WmPackageManager {
   private static final int OK_CHAIN_TASK_NODE = 6;
 
   private final WmScorePackageService scorePackageService;
+  private final WmTaskMapper taskMapper;
+  private final WmScorePackageStatusMapper scorePackageStatusMapper;
   private final SysUserRoleService userRoleService;
   private final WmTaskService taskService;
   private final WmTaskTypeService taskTypeService;
@@ -1148,4 +1157,49 @@ public class WmPackageManager {
 
     return result;
   }
+
+  @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+  public Boolean replacePkgOwner(@Valid WmPkgDTO.OnOwnerReplace req, HnqzUser user) {
+
+    WmScorePackageStatus wmScorePackageStatus =
+        scorePackageStatusMapper.selectForUpdateById(req.getPackageStatusId());
+
+    if (wmScorePackageStatus == null) {
+      throw new BizException("执行包领取不存在");
+    }
+
+    LocalDateTime now = LocalDateTime.now();
+    Integer adminId = user.getId();
+    Integer newOwnerId = req.getOwnerId();
+    String oldOwnerId = wmScorePackageStatus.getUserId();
+
+    String remarks =
+        String.format(
+            "管理员(ID:%s)于【%s】更新持有人为【%s】(原持有人:%s)",
+            adminId,
+            DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(now),
+            newOwnerId,
+            oldOwnerId);
+
+    wmScorePackageStatus.setUserId(newOwnerId.toString());
+    wmScorePackageStatus.setUpdateUser(adminId);
+    wmScorePackageStatus.setUpdateTime(LocalDateTime.now());
+    wmScorePackageStatus.setRemarks(remarks);
+
+    scorePackageStatusMapper.updateById(wmScorePackageStatus);
+
+    // 更新任务
+    List<WmTask> tasks = taskMapper.selectForUpdateByPkgId(wmScorePackageStatus.getPackageId());
+
+    tasks.forEach(task -> {
+      task.setTaskUserId(newOwnerId.toString());
+      task.setUpdateUser(user.getUsername());
+      task.setUpdateTime(now);
+      task.setRemarks(remarks);
+    });
+
+    taskService.updateBatchById(tasks);
+
+    return Boolean.TRUE;
+  }
 }

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmScorePackageMapper.java

@@ -21,6 +21,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 积分包
@@ -205,4 +206,9 @@ public interface WmScorePackageMapper extends DataScopeMapper<WmScorePackage> {
                                                  @Param(value = "supervision") Boolean supervision,
                                                  @Param(value = "entIds") Set<Integer> finalEntIds,
                                                  @Param(value = "drugIds") Collection<String> drugIds);
+
+
+
+    @Select("SELECT p.* FROM wm_score_package p WHERE p.id = #{id} FOR UPDATE")
+    WmScorePackage lockById(@Param("id") String id);
 }

+ 4 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmScorePackageStatusMapper.java

@@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 积分包状态
@@ -40,4 +41,7 @@ public interface WmScorePackageStatusMapper extends BaseMapper<WmScorePackageSta
      */
     List<Map<String, String>> getDeptReceiveUserList(@Param("deptId") String deptId, @Param("packageType1") String packageType1,
                                                      @Param("packageType2") String packageType2);
+
+    @Select("SELECT ps.* FROM wm_score_package_status ps WHERE ps.id = #{id} FOR UPDATE ")
+    WmScorePackageStatus selectForUpdateById(@Param("id") Integer id);
 }

+ 185 - 158
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmTaskMapper.java

@@ -15,6 +15,7 @@ import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 任务表
@@ -24,203 +25,229 @@ import java.util.Map;
  */
 @Mapper
 public interface WmTaskMapper extends DataScopeMapper<WmTask> {
-    Page<WmTask> selectListByExtEnt(Page page, @Param("query") WmTask wmTask);
+  Page<WmTask> selectListByExtEnt(Page page, @Param("query") WmTask wmTask);
 
-    Page<WmTask> selectListByRelationScoreId(Page page, @Param("query") WmTask wmTask);
+  Page<WmTask> selectListByRelationScoreId(Page page, @Param("query") WmTask wmTask);
 
-    List<WmTask> selectListByExtEntNoPage(@Param("query") WmTask wmTask);
+  List<WmTask> selectListByExtEntNoPage(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectZbCount(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectZbCount(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByPackageIds(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByPackageIds(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByPackageIdsForJs(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByPackageIdsForJs(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByPackageIdsForJsUser(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByPackageIdsForJsUser(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByPackageIdsCount(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByPackageIdsCount(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByPackageIdsAndUser(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByPackageIdsAndUser(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByPackageIdsZd(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByPackageIdsZd(@Param("query") WmTask wmTask);
 
-    List<WmTask> getTaskListByPackageIdsReturnWmtaskInfo(@Param("query") WmTask wmTask);
+  List<WmTask> getTaskListByPackageIdsReturnWmtaskInfo(@Param("query") WmTask wmTask);
 
-    List<WmTask> selectListByWmTask(@Param("query") WmScorePackage wmScorePackage);
+  List<WmTask> selectListByWmTask(@Param("query") WmScorePackage wmScorePackage);
 
-    Page<Map<String, Object>> getH5PackageList(Page page, @Param("query") WmTask wmTask);
+  Page<Map<String, Object>> getH5PackageList(Page page, @Param("query") WmTask wmTask);
 
-    Page<Map<String, Object>> getH5TaskList(Page page, @Param("query") WmTask wmTask);
+  Page<Map<String, Object>> getH5TaskList(Page page, @Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectByWmTaskOne(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectByWmTaskOne(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectByWmTaskSecond(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectByWmTaskSecond(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectByWmTaskDrug(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectByWmTaskDrug(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectByReportOneApprovalStatus(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectByReportOneApprovalStatus(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectByReportSecondApprovalStatus(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectByReportSecondApprovalStatus(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> selectByReportDrugApprovalStatus(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> selectByReportDrugApprovalStatus(@Param("query") WmTask wmTask);
 
-    List<WmTask> selectByWmTaskId(@Param("query") WmTask wmTask);
+  List<WmTask> selectByWmTaskId(@Param("query") WmTask wmTask);
 
-    int selectById(@Param("query") Long id);
+  int selectById(@Param("query") Long id);
 
-    WmTask selectByRealFlag(Integer id);
+  WmTask selectByRealFlag(Integer id);
 
-    WmTask selectWmTaskById(@Param("query") WmTask wmTask);
+  WmTask selectWmTaskById(@Param("query") WmTask wmTask);
 
-    List<WmTask> selectListByIds(@Param("query") WmTask wmTask);
+  List<WmTask> selectListByIds(@Param("query") WmTask wmTask);
 
-    List<WmTask> selectListByScorePackageId(@Param("query") WmTask wmTask);
+  List<WmTask> selectListByScorePackageId(@Param("query") WmTask wmTask);
 
-    Page<WmTask> selectList(Page page, QueryWrapper wrappers);
+  Page<WmTask> selectList(Page page, QueryWrapper wrappers);
 
-    List<WmTask> selectByTask(@Param("query") WmTask wmTask);
+  List<WmTask> selectByTask(@Param("query") WmTask wmTask);
 
+  List<Map<String, Object>> getTaskListByIdsCount(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByIdsCount(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByIds(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByIds(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByIdsOld(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByIdsOld(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByIdsJs(@Param("query") WmTask wmTask);
 
+  List<WmTask> getTaskListByIdsReturnWmtaskInfo(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByIdsJs(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByIdsZd(@Param("query") WmTask wmTask);
 
-    List<WmTask> getTaskListByIdsReturnWmtaskInfo(@Param("query") WmTask wmTask);
+  List<Map<String, Object>> getTaskListByIdsZdJs(@Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByIdsZd(@Param("query") WmTask wmTask);
+  Page<WmTask> getWmTaskList(Page page, @Param("query") WmTask wmTask);
 
-    List<Map<String, Object>> getTaskListByIdsZdJs(@Param("query") WmTask wmTask);
+  /**
+   * 根据配置查询任务
+   *
+   * @param page 分页
+   * @param wmTask 分页条件
+   * @return 分页结果
+   */
+  Page<WmTask> listWmTaskByConfig(Page<WmTask> page, @Param("query") WmTask wmTask);
 
-    Page<WmTask> getWmTaskList(Page page, @Param("query") WmTask wmTask);
+  /**
+   * 根据配置查询任务
+   *
+   * @param page 分页
+   * @param queryWrapper 查询条件
+   * @return 分页结果
+   */
+  Page<WmTask> listWmTaskByWrapper(
+      Page<WmTask> page, @Param(Constants.WRAPPER) QueryWrapper<WmTask> queryWrapper);
 
-    /**
-     * 根据配置查询任务
-     *
-     * @param page   分页
-     * @param wmTask 分页条件
-     * @return 分页结果
-     */
-    Page<WmTask> listWmTaskByConfig(Page<WmTask> page, @Param("query") WmTask wmTask);
+  List<Map<String, String>> PackageIsFinishByTask(@Param("query") WmTask wmTask);
 
-    /**
-     * 根据配置查询任务
-     *
-     * @param page         分页
-     * @param queryWrapper 查询条件
-     * @return 分页结果
-     */
-    Page<WmTask> listWmTaskByWrapper(Page<WmTask> page, @Param(Constants.WRAPPER) QueryWrapper<WmTask> queryWrapper);
+  Map<String, Timestamp> getMaxCreateTime(@Param("query") WmTask wmTask);
 
-    List<Map<String, String>> PackageIsFinishByTask(@Param("query") WmTask wmTask);
+  Page<Map<String, Object>> selectSettleTask(Page page, @Param("query") WmTask wmTask);
 
-    Map<String, Timestamp> getMaxCreateTime(@Param("query") WmTask wmTask);
-
-    Page<Map<String, Object>> selectSettleTask(Page page, @Param("query") WmTask wmTask);
-
-    /**
-     * 查询用户审核中和审核通过的积分
-     *
-     * @param userId    用户id
-     * @param startTime 开始时间
-     * @param endTime   截止时间
-     * @return 任务积分值和
-     */
-    int getUserTaskSubScore(@Param("userId") String userId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
-
-    /**
-     * 发包方审核时候只校验审核通过的分数
-     *
-     * @param userId    用户id
-     * @param startTime 开始时间
-     * @param endTime   截止时间
-     * @return 任务积分值和
-     */
-    int newGetUserTaskSubScore(@Param("userId") String userId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
-
-    /**
-     * 患者教育-处方列表
-     *
-     * @param page           分页条件
-     * @param scorePackageId 积分包id
-     * @param prescriptionNo 处方单编号
-     * @return 处方列表分页
-     */
-    Page<WmTask> listTaskPrescriptionPage(Page page, @Param("scorePackageId") String scorePackageId, @Param("prescriptionNo") String prescriptionNo);
-
-    /**
-     * 患者教育-处方列表
-     *
-     * @param scorePackageId 积分包id
-     * @param prescriptionNo 处方单编号
-     * @return 处方列表
-     */
-    List<WmTask> listTaskPrescription(@Param("scorePackageId") String scorePackageId, @Param("prescriptionNo") String prescriptionNo);
-
-    /**
-     * 查询调查信息审核列表
-     *
-     * @param wmTask    条件
-     * @param startDate 开始时间
-     * @param endDate   截止时间
-     * @return 分页结果
-     */
-    Page<WmTask> listInfoAudit(Page page, @Param("query") WmTask wmTask, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);
-
-    /**
-     * 查询同一家医院一个月做的任务
-     *
-     * @param hospitalId 医院ID
-     * @return 任务列表
-     */
-    List<WmTask> listCurrentMonthHospitalTask(@Param("hospitalId") String hospitalId);
-
-    /**
-     * 查询会议任务个数
-     *
-     * @param taskTypeList 任务类型列表
-     * @param taskUserId   用户id
-     * @param startTime    会议时间范围-开始
-     * @param endTime      会议时间范围-结束
-     * @return 会议任务个数
-     */
-    Long countMeetingTask(@Param("taskTypeList") List<String> taskTypeList, @Param("taskUserId") String taskUserId,
-                          @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
-
-    /**
-     * 企业审核查询任务列表
-     *
-     * @param page     分页
-     * @param wmReport 条件
-     * @return 分页
-     */
-    Page<WmTaskVO> entTaskPageByTaskType(Page<WmTaskVO> page, @Param("query") Map<String, Object> wmReport);
-
-    /**
-     * 获取可以监督任务
-     *
-     * @param pkgId 积分包ID
-     * @return 任务列表
-     */
-    List<WmTask> listAvailableTaskForSupervision(@Param(value = "pkgId") Integer pkgId, @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
-
-    /**
-     * 获取可以监督任务(多个包)
-     *
-     * @param pkgIds 积分包ID
-     * @return 任务列表
-     */
-    List<WmTask> listAvailableTaskForSupervision1(@Param(value = "pkgIds") Collection<String> pkgIds, @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
-
-    Page<WmTask> listAvailableTaskForSupervision2(Page<WmTask> page,
-                                                  @Param(value = "pkgIds") Collection<String> pkgIds,
-                                                  @Param(value = "userIds") Collection<Integer> userIds,
-                                                  @Param(value = "taskTypeId") String taskTypeId,
-                                                  @Param(value = "taskId") String taskId,
-                                                  @Param(value = "taskNumber") String taskNumber,
-                                                  @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
+  /**
+   * 查询用户审核中和审核通过的积分
+   *
+   * @param userId 用户id
+   * @param startTime 开始时间
+   * @param endTime 截止时间
+   * @return 任务积分值和
+   */
+  int getUserTaskSubScore(
+      @Param("userId") String userId,
+      @Param("startTime") LocalDateTime startTime,
+      @Param("endTime") LocalDateTime endTime);
+
+  /**
+   * 发包方审核时候只校验审核通过的分数
+   *
+   * @param userId 用户id
+   * @param startTime 开始时间
+   * @param endTime 截止时间
+   * @return 任务积分值和
+   */
+  int newGetUserTaskSubScore(
+      @Param("userId") String userId,
+      @Param("startTime") LocalDateTime startTime,
+      @Param("endTime") LocalDateTime endTime);
+
+  /**
+   * 患者教育-处方列表
+   *
+   * @param page 分页条件
+   * @param scorePackageId 积分包id
+   * @param prescriptionNo 处方单编号
+   * @return 处方列表分页
+   */
+  Page<WmTask> listTaskPrescriptionPage(
+      Page page,
+      @Param("scorePackageId") String scorePackageId,
+      @Param("prescriptionNo") String prescriptionNo);
+
+  /**
+   * 患者教育-处方列表
+   *
+   * @param scorePackageId 积分包id
+   * @param prescriptionNo 处方单编号
+   * @return 处方列表
+   */
+  List<WmTask> listTaskPrescription(
+      @Param("scorePackageId") String scorePackageId,
+      @Param("prescriptionNo") String prescriptionNo);
+
+  /**
+   * 查询调查信息审核列表
+   *
+   * @param wmTask 条件
+   * @param startDate 开始时间
+   * @param endDate 截止时间
+   * @return 分页结果
+   */
+  Page<WmTask> listInfoAudit(
+      Page page,
+      @Param("query") WmTask wmTask,
+      @Param("startDate") LocalDateTime startDate,
+      @Param("endDate") LocalDateTime endDate);
+
+  /**
+   * 查询同一家医院一个月做的任务
+   *
+   * @param hospitalId 医院ID
+   * @return 任务列表
+   */
+  List<WmTask> listCurrentMonthHospitalTask(@Param("hospitalId") String hospitalId);
+
+  /**
+   * 查询会议任务个数
+   *
+   * @param taskTypeList 任务类型列表
+   * @param taskUserId 用户id
+   * @param startTime 会议时间范围-开始
+   * @param endTime 会议时间范围-结束
+   * @return 会议任务个数
+   */
+  Long countMeetingTask(
+      @Param("taskTypeList") List<String> taskTypeList,
+      @Param("taskUserId") String taskUserId,
+      @Param("startTime") LocalDateTime startTime,
+      @Param("endTime") LocalDateTime endTime);
+
+  /**
+   * 企业审核查询任务列表
+   *
+   * @param page 分页
+   * @param wmReport 条件
+   * @return 分页
+   */
+  Page<WmTaskVO> entTaskPageByTaskType(
+      Page<WmTaskVO> page, @Param("query") Map<String, Object> wmReport);
+
+  /**
+   * 获取可以监督任务
+   *
+   * @param pkgId 积分包ID
+   * @return 任务列表
+   */
+  List<WmTask> listAvailableTaskForSupervision(
+      @Param(value = "pkgId") Integer pkgId,
+      @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
+
+  /**
+   * 获取可以监督任务(多个包)
+   *
+   * @param pkgIds 积分包ID
+   * @return 任务列表
+   */
+  List<WmTask> listAvailableTaskForSupervision1(
+      @Param(value = "pkgIds") Collection<String> pkgIds,
+      @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
+
+  Page<WmTask> listAvailableTaskForSupervision2(
+      Page<WmTask> page,
+      @Param(value = "pkgIds") Collection<String> pkgIds,
+      @Param(value = "userIds") Collection<Integer> userIds,
+      @Param(value = "taskTypeId") String taskTypeId,
+      @Param(value = "taskId") String taskId,
+      @Param(value = "taskNumber") String taskNumber,
+      @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
+
+  @Select(value = "SELECT t.* FROM wm_task t WHERE t.score_package_id =#{pkgId} FOR UPDATE")
+  List<WmTask> selectForUpdateByPkgId(@Param("pkgId") String pkgId);
 }

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

@@ -2933,8 +2933,10 @@ public class WmScorePackaeServiceImpl extends ServiceImpl<WmScorePackageMapper,
                     .collect(Collectors.toList());
             scorePackage.setUserList(userNameList);
             scorePackage.setUserListNum(userNameList.size());
+            scorePackage.setPackageStatusList(packageStatusList);
         } else {
             scorePackage.setUserListNum(0);
+            scorePackage.setPackageStatusList(Collections.emptyList());
         }
 
         // 已结单

+ 1 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1822,4 +1822,5 @@
     </where>
 
   </select>
+
 </mapper>