|
@@ -1,11 +1,25 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDistributionDao;
|
|
|
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionDetailService;
|
|
|
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionService;
|
|
|
+import com.rongwei.bscommon.sys.utils.CommonUtils;
|
|
|
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
|
|
|
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
|
|
|
import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
|
|
|
import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementRecoredDao;
|
|
|
import com.rongwei.bscommon.sys.service.ZhcxPmqManagementRecoredService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 三单管理_单据记录 服务实现类
|
|
@@ -17,4 +31,58 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class ZhcxPmqManagementRecoredServiceImpl extends ServiceImpl<ZhcxPmqManagementRecoredDao, ZhcxPmqManagementRecoredDo> implements ZhcxPmqManagementRecoredService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ZhcxPmqManagementDistributionService zhcxPmqManagementDistributionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ZhcxPmqManagementDistributionDetailService zhcxPmqManagementDistributionDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ZhcxPmqManagementDistributionDao zhcxPmqManagementDistributionDao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R generateDistributionDetail(Map<String, Object> map) {
|
|
|
+ // 第二层主表id
|
|
|
+ String id = (String) map.get("id");
|
|
|
+ // 关闭状态
|
|
|
+ String closestatus = (String) map.get("closestatus");
|
|
|
+ // 获取当前操作人
|
|
|
+ SysUserVo currentUser = CommonUtils.getCurrentUser();
|
|
|
+ if(Objects.isNull(currentUser) || StringUtils.isEmpty(currentUser.getId())){
|
|
|
+ return R.error("无法获取当前操作人");
|
|
|
+ }
|
|
|
+ // 生成第2.5层数据结果
|
|
|
+ List<ZhcxPmqManagementDistributionDo> distributions = baseMapper.getDistributionsByPid(id);
|
|
|
+ if(distributions.isEmpty()){
|
|
|
+ return R.ok("暂无需要派单");
|
|
|
+ }
|
|
|
+ // 第三层数据
|
|
|
+ List<ZhcxPmqManagementDistributionDetailDo> detailDos = new ArrayList<>();
|
|
|
+ for (ZhcxPmqManagementDistributionDo distribution : distributions) {
|
|
|
+ distribution.setId(SecurityUtil.getUUID());
|
|
|
+ distribution.setConfirmerid(currentUser.getId());
|
|
|
+ distribution.setConfirmer(currentUser.getName());
|
|
|
+ distribution.setStatus(closestatus);
|
|
|
+ // 生成第三层数据结构
|
|
|
+ ZhcxPmqManagementDistributionDetailDo detailDo = new ZhcxPmqManagementDistributionDetailDo();
|
|
|
+ BeanUtil.copyProperties(distribution,detailDo);
|
|
|
+ detailDo.setId(SecurityUtil.getUUID());
|
|
|
+ detailDo.setDistributid(distribution.getId());
|
|
|
+ detailDo.setClosedata(new Date());
|
|
|
+ detailDos.add(detailDo);
|
|
|
+ }
|
|
|
+ // 保存2.5层
|
|
|
+ zhcxPmqManagementDistributionService.saveBatch(distributions);
|
|
|
+ // 保存第三层数据
|
|
|
+ zhcxPmqManagementDistributionDetailService.saveBatch(detailDos);
|
|
|
+ // 更新第二层的派单状态
|
|
|
+ //zhcxPmqManagementDistributionDao.updateDispatchStatus(id);
|
|
|
+ ZhcxPmqManagementRecoredDo recoredDo = this.getById(id);
|
|
|
+ recoredDo.setDispatchstatus("1"); // 已派单
|
|
|
+ recoredDo.setClosestatus(closestatus);
|
|
|
+ this.updateById(recoredDo);
|
|
|
+ // 更新关闭状态
|
|
|
+ zhcxPmqManagementDistributionDetailService.updateClosedStateInSecondFloor(id);
|
|
|
+ return R.ok("派单成功");
|
|
|
+ }
|
|
|
}
|