新增库位绑定Feign接口与合并采购销售订单
This commit is contained in:
@@ -20,4 +20,6 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批");
|
||||
ErrorCode MTRL_CODE_NOT_EXISTS = new ErrorCode(1_008_000_150, "中铜物料不存在");
|
||||
ErrorCode WAREHOUSE_CODE_OR_FACTORY_CODE_NOT_EXISTS = new ErrorCode(1_008_000_151, "{}");
|
||||
|
||||
ErrorCode ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_000_060, "订单明细不能为空");
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ public class PurchaseOrderSaveReqVO {
|
||||
|
||||
@Schema(description = "订单明细")
|
||||
@ExcelProperty("订单明细")
|
||||
private List<PrchOrdDtlSaveReqVO> prchOrdDtlSaveReqVOS;
|
||||
private List<PrchOrdDtlSaveReqVO> details;
|
||||
|
||||
|
||||
@Schema(description = "流程实例编号")
|
||||
|
||||
@@ -201,5 +201,8 @@ public class SalesOrderSaveReqVO {
|
||||
@Schema(description = "货权转移类型(字典:ASY_MTNG_TP)")
|
||||
@ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)")
|
||||
private String meteringType;
|
||||
@Schema(description = "订单明细")
|
||||
@ExcelProperty("订单明细")
|
||||
private List<SalesOrderDetailSaveReqVO> details;
|
||||
|
||||
}
|
||||
|
||||
@@ -69,6 +69,13 @@ public interface PrchOrdDtlService {
|
||||
* @return List<PrchOrdDtlRespVO>
|
||||
*/
|
||||
List<PrchOrdDtlRespVO> batchCreatePrchOrdDtl(@Valid List<PrchOrdDtlSaveReqVO> createReqVOS);
|
||||
/**
|
||||
* 批量更新采购订单明细
|
||||
*
|
||||
* @param createReqVOS 更新信息
|
||||
* @return List<PrchOrdDtlRespVO>
|
||||
*/
|
||||
List<PrchOrdDtlRespVO> batchUpdatePrchOrdDtl(@Valid List<PrchOrdDtlSaveReqVO> createReqVOS);
|
||||
/**
|
||||
* 批量删除采购订单明细
|
||||
*
|
||||
|
||||
@@ -149,6 +149,14 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService {
|
||||
return BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PrchOrdDtlRespVO> batchUpdatePrchOrdDtl(List<PrchOrdDtlSaveReqVO> createReqVOS) {
|
||||
List<PrchOrdDtlDO> prchOrdDtlDOS = BeanUtils.toBean(createReqVOS, PrchOrdDtlDO.class);
|
||||
prchOrdDtlMapper.insertOrUpdate(prchOrdDtlDOS);
|
||||
log.info("批量更新采购订单明细成功,更新【{}】条数据", prchOrdDtlDOS.size());
|
||||
return BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlRespVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deletePrchOrdDtlListByOrdIds(List<Long> ordIds) {
|
||||
//通过订单组件查询订单明细
|
||||
|
||||
@@ -115,14 +115,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
purchaseOrder.setSystemOrderNumber(orderNumber);
|
||||
purchaseOrderMapper.insert(purchaseOrder);
|
||||
|
||||
// if (createReqVO.getPrchOrdDtlSaveReqVOS()==null||createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) {
|
||||
// return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||
// }
|
||||
// //批量插入订单明细
|
||||
// createReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(purchaseOrder.getId()));
|
||||
// List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getPrchOrdDtlSaveReqVOS());
|
||||
// PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||
// purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
|
||||
if (createReqVO.getDetails()==null||createReqVO.getDetails().isEmpty()) {
|
||||
throw exception(ORDER_DETAIL_NOT_EXISTS);
|
||||
}
|
||||
//批量插入订单明细
|
||||
createReqVO.getDetails().forEach(details -> details.setOrdId(purchaseOrder.getId()));
|
||||
List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getDetails());
|
||||
PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||
purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
|
||||
return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||
}
|
||||
|
||||
@@ -134,22 +134,25 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
// 更新
|
||||
PurchaseOrderDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderDO.class);
|
||||
purchaseOrderMapper.updateById(updateObj);
|
||||
//删除订单明细
|
||||
// prchOrdDtlService.deletePrchOrdDtlListByOrdIds(Collections.singletonList(updateReqVO.getId()));
|
||||
// log.info("删除旧的订单明细成功");
|
||||
// 返回
|
||||
// 批量插入订单明细
|
||||
// updateReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(updateReqVO.getId()));
|
||||
// prchOrdDtlService.batchCreatePrchOrdDtl(updateReqVO.getPrchOrdDtlSaveReqVOS());
|
||||
updateReqVO.getDetails().forEach(prchOrdDtlSaveReqVO ->{
|
||||
//表示新增
|
||||
if (prchOrdDtlSaveReqVO.getId() == null){
|
||||
prchOrdDtlSaveReqVO.setOrdId(updateReqVO.getId());
|
||||
}
|
||||
});
|
||||
prchOrdDtlService.batchUpdatePrchOrdDtl(updateReqVO.getDetails());
|
||||
log.info("更新订单明细成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deletePurchaseOrder(Long id) {
|
||||
// 校验存在
|
||||
validatePurchaseOrderExists(id);
|
||||
// 删除
|
||||
purchaseOrderMapper.deleteById(id);
|
||||
prchOrdDtlService.deletePrchOrdDtlListByOrdIds(Collections.singletonList(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,7 +40,12 @@ public interface SalesOrderDetailService {
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 批量更新销售订单明细
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateSalesOrderDetailList(@Valid List<SalesOrderDetailSaveReqVO> updateReqVO);
|
||||
/**
|
||||
* 删除销售订单明细
|
||||
*
|
||||
|
||||
@@ -77,7 +77,7 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public List<SalesOrderDetailRespVO> createSalesOrderDetail(List<SalesOrderDetailSaveReqVO> createReqVOS) {
|
||||
List<SalesOrderDetailDO> salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class);
|
||||
salesOrderDetailDOS.forEach(salesOrderDetail -> {
|
||||
@@ -96,6 +96,11 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
|
||||
salesOrderDetailMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSalesOrderDetailList(List<SalesOrderDetailSaveReqVO> updateReqVO) {
|
||||
salesOrderDetailMapper.insertOrUpdate(BeanUtils.toBean(updateReqVO, SalesOrderDetailDO.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteSalesOrderDetail(Long id) {
|
||||
// 校验存在
|
||||
|
||||
@@ -98,7 +98,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
||||
private InternalWarehouseService internalWarehouseService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
SalesOrderDO salesOrderDO = BeanUtils.toBean(createReqVO, SalesOrderDO.class);
|
||||
@@ -108,22 +108,35 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
||||
String orderNumber = generateOrderNumber(salesOrderDO.getMtrlTp());
|
||||
salesOrderDO.setSystemOrderNumber(orderNumber);
|
||||
salesOrderMapper.insert(salesOrderDO);
|
||||
//插入订单明细
|
||||
if (createReqVO.getDetails()==null||createReqVO.getDetails().isEmpty()) {
|
||||
throw exception(Sales_ORD_DTL_NOT_EXISTS);
|
||||
}
|
||||
createReqVO.getDetails().forEach(details ->details.setOrderId(String.valueOf(salesOrderDO.getId())));
|
||||
List<SalesOrderDetailRespVO> salesOrderDetail = salesOrderDetailService.createSalesOrderDetail(createReqVO.getDetails());
|
||||
// 返回
|
||||
return BeanUtils.toBean(salesOrderDO, SalesOrderRespVO.class);
|
||||
SalesOrderRespVO bean = BeanUtils.toBean(salesOrderDO, SalesOrderRespVO.class);
|
||||
bean.setSalesOrderDetailRespVOS(salesOrderDetail);
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateSalesOrder(SalesOrderSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateSalesOrderExists(updateReqVO.getId());
|
||||
// 更新
|
||||
SalesOrderDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDO.class);
|
||||
salesOrderMapper.updateById(updateObj);
|
||||
if (updateReqVO.getDetails()==null||updateReqVO.getDetails().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
updateReqVO.getDetails().forEach(details ->details.setOrderId(String.valueOf(updateObj.getId())));
|
||||
salesOrderDetailService.updateSalesOrderDetailList(updateReqVO.getDetails());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteSalesOrder(Long id) {
|
||||
// 校验存在
|
||||
validateSalesOrderExists(id);
|
||||
@@ -132,7 +145,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteSalesOrderListByIds(List<Long> ids) {
|
||||
// 校验存在
|
||||
validateSalesOrderExists(ids);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.zt.plat.module.erp.api;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.module.erp.api.dto.internalWarehouse.InternalWarehouseDTO;
|
||||
import com.zt.plat.module.erp.enums.ApiConstants;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@FeignClient(name = ApiConstants.NAME)
|
||||
@Tag(name = "RPC 服务 - ERP")
|
||||
public interface InternalWarehouseApi {
|
||||
String PREFIX = ApiConstants.PREFIX + "/internal-warehouse";
|
||||
/**
|
||||
* 根据工厂代码和仓库代码获取仓库列表
|
||||
*
|
||||
* @param factoryCode 工厂代码
|
||||
* @param warehouseCode 仓库代码
|
||||
* @return 仓库列表
|
||||
*/
|
||||
@GetMapping(PREFIX + "/list-by-factory-code-and-warehouse-code")
|
||||
@Operation(summary = "根据工厂代码和仓库代码获取仓库列表", description = "根据工厂代码和仓库代码获取仓库列表;factoryCode是工厂编码,warehouseCode是仓库编码,mmsiType是业务类型,operationType是操作类型")
|
||||
CommonResult<List<InternalWarehouseDTO>> getInternalWarehouseListByFactoryCodeAndWarehouseCode(@RequestParam(value = "factoryCode") String factoryCode, @RequestParam(value = "warehouseCode") String warehouseCode, @RequestParam(value = "mmsiType", required = false) String mmsiType, @RequestParam(value = "operationType", required = false) String operationType);
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user