|
@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
import cn.hutool.core.util.DesensitizedUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -21,12 +20,14 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageSettleNote;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.dto.NotifyByOneSelfDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleInput;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.model.excel.SettlementProofModel;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.model.excel.WmScorePackageSettleExcelModel;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.vo.SettleFinancialReviewSettleDetailVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.vo.SettleFinancialReviewVO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.DeptPermissionEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageFinishStatusEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
@@ -909,56 +910,71 @@ public class WmPayOffController {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 手动回调
|
|
|
+ * 结算状态手动回调
|
|
|
*
|
|
|
- * @param input 修改的对象信息
|
|
|
+ * @param dto 修改的对象信息
|
|
|
* @return 结算操作结果
|
|
|
*/
|
|
|
- @SysLog("手动回调")
|
|
|
+ @SysLog("结算状态手动回调")
|
|
|
@PostMapping("/notify-by-oneself")
|
|
|
- public R<Boolean> notifyByOneself(@RequestBody WmScorePackageSettleNote input) {
|
|
|
+ public R<?> notifyByOneself(@RequestBody NotifyByOneSelfDTO dto) {
|
|
|
// 开始输出
|
|
|
- log.info("===== 手工回调开始 =====");
|
|
|
+ log.info("===== 手工回调开始 参数:{} =====", dto);
|
|
|
|
|
|
// 初始化变量命名
|
|
|
- Integer settleNoteId = input.getId();
|
|
|
- LocalDateTime notifyTime = input.getNotifyTime();
|
|
|
- Integer settleNoteStatus = input.getSettleNoteStatus();
|
|
|
+ String packageId = dto.getPackageId();
|
|
|
+ String scorePackageName = dto.getScorePackageName();
|
|
|
+ LocalDateTime notifyTime = dto.getNotifyTime();
|
|
|
+ Integer settleStatus = dto.getSettleStatus();
|
|
|
|
|
|
- // 初始化内部参数
|
|
|
- Integer userid = SecurityUtils.getUser().getId();
|
|
|
- String remark = ("手动回调,操作人" + userid);
|
|
|
-
|
|
|
- // 主键id校验,防止异常
|
|
|
- if (null == settleNoteId) {
|
|
|
- R.failed("积分包ID不能为空");
|
|
|
+ if (StrUtil.isAllBlank(packageId, scorePackageName)) {
|
|
|
+ throw new BizException("积分包ID或积分包名称不能同时为空");
|
|
|
}
|
|
|
|
|
|
// 信息校验,防止异常
|
|
|
- if (null == notifyTime ||
|
|
|
- null == settleNoteStatus
|
|
|
- ) {
|
|
|
- R.failed("结算修改信息不能为空");
|
|
|
+ if (null == notifyTime || null == settleStatus) {
|
|
|
+ throw new BizException("结算修改信息不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> packageIdList = null;
|
|
|
+ if (StrUtil.isNotBlank(scorePackageName)) {
|
|
|
+ List<String> spnList = StrUtil.splitTrim(scorePackageName, ",");
|
|
|
+ List<WmScorePackage> packages = wmScorePackageMapper.selectList(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .in(WmScorePackage::getScorePackageName, spnList)
|
|
|
+ .eq(WmScorePackage::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
+ if (CollUtil.isEmpty(packages) || packages.size() != spnList.size()) {
|
|
|
+ throw new BizException("积分包名称不存在或同一个积分包名称存在两个以上: " + scorePackageName);
|
|
|
+ }
|
|
|
+ packageIdList = packages.stream().map(WmScorePackage::getId).collect(Collectors.toList());
|
|
|
+ } else {
|
|
|
+ packageIdList = StrUtil.splitTrim(packageId, ",");
|
|
|
}
|
|
|
|
|
|
+ // 初始化内部参数
|
|
|
+ Integer userid = SecurityUtils.getUser().getId();
|
|
|
+ String remark = ("手动回调,操作人" + userid);
|
|
|
+
|
|
|
// 校验数据有效性
|
|
|
// 查询结算中的数据
|
|
|
- List<WmScorePackageSettleNote> settleNoteByidList = wmScorePackageSettleNoteService.getSettleNoteById(input.getId(), Integer.parseInt(SettleStatusEnum.SETTLE_STATUS_SUBMIT.getVal()));
|
|
|
+ List<WmScorePackageSettleNote> settleNoteByidList = wmScorePackageSettleNoteService.list(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
|
|
|
+ .in(WmScorePackageSettleNote::getPackageId, packageIdList)
|
|
|
+ .eq(WmScorePackageSettleNote::getSettleNoteStatus, Integer.parseInt(SettleStatusEnum.SETTLE_STATUS_SUBMIT.getVal())));
|
|
|
log.info("结算信息查询:{}", settleNoteByidList);
|
|
|
if (CollUtil.isEmpty(settleNoteByidList)) {
|
|
|
- return R.failed("修改的目标数据状态异常,不能修改");
|
|
|
+ throw new BizException("结算信息不存在或状态不是已提交: " + scorePackageName);
|
|
|
}
|
|
|
|
|
|
- String packageId = settleNoteByidList.get(0).getPackageId();
|
|
|
+ settleNoteByidList.forEach(note -> {
|
|
|
+ // 更新结算数据
|
|
|
+ wmScorePackageSettleNoteService.updateSettleNoteById(note.getPackageId(), note.getId(), settleStatus, remark, notifyTime);
|
|
|
+ });
|
|
|
|
|
|
- // 更新结算数据
|
|
|
- boolean updateSettleResult = wmScorePackageSettleNoteService.updateSettleNoteById(packageId, settleNoteId, settleNoteStatus, remark, notifyTime);
|
|
|
|
|
|
// 结束输出
|
|
|
log.info("===== 手工回调结束 =====");
|
|
|
|
|
|
// 返回更新结果
|
|
|
- return R.ok(updateSettleResult);
|
|
|
+ return R.ok();
|
|
|
}
|
|
|
|
|
|
}
|