|
@@ -1,6 +1,7 @@
|
|
|
package com.fjhx.service.logistics.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.base.BaseIdEntity;
|
|
@@ -18,10 +19,7 @@ import com.fjhx.enums.purchase.PurchaseStatusEnum;
|
|
|
import com.fjhx.enums.stock.InTypeEnum;
|
|
|
import com.fjhx.enums.stock.QualityStatusEnum;
|
|
|
import com.fjhx.mapper.logistics.LogisticsInfoMapper;
|
|
|
-import com.fjhx.params.logistics.DataInfoPageDto;
|
|
|
-import com.fjhx.params.logistics.DataInfoPageVo;
|
|
|
-import com.fjhx.params.logistics.DeliverDetailsVo;
|
|
|
-import com.fjhx.params.logistics.LogisticsInfoVo;
|
|
|
+import com.fjhx.params.logistics.*;
|
|
|
import com.fjhx.params.stock.InStockAdd;
|
|
|
import com.fjhx.params.stock.StockChangeDto;
|
|
|
import com.fjhx.service.apply.ApplyPurchaseService;
|
|
@@ -374,6 +372,7 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
|
|
|
|
|
|
// 添加质检
|
|
|
QualityInfo qualityInfo = new QualityInfo();
|
|
|
+ qualityInfo.setType(1);
|
|
|
qualityInfo.setCode(CodeEnum.QUALITY.getCode());
|
|
|
qualityInfo.setLogisticsInfoId(logisticsInfoId);
|
|
|
qualityInfo.setLogisticsInfoCode(logisticsInfo.getCode());
|
|
@@ -404,4 +403,84 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
|
|
|
return baseMapper.dataInfoPage(dto.getPage(), wrapper);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void jdBackAdd(JdBackAddDto dto) {
|
|
|
+
|
|
|
+ List<LogisticsDetails> logisticsDetailsList = dto.getLogisticsDetailsList();
|
|
|
+ Assert.notEmpty(logisticsDetailsList, "京东退货明细不能为空");
|
|
|
+
|
|
|
+ String code = dto.getCode();
|
|
|
+ String logisticsCompanyCode = dto.getLogisticsCompanyCode();
|
|
|
+
|
|
|
+ Integer state = null;
|
|
|
+ if (ObjectUtil.isAllNotEmpty(code, logisticsCompanyCode)) {
|
|
|
+ state = KD100Util.getStateAndMonitor(logisticsCompanyCode, code);
|
|
|
+ }
|
|
|
+
|
|
|
+ synchronized (this) {
|
|
|
+ String jdBackCode = CodeEnum.JD_BACK.getCode();
|
|
|
+
|
|
|
+ long id = IdWorker.getId();
|
|
|
+
|
|
|
+ int jdBackStatus = 1;
|
|
|
+ if (state != null) {
|
|
|
+ if (LogisticsConstant.KD100Status.STATUS_3.equals(state)) {
|
|
|
+ addJdBackQuality(logisticsDetailsList, dto.getWarehouseId(), id);
|
|
|
+ jdBackStatus = 3;
|
|
|
+ } else {
|
|
|
+ jdBackStatus = 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ LogisticsInfo logisticsInfo = new LogisticsInfo();
|
|
|
+ logisticsInfo.setId(id);
|
|
|
+ logisticsInfo.setBusinessId(null);
|
|
|
+ logisticsInfo.setBusinessType(4);
|
|
|
+ logisticsInfo.setWarehouseId(dto.getWarehouseId());
|
|
|
+ logisticsInfo.setJdBackCode(jdBackCode);
|
|
|
+ logisticsInfo.setJdBackStatus(jdBackStatus);
|
|
|
+ logisticsInfo.setJdBackOrderId(dto.getJdBackOrderId());
|
|
|
+ logisticsInfo.setCode(code);
|
|
|
+ logisticsInfo.setLogisticsCompanyCode(logisticsCompanyCode);
|
|
|
+ logisticsInfo.setLogisticsStatus(state);
|
|
|
+
|
|
|
+ for (LogisticsDetails logisticsDetails : logisticsDetailsList) {
|
|
|
+ logisticsDetails.setLogisticsInfoId(id);
|
|
|
+ logisticsDetails.setLogisticsInfoCode(code);
|
|
|
+ logisticsDetails.setReceiptQuantity(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
+ save(logisticsInfo);
|
|
|
+ logisticsDetailsService.saveBatch(logisticsDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addJdBackQuality(List<LogisticsDetails> logisticsDetailsList, Long warehouseId, Long logisticsInfoId) {
|
|
|
+ // 添加质检
|
|
|
+ QualityInfo qualityInfo = new QualityInfo();
|
|
|
+ qualityInfo.setType(2);
|
|
|
+ qualityInfo.setCode(CodeEnum.QUALITY.getCode());
|
|
|
+ qualityInfo.setStatus(QualityStatusEnum.STATUS_1.getKey());
|
|
|
+ qualityInfo.setResultType(StatusConstant.YES);
|
|
|
+ qualityInfoService.save(qualityInfo);
|
|
|
+
|
|
|
+ // 添加质检明细
|
|
|
+ List<QualityDetails> qualityDetailsList = logisticsDetailsList.stream().map(item -> {
|
|
|
+ QualityDetails qualityDetails = new QualityDetails();
|
|
|
+ qualityDetails.setQualityInfoId(qualityInfo.getId());
|
|
|
+ qualityDetails.setLogisticsDetailsId(logisticsInfoId);
|
|
|
+ qualityDetails.setProductInfoId(item.getJdBackProductId());
|
|
|
+ qualityDetails.setWarehouseId(warehouseId);
|
|
|
+ qualityDetails.setTotalQuantity(item.getShipmentQuantity());
|
|
|
+ qualityDetails.setQualifiedQuantity(BigDecimal.ZERO);
|
|
|
+ qualityDetails.setDisqualificationQuantity(BigDecimal.ZERO);
|
|
|
+ return qualityDetails;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ qualityDetailsService.saveBatch(qualityDetailsList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|