|
|
@@ -0,0 +1,130 @@
|
|
|
+package com.sckw.contract.service;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+import com.sckw.contract.dao.KwcContractLogisticsMapper;
|
|
|
+import com.sckw.contract.dao.KwcContractLogisticsTrackMapper;
|
|
|
+import com.sckw.contract.model.entity.KwcContractLogistics;
|
|
|
+import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
|
|
|
+import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
|
|
|
+import com.sckw.contract.model.vo.req.LogisticsGoodsInfoReqVo;
|
|
|
+import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
+import com.sckw.core.exception.SystemException;
|
|
|
+import com.sckw.core.model.constant.Global;
|
|
|
+import com.sckw.core.model.enums.ChargingTypeEnum;
|
|
|
+import com.sckw.core.model.enums.SigningWayEnum;
|
|
|
+import com.sckw.core.utils.IdWorker;
|
|
|
+import com.sckw.core.web.constant.HttpStatus;
|
|
|
+import com.sckw.core.web.context.LoginUserHolder;
|
|
|
+import com.sckw.system.api.RemoteSystemService;
|
|
|
+import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.bouncycastle.cms.PasswordRecipientId;
|
|
|
+import org.checkerframework.checker.units.qual.A;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+* @author PC
|
|
|
+* @description 针对表【kwc_contract_logistics(物流合同(承运合同/托运合同))】的数据库操作Service实现
|
|
|
+* @createDate 2023-07-13 13:36:19
|
|
|
+*/
|
|
|
+@Service
|
|
|
+public class KwcContractLogisticsService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwcContractLogisticsMapper kwcContractLogisticsMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwcContractLogisticsGoodsService kwcContractLogisticsGoodsService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwcContractLogisticsTrackService kwcContractLogisticsTrackService;
|
|
|
+
|
|
|
+ @DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
+ private RemoteSystemService remoteSystemService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param reqVo 新增入参
|
|
|
+ * @desc: 新增托运合同
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/13
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = {})
|
|
|
+ public void addCheckedContract(ContractLogisticsReqVo reqVo) {
|
|
|
+ LogisticsBaseInfoReqVo baseInfo = reqVo.getBaseInfo();
|
|
|
+ List<String> contractFileList = reqVo.getContractFile();
|
|
|
+ List<LogisticsGoodsInfoReqVo> goodsInfoList = reqVo.getGoodsInfo();
|
|
|
+
|
|
|
+ //创建合同
|
|
|
+ KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(baseInfo, reqVo.getRemark(), reqVo.getId());
|
|
|
+ if (kwcContractLogisticsMapper.insert(kwcContractLogistics) <= 0) {
|
|
|
+ throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存交易合同商品信息
|
|
|
+ kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), goodsInfoList);
|
|
|
+
|
|
|
+ //存审批记录
|
|
|
+ kwcContractLogisticsTrackService.saveContractLogisticsTrack(kwcContractLogistics.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ private KwcContractLogistics getKwcContractLogistics(LogisticsBaseInfoReqVo baseInfo, String remark, Long pid) {
|
|
|
+
|
|
|
+ Date date = new Date();
|
|
|
+ KwcContractLogistics kwcContractLogistics = new KwcContractLogistics();
|
|
|
+ long contactId = new IdWorker(1L).nextId();
|
|
|
+ kwcContractLogistics.setId(contactId);
|
|
|
+ kwcContractLogistics.setEntId(LoginUserHolder.getEntId());
|
|
|
+ kwcContractLogistics.setContractNo(baseInfo.getContractCode());
|
|
|
+ kwcContractLogistics.setName(baseInfo.getContractName());
|
|
|
+ kwcContractLogistics.setSigningWay(SigningWayEnum.getName(baseInfo.getSigningWay()).getName());
|
|
|
+ SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.CHARGING_TYPE.getType(), baseInfo.getCharging());
|
|
|
+ if (Objects.isNull(sysDictResDto)) {
|
|
|
+ kwcContractLogistics.setCharging(sysDictResDto.getId());
|
|
|
+ }
|
|
|
+ kwcContractLogistics.setTrading(pid);
|
|
|
+ kwcContractLogistics.setStartTime(baseInfo.getStartTime());
|
|
|
+ kwcContractLogistics.setEndTime(baseInfo.getEndTime());
|
|
|
+ //单位不同怎么汇总?
|
|
|
+ kwcContractLogistics.setAmount(new BigDecimal("0"));
|
|
|
+ kwcContractLogistics.setPerformedAmount(new BigDecimal("0"));
|
|
|
+ kwcContractLogistics.setSigningUrl("");
|
|
|
+ kwcContractLogistics.setSignedUrl("");
|
|
|
+ kwcContractLogistics.setSigningNo("");
|
|
|
+ kwcContractLogistics.setContractPid(0L);
|
|
|
+ kwcContractLogistics.setRemark(remark);
|
|
|
+ kwcContractLogistics.setStatus(Global.NO);
|
|
|
+ kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwcContractLogistics.setCreateTime(date);
|
|
|
+ kwcContractLogistics.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ kwcContractLogistics.setUpdateTime(date);
|
|
|
+ kwcContractLogistics.setDelFlag(Global.NO);
|
|
|
+ return kwcContractLogistics;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param reqVo 补充入参
|
|
|
+ * @desc: 补充合同
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/14
|
|
|
+ */
|
|
|
+ public void supplement(ContractLogisticsReqVo reqVo) {
|
|
|
+ Long id = reqVo.getId();
|
|
|
+ KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(id);
|
|
|
+ if (Objects.isNull(kwcContractLogistics)) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ addCheckedContract(reqVo);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|