|
@@ -39,6 +39,7 @@ import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.*;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.*;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
@@ -827,28 +828,31 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
// 设置中止状态
|
|
|
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;
|
|
|
+ if (wmScorePackage1.getRelationScoreId() == null){
|
|
|
+ stopStatus = WmScorePackage.PackageStopStatus.ALL_IN;
|
|
|
} else {
|
|
|
- // 无提示信息
|
|
|
- stopStatus = WmScorePackage.PackageStopStatus.REMAIN;
|
|
|
+ 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);
|
|
@@ -931,6 +935,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
wmTask1.setTaskStatus("1,2,3");
|
|
|
List<WmTask> taskList1 = wmTaskMapper.selectByTask(wmTask1);
|
|
|
Integer res = 0;
|
|
|
+ boolean all = false;
|
|
|
if ( CollUtil.isEmpty(taskList1)) {
|
|
|
if (wmScorePackage.getPackageType1().equals("1") || wmScorePackage.getPackageType1().equals("5")) {//定额
|
|
|
//这个用户还没有做任务时,积分值设为0
|
|
@@ -947,17 +952,36 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
|
|
|
} else {
|
|
|
if (wmScorePackage.getPackageType1().equals("1") || wmScorePackage.getPackageType1().equals("5")) {//定额
|
|
|
- int sum = taskList1.stream().mapToInt(WmTask::getScore).sum();
|
|
|
- if (StringUtils.equals(wmScorePackage.getDeptId(),wmScorePackage.getSendPackageDeptId())){
|
|
|
+ int sum;
|
|
|
+ if (wmScorePackage.getRelatedService() == null){
|
|
|
+ sum = taskList1.stream().mapToInt(WmTask::getScore).sum();
|
|
|
res = Integer.parseInt(wmScorePackageStatus.getUserScore()) - sum;
|
|
|
+ if (res > 0) {//个人积分包值大于任务积分值
|
|
|
+ wmScorePackageStatus.setUserScore(sum + "");
|
|
|
+ resSum += res;
|
|
|
+ }
|
|
|
} else {
|
|
|
- res = sum;
|
|
|
+ int passed = taskList1.stream()
|
|
|
+ .filter(task -> ReportEnum.APPROVAL_OPINION_YES.getType()
|
|
|
+ .equals(task.getReportDrugApprovalOpinion()))
|
|
|
+ .mapToInt(WmTask::getScore)
|
|
|
+ .sum();
|
|
|
+ if (passed == 0){
|
|
|
+ wmScorePackage.setScorePackageStatus("6");//已终止
|
|
|
+ wmScorePackage.setEnableFlag("1");
|
|
|
+ taskList1.forEach(task -> {task.setEnableFlag("1");
|
|
|
+ wmTaskMapper.updateById(task);});
|
|
|
+ all = true;
|
|
|
+ }
|
|
|
+ res = sum = passed;
|
|
|
+ if (res > 0) {//个人积分包值大于任务积分值
|
|
|
+ wmScorePackageStatus.setUserScore(sum + "");
|
|
|
+ resSum += (wmScorePackage.getScore() - res);
|
|
|
+ } else {
|
|
|
+ resSum = wmScorePackage.getScore();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if (res > 0) {//个人积分包值大于任务积分值
|
|
|
- wmScorePackageStatus.setUserScore(sum + "");
|
|
|
- resSum += res;
|
|
|
- }
|
|
|
|
|
|
} else {//2,3 定量
|
|
|
//定量收回任务个数
|
|
@@ -972,10 +996,17 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- //更新接单数据
|
|
|
+
|
|
|
wmScorePackageStatus.setTaskAddFlag("0");
|
|
|
- wmScorePackageStatus.setEnableType("2");
|
|
|
+ if (all){
|
|
|
+ wmScorePackageStatus.setEnableType("1");
|
|
|
+ wmScorePackageStatus.setEnableType("1");
|
|
|
+ } else {
|
|
|
+ //更新接单数据
|
|
|
+ wmScorePackageStatus.setEnableType("2");
|
|
|
+ }
|
|
|
wmScorePackageStatusService.updateById(wmScorePackageStatus);
|
|
|
+
|
|
|
}
|
|
|
//更新积分包的积分总值
|
|
|
if (resSum > 0) {
|