|
@@ -31,7 +31,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
|
|
|
-import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageContract;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmPkgQuizRelation;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.TargetType;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
|
|
@@ -71,7 +71,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmBizReminderService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
|
|
|
-import com.qunzhixinxi.hnqz.admin.service.WmPackageTaskTypeQtyService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmPackageContractService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmPkgQuizRelationService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
|
|
@@ -81,7 +81,6 @@ import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTeamService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
-import com.qunzhixinxi.hnqz.common.core.exception.BizException;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
@@ -90,7 +89,6 @@ import com.qunzhixinxi.hnqz.common.sequence.sequence.Sequence;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
-import org.apache.commons.lang.ArrayUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
@@ -169,7 +167,7 @@ public class WmScorePackageController {
|
|
|
private final Sequence pkgSequence;
|
|
|
private final SysPlanPkgService planPkgService;
|
|
|
private final WmPackageManager packageManager;
|
|
|
- private final WmPackageTaskTypeQtyService packageTaskTypeQtyService;
|
|
|
+ private final WmPackageContractService packageContractService;
|
|
|
private final ApplicationEventPublisher applicationEventPublisher;
|
|
|
|
|
|
|
|
@@ -1572,6 +1570,18 @@ public class WmScorePackageController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ if (CollUtil.isNotEmpty(finalRecords)){
|
|
|
+ Set<Integer> pkgIds = finalRecords.stream().map(WmScorePackage::getId).mapToInt(Integer::valueOf).boxed().collect(Collectors.toSet());
|
|
|
+ Map<Integer, List<WmPackageContract>> collect = packageContractService.list(Wrappers.<WmPackageContract>lambdaQuery()
|
|
|
+ .in(WmPackageContract::getPackageId, pkgIds)
|
|
|
+ .orderByDesc(WmPackageContract::getCreateTime))
|
|
|
+ .stream().collect(Collectors.groupingBy(WmPackageContract::getPackageId));
|
|
|
+ finalRecords.forEach(pkg -> {
|
|
|
+ List<WmPackageContract> wmPackageContracts = collect.get(Integer.valueOf(pkg.getId()));
|
|
|
+ pkg.setContract(CollUtil.isNotEmpty(wmPackageContracts) ? wmPackageContracts.get(0) : null);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
pageAnswer.setRecords(finalRecords);
|
|
|
} catch (ExecutionException | InterruptedException e) {
|
|
|
log.error("获取分页信息失败", e);
|
|
@@ -1793,330 +1803,17 @@ public class WmScorePackageController {
|
|
|
*/
|
|
|
@SysLog("新增积分包(大包)")
|
|
|
@PostMapping("/saves")
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
public R<?> saves(@RequestBody WmScorePackage wmScorePackage) {
|
|
|
|
|
|
log.info("新增积分包(大包)入参:{}", wmScorePackage);
|
|
|
|
|
|
- HnqzUser operator = SecurityUtils.getUser();
|
|
|
- LocalDateTime now = LocalDateTime.now();
|
|
|
- List<Integer> roles = SecurityUtils.getRoles();
|
|
|
- Integer deptId = operator.getDeptId();
|
|
|
- Integer userId = operator.getId();
|
|
|
- Integer planId = wmScorePackage.getPlanId();
|
|
|
-
|
|
|
- String relPkgId = wmScorePackage.getRelationScoreId();
|
|
|
- boolean relatedScoreId = CharSequenceUtil.isNotBlank(relPkgId) && Integer.parseInt(relPkgId) > 0;
|
|
|
- SysDeptRecharge deptRecharge = null;
|
|
|
-
|
|
|
- // 校验积分值
|
|
|
- if (wmScorePackage.getScore() <= 0) {
|
|
|
- return R.failed("积分包分值必须大于0");
|
|
|
- }
|
|
|
-
|
|
|
- // 校验积分包名称是否存在
|
|
|
- if (CharSequenceUtil.isNotBlank(wmScorePackage.getScorePackageName())) {
|
|
|
-
|
|
|
- int existed = wmScorePackageService.count(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .eq(WmScorePackage::getDelFlag, "0")
|
|
|
- .eq(WmScorePackage::getScorePackageName, wmScorePackage.getScorePackageName())
|
|
|
- .eq(WmScorePackage::getDeptId, wmScorePackage.getDeptId()));
|
|
|
-
|
|
|
- if (existed != 0) {
|
|
|
- return R.failed("积分包名称已存在");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 校验积分值
|
|
|
- if (!relatedScoreId) {
|
|
|
- // 校验 发包积分 < 积分充值分配的积分 则可以发包
|
|
|
- deptRecharge = sysDeptRechargeMapper.selectOne(Wrappers.<SysDeptRecharge>lambdaQuery().eq(SysDeptRecharge::getDeptId, deptId));
|
|
|
- if (deptRecharge == null) {
|
|
|
- log.error("未配置积分充值信息");
|
|
|
- throw new BizException("积分余额:0,积分不足");
|
|
|
- }
|
|
|
- long limitScore = deptRecharge.getScore() + deptRecharge.getOverdrawScore();
|
|
|
- if (wmScorePackage.getScore() > limitScore) {
|
|
|
- log.error("已分配积分不足,发包积分={},剩余积分={},透支额度={}", wmScorePackage.getScore(), deptRecharge.getScore(), limitScore);
|
|
|
- throw new BizException(String.format("积分余额:%s,积分不足", deptRecharge.getScore()));
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 校验上级可分配积分值
|
|
|
- List<WmScorePackage> scorePackagekfpjf =
|
|
|
- wmScorePackageService.getScorePackagekfpjf(
|
|
|
- null,
|
|
|
- null,
|
|
|
- new String[]{"0", "1", "2"},
|
|
|
- new String[]{wmScorePackage.getRelationScoreId()});
|
|
|
-
|
|
|
- if (CollUtil.isNotEmpty(scorePackagekfpjf)) {
|
|
|
- int kfpjf = scorePackagekfpjf.get(0).getKfpjf();
|
|
|
- if (wmScorePackage.getScore() > kfpjf) {
|
|
|
- log.error("可分配积分值不足");
|
|
|
- throw new BizException("可分配积分值不足");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- wmScorePackage.setPackageType1("1");
|
|
|
- wmScorePackage.setDelFlag("0");
|
|
|
- wmScorePackage.setEnableFlag("0");
|
|
|
- wmScorePackage.setPackageIsConduct("0");
|
|
|
- wmScorePackage.setDrugEntId(null);
|
|
|
- wmScorePackage.setCreateUser(userId);
|
|
|
- wmScorePackage.setCreateTime(now);
|
|
|
- wmScorePackage.setUpdateTime(now);
|
|
|
- wmScorePackage.setPackageFinishStatus("0");
|
|
|
- wmScorePackage.setPackageAuditStatus("0");
|
|
|
- wmScorePackage.setSendPackageDeptId(deptId.toString());
|
|
|
- wmScorePackage.setAllocationDate(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(now));
|
|
|
- if (wmScorePackage.getEndTime() == null) {
|
|
|
- // 默认截止日期为一年后
|
|
|
- wmScorePackage.setEndTime(now.plusYears(1).toLocalDate());
|
|
|
- }
|
|
|
-
|
|
|
- // 关联上级推广药品企业(兼容历史)
|
|
|
- if (StringUtils.isEmpty(relPkgId)) {
|
|
|
- wmScorePackage.setDrugProducerList(null);
|
|
|
- } else if (StringUtils.isNotEmpty(relPkgId) && ArrayUtils.isEmpty(wmScorePackage.getDrugtable())) {
|
|
|
- // 关联上级推广药品
|
|
|
- WmScorePackage relateSp = wmScorePackageService.getById(relPkgId);
|
|
|
- if (relateSp != null) {
|
|
|
- wmScorePackage.setDrugtable(relateSp.getDrugtable());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- SysDept sysDeptRelatedService = sysDeptService.getById(Integer.valueOf(wmScorePackage.getRelatedService()));
|
|
|
- if (CharSequenceUtil.isBlank(wmScorePackage.getTypeid())) {
|
|
|
- WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.selectByDeptId(deptId);
|
|
|
- if (wmDaDrugEnt != null) {
|
|
|
- if (null != wmScorePackage.getAcceptSug() && !wmScorePackage.getAcceptSug().equals(wmDaDrugEnt.getId().toString())) {
|
|
|
- WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getAcceptSug());
|
|
|
- SysDept sysDepts = sysDeptService.getById(wmDaAgent.getDeptId());
|
|
|
- if (sysDepts.getLevel() == 3) {
|
|
|
- wmScorePackage.setLevel1Id(wmDaAgent.getId());
|
|
|
- } else if (sysDepts.getLevel() == 4) {
|
|
|
- wmScorePackage.setLevel2Id(wmDaAgent.getId());
|
|
|
- }
|
|
|
- wmScorePackage.setDeptId(wmDaAgent.getDeptId().toString());
|
|
|
- wmScorePackage.setKfpjf(wmScorePackage.getScore());
|
|
|
- } else if (wmDaDrugEnt.getId().toString().equals(wmScorePackage.getAcceptSug())) {
|
|
|
- wmScorePackage.setDeptId(deptId.toString());
|
|
|
- wmScorePackage.setKfpjf(wmScorePackage.getScore());
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (sysDeptRelatedService.getLevel() == 2) {
|
|
|
- WmDaDrugEnt wmDaDrugEnts = wmDaDrugEntService.selectByDeptId(Integer.valueOf(wmScorePackage.getRelatedService()));
|
|
|
- if (null != wmScorePackage.getAcceptSug() && !wmScorePackage.getAcceptSug().equals(wmDaDrugEnts.getId().toString())) {
|
|
|
- WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getAcceptSug());
|
|
|
- SysDept sysDepts = sysDeptService.getById(wmDaAgent.getDeptId());
|
|
|
-
|
|
|
- if (sysDepts.getLevel() == 3) {
|
|
|
- wmScorePackage.setLevel1Id(wmDaAgent.getId());
|
|
|
- } else if (sysDepts.getLevel() == 4) {
|
|
|
- wmScorePackage.setLevel2Id(wmDaAgent.getId());
|
|
|
- }
|
|
|
- wmScorePackage.setDeptId(wmDaAgent.getDeptId().toString());
|
|
|
- wmScorePackage.setKfpjf(wmScorePackage.getScore());
|
|
|
- } else if (wmScorePackage.getAcceptSug().equals(wmDaDrugEnt.getId().toString())) {
|
|
|
- wmScorePackage.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
|
|
|
- wmScorePackage.setKfpjf(wmScorePackage.getScore());
|
|
|
- }
|
|
|
- } else if (sysDeptRelatedService.getLevel() == 3) {
|
|
|
- WmDaAgent wmDaAgent1 = wmDaAgentService.selectByDeptId(Integer.valueOf(wmScorePackage.getRelatedService()));
|
|
|
- if (null != wmScorePackage.getAcceptSug() && !wmScorePackage.getAcceptSug().equals(wmDaAgent1.getId().toString())) {
|
|
|
- WmDaAgent wmDaAgent = wmDaAgentService.getById(wmScorePackage.getAcceptSug());
|
|
|
- SysDept sysDepts = sysDeptService.getById(wmDaAgent.getDeptId());
|
|
|
- if (sysDepts.getLevel() == 3) {
|
|
|
- wmScorePackage.setLevel1Id(wmDaAgent.getId());
|
|
|
- } else if (sysDepts.getLevel() == 4) {
|
|
|
- wmScorePackage.setLevel2Id(wmDaAgent.getId());
|
|
|
- }
|
|
|
- wmScorePackage.setDeptId(wmDaAgent.getDeptId().toString());
|
|
|
- wmScorePackage.setKfpjf(wmScorePackage.getScore());
|
|
|
- } else if (wmDaAgent1.getId().toString().equals(wmScorePackage.getAcceptSug())) {
|
|
|
- wmScorePackage.setDeptId(deptId.toString());
|
|
|
- wmScorePackage.setKfpjf(wmScorePackage.getScore());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 药企规则ID
|
|
|
- SysDept sysDeptRuleId = sysDeptService.getById(deptId);
|
|
|
- Integer deptLevel = sysDeptRuleId.getLevel();
|
|
|
-
|
|
|
- if (deptLevel == 2) {
|
|
|
- WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.selectByDeptId(sysDeptRuleId.getDeptId());
|
|
|
- if (wmScorePackage.getAcceptSug().equals(wmDaDrugEnt.getId().toString())) {
|
|
|
- wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
|
|
|
- wmScorePackage.setDrugEntId(wmDaDrugEnt.getId());
|
|
|
- } else {
|
|
|
- WmTaskType wmTaskType = new WmTaskType();
|
|
|
- wmTaskType.setRuleId(wmDaDrugEnt.getId() + wmScorePackage.getAcceptSug());
|
|
|
- List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
|
|
|
- if (CollUtil.isNotEmpty(wmTaskTypeList)) {
|
|
|
- wmScorePackage.setRuleId(wmDaDrugEnt.getId() + wmScorePackage.getAcceptSug());
|
|
|
- wmScorePackage.setDrugEntId(wmDaDrugEnt.getId());
|
|
|
- } else {
|
|
|
- log.error("请药企给下级cso分配积分规则");
|
|
|
- return R.failed("请药企给下级cso分配积分规则");
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- } else if (deptLevel == 3) {
|
|
|
- // 一级cso规则ID
|
|
|
- WmDaAgent daAgent = wmDaAgentService.getOne(Wrappers.<WmDaAgent>lambdaQuery()
|
|
|
- .eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
|
|
|
- .eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.getVal())
|
|
|
- .eq(WmDaAgent::getDeptId, String.valueOf(sysDeptRuleId.getDeptId())));
|
|
|
- if (StringUtils.isNotBlank(wmScorePackage.getRelationScoreId())) {
|
|
|
- // 关联了积分包的情况
|
|
|
- WmScorePackage relationScorePackage = wmScorePackageService.getById(wmScorePackage.getRelationScoreId());
|
|
|
- if (relationScorePackage != null) {
|
|
|
- wmScorePackage.setRuleId(relationScorePackage.getRuleId());
|
|
|
- wmScorePackage.setDrugEntId(relationScorePackage.getDrugEntId());
|
|
|
- } else {
|
|
|
- log.error("cso没有分配积分规则");
|
|
|
- return R.failed("cso没有分配积分规则");
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 没有关联积分包的情况
|
|
|
- List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
- .eq(WmTaskType::getRuleId, daAgent.getId()));
|
|
|
- if (CollectionUtil.isNotEmpty(taskTypeList)) {
|
|
|
- wmScorePackage.setRuleId(daAgent.getId().toString());
|
|
|
- wmScorePackage.setDrugEntId(null);
|
|
|
- } else {
|
|
|
- log.error("cso没有分配积分规则");
|
|
|
- return R.failed("cso没有分配积分规则");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 保存积分包
|
|
|
- String typeId = "";
|
|
|
- if (roles.contains(4) || roles.contains(37) || roles.contains(3)) {
|
|
|
- if (deptLevel == 2) {
|
|
|
- typeId = wmScorePackage.getDeptId().equals(deptId.toString()) ? "0" : "1";
|
|
|
- } else if (deptLevel == 3) {
|
|
|
- typeId = wmScorePackage.getDeptId().equals(deptId.toString()) ? "1" : "2";
|
|
|
- }
|
|
|
- }
|
|
|
- wmScorePackage.setTypeid(typeId);
|
|
|
- boolean isAnswer = wmScorePackageService.save(wmScorePackage);
|
|
|
-
|
|
|
- // 发包成功 更新 上级包
|
|
|
- if (isAnswer) {
|
|
|
- if ((roles.contains(4) || roles.contains(37) || roles.contains(3)) && deptLevel == 3) {
|
|
|
- WmScorePackage relPkg = wmScorePackageService.getById(relPkgId);
|
|
|
- // 是当前操作人所在企业的的关联包
|
|
|
- if (relPkg != null && deptId.toString().equals(relPkg.getDeptId())) {
|
|
|
- relPkg.setKfpjf((int) Math.ceil(relPkg.getKfpjf() - wmScorePackage.getScore()));
|
|
|
- // 判断积分包是否被发放 (原有外包业务逻辑,不知道为什么)
|
|
|
- int count = wmScorePackageService.count(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .ne(WmScorePackage::getId, wmScorePackage.getId())
|
|
|
- .eq(WmScorePackage::getId, relPkgId)
|
|
|
- .eq(WmScorePackage::getEnableFlag, "0")
|
|
|
- .notIn(WmScorePackage::getTypeid, 3, 4));
|
|
|
-
|
|
|
- relPkg.setPackageIsConduct(count == 0 ? "0" : "1");
|
|
|
- wmScorePackageService.updateById(relPkg);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // 失败了
|
|
|
- else {
|
|
|
- return R.failed("下发积分包失败");
|
|
|
- }
|
|
|
-
|
|
|
- List<WmScoreTaskType> taskTypeList = wmScorePackage.getWmScoreTaskTypeList();
|
|
|
- if (CollUtil.isNotEmpty(taskTypeList)) {
|
|
|
-
|
|
|
- if (CharSequenceUtil.isBlank(relPkgId) || (CharSequenceUtil.isNotBlank(relPkgId) && deptLevel == 3)) {
|
|
|
- List<WmScoreTaskType> scoreTaskTypes = taskTypeList.stream().map(taskType -> {
|
|
|
- WmScoreTaskType wmScoreTaskType = new WmScoreTaskType();
|
|
|
- wmScoreTaskType.setScoreId(wmScorePackage.getId());
|
|
|
- wmScoreTaskType.setType("1");
|
|
|
- wmScoreTaskType.setTaskTypeId(taskType.getTaskTypeId());
|
|
|
-
|
|
|
- return wmScoreTaskType;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- wmScoreTaskTypeService.deleteByScoreId(wmScorePackage.getId());
|
|
|
- // todo
|
|
|
- wmScoreTaskTypeService.saveBatch(scoreTaskTypes);
|
|
|
- // wmScoreTaskTypeService.batchInsertType(scoreTaskTypes);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if (!relatedScoreId) {
|
|
|
- // 更新积分充值信息
|
|
|
- long currentScore = deptRecharge.getScore() - (long) wmScorePackage.getScore();
|
|
|
- int updateRecharge = sysDeptRechargeMapper.update(null, Wrappers.<SysDeptRecharge>lambdaUpdate()
|
|
|
- .eq(SysDeptRecharge::getId, deptRecharge.getId())
|
|
|
- .eq(SysDeptRecharge::getVersion, deptRecharge.getVersion())
|
|
|
- .set(SysDeptRecharge::getScore, currentScore)
|
|
|
- .set(SysDeptRecharge::getVersion, deptRecharge.getVersion() + 1)
|
|
|
- .set(SysDeptRecharge::getUpdateTime, now)
|
|
|
- .set(SysDeptRecharge::getUpdateUser, userId));
|
|
|
- if (updateRecharge <= 0) {
|
|
|
- log.warn("更新积分充值信息失败");
|
|
|
- throw new RuntimeException("操作失败,请重试");
|
|
|
- }
|
|
|
- // 更新积分充值记录
|
|
|
- SysDeptRechargeRecord rechargeRecord = new SysDeptRechargeRecord();
|
|
|
- rechargeRecord.setDeptId(deptId);
|
|
|
- rechargeRecord.setChangeScore((long) -wmScorePackage.getScore());
|
|
|
- rechargeRecord.setRechargeId(deptRecharge.getId());
|
|
|
- rechargeRecord.setPackageId(wmScorePackage.getId());
|
|
|
- rechargeRecord.setPackageType(RechargeRecordPackageType.TO_ENTERPRISE);
|
|
|
- rechargeRecord.setType(RechargeRecordType.SEND_PACKAGE_DEPT);
|
|
|
- rechargeRecord.setCurrentScore(currentScore);
|
|
|
- rechargeRecord.setCreateUser(userId);
|
|
|
- rechargeRecord.setCreateTime(now);
|
|
|
- sysDeptRechargeRecordMapper.insert(rechargeRecord);
|
|
|
- }
|
|
|
-
|
|
|
- // 保存关联的试卷
|
|
|
- if (CollUtil.isNotEmpty(wmScorePackage.getQuizIds())) {
|
|
|
- pkgQuizRelationService.createPkgQuizzes(wmScorePackage.getQuizIds(), Integer.parseInt(wmScorePackage.getId()));
|
|
|
- }
|
|
|
-
|
|
|
- // 判断是否有关联关系
|
|
|
- if (CollUtil.isNotEmpty(wmScorePackage.getQuizRelationIds())) {
|
|
|
- pkgQuizRelationService.copyQuizRelations(wmScorePackage.getQuizRelationIds(), Integer.parseInt(wmScorePackage.getId()));
|
|
|
- }
|
|
|
-
|
|
|
- // 关联计划
|
|
|
- SysPlanPkg rel = new SysPlanPkg();
|
|
|
- rel.setPlanId(planId);
|
|
|
- rel.setPkgId(Integer.valueOf(wmScorePackage.getId()));
|
|
|
- rel.setCreateTime(LocalDateTime.now());
|
|
|
-
|
|
|
- planPkgService.save(rel);
|
|
|
-
|
|
|
- // 保存积分包任务类型数量限制 && 异步生成合同
|
|
|
- List<Map<String, Object>> typeQtyList = wmScorePackage.getPkgTaskTypeQtyList();
|
|
|
- if (CollUtil.isNotEmpty(typeQtyList)) {
|
|
|
-
|
|
|
- List<WmPackageTaskTypeQty> collect = typeQtyList.stream().map(m -> {
|
|
|
- WmPackageTaskTypeQty typeQty = new WmPackageTaskTypeQty();
|
|
|
- typeQty.setPackageId(Integer.valueOf(wmScorePackage.getId()));
|
|
|
- typeQty.setTaskTypeName((String) m.get("taskTypeName"));
|
|
|
- typeQty.setPrice((Integer) m.get("price"));
|
|
|
- typeQty.setTaskTypeId((Integer) m.get("taskTypeId"));
|
|
|
- typeQty.setQty((Integer) m.get("qty"));
|
|
|
- typeQty.setCreateTime(LocalDateTime.now());
|
|
|
- return typeQty;
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
- packageTaskTypeQtyService.saveBatch(collect);
|
|
|
-
|
|
|
- // 异步生成合同
|
|
|
- applicationEventPublisher.publishEvent(new PackageContractEvent(Integer.valueOf(wmScorePackage.getId()), collect));
|
|
|
|
|
|
+ PackageContractEvent contractEvent = wmScorePackageService.saveEntPkg(wmScorePackage);
|
|
|
|
|
|
+ // 异步生成合同
|
|
|
+ if (contractEvent != null && CollUtil.isNotEmpty(contractEvent.getTaskTypeQtiyList())) {
|
|
|
+ contractEvent.setCreator(SecurityUtils.getUser().getUsername());
|
|
|
+ applicationEventPublisher.publishEvent(contractEvent);
|
|
|
}
|
|
|
|
|
|
return R.ok();
|