|
@@ -1,30 +1,32 @@
|
|
|
package com.sckw.contract.service;
|
|
package com.sckw.contract.service;
|
|
|
|
|
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.contract.dao.KwcContractLogisticsMapper;
|
|
import com.sckw.contract.dao.KwcContractLogisticsMapper;
|
|
|
import com.sckw.contract.model.dto.req.QueryListReqDto;
|
|
import com.sckw.contract.model.dto.req.QueryListReqDto;
|
|
|
|
|
+import com.sckw.contract.model.dto.res.QueryListResDto;
|
|
|
import com.sckw.contract.model.entity.KwcContractLogistics;
|
|
import com.sckw.contract.model.entity.KwcContractLogistics;
|
|
|
import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
|
|
import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
|
|
|
import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
|
|
import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
|
|
|
import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
|
|
import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
|
|
|
import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
|
|
import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
|
|
|
import com.sckw.contract.model.vo.req.QueryListReqVo;
|
|
import com.sckw.contract.model.vo.req.QueryListReqVo;
|
|
|
-import com.sckw.contract.model.vo.res.ContractLogisticsDetailResVo;
|
|
|
|
|
-import com.sckw.contract.model.vo.res.LogisticsBaseInfoResVo;
|
|
|
|
|
-import com.sckw.contract.model.vo.res.LogisticsGoodsInfoResVo;
|
|
|
|
|
-import com.sckw.contract.model.vo.res.QueryListResVo;
|
|
|
|
|
|
|
+import com.sckw.contract.model.vo.res.*;
|
|
|
|
|
+import com.sckw.core.common.enums.enums.DictEnum;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.SystemException;
|
|
import com.sckw.core.exception.SystemException;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.enums.ContractStatusEnum;
|
|
import com.sckw.core.model.enums.ContractStatusEnum;
|
|
|
import com.sckw.core.model.enums.CooperateTypeEnum;
|
|
import com.sckw.core.model.enums.CooperateTypeEnum;
|
|
|
-import com.sckw.core.model.enums.SigningWayEnum;
|
|
|
|
|
|
|
+import com.sckw.core.model.enums.EntTypeEnum;
|
|
|
import com.sckw.core.model.page.PageHelperUtil;
|
|
import com.sckw.core.model.page.PageHelperUtil;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
import com.sckw.core.utils.BeanUtils;
|
|
import com.sckw.core.utils.BeanUtils;
|
|
@@ -34,8 +36,11 @@ import com.sckw.core.utils.StringUtils;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.excel.utils.EasyExcelUtil;
|
|
import com.sckw.excel.utils.EasyExcelUtil;
|
|
|
|
|
+import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
|
|
+import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
|
|
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -67,6 +72,9 @@ public class KwcContractLogisticsService {
|
|
|
@DubboReference(version = "2.0.0", group = "design", check = false)
|
|
@DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
private RemoteSystemService remoteSystemService;
|
|
private RemoteSystemService remoteSystemService;
|
|
|
|
|
|
|
|
|
|
+ @DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
|
|
+ private GoodsInfoService goodsInfoService;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* @param reqVo 新增入参
|
|
* @param reqVo 新增入参
|
|
|
* @desc: 新增托运合同
|
|
* @desc: 新增托运合同
|
|
@@ -76,7 +84,7 @@ public class KwcContractLogisticsService {
|
|
|
@Transactional(rollbackFor = {})
|
|
@Transactional(rollbackFor = {})
|
|
|
public Long addCheckedContract(ContractLogisticsReqVo reqVo) {
|
|
public Long addCheckedContract(ContractLogisticsReqVo reqVo) {
|
|
|
LogisticsBaseInfoReqVo baseInfo = reqVo.getBaseInfo();
|
|
LogisticsBaseInfoReqVo baseInfo = reqVo.getBaseInfo();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//创建合同
|
|
//创建合同
|
|
|
KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(baseInfo, reqVo.getRemark(), reqVo.getPId());
|
|
KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(baseInfo, reqVo.getRemark(), reqVo.getPId());
|
|
|
long contactId = new IdWorker(1L).nextId();
|
|
long contactId = new IdWorker(1L).nextId();
|
|
@@ -102,21 +110,12 @@ public class KwcContractLogisticsService {
|
|
|
kwcContractLogistics.setEntId(LoginUserHolder.getEntId());
|
|
kwcContractLogistics.setEntId(LoginUserHolder.getEntId());
|
|
|
kwcContractLogistics.setContractNo(baseInfo.getContractCode());
|
|
kwcContractLogistics.setContractNo(baseInfo.getContractCode());
|
|
|
kwcContractLogistics.setName(baseInfo.getContractName());
|
|
kwcContractLogistics.setName(baseInfo.getContractName());
|
|
|
- kwcContractLogistics.setSigningWay(SigningWayEnum.getName(baseInfo.getSigningWay()).getName());
|
|
|
|
|
- SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.CHARGING_TYPE.getType(), baseInfo.getCharging());
|
|
|
|
|
- if (Objects.nonNull(sysDictResDto)) {
|
|
|
|
|
- kwcContractLogistics.setCharging(sysDictResDto.getId());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-// remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TRADE_TYPE, baseInfo.getT)
|
|
|
|
|
-// kwcContractLogistics.setTrading(pid);
|
|
|
|
|
|
|
+ kwcContractLogistics.setSigningWay(baseInfo.getSigningWay());
|
|
|
|
|
+ kwcContractLogistics.setCharging(baseInfo.getCharging());
|
|
|
kwcContractLogistics.setStartTime(baseInfo.getStartTime());
|
|
kwcContractLogistics.setStartTime(baseInfo.getStartTime());
|
|
|
kwcContractLogistics.setEndTime(baseInfo.getEndTime());
|
|
kwcContractLogistics.setEndTime(baseInfo.getEndTime());
|
|
|
kwcContractLogistics.setAmount(new BigDecimal("0"));
|
|
kwcContractLogistics.setAmount(new BigDecimal("0"));
|
|
|
kwcContractLogistics.setPerformedAmount(new BigDecimal("0"));
|
|
kwcContractLogistics.setPerformedAmount(new BigDecimal("0"));
|
|
|
- kwcContractLogistics.setSigningUrl("");
|
|
|
|
|
- kwcContractLogistics.setSignedUrl("");
|
|
|
|
|
- kwcContractLogistics.setSigningNo("");
|
|
|
|
|
kwcContractLogistics.setContractPid(pid);
|
|
kwcContractLogistics.setContractPid(pid);
|
|
|
kwcContractLogistics.setRemark(remark);
|
|
kwcContractLogistics.setRemark(remark);
|
|
|
kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
|
|
kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
|
|
@@ -145,9 +144,9 @@ public class KwcContractLogisticsService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * @param id 主键
|
|
|
* @return ContractLogisticsDetailResVo
|
|
* @return ContractLogisticsDetailResVo
|
|
|
* @desc 合同详情
|
|
* @desc 合同详情
|
|
|
- * @param id 主键
|
|
|
|
|
* @author czh
|
|
* @author czh
|
|
|
* @date 2023/7/16
|
|
* @date 2023/7/16
|
|
|
*/
|
|
*/
|
|
@@ -179,11 +178,11 @@ public class KwcContractLogisticsService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //logisticsBaseInfoResVo.setChargingName();
|
|
|
|
|
|
|
+ logisticsBaseInfoResVo.setChargingName(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(), String.valueOf(kwcContractLogistics.getCharging())));
|
|
|
logisticsBaseInfoResVo.setContractCode(kwcContractLogistics.getContractNo());
|
|
logisticsBaseInfoResVo.setContractCode(kwcContractLogistics.getContractNo());
|
|
|
logisticsBaseInfoResVo.setContractName(kwcContractLogistics.getName());
|
|
logisticsBaseInfoResVo.setContractName(kwcContractLogistics.getName());
|
|
|
logisticsBaseInfoResVo.setEndTime(kwcContractLogistics.getEndTime());
|
|
logisticsBaseInfoResVo.setEndTime(kwcContractLogistics.getEndTime());
|
|
|
- logisticsBaseInfoResVo.setSigningWayName(kwcContractLogistics.getSigningWay());
|
|
|
|
|
|
|
+ logisticsBaseInfoResVo.setSigningWayName(DictEnum.getLabel(DictTypeEnum.SIGNING_WAY.getType(), String.valueOf(kwcContractLogistics.getSigningWay())));
|
|
|
logisticsBaseInfoResVo.setStartTime(kwcContractLogistics.getStartTime());
|
|
logisticsBaseInfoResVo.setStartTime(kwcContractLogistics.getStartTime());
|
|
|
contractLogisticsDetailResVo.setBaseInfo(logisticsBaseInfoResVo);
|
|
contractLogisticsDetailResVo.setBaseInfo(logisticsBaseInfoResVo);
|
|
|
}
|
|
}
|
|
@@ -192,18 +191,56 @@ public class KwcContractLogisticsService {
|
|
|
List<KwcContractLogisticsGoods> kwcContractLogisticsGoodsList = kwcContractLogisticsGoodsService.queryGoodsInfoByContractId(kwcContractLogistics.getId());
|
|
List<KwcContractLogisticsGoods> kwcContractLogisticsGoodsList = kwcContractLogisticsGoodsService.queryGoodsInfoByContractId(kwcContractLogistics.getId());
|
|
|
if (CollectionUtils.isNotEmpty(kwcContractLogisticsGoodsList)) {
|
|
if (CollectionUtils.isNotEmpty(kwcContractLogisticsGoodsList)) {
|
|
|
List<Long> goodsIdList = kwcContractLogisticsGoodsList.stream().map(KwcContractLogisticsGoods::getGoodsId).toList();
|
|
List<Long> goodsIdList = kwcContractLogisticsGoodsList.stream().map(KwcContractLogisticsGoods::getGoodsId).toList();
|
|
|
|
|
+ Map<Long, KwpGoods> goodsMap = goodsInfoService.getGoodsByIds(goodsIdList);
|
|
|
|
|
+
|
|
|
|
|
+ String keys = "";
|
|
|
|
|
+ for (KwcContractLogisticsGoods item :kwcContractLogisticsGoodsList){
|
|
|
|
|
+ keys += DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + item.getUnit() + Global.COMMA;
|
|
|
|
|
+ keys += DictTypeEnum.PRICE_TYPE.getType() + Global.POUND + item.getPriceUnit() + Global.COMMA;
|
|
|
|
|
+ keys += DictTypeEnum.WEIGHT_CAR.getType() + Global.POUND + item.getLossUnit() + Global.COMMA;
|
|
|
|
|
+ keys += DictTypeEnum.WEIGHT_CAR.getType() + Global.POUND + item.getDeficitUnit() + Global.COMMA;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, SysDictResDto> stringSysDictResDtoMap = remoteSystemService.queryDictMapByTypeValues(keys);
|
|
|
|
|
+
|
|
|
List<LogisticsGoodsInfoResVo> goodsInfo = new ArrayList<>();
|
|
List<LogisticsGoodsInfoResVo> goodsInfo = new ArrayList<>();
|
|
|
for (KwcContractLogisticsGoods kwcContractLogisticsGoods : kwcContractLogisticsGoodsList) {
|
|
for (KwcContractLogisticsGoods kwcContractLogisticsGoods : kwcContractLogisticsGoodsList) {
|
|
|
LogisticsGoodsInfoResVo logisticsGoodsInfoResVo = new LogisticsGoodsInfoResVo();
|
|
LogisticsGoodsInfoResVo logisticsGoodsInfoResVo = new LogisticsGoodsInfoResVo();
|
|
|
logisticsGoodsInfoResVo.setAmount(kwcContractLogisticsGoods.getAmount());
|
|
logisticsGoodsInfoResVo.setAmount(kwcContractLogisticsGoods.getAmount());
|
|
|
logisticsGoodsInfoResVo.setUnit(kwcContractLogisticsGoods.getUnit());
|
|
logisticsGoodsInfoResVo.setUnit(kwcContractLogisticsGoods.getUnit());
|
|
|
logisticsGoodsInfoResVo.setPrice(kwcContractLogisticsGoods.getPrice());
|
|
logisticsGoodsInfoResVo.setPrice(kwcContractLogisticsGoods.getPrice());
|
|
|
- //logisticsGoodsInfoResVo.setPriceUnit();
|
|
|
|
|
|
|
+ logisticsGoodsInfoResVo.setPriceUnit(kwcContractLogisticsGoods.getPriceUnit());
|
|
|
logisticsGoodsInfoResVo.setDeficitPrice(kwcContractLogisticsGoods.getDeficitPrice());
|
|
logisticsGoodsInfoResVo.setDeficitPrice(kwcContractLogisticsGoods.getDeficitPrice());
|
|
|
logisticsGoodsInfoResVo.setDeficitUnit(kwcContractLogisticsGoods.getDeficitUnit());
|
|
logisticsGoodsInfoResVo.setDeficitUnit(kwcContractLogisticsGoods.getDeficitUnit());
|
|
|
- //logisticsGoodsInfoResVo.setGoodsName();
|
|
|
|
|
|
|
+ logisticsGoodsInfoResVo.setGoodsId(kwcContractLogisticsGoods.getGoodsId());
|
|
|
|
|
+ logisticsGoodsInfoResVo.setId(kwcContractLogisticsGoods.getId());
|
|
|
|
|
+ KwpGoods kwpGoods = goodsMap.get(kwcContractLogisticsGoods.getGoodsId());
|
|
|
|
|
+ if (Objects.nonNull(kwpGoods)) {
|
|
|
|
|
+ logisticsGoodsInfoResVo.setGoodsName(kwpGoods.getName());
|
|
|
|
|
+ }
|
|
|
logisticsGoodsInfoResVo.setLoss(kwcContractLogisticsGoods.getLoss());
|
|
logisticsGoodsInfoResVo.setLoss(kwcContractLogisticsGoods.getLoss());
|
|
|
logisticsGoodsInfoResVo.setLossUnit(kwcContractLogisticsGoods.getLossUnit());
|
|
logisticsGoodsInfoResVo.setLossUnit(kwcContractLogisticsGoods.getLossUnit());
|
|
|
|
|
+
|
|
|
|
|
+ SysDictResDto unitType = stringSysDictResDtoMap.get(DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + kwcContractLogisticsGoods.getUnit());
|
|
|
|
|
+ if (Objects.nonNull(unitType)) {
|
|
|
|
|
+ logisticsGoodsInfoResVo.setUnitName(unitType.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ SysDictResDto priceType = stringSysDictResDtoMap.get(DictTypeEnum.PRICE_TYPE.getType() + Global.POUND + kwcContractLogisticsGoods.getPriceUnit());
|
|
|
|
|
+ if (Objects.nonNull(priceType)) {
|
|
|
|
|
+ logisticsGoodsInfoResVo.setPriceUnitName(priceType.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ SysDictResDto weightCar1 = stringSysDictResDtoMap.get(DictTypeEnum.WEIGHT_CAR.getType() + Global.POUND + kwcContractLogisticsGoods.getLossUnit());
|
|
|
|
|
+ if (Objects.nonNull(weightCar1)) {
|
|
|
|
|
+ logisticsGoodsInfoResVo.setLossUnitName(weightCar1.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ SysDictResDto weightCar2 = stringSysDictResDtoMap.get(DictTypeEnum.WEIGHT_CAR.getType() + Global.POUND + kwcContractLogisticsGoods.getDeficitUnit());
|
|
|
|
|
+ if (Objects.nonNull(weightCar2)) {
|
|
|
|
|
+ logisticsGoodsInfoResVo.setDeficitUnitName(weightCar2.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
goodsInfo.add(logisticsGoodsInfoResVo);
|
|
goodsInfo.add(logisticsGoodsInfoResVo);
|
|
|
}
|
|
}
|
|
|
contractLogisticsDetailResVo.setGoodsInfo(goodsInfo);
|
|
contractLogisticsDetailResVo.setGoodsInfo(goodsInfo);
|
|
@@ -213,7 +250,7 @@ public class KwcContractLogisticsService {
|
|
|
List<String> fileList = new ArrayList<>();
|
|
List<String> fileList = new ArrayList<>();
|
|
|
fileList.add(kwcContractLogistics.getSignedUrl());
|
|
fileList.add(kwcContractLogistics.getSignedUrl());
|
|
|
fileList.add(kwcContractLogistics.getSigningUrl());
|
|
fileList.add(kwcContractLogistics.getSigningUrl());
|
|
|
- contractLogisticsDetailResVo.setContractFile(fileList);
|
|
|
|
|
|
|
+ contractLogisticsDetailResVo.setContractFile(fileList.stream().filter(StringUtils::isNotBlank).toList());
|
|
|
|
|
|
|
|
//补充合同
|
|
//补充合同
|
|
|
List<KwcContractLogistics> supplementList = getSupplementList(kwcContractLogistics);
|
|
List<KwcContractLogistics> supplementList = getSupplementList(kwcContractLogistics);
|
|
@@ -246,24 +283,28 @@ public class KwcContractLogisticsService {
|
|
|
@Transactional(rollbackFor = {})
|
|
@Transactional(rollbackFor = {})
|
|
|
public void submit(ContractLogisticsReqVo reqVo) {
|
|
public void submit(ContractLogisticsReqVo reqVo) {
|
|
|
Long id = reqVo.getId();
|
|
Long id = reqVo.getId();
|
|
|
|
|
+ //直接签约先存草稿再修改状态
|
|
|
if (Objects.isNull(id)) {
|
|
if (Objects.isNull(id)) {
|
|
|
- //创建合同
|
|
|
|
|
- KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(reqVo.getBaseInfo(), reqVo.getRemark(), reqVo.getPId());
|
|
|
|
|
- id = new IdWorker(1L).nextId();
|
|
|
|
|
- kwcContractLogistics.setId(id);
|
|
|
|
|
- kwcContractLogistics.setStatus(ContractStatusEnum.SUBMIT.getCode());
|
|
|
|
|
- kwcContractLogistics.setSigningUrl(reqVo.getContractFile());
|
|
|
|
|
- if (kwcContractLogisticsMapper.insert(kwcContractLogistics) <= 0) {
|
|
|
|
|
- throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //存审批记录
|
|
|
|
|
- kwcContractLogisticsTrackService.saveContractLogisticsTrack(id);
|
|
|
|
|
|
|
+ id = addCheckedContract(reqVo);
|
|
|
|
|
+ changeToSubmit(id);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ update(reqVo);
|
|
|
|
|
+ changeToSubmit(id);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- id = addCheckedContract(reqVo);
|
|
|
|
|
- //存审批记录
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param id 合同id
|
|
|
|
|
+ * @desc: 更新合同为发起
|
|
|
|
|
+ * @author: czh
|
|
|
|
|
+ * @date: 2023/7/20
|
|
|
|
|
+ */
|
|
|
|
|
+ private void changeToSubmit(Long id) {
|
|
|
|
|
+ KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(id);
|
|
|
|
|
+ kwcContractLogistics.setStatus(ContractStatusEnum.SUBMIT.getCode());
|
|
|
|
|
+ if (kwcContractLogisticsMapper.updateById(kwcContractLogistics) <= 0) {
|
|
|
|
|
+ throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
|
|
|
|
|
+ }
|
|
|
kwcContractLogisticsTrackService.saveContractLogisticsTrack(id);
|
|
kwcContractLogisticsTrackService.saveContractLogisticsTrack(id);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -299,8 +340,8 @@ public class KwcContractLogisticsService {
|
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
|
kwcContractLogisticsGoodsList.forEach(item -> {
|
|
kwcContractLogisticsGoodsList.forEach(item -> {
|
|
|
item.setDelFlag(Global.YES);
|
|
item.setDelFlag(Global.YES);
|
|
|
- item.setCreateBy(LoginUserHolder.getUserId());
|
|
|
|
|
- item.setCreateTime(date);
|
|
|
|
|
|
|
+ item.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
|
|
+ item.setUpdateTime(date);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
if (kwcContractLogisticsGoodsService.updateBatch(kwcContractLogisticsGoodsList) != kwcContractLogisticsGoodsList.size()) {
|
|
if (kwcContractLogisticsGoodsService.updateBatch(kwcContractLogisticsGoodsList) != kwcContractLogisticsGoodsList.size()) {
|
|
@@ -308,7 +349,6 @@ public class KwcContractLogisticsService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), reqVo.getGoodsInfo());
|
|
kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), reqVo.getGoodsInfo());
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -330,7 +370,6 @@ public class KwcContractLogisticsService {
|
|
|
throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
|
|
throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -349,7 +388,7 @@ public class KwcContractLogisticsService {
|
|
|
if (item.getStatus() != ContractStatusEnum.SAVE.getCode()) {
|
|
if (item.getStatus() != ContractStatusEnum.SAVE.getCode()) {
|
|
|
throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_022);
|
|
throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_022);
|
|
|
}
|
|
}
|
|
|
- item.setStatus(ContractStatusEnum.COMPLETE.getCode());
|
|
|
|
|
|
|
+ item.setDelFlag(Global.YES);
|
|
|
item.setUpdateBy(LoginUserHolder.getUserId());
|
|
item.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
item.setUpdateTime(date);
|
|
item.setUpdateTime(date);
|
|
|
if (kwcContractLogisticsMapper.updateById(item) <= 0) {
|
|
if (kwcContractLogisticsMapper.updateById(item) <= 0) {
|
|
@@ -359,29 +398,75 @@ public class KwcContractLogisticsService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * @return PageResult
|
|
|
* @desc: 分页查询
|
|
* @desc: 分页查询
|
|
|
- * @param: reqVo
|
|
|
|
|
|
|
+ * @param: reqVo
|
|
|
* @author: czh
|
|
* @author: czh
|
|
|
* @date 2023/7/17
|
|
* @date 2023/7/17
|
|
|
- * @return PageResult
|
|
|
|
|
*/
|
|
*/
|
|
|
public PageResult queryListByPage(QueryListReqVo reqVo) {
|
|
public PageResult queryListByPage(QueryListReqVo reqVo) {
|
|
|
PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
|
|
PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
|
|
|
QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
|
BeanUtils.copyProperties(reqVo, queryListReqDto);
|
|
BeanUtils.copyProperties(reqVo, queryListReqDto);
|
|
|
- List<QueryListResVo> list = kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
|
|
+ queryListReqDto.setEntId(LoginUserHolder.getEntId());
|
|
|
|
|
+ List<QueryListResDto> queryListResDtos = kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
+ if (CollectionUtils.isEmpty(queryListResDtos)) {
|
|
|
|
|
+ return PageHelperUtil.getPageResult(new PageInfo<>());
|
|
|
|
|
+ }
|
|
|
|
|
+ List<QueryListResVo> list = getQueryListResVos(queryListResDtos);
|
|
|
return PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
return PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param queryListResDtos 入参
|
|
|
|
|
+ * @return QueryListResVo
|
|
|
|
|
+ * @desc: 抽取公共部分
|
|
|
|
|
+ * @author: czh
|
|
|
|
|
+ * @date: 2023/7/18
|
|
|
|
|
+ */
|
|
|
|
|
+ private List<QueryListResVo> getQueryListResVos(List<QueryListResDto> queryListResDtos) {
|
|
|
|
|
+ Map<Long, UserCacheResDto> longUserCacheResDtoMap = new HashMap<>();
|
|
|
|
|
+ List<Long> initiateByList = queryListResDtos.stream().map(QueryListResDto::getInitiateBy).toList();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(initiateByList)) {
|
|
|
|
|
+ longUserCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(initiateByList);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<QueryListResVo> list = new ArrayList<>();
|
|
|
|
|
+ for (QueryListResDto queryListResDto : queryListResDtos) {
|
|
|
|
|
+ QueryListResVo queryListResVo = new QueryListResVo();
|
|
|
|
|
+ queryListResVo.setCheckedEntName(queryListResDto.getUnitType().compareTo(EntTypeEnum.LOGISTICS3.getCode()) == 0 ? queryListResDto.getEntName() : queryListResDto.getTargetEntName());
|
|
|
|
|
+ queryListResVo.setCarrierEntName(queryListResDto.getUnitType().compareTo(EntTypeEnum.LOGISTICS3.getCode()) == 0 ? queryListResDto.getTargetEntName() : queryListResDto.getEntName());
|
|
|
|
|
+
|
|
|
|
|
+ UserCacheResDto userCacheResDto = longUserCacheResDtoMap.get(queryListResDto.getInitiateBy());
|
|
|
|
|
+ if (Objects.nonNull(userCacheResDto)) {
|
|
|
|
|
+ queryListResVo.setInitiateName(userCacheResDto.getName());
|
|
|
|
|
+ queryListResVo.setInitiateEntName(Objects.isNull(userCacheResDto.getEntInfo()) ? "" : userCacheResDto.getEntInfo().getFirmName());
|
|
|
|
|
+ }
|
|
|
|
|
+ queryListResVo.setChargingName(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(), String.valueOf(queryListResDto.getCharging())));
|
|
|
|
|
+ queryListResVo.setStatusName(ContractStatusEnum.getName(queryListResDto.getStatus()).getName());
|
|
|
|
|
+
|
|
|
|
|
+ queryListResVo.setPerformedAmount(new BigDecimal("0"));
|
|
|
|
|
+ list.add(queryListResVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public void export(QueryListReqVo reqVo) {
|
|
public void export(QueryListReqVo reqVo) {
|
|
|
QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
|
BeanUtils.copyProperties(reqVo, queryListReqDto);
|
|
BeanUtils.copyProperties(reqVo, queryListReqDto);
|
|
|
-
|
|
|
|
|
|
|
+ queryListReqDto.setEntId(LoginUserHolder.getEntId());
|
|
|
if (StringUtils.isNotBlank(reqVo.getIds())) {
|
|
if (StringUtils.isNotBlank(reqVo.getIds())) {
|
|
|
List<Long> idList = Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList();
|
|
List<Long> idList = Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList();
|
|
|
queryListReqDto.setIdList(idList);
|
|
queryListReqDto.setIdList(idList);
|
|
|
}
|
|
}
|
|
|
- List<QueryListResVo> queryListResVos = kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ List<QueryListResVo> queryListResVos = new ArrayList<>();
|
|
|
|
|
+ List<QueryListResDto> queryListResDtos = kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(queryListResDtos)) {
|
|
|
|
|
+ queryListResVos = getQueryListResVos(queryListResDtos);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
EasyExcelUtil.writeSingleExcel("物流合同.xlsx", "sheet1", queryListResVos, QueryListResVo.class);
|
|
EasyExcelUtil.writeSingleExcel("物流合同.xlsx", "sheet1", queryListResVos, QueryListResVo.class);
|
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
@@ -401,7 +486,49 @@ public class KwcContractLogisticsService {
|
|
|
Long entId = LoginUserHolder.getEntId();
|
|
Long entId = LoginUserHolder.getEntId();
|
|
|
QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
|
queryListReqDto.setEntId(entId);
|
|
queryListReqDto.setEntId(entId);
|
|
|
- return kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
|
|
+ queryListReqDto.setStatus(ContractStatusEnum.SIGNED.getCode());
|
|
|
|
|
+ queryListReqDto.setEntType(EntTypeEnum.LOGISTICS3.getCode());
|
|
|
|
|
+ List<QueryListResDto> queryListResDtos = kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
+ if (CollectionUtils.isEmpty(queryListResDtos)) {
|
|
|
|
|
+ return Collections.emptyList();
|
|
|
|
|
+ }
|
|
|
|
|
+ return getQueryListResVos(queryListResDtos);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @return HttpResult
|
|
|
|
|
+ * @desc: 分组查询
|
|
|
|
|
+ * @author: czh
|
|
|
|
|
+ * @date: 2023/7/18
|
|
|
|
|
+ */
|
|
|
|
|
+ public List<FindListGroupResVo> findListGroup(QueryListReqVo reqVo) {
|
|
|
|
|
+ ContractStatusEnum[] values = ContractStatusEnum.values();
|
|
|
|
|
+ List<FindListGroupResVo> list = new ArrayList<>();
|
|
|
|
|
+ FindListGroupResVo total = new FindListGroupResVo();
|
|
|
|
|
+ total.setCount(0);
|
|
|
|
|
+ list.add(total);
|
|
|
|
|
+ for (ContractStatusEnum contractStatusEnum : values) {
|
|
|
|
|
+ FindListGroupResVo findListGroupResVo = new FindListGroupResVo();
|
|
|
|
|
+ findListGroupResVo.setStatus(contractStatusEnum.getCode());
|
|
|
|
|
+ findListGroupResVo.setStatusName(contractStatusEnum.getName());
|
|
|
|
|
+ findListGroupResVo.setCount(0);
|
|
|
|
|
+ list.add(findListGroupResVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
|
|
|
+ BeanUtils.copyProperties(reqVo, queryListReqDto);
|
|
|
|
|
+ queryListReqDto.setEntId(LoginUserHolder.getEntId());
|
|
|
|
|
+ List<QueryListResDto> queryListResDtoList = kwcContractLogisticsMapper.queryList(queryListReqDto);
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(queryListResDtoList)) {
|
|
|
|
|
+ Map<Integer, List<QueryListResDto>> collect = queryListResDtoList.stream().collect(Collectors.groupingBy(QueryListResDto::getStatus));
|
|
|
|
|
+ for (FindListGroupResVo findListGroupResVo : list) {
|
|
|
|
|
+ List<QueryListResDto> queryListResDtos = collect.get(findListGroupResVo.getStatus());
|
|
|
|
|
+ findListGroupResVo.setCount(CollectionUtils.isEmpty(queryListResDtos) ? Global.NUMERICAL_ZERO : queryListResDtos.size());
|
|
|
|
|
+ }
|
|
|
|
|
+ //给汇总项求和
|
|
|
|
|
+ list.get(0).setCount(queryListResDtoList.size());
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|