Quellcode durchsuchen

feat: 添加中止状态

shc vor 3 Jahren
Ursprung
Commit
499003b285

+ 34 - 43
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackage.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -154,9 +155,9 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	@ApiModelProperty(value = "规则id")
 	private String ruleId;
 
-	@TableField(exist =false)
+	@TableField(exist = false)
 	private List<WmScoreTaskType> wmScoreTaskTypeList;
-	@TableField(exist =false)
+	@TableField(exist = false)
 	private Set taskTypeSet;
 
 	/**
@@ -345,19 +346,19 @@ public class WmScorePackage extends Model<WmScorePackage> {
 
 
 	/**
-	 *有效任务类型
+	 * 有效任务类型
 	 */
 	@TableField(exist = false)
 	private List<WmTaskTypeTree> taskTypeList;
 
 	/**
-	 *有效任务类型
+	 * 有效任务类型
 	 */
 	@TableField(exist = false)
 	private List<WmScoreTaskType> taskTypeList1;
 
 	/**
-	 *有效任务类型--前端展示
+	 * 有效任务类型--前端展示
 	 */
 	@TableField(exist = false)
 	private String taskTypes;
@@ -365,13 +366,13 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	/**
 	 * 个人预计包值
 	 */
-	@ApiModelProperty(value="个人预计包值")
+	@ApiModelProperty(value = "个人预计包值")
 	private String userScore;
 
 	/**
 	 * 终止方式
 	 */
-	@ApiModelProperty(value="终止方式")
+	@ApiModelProperty(value = "终止方式")
 	private String enableType;
 
 	/**
@@ -391,19 +392,19 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	/**
 	 * 是否允许接单  0允许接单 1不允许接单
 	 */
-	@ApiModelProperty(value="是否允许接单")
+	@ApiModelProperty(value = "是否允许接单")
 	private String isReceive;
 
 	/**
 	 * 是否可以新增任务1-可以  0-不可以
 	 */
-	@ApiModelProperty(value="是否可以新增任务")
+	@ApiModelProperty(value = "是否可以新增任务")
 	private String taskAddFlag;
 
 	/**
 	 * 是否可以新增任务1-已经发起  0-没有
 	 */
-	@ApiModelProperty(value="是否结算")
+	@ApiModelProperty(value = "是否结算")
 	private String settleFlag;
 
 	/**
@@ -434,25 +435,25 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	/**
 	 * 积分包状态
 	 */
-	@ApiModelProperty(value="积分包状态")
+	@ApiModelProperty(value = "积分包状态")
 	private String scorePackageStatus;
 
 	/**
 	 * 是否为旧数据
 	 */
-	@ApiModelProperty(value="是否为旧数据")
+	@ApiModelProperty(value = "是否为旧数据")
 	private String oldPackage;
 
 	/**
 	 * 结算渠道
 	 */
-	@ApiModelProperty(value="结算渠道")
+	@ApiModelProperty(value = "结算渠道")
 	private String subType;
 
 	/**
 	 * 数据来源类型(0:手动上传,1:系统对接)
 	 */
-	@ApiModelProperty(value="数据来源类型(0:手动上传,1:系统对接)")
+	@ApiModelProperty(value = "数据来源类型(0:手动上传,1:系统对接)")
 	private String sourceType;
 
 	/**
@@ -472,39 +473,29 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	 */
 	private String projectNum;
 
+	/**
+	 * 药企是否存在审核记录
+	 */
+	@TableField(exist = false)
+	private PackageStopStatus stopStatus;
+
 	/**
 	 * 关联药品的生产厂商列表
 	 */
-//	@TableField(exist = false)
 	@TableField(value = "drug_producer")
-	@ApiModelProperty(value="关联药品的生产厂商列表")
+	@ApiModelProperty(value = "关联药品的生产厂商列表")
 	private String[] drugProducerList;
 
-//	@TableField(value = "drug_producer")
-//	private String drugProducer;
-//
-//
-//	public List<String> getDrugProducerList() {
-//		if (StringUtils.isNotEmpty(this.drugProducer)){
-//			return Arrays.asList(this.drugProducer.split(","));
-//		}
-//		return new ArrayList<>();
-//	}
-//
-//	public void setDrugProducerList(List<String> drugProducerList) {
-//		this.drugProducerList = drugProducerList;
-//	}
-//
-//	public String getDrugProducer() {
-//		return drugProducer;
-//	}
-//
-//	public void setDrugProducer(String drugProducer) {
-//		if (CollectionUtil.isEmpty(this.drugProducerList)){
-//			this.drugProducer = " ";
-//
-//		} else {
-//			this.drugProducer = String.join(",",this.drugProducerList);
-//		}
-//	}
+	@AllArgsConstructor
+	public enum PackageStopStatus {
+		NOTHING(0, "不能操作"),
+		ALL_IN(1, "全部收回"),
+		REMAIN_MSG(2, "剩余收回"),
+		REMAIN(3, "剩余收回(无信息提示)");
+
+		private final int code;
+
+		private final String msg;
+	}
+
 }

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

@@ -108,7 +108,7 @@ public interface WmScorePackageService extends IService<WmScorePackage> {
 
 	R addWmScorePackage(WmScorePackage wmScorePackage);
 
-	public R getScorePackagePage(Page page, WmScorePackage wmScorePackage);
+	R getScorePackagePage(Page page, WmScorePackage wmScorePackage);
 
 	R updateEnable(WmScorePackage wmScorePackage);
 

+ 41 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -46,8 +46,10 @@ import com.qunzhixinxi.hnqz.common.ding.enums.DingEnum;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.xssf.extractor.XSSFExportToXml;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -57,6 +59,9 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.qunzhixinxi.hnqz.admin.enums.ReportEnum.REPORT_STATUS_CREATE;
+import static com.qunzhixinxi.hnqz.admin.enums.ReportEnum.REPORT_STATUS_SUBMIT;
+
 /**
  * 积分包
  *
@@ -80,6 +85,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 	private final WmDaDrugEntService wmDaDrugEntService;
 	private final WmScorePackageSettleNoteMapper settleNoteMapper;
 	private final WmDaDrugEntDrugtableService wmDaDrugEntDrugtableService;
+	private final WmReportMapper wmReportMapper;
 
 	@Override
 	public List<WmScorePackage> listWmScorePackageAndTask(WmScorePackage wmScorePackage) {
@@ -744,6 +750,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 	 * @return
 	 */
 	public R getScorePackagePage(Page page, WmScorePackage wmScorePackage) {
+
 		OrderItem orderItem = new OrderItem();
 		orderItem.setColumn("create_time");
 		orderItem.setAsc(false);
@@ -754,6 +761,10 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		}
 		IPage<WmScorePackage> pages = wmScorePackageMapper.getScorePackagekList(page, wmScorePackage);
 		List<WmScorePackage> records = pages.getRecords();
+
+		List<String> reportWaitingCheckStatus = Arrays.asList("0", "1");
+
+
 		for (WmScorePackage wmScorePackage1 : records) {
 
 			List<WmScorePackageSettleNote> list =settleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
@@ -778,7 +789,6 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 				// 如果是患者教育,则转换积分值 '分'-> '元'
 				Integer score = wmScorePackage1.getScore();
 				String userScore = wmScorePackage1.getUserScore();
-//				wmScorePackage1.setScore(); TODO 这个怎么转换
 				if (StringUtils.isNumeric(userScore)) {
 					wmScorePackage1.setUserScore(String.format("%.2f", Integer.parseInt(userScore) / 100.0));
 				}
@@ -799,7 +809,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 						WmScoreTaskType::getTaskTypeName).collect(Collectors.joining(","));
 				wmScorePackage1.setTaskTypes(taskTypes);
 			}
-			//if(wmScorePackage1.getTypeid().equals("3")){
+
 			WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
 			wmScorePackageStatus.setPackageId(wmScorePackage1.getId());
 			wmScorePackageStatus.setStatus("2");
@@ -812,7 +822,35 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			}
 			wmScorePackageStatus.setStatus("1");
 			wmScorePackage1.setYjddsh(wmScorePackageStatusService.count(Wrappers.query(wmScorePackageStatus)));
-			//}
+
+			// 设置中止状态
+			WmScorePackage.PackageStopStatus stopStatus;
+
+
+			List<WmTask> tasks = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery()
+					.eq(WmTask::getScorePackageId, String.valueOf(wmScorePackage1.getId())));
+
+			//统计发包方还未审核的
+			long drugNeedToCheckCount = tasks.stream()
+					.filter(t -> "3".equals(t.getTaskStatus()) && "2".equals(t.getReportDrugApprovalStatus()))
+					.count();
+
+			// 统计cso未审核 和审核通过的还未提交到药企的任务数
+			long csoNeedToCheckCount = tasks.stream().filter(t -> "2".equals(t.getTaskStatus()) ||
+					("3".equals(t.getTaskStatus()) && reportWaitingCheckStatus.contains(t.getReportDrugApprovalStatus()))).count();
+
+			// 如果有发包方未审核的不能中止
+			if (drugNeedToCheckCount != 0L){
+				stopStatus = WmScorePackage.PackageStopStatus.NOTHING;
+			} else if (csoNeedToCheckCount != 0){
+				// 如果有cso未审核的提示信息
+				stopStatus = WmScorePackage.PackageStopStatus.REMAIN_MSG;
+			} else {
+				// 无提示信息
+				stopStatus = WmScorePackage.PackageStopStatus.REMAIN;
+			}
+
+			wmScorePackage1.setStopStatus(stopStatus);
 		}
 		return R.ok(pages);
 	}