Browse Source

标准成本价格单管理的新增唯一校验

master
张立 2 years ago
parent
commit
228bf67246
  1. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java
  3. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java

2
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -52,7 +52,7 @@ public interface ErrorCodeConstants {
ErrorCode STDCOSTPRICE_NOT_EXISTS = new ErrorCode(1_023_000_000, "标准成本价格单不存在");
ErrorCode STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS = new ErrorCode(1_023_000_001, "供应商代码不存在");
ErrorCode STDCOSTPRICE_ITEN_CODE_NOT_EXISTS = new ErrorCode(1_023_000_002, "物料代码不存在");
ErrorCode STDCOSTPRICE_ITEN_CODE_EXISTS = new ErrorCode(1_023_000_003, "物料代码已存在");
ErrorCode STDCOSTPRICE_ITEN_CODE_EXISTS = new ErrorCode(1_023_000_003, "供应商代码和物料代码已存在");
ErrorCode STDCOSTPRICE_CURRENCY_NOT_EXISTS = new ErrorCode(1_023_000_004, "货币不存在");
ErrorCode STDCOSTPRICE_AVAILABLE_NOT_EXISTS = new ErrorCode(1_023_000_005, "是否可用不存在");
ErrorCode STDCOSTPRICE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_023_000_006, "导入标准成本价格单不能为空");

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceExportReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpricePageReqVO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import org.apache.ibatis.annotations.Mapper;
@ -21,10 +22,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StdcostpriceMapper extends BaseMapperX<StdcostpriceDO> {
default StdcostpriceDO selectByStdcostpriceCode(String suppliercode) {
return selectOne( StdcostpriceDO::getSupplierCode,suppliercode);
default StdcostpriceDO selectByStdcostpriceCode(String suppliercode, String itemCode) {
return selectOne(StdcostpriceDO::getSupplierCode,suppliercode, StdcostpriceDO::getItemCode, itemCode);
}
default PageResult<StdcostpriceDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java

@ -105,7 +105,7 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
massage += ex.getMessage() + ",";
}
try {
validateCodeExists(null,stdcostprice.getItemCode());
validateCodeExists(null,stdcostprice.getSupplierCode(),stdcostprice.getItemCode());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
@ -137,7 +137,7 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
if(errorList == null) {
// 判断如果不存在,在进行插入
StdcostpriceDO existStdcostprice = stdcostpriceMapper.selectByStdcostpriceCode(stdcostprice.getSupplierCode());
StdcostpriceDO existStdcostprice = stdcostpriceMapper.selectByStdcostpriceCode(stdcostprice.getSupplierCode(),stdcostprice.getItemCode());
if (existStdcostprice == null && mode != 3) {
stdcostpriceMapper.insert(StdcostpriceConvert.INSTANCE.convert(stdcostprice));
} else if (existStdcostprice != null && mode != 2) {// 如果存在,判断是否允许更新
@ -162,7 +162,7 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
DataPermissionUtils.executeIgnore(() -> {
validateStdcostpriceExists(id);
// 校验code唯一
validateCodeExists(id,itemcode);
validateCodeExists(id,itemcode,suppercode);
validateSuppercodeExists(suppercode);
validateCurrencyExists(currency);
validatePriceExists(price);
@ -181,14 +181,20 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
}
@VisibleForTesting
private void validateCodeExists(Long id,String itemcode) {
private void validateCodeExists(Long id,String itemcode,String suppercode) {
if (itemcode.isEmpty()) {
throw exception(STDCOSTPRICE_ITEN_CODE_NOT_EXISTS);
}
if (suppercode.isEmpty()) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(itemcode)) {
return;
}
StdcostpriceDO stdcostprice = stdcostpriceMapper.selectByStdcostpriceCode(itemcode);
if (StrUtil.isBlank(suppercode)) {
return;
}
StdcostpriceDO stdcostprice = stdcostpriceMapper.selectByStdcostpriceCode(suppercode, itemcode);
if (stdcostprice == null) {
return;
}

Loading…
Cancel
Save