Browse Source

bug修改

master
叶佳兴 2 years ago
parent
commit
c0af913529
  1. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java
  2. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchase/PurchaseDetailDO.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchase/PurchaseMainMapper.java
  4. 76
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java

@ -51,10 +51,8 @@ public class PurchaseMainImportVO {
private LocalDateTime dueDate;
//子表数据
@ExcelProperty("单据号")
private String poNumber;
@ExcelProperty("行号")
private String poLine;
private String lineNumber;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("数量")

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchase/PurchaseDetailDO.java

@ -134,7 +134,7 @@ public class PurchaseDetailDO extends BaseDO {
*
* 枚举 {@link TODO purchase_order_detail_status 对应的类}
*/
private Integer status;
private String status;
/**
* 是否可用
*

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchase/PurchaseMainMapper.java

@ -46,9 +46,8 @@ public interface PurchaseMainMapper extends BaseMapperX<PurchaseMainDO> {
}
default PurchaseMainDO selectByNumber(String number) {
return selectOne(PurchaseMainDO::getNumber, number);
return selectOne(PurchaseMainDO::getNumber, number,PurchaseMainDO::getDeleted, false);
}
default PageResult<PurchaseMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}

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

@ -51,6 +51,7 @@ import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.stdcostprice.StdcostpriceService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -204,15 +205,17 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
}
@Override
@Transactional
public List<PurchaseMainImportErrorVO> importPurchaseMaintList(List<PurchaseMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PurchaseMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
for (PurchaseMainCreateReqVO createReqVO : datas) {
PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPurchaseMainImport(mainDo, businesstypeDO);
String messageMain = validatorPurchaseMainImport(mainDo);
List<PurchaseDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseDetailDO> subDOList = PurchaseDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
@ -230,18 +233,28 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_ORDER.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setOrderDate(LocalDateTime.MAX);
mainDo.setOrderDate(LocalDateTime.now());
mainDo.setTaxRate(BigDecimal.ZERO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setAvailable("TRUE");
purchaseMainMapper.insert(mainDo);
for ( PurchaseDetailDO detailDO : subDOList) {
for (PurchaseDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
detailDO.setNumber(mainDo.getNumber());
detailDO.setPlannedQty(BigDecimal.ZERO);
detailDO.setShippedQty(BigDecimal.ZERO);
detailDO.setReceivedQty(BigDecimal.ZERO);
detailDO.setReturnedQty(BigDecimal.ZERO);
detailDO.setPutawayQty(BigDecimal.ZERO);
detailDO.setErpLocationCode(null);
detailDO.setAvailable("TRUE");
detailDO.setStatus(OrderStatusEnum.READY.getCode());
}
purchaseDetailMapper.insertBatch(subDOList);
}
});
}
return errorList;
}
@ -261,19 +274,19 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
//子表校验 校验供应商物品
private void validatorSupplierItemExist(String supplierCode,String itemCode) {
supplieritemService.selectSupplierItemExist(supplierCode,itemCode);
private void validatorSupplierItemExist(String supplierCode, String itemCode) {
supplieritemService.selectSupplierItemExist(supplierCode, itemCode);
}
//子表校验 校验标准成本价格
private void validatorStdcostpriceExist(String supplierCode,String itemCode) {
StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(supplierCode,itemCode);
private void validatorStdcostpriceExist(String supplierCode, String itemCode) {
StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(supplierCode, itemCode);
}
//校验主表公共方法(适用于新增/修改)
private PurchaseMainDO validatorMainMethod(PurchaseMainBaseVO baseVO) {
PurchaseMainDO mainDo =PurchaseMainConvert.INSTANCE.convert(baseVO);
PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(baseVO);
this.validatorShiftExist(mainDo.getSupplierCode());
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
@ -285,8 +298,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
private void validatorDetailMethod(PurchaseDetailDO detailDo, PurchaseMainDO mainDo) {
validatorItembasic(detailDo.getItemCode());
validatorItemPackagingExist(detailDo.getItemCode());
validatorSupplierItemExist(mainDo.getSupplierCode(),detailDo.getItemCode());
validatorStdcostpriceExist(mainDo.getSupplierCode(),detailDo.getItemCode());
validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode());
validatorStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode());
}
//新增校验
@ -294,7 +307,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
PurchaseMainDO purchaseMainDO = validatorMainMethod(createReqVO);
//子表校验
List<PurchaseDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseDetailDO> subDOList =PurchaseDetailConvert.INSTANCE.convertList03(subList);
List<PurchaseDetailDO> subDOList = PurchaseDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseDetailDO purchaseDetailDO : subDOList) {
validatorDetailMethod(purchaseDetailDO, purchaseMainDO);
}
@ -309,9 +322,9 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
private PurchaseMainDO validatorToUpdate(PurchaseMainUpdateReqVO updateReqVO) {
PurchaseMainDO purchaseMainDO = validatorMainMethod(updateReqVO);
//子表校验
List< PurchaseDetailUpdateReqVO> subList = updateReqVO.getSubList();
List< PurchaseDetailDO> subDOList = PurchaseDetailConvert.INSTANCE.convertList05(subList);
for ( PurchaseDetailDO purchaseDetailDO : subDOList) {
List<PurchaseDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchaseDetailDO> subDOList = PurchaseDetailConvert.INSTANCE.convertList05(subList);
for (PurchaseDetailDO purchaseDetailDO : subDOList) {
validatorDetailMethod(purchaseDetailDO, purchaseMainDO);
}
purchaseMainMapper.updateById(purchaseMainDO);
@ -325,12 +338,28 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
* @param mainDo
* @return
*/
private String validatorPurchaseMainImport(PurchaseMainDO mainDo, BusinesstypeDO businesstypeDO) {
private String validatorPurchaseMainImport(PurchaseMainDO mainDo) {
String messageMain = "";
//主表的验证
//校验供应商基础信息
try {
ShiftDO shiftDO = shiftService.selectShiftExist(mainDo.getSupplierCode());
if (shiftDO == null) {
messageMain += "未查找到供应商" + mainDo.getSupplierCode() + "信息" + ",";
}
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
if (StringUtils.isEmpty(mainDo.getNumber())) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_ORDER.getCode());
mainDo.setNumber(number);
}
//校验单据号是否重复
try {
PurchaseMainDO purchaseMainDO = purchaseMainMapper.selectByNumber(mainDo.getNumber());
if (purchaseMainDO != null) {
messageMain += "单据号" + mainDo.getNumber() + "已存在" + ",";
}
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
@ -343,7 +372,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
* @param detailDo
* @return
*/
private String validatorPurchaseDetailImport(PurchaseDetailDO detailDo,PurchaseMainDO mainDo) {
private String validatorPurchaseDetailImport(PurchaseDetailDO detailDo, PurchaseMainDO mainDo) {
String messageDetail = "";
// 校验物品基础信息
try {
@ -367,7 +396,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
try {
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode());
detailDo.setSupplierUom(supplieritemDO.getSupplierUom());
detailDo.setStdPackQty(supplieritemDO.getPackQty());
detailDo.setSupplierQty(supplieritemDO.getPackQty());
detailDo.setConvertRate(supplieritemDO.getConvertRate());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
@ -389,7 +418,6 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
@Override
@Transactional
public Integer closePurchaseMain(Long id) {

Loading…
Cancel
Save