Browse Source

BUG修改

master
叶佳兴 2 years ago
parent
commit
43ff12e03a
  1. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java
  2. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockService.java
  3. 60
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockServiceImpl.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java
  5. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java

@ -70,18 +70,17 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
private SupplieritemService supplieritemService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private TrendsApi trendsApi;
@Override
public Long createDemandforecastingMain(DemandforecastingMainCreateReqVO createReqVO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePrediction");
createReqVO.setBusinessType(businesstypeDO.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_PREDICTION.getCode());
createReqVO.setNumber(number);
createReqVO.setCreateTime(LocalDateTime.now());
DemandforecastingMainDO demandforecastingMainDO = validatorToCreate(createReqVO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) {
if (RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) {
}
trendsApi.createTrends(demandforecastingMainDO.getId(), "Demandforecasting", "增加了要货预测", TrendsTypeEnum.CREATE);
return demandforecastingMainDO.getId();
@ -92,7 +91,7 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
// 校验存在
validateDemandforecastingMainExists(updateReqVO.getId());
DemandforecastingMainDO demandforecastingMainDO = validatorToUpdate(updateReqVO);
if(RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) {
if (RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) {
}
trendsApi.createTrends(demandforecastingMainDO.getId(), "Demandforecasting", "修改了要货预测", TrendsTypeEnum.CREATE);
}
@ -188,6 +187,7 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
* @param mainDo
* @return
*/
private String validateDemandforecastingMainImport(DemandforecastingMainDO mainDo, BusinesstypeDO businesstypeDO) {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
@ -249,13 +249,14 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
//新增方法(主和子)
@Transactional
private DemandforecastingMainDO validatorToCreate(DemandforecastingMainCreateReqVO createReqVO) {
DemandforecastingMainDO demandforecastingMainDO = validateMainMethod(createReqVO);
//子表校验
List<DemandforecastingDetailCreateReqVO> subList = createReqVO.getSubList();
List<DemandforecastingDetailDO> subDOList = DemandforecastingDetailConvert.INSTANCE.convertList03(subList);
for (DemandforecastingDetailDO demandforecastingDetailDO : subDOList) {
validateDetailMethod(demandforecastingMainDO,demandforecastingDetailDO);
validateDetailMethod(demandforecastingMainDO, demandforecastingDetailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode());
demandforecastingMainDO.setNumber(number);
@ -269,13 +270,14 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
}
//修改方法(主和子)
@Transactional
private DemandforecastingMainDO validatorToUpdate(DemandforecastingMainUpdateReqVO updateReqVO) {
DemandforecastingMainDO demandforecastingMainDO = validateMainMethod(updateReqVO);
//子表校验
List<DemandforecastingDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<DemandforecastingDetailDO> subDOList = DemandforecastingDetailConvert.INSTANCE.convertList05(subList);
for (DemandforecastingDetailDO demandforecastingDetailDO : subDOList) {
validateDetailMethod(demandforecastingMainDO,demandforecastingDetailDO);
validateDetailMethod(demandforecastingMainDO, demandforecastingDetailDO);
}
demandforecastingMainMapper.updateById(demandforecastingMainDO);
demandforecastingDetailMapper.updateBatch(subDOList);
@ -283,16 +285,16 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
}
//校验主表公共方法(适用于新增/修改)
private DemandforecastingMainDO validateMainMethod(DemandforecastingMainBaseVO baseVO){
private DemandforecastingMainDO validateMainMethod(DemandforecastingMainBaseVO baseVO) {
DemandforecastingMainDO demandforecastingMainDO = DemandforecastingMainConvert.INSTANCE.convert(baseVO);
this.validatorSupplier(demandforecastingMainDO.getSupplierCode());
return demandforecastingMainDO;
}
//校验子表公共方法(适用于新增/修改)
private void validateDetailMethod(DemandforecastingMainDO demandforecastingMainDO,DemandforecastingDetailDO demandforecastingDetailDO) {
private void validateDetailMethod(DemandforecastingMainDO demandforecastingMainDO, DemandforecastingDetailDO demandforecastingDetailDO) {
itembasicService.selectItembasic(demandforecastingDetailDO.getItemCode());
purchaseMainService.selectPurchaseDetailDoExist(demandforecastingDetailDO.getNumber(), demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode(), demandforecastingDetailDO.getPoLine());
purchaseMainService.selectPurchaseDetailDoExist(demandforecastingDetailDO.getPoNumber(), demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode(), demandforecastingDetailDO.getPoLine());
supplieritemService.selectSupplierItemExist(demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode());
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockService.java

@ -70,7 +70,7 @@ public interface DockService {
*/
PageResult<DockDO> getDockSenior(CustomConditions conditions);
/**
* 获得月台列表, 用于 Excel 导出
*
@ -83,9 +83,19 @@ public interface DockService {
/**
* 校验(客户地点 月台)收货口有效状态正确
* @author chenfang
*
* @param code 代码
* @return 月台列表
* @author chenfang
*/
DockDO DockExist(String code);
/**
* 查询月台
*
* @param code toWarehouseCode
* @return 月台列表
* @author yejiaxing
*/
DockDO selectDockByTwoCode(String code, String toWarehouseCode);
}

60
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockServiceImpl.java

@ -40,9 +40,9 @@ public class DockServiceImpl implements DockService {
@Override
public Long createDock(DockCreateReqVO createReqVO) {
validateDockForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getType(),createReqVO.getWarehouseCode(),createReqVO.getDefaultLocationCode(),createReqVO.getAvailable());
validateDockForCreateOrUpdate(createReqVO.getId(), createReqVO.getCode(), createReqVO.getType(), createReqVO.getWarehouseCode(), createReqVO.getDefaultLocationCode(), createReqVO.getAvailable());
// 插入
// 插入
DockDO dock = DockConvert.INSTANCE.convert(createReqVO);
dockMapper.insert(dock);
// 返回
@ -52,8 +52,8 @@ public class DockServiceImpl implements DockService {
@Override
public void updateDock(DockUpdateReqVO updateReqVO) {
// 校验存在
validateDockForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getType(),updateReqVO.getWarehouseCode(),updateReqVO.getDefaultLocationCode(),updateReqVO.getAvailable());
// 更新
validateDockForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getCode(), updateReqVO.getType(), updateReqVO.getWarehouseCode(), updateReqVO.getDefaultLocationCode(), updateReqVO.getAvailable());
// 更新
DockDO updateObj = DockConvert.INSTANCE.convert(updateReqVO);
dockMapper.updateById(updateObj);
}
@ -85,13 +85,13 @@ public class DockServiceImpl implements DockService {
public PageResult<DockDO> getDockSenior(CustomConditions conditions) {
return dockMapper.selectSenior(conditions);
}
@Override
public List<DockDO> getDockList(DockExportReqVO exportReqVO) {
return dockMapper.selectList(exportReqVO);
}
public String valitedock(DockDO dock){
public String valitedock(DockDO dock) {
StringBuilder message = new StringBuilder();
try {
validateDockExists(null);
@ -99,7 +99,7 @@ public class DockServiceImpl implements DockService {
message.append(ex.getMessage()).append(",");
}
try {
validateCodeExists(null,dock.getCode());
validateCodeExists(null, dock.getCode());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
@ -136,20 +136,19 @@ public class DockServiceImpl implements DockService {
DockDO dockDO = DockConvert.INSTANCE.convert(dock);
String message = this.valitedock(dockDO);
boolean flag = true;
if(!message.isEmpty()){
if (!message.isEmpty()) {
DockImportErrorVO importErrorVO = DockConvert.INSTANCE.convert2(dockDO);
importErrorVO.setImportStatus("失败");
importErrorVO.setImportRemark(message.substring(0, message.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
if(flag){
if (flag) {
// 判断如果不存在,在进行插入
DockDO existAccountcalendar = dockMapper.selectByItemCode(dockDO.getCode());
if (existAccountcalendar == null&& mode != 3) {
DockDO existAccountcalendar = dockMapper.selectByItemCode(dockDO.getCode());
if (existAccountcalendar == null && mode != 3) {
dockMapper.insert(DockConvert.INSTANCE.convert(dock));
}
else if (existAccountcalendar != null && mode != 2) {
} else if (existAccountcalendar != null && mode != 2) {
// 如果存在,判断是否允许更新
dockDO.setId(existAccountcalendar.getId());
dockMapper.updateById(dockDO);
@ -160,13 +159,12 @@ public class DockServiceImpl implements DockService {
}
private void validateDockForCreateOrUpdate(Long id, String code,String type, String warehouseCode,
String defaultLocationCode,String available) {
private void validateDockForCreateOrUpdate(Long id, String code, String type, String warehouseCode,
String defaultLocationCode, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateDockExists(id);
validateCodeExists(id,code);
validateCodeExists(id, code);
// 校验code唯一
validateTypeExists(type);
validateWareHouseCodeExists(warehouseCode);
@ -174,6 +172,7 @@ public class DockServiceImpl implements DockService {
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateDockExists(Long id) {
if (id == null) {
@ -184,8 +183,9 @@ public class DockServiceImpl implements DockService {
throw exception(DOCK_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
private void validateCodeExists(Long id, String code) {
if (code.isEmpty()) {
throw exception(DOCK_CODE_NOT_EXISTS);
}
@ -204,24 +204,28 @@ public class DockServiceImpl implements DockService {
throw exception(DOCK_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateTypeExists(String type) {
if (type.isEmpty()) {
throw exception(DOCK_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateWareHouseCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(DOCK_WARE_HOUSE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDefaultLocationCodeExists(String defaultLocationCode) {
if (defaultLocationCode.isEmpty()) {
throw exception(DOCK_DEFAULT_LOCATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
@ -232,11 +236,25 @@ public class DockServiceImpl implements DockService {
@Override
public DockDO DockExist(String code) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",code);
queryWrapper.eq("code", code);
DockDO dockDO = dockMapper.selectOne(queryWrapper);
if (dockDO != null && "TRUE".equals(dockDO.getAvailable())) {
return dockDO;
} else {
throw exception(DOCK_NOT_EXISTS);
}
}
@Override
public DockDO selectDockByTwoCode(String code, String toWarehouseCode) {
QueryWrapper<DockDO> queryWrapper = new QueryWrapper();
queryWrapper.eq("code", code);
queryWrapper.eq("warehouse_code", toWarehouseCode);
queryWrapper.eq("available", "TRUE");
DockDO dockDO = dockMapper.selectOne(queryWrapper);
if(dockDO != null&& "TRUE".equals(dockDO.getAvailable())){
if (dockDO != null && "TRUE".equals(dockDO.getAvailable())) {
return dockDO;
}else {
} else {
throw exception(DOCK_NOT_EXISTS);
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java

@ -314,10 +314,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
// 校验物品基础信息
ItembasicDO itembasicDO = this.validatorItembasic(detailDo.getItemCode());
if (itembasicDO != null) {
if (itembasicDO.getUom() != detailDo.getUom()) {
throw exception(UOM_ERRORR, itembasicDO.getUom(), detailDo.getUom());
}
if (itembasicDO.getUom() != detailDo.getUom()) {
if (!itembasicDO.getUom().equals( detailDo.getUom())) {
throw exception(UOM_ERRORR, itembasicDO.getUom(), detailDo.getUom());
}
if ("FALSE".equals(itembasicDO.getEnableBuy())) {
@ -325,7 +322,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
}else {
throw exception(SCRAP_REQUEST_ITEMCODE_INVALID);
} this.validatorItemPackagingExist(detailDo.getItemCode());
}
this.validatorItemPackagingExist(detailDo.getItemCode());
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode());
if (itempackagingDO != null) {
detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit());

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java

@ -25,6 +25,7 @@ import com.win.module.wms.convert.supplierdeliverRecord.SupplierdeliverRecordMai
import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestDetailConvert;
import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.dock.DockDO;
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.location.LocationDO;
@ -48,6 +49,7 @@ import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverReques
import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.dock.DockService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackaging.ItempackagingService;
import com.win.module.wms.service.location.LocationService;
@ -130,7 +132,10 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq
@Resource
private LocationService locationService;
@Resource
PurchasereceiptRequestMainService purchasereceiptRequestMainService;
private PurchasereceiptRequestMainService purchasereceiptRequestMainService;
@Resource
private DockService dockService;
@Override
@Transactional
@ -723,6 +728,9 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq
}
//生成采购收货申请 叶佳兴
PurchasereceiptRequestMainCreateReqVO purchasereceiptRequestMainCreateReqVO = new PurchasereceiptRequestMainCreateReqVO();
//查询月台
DockDO dockDO = dockService.selectDockByTwoCode(mainDO.getToDockCode(),mainDO.getToWarehouseCode());
mainDO.setToWarehouseCode(dockDO.getWarehouseCode());
BeanUtils.copyProperties(mainDO, purchasereceiptRequestMainCreateReqVO);
List<PurchasereceiptRequestDetailCreateReqVO> purchasereceiptRequestDetailCreateReqVOList = new ArrayList<>();
for (SupplierdeliverRequestDetailDO detailDO : detailDOList) {
@ -752,8 +760,8 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq
purchasereceiptRequestDetailCreateReqVO.setArriveDate(detailDO.getArriveDate());
purchasereceiptRequestDetailCreateReqVO.setPackingNumber(packageDO.getNumber());
purchasereceiptRequestDetailCreateReqVO.setInventoryStatus("INSP");
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDO.getSupplierCode(), detailDO.getItemCode());
purchasereceiptRequestDetailCreateReqVO.setDefaultToLocationCode(supplieritemDO.getDefaultLocationCode());
//查询月台后赋值
purchasereceiptRequestDetailCreateReqVO.setDefaultToLocationCode(dockDO.getDefaultLocationCode());
purchasereceiptRequestDetailCreateReqVO.setId(null);
purchasereceiptRequestDetailCreateReqVOList.add(purchasereceiptRequestDetailCreateReqVO);
}

Loading…
Cancel
Save