浏览代码

feat: 拆包需求完善

李学松 2 年之前
父节点
当前提交
ee66da8c8f

+ 8 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -3183,10 +3183,16 @@ public class WmScorePackageController {
 	 * @param unpackDTO 拆包参数
 	 * @return 拆包结果
 	 */
+	@SysLog("拆包")
 	@PostMapping("/unpack")
 	public R<?> unpack(@Validated @RequestBody UnpackDTO unpackDTO) {
-		wmScorePackageService.unpack(unpackDTO);
-		return R.ok();
+		log.info("======================================拆包开始执行===================================");
+		log.info("拆包请求参数:{}", unpackDTO);
+
+		Boolean unpack = wmScorePackageService.unpack(unpackDTO);
+
+		log.info("======================================拆包执行完成===================================");
+		return R.ok(unpack);
 	}
 
 }

+ 3 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmTask.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -36,7 +37,7 @@ import java.util.List;
  * @date 2020-06-25 23:35:25
  */
 @Data
-@TableName("wm_task")
+@TableName(value = "wm_task", autoResultMap = true)
 @EqualsAndHashCode(callSuper = true)
 @ApiModel(value = "任务表")
 public class WmTask extends Model<WmTask> {
@@ -189,6 +190,7 @@ public class WmTask extends Model<WmTask> {
 
 	private String platAuditStatus;
 
+	@TableField(typeHandler = JacksonTypeHandler.class)
 	private List<String> extIds;
 
 	private String taskInfoImg;

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

@@ -25,13 +25,11 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.vo.WmScorePackageVO;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
-import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UnpackDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
 import com.qunzhixinxi.hnqz.common.core.util.R;
-import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDate;
 import java.util.List;
@@ -192,6 +190,7 @@ public interface WmScorePackageService extends IService<WmScorePackage> {
 	 * 拆包
 	 *
 	 * @param unpackDTO 拆包参数
+	 * @return 是否成功
 	 */
-	void unpack(UnpackDTO unpackDTO);
+	Boolean unpack(UnpackDTO unpackDTO);
 }

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

@@ -19,7 +19,6 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -58,6 +57,7 @@ import com.qunzhixinxi.hnqz.common.data.datascope.DataScope;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
@@ -82,6 +82,7 @@ import static com.qunzhixinxi.hnqz.admin.enums.ReportEnum.REPORT_STATUS_END;
  * @author gaoyanng
  * @date 2020-06-25 23:35:42
  */
+@Slf4j
 @Service
 @AllArgsConstructor
 public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper, WmScorePackage> implements WmScorePackageService {
@@ -2493,10 +2494,11 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 	 * 拆包
 	 *
 	 * @param unpackDTO 拆包参数
+	 * @return 是否成功
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void unpack(UnpackDTO unpackDTO) {
+	public Boolean unpack(UnpackDTO unpackDTO) {
 		// 原积分包
 		WmScorePackage scorePackage = this.getById(unpackDTO.getScorePackageId());
 		if (scorePackage == null) {
@@ -2530,6 +2532,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		}
 		// 已选择的任务
 		List<WmTask> selectTaskList = wmTaskMapper.selectBatchIds(unpackDTO.getSelectTaskIds());
+		if (CollUtil.isEmpty(selectTaskList)) {
+			throw new RuntimeException("已选择的任务不存在");
+		}
 		// 校验已选择的任务分值
 		int selectTaskScore = selectTaskList.stream().mapToInt(WmTask::getScore).sum();
 		if (!unpackDTO.getSelectTaskScore().equals(selectTaskScore)) {
@@ -2576,8 +2581,21 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		newScorePackage.setReceiveDate(now);
 		newScorePackage.setScore(unpackDTO.getNewPackageScore());
 		newScorePackage.setScorePackageName(String.format("%s-1", scorePackage.getScorePackageName(), "1"));
+		newScorePackage.setRemark(String.format("拆包自原积分包id=%s", unpackDTO.getScorePackageId()));
+		log.info("创建新积分包参数:{}", newScorePackage);
 		this.save(newScorePackage);
 
+		// 更新原积分包包值
+		WmScorePackage updateOldPackage = new WmScorePackage();
+		updateOldPackage.setId(unpackDTO.getScorePackageId());
+		updateOldPackage.setScore(remainPackageScore);
+		updateOldPackage.setUpdateTime(now);
+		updateOldPackage.setUpdateUser(operatorId);
+		updateOldPackage.setRemark(String.format("%s; 原积分包值%s更新为%s",
+				StrUtil.emptyIfNull(updateOldPackage.getRemark()), scorePackage.getScore(), remainPackageScore));
+		log.info("更新原积分包参数:{}", updateOldPackage);
+		this.updateById(updateOldPackage);
+
 		// 原领包记录
 		WmScorePackageStatus oldScorePackageStatus = wmScorePackageStatusService.getOne(Wrappers.<WmScorePackageStatus>lambdaQuery()
 				.eq(WmScorePackageStatus::getPackageId, unpackDTO.getScorePackageId())
@@ -2591,6 +2609,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		newScorePackageStatus.setCreateUser(operatorId);
 		newScorePackageStatus.setUpdateUser(null);
 		newScorePackageStatus.setUpdateTime(null);
+		log.info("创建新领包记录参数:{}", newScorePackage);
 		wmScorePackageStatusService.save(newScorePackageStatus);
 
 		// 任务关联到新积分包
@@ -2600,8 +2619,11 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			updateTask.setScorePackageId(newScorePackage.getId());
 			updateTask.setUpdateUser(String.valueOf(operatorId));
 			updateTask.setUpdateTime(now);
-//			updateTask.set
+			updateTask.setExtIds(Collections.singletonList(String.format("拆包任务,原积分包id=%s", unpackDTO.getScorePackageId())));
+			log.info("更新任务参数:{}", updateTask);
+			wmTaskMapper.updateById(updateTask);
 		});
-		// TODO
+
+		return Boolean.TRUE;
 	}
 }