|
|
@ -3,35 +3,34 @@ package com.win.module.wms.service.customerreturnRequest; |
|
|
|
import cn.hutool.core.exceptions.UtilException; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailExportReqVO; |
|
|
|
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailPageReqVO; |
|
|
|
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailUpdateReqVO; |
|
|
|
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestDetailConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.balance.BalanceDO; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper; |
|
|
|
import com.win.module.wms.service.businesstype.BusinesstypeService; |
|
|
|
import com.win.module.wms.service.deliverRecord.DeliverRecordMainService; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
|
|
|
|
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestDetailConvert; |
|
|
|
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestDetailMapper; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
@ -54,9 +53,12 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
@Resource |
|
|
|
private ItembasicService itembasicService; |
|
|
|
@Resource |
|
|
|
private BusinesstypeService businesstypeService; |
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Long createCustomerreturnRequestDetail(CustomerreturnRequestDetailCreateReqVO createReqVO) { |
|
|
|
// 插入
|
|
|
@ -115,10 +117,12 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
public PageResult<CustomerreturnRequestDetailDO> getCustomerreturnRequestDetailPage(CustomerreturnRequestDetailPageReqVO pageReqVO) { |
|
|
|
return customerreturnRequestDetailMapper.selectPage(pageReqVO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageResult<CustomerreturnRequestDetailDO> getCustomerreturnRequestDetailSenior(CustomConditions conditions) { |
|
|
|
return customerreturnRequestDetailMapper.selectSenior(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CustomerreturnRequestDetailDO> getCustomerreturnRequestDetailList(CustomerreturnRequestDetailExportReqVO exportReqVO) { |
|
|
|
return customerreturnRequestDetailMapper.selectList(exportReqVO); |
|
|
@ -131,6 +135,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 新增子表校验 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
@ -164,6 +169,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验成品发货记录子表并赋值 |
|
|
|
* |
|
|
|
* @param mainDo |
|
|
|
* @param detailDO |
|
|
|
*/ |
|
|
@ -176,8 +182,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
// deliver.getSoLine().equals(detailDO.getSoLine()) &&
|
|
|
|
deliver.getItemCode().equals(detailDO.getItemCode()) && |
|
|
|
deliver.getBatch().equals(detailDO.getBatch()) && |
|
|
|
deliver.getPackingNumber().equals(detailDO.getPackingNumber())) |
|
|
|
{ |
|
|
|
deliver.getPackingNumber().equals(detailDO.getPackingNumber())) { |
|
|
|
detailDO.setQty(deliver.getQty()); |
|
|
|
detailDO.setUom(deliver.getUom()); |
|
|
|
} else { |
|
|
@ -188,14 +193,14 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
// + createReqVO.getDeliverRecordNumber() + "中");
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
throw exception(DELIVER_RECORD_DETAIL_NOT_EXISTS); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验物料基础信息并赋值 |
|
|
|
* |
|
|
|
* @param itemCode |
|
|
|
*/ |
|
|
|
private ItembasicDO validatorItembasic(String itemCode) { |
|
|
@ -204,6 +209,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验出库库位类型是否一致 |
|
|
|
* |
|
|
|
* @param fromLocationCode |
|
|
|
* @param businesstypeDO |
|
|
|
*/ |
|
|
@ -213,6 +219,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验出库库位类型是否一致 |
|
|
|
* |
|
|
|
* @param toLocationCode |
|
|
|
* @param businesstypeDO |
|
|
|
*/ |
|
|
@ -222,6 +229,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验库存状态是否一致 |
|
|
|
* |
|
|
|
* @param inventoryStatus |
|
|
|
* @param businesstypeDO |
|
|
|
*/ |
|
|
@ -231,12 +239,14 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验库存余额 |
|
|
|
* |
|
|
|
* @param |
|
|
|
*/ |
|
|
|
private void validatorBalance(CustomerreturnRequestDetailDO detailDO) { |
|
|
|
ArrayList<String> list = new ArrayList<>(); |
|
|
|
list.add(detailDO.getInventoryStatus()); |
|
|
|
if("CUST".equals(detailDO.getFromLocationCode())){ |
|
|
|
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("CustomerReject"); |
|
|
|
if (businesstypeDO.getOutAreaTypes().equals(detailDO.getFromLocationCode())) { |
|
|
|
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(), detailDO.getPackingNumber() |
|
|
|
, detailDO.getBatch(), detailDO.getFromLocationCode(), list); |
|
|
|
isqty(detailDO.getQty(), balance.get(0).getQty()); |
|
|
@ -245,6 +255,7 @@ public class CustomerreturnRequestDetailServiceImpl implements CustomerreturnReq |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验库存数量 |
|
|
|
* |
|
|
|
* @param qty1 |
|
|
|
* @param qty2 |
|
|
|
* @return |
|
|
|