|
@@ -16,6 +16,7 @@
|
|
*/
|
|
*/
|
|
package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.csp.sentinel.util.StringUtil;
|
|
import com.alibaba.csp.sentinel.util.StringUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -24,6 +25,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatusBatch;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
@@ -34,14 +36,17 @@ import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageStatusMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageStatusMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -52,6 +57,7 @@ import java.util.stream.Collectors;
|
|
* @author pigx code generator
|
|
* @author pigx code generator
|
|
* @date 2020-07-17 23:32:01
|
|
* @date 2020-07-17 23:32:01
|
|
*/
|
|
*/
|
|
|
|
+@Slf4j
|
|
@Service
|
|
@Service
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageStatusMapper, WmScorePackageStatus> implements WmScorePackageStatusService {
|
|
public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageStatusMapper, WmScorePackageStatus> implements WmScorePackageStatusService {
|
|
@@ -415,4 +421,141 @@ public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageS
|
|
public List<Map<String, String>> getDeptReceiveUserList(String deptId, String packageType1, String packageType2) {
|
|
public List<Map<String, String>> getDeptReceiveUserList(String deptId, String packageType1, String packageType2) {
|
|
return wmScorePackageStatusMapper.getDeptReceiveUserList(deptId, packageType1, packageType2);
|
|
return wmScorePackageStatusMapper.getDeptReceiveUserList(deptId, packageType1, packageType2);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 批量审核
|
|
|
|
+ * @param statusBatch 批量审核
|
|
|
|
+ * @return 审核结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Map<String, Integer> approvalStatusBatch(WmScorePackageStatusBatch statusBatch) {
|
|
|
|
+ // 封装结果实体
|
|
|
|
+ Map<String, Integer> result = new HashMap<>(2);
|
|
|
|
+ result.put("operation", 0);
|
|
|
|
+ result.put("remain", 0);
|
|
|
|
+
|
|
|
|
+ // 获取批量操作id集合
|
|
|
|
+ List<Integer> idList =
|
|
|
|
+ StrUtil.split(statusBatch.getBatchIds(), StrUtil.COMMA)
|
|
|
|
+ .stream()
|
|
|
|
+ .map(Integer::parseInt)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ for (Integer id : idList) {
|
|
|
|
+ oneByOne(id, statusBatch.getStatus(), result);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void oneByOne(Integer statusId, WmScorePackageStatusBatch.ApprovalStatus approvalStatus, Map<String, Integer> result) {
|
|
|
|
+
|
|
|
|
+ // 获取结果数
|
|
|
|
+ int operation = result.get("operation");
|
|
|
|
+ int remain = result.get("remain");
|
|
|
|
+
|
|
|
|
+ // 查询领包记录
|
|
|
|
+ WmScorePackageStatus status = this.getById(statusId);
|
|
|
|
+
|
|
|
|
+ // 获取积分包
|
|
|
|
+ WmScorePackage wmScorePackage = wmScorePackageMapper.selectById(status.getPackageId());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ log.warn("开始审批,id:[{}], packageId:[{}]", status, wmScorePackage.getId());
|
|
|
|
+ //定额
|
|
|
|
+ if (StrUtil.equals("1", wmScorePackage.getPackageType1())) {
|
|
|
|
+ //定额包一人一包,所以score=userscore
|
|
|
|
+ status.setUserScore(String.valueOf(wmScorePackage.getScore()));
|
|
|
|
+ status.setTaskNum(0);
|
|
|
|
+ } else {
|
|
|
|
+ status.setTaskNum(wmScorePackage.getTaskNum());
|
|
|
|
+ status.setUserScore(String.valueOf(wmScorePackage.getUserScore()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ status.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ status.setUserId(null);
|
|
|
|
+ this.updateById(status);
|
|
|
|
+
|
|
|
|
+ switch (approvalStatus) {
|
|
|
|
+ case PASSED:
|
|
|
|
+ //进行中
|
|
|
|
+ wmScorePackage.setScorePackageStatus("3");
|
|
|
|
+ // 获取全部的领包记录
|
|
|
|
+ List<WmScorePackageStatus> sList =
|
|
|
|
+ this.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
|
+ .eq(WmScorePackageStatus::getPackageId, wmScorePackage.getId())
|
|
|
|
+ .eq(WmScorePackageStatus::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
|
+ .eq(WmScorePackageStatus::getEnableFlag, CommonConstants.STATUS_NORMAL)
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ int targetNum = wmScorePackage.getUserNum() == null ? 1 : wmScorePackage.getUserNum();
|
|
|
|
+ // 如果领取记录不大于可领取数
|
|
|
|
+ if (sList.size() <= targetNum) {
|
|
|
|
+ this.update(Wrappers.<WmScorePackageStatus>lambdaUpdate()
|
|
|
|
+ .set(WmScorePackageStatus::getStatus, "3")//审核不通过
|
|
|
|
+ .set(WmScorePackageStatus::getTaskAddFlag, "0")//不允许新增任务
|
|
|
|
+ .eq(WmScorePackageStatus::getPackageId, status.getPackageId())
|
|
|
|
+ .eq(WmScorePackageStatus::getStatus, "1")
|
|
|
|
+ .eq(WmScorePackageStatus::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
|
+ .eq(WmScorePackageStatus::getEnableFlag, CommonConstants.STATUS_NORMAL)
|
|
|
|
+ );
|
|
|
|
+ wmScorePackage.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ wmScorePackage.setReceiveDate(LocalDateTime.now());
|
|
|
|
+ wmScorePackage.setIsReceive("1");//不允许接单
|
|
|
|
+ wmScorePackageMapper.updateById(wmScorePackage);
|
|
|
|
+ operation += 1;
|
|
|
|
+ } else {
|
|
|
|
+ remain += 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+ case REJECTED:
|
|
|
|
+ status.setTaskAddFlag("0");//不可以新增任务
|
|
|
|
+ status.setUserId(null);
|
|
|
|
+ this.updateById(status);
|
|
|
|
+ operation += 1;
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ remain += 1;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ int total = this.count(Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
|
+ .eq(WmScorePackageStatus::getPackageId, status.getPackageId())
|
|
|
|
+ .eq(WmScorePackageStatus::getStatus, "2")
|
|
|
|
+ .eq(WmScorePackageStatus::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
|
+ .eq(WmScorePackageStatus::getEnableFlag, CommonConstants.STATUS_NORMAL)
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ //有人接单成功
|
|
|
|
+ if (total >= 1) {
|
|
|
|
+ wmScorePackage.setScorePackageStatus("3");//进行中
|
|
|
|
+ if (total >= wmScorePackage.getUserNum()) {//人数已满
|
|
|
|
+ wmScorePackage.setIsReceive("1");//不允许接单
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //没有人接单成功
|
|
|
|
+ else {
|
|
|
|
+
|
|
|
|
+ int total1 =
|
|
|
|
+ this.count(Wrappers.<WmScorePackageStatus>lambdaQuery().eq(WmScorePackageStatus::getPackageId,
|
|
|
|
+ status.getPackageId()
|
|
|
|
+ ).eq(WmScorePackageStatus::getStatus, "1"));
|
|
|
|
+ if (total1 == 0) {
|
|
|
|
+ wmScorePackage.setScorePackageStatus("1");//已分派待申领
|
|
|
|
+ } else {
|
|
|
|
+ wmScorePackage.setScorePackageStatus("2");//已申领待审批
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ wmScorePackageMapper.updateById(wmScorePackage);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ result.put("operation", operation);
|
|
|
|
+ result.put("remain", remain);
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|