Browse Source

BUG修改

master
叶佳兴 2 years ago
parent
commit
1279bec297
  1. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java
  2. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailBaseVO.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java
  4. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java
  5. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java
  6. 31
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java
  7. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java

@ -137,8 +137,10 @@ public class PurchaseMainController {
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_ORDER_TYPE); String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_ORDER_TYPE);
mapDropDown.put(2, type); mapDropDown.put(2, type);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); String[] isConsignment = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
// mapDropDown.put(25, uom); mapDropDown.put(6, isConsignment);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(11, uom);
// 输出 // 输出
ExcelUtils.write(response, "采购订单导入模板.xlsx", "采购订单列表", PurchaseMainImportVO.class, list, mapDropDown); ExcelUtils.write(response, "采购订单导入模板.xlsx", "采购订单列表", PurchaseMainImportVO.class, list, mapDropDown);
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailBaseVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.purchase.vo; package com.win.module.wms.controller.purchase.vo;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -102,6 +104,7 @@ public class PurchaseDetailBaseVO {
@Schema(description = "计量单位", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "计量单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "计量单位不能为空") @NotNull(message = "计量单位不能为空")
@DictFormat(DictTypeConstants.UOM)
private String uom; private String uom;
@Schema(description = "最后更新时间") @Schema(description = "最后更新时间")

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java

@ -4,7 +4,6 @@ import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -22,10 +21,10 @@ public class PurchaseMainBaseVO {
private Long id; private Long id;
@Schema(description = "供应商代码") @Schema(description = "供应商代码")
@OnlyOne
private String supplierCode; private String supplierCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@OnlyOne
private String number; private String number;
@Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED)

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

@ -32,21 +32,16 @@ public class PurchaseMainImportVO {
@ExcelProperty("订单类型") @ExcelProperty("订单类型")
@DictFormat("purchase_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("purchase_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type; private String type;
@ExcelProperty("联系人姓名") @ExcelProperty("联系人姓名")
private String contactName; private String contactName;
@ExcelProperty("联系人电话") @ExcelProperty("联系人电话")
@ColumnWidth(value = 16) @ColumnWidth(value = 16)
private String contactPhone; private String contactPhone;
@ExcelProperty("联系人电子邮件") @ExcelProperty("联系人电子邮件")
@ColumnWidth(value = 16) @ColumnWidth(value = 16)
private String contactEmail; private String contactEmail;
@ExcelProperty("是否寄存订单") @ExcelProperty("是否寄存订单")
private String isConsignment; private String isConsignment;
@ExcelProperty("截止日期") @ExcelProperty("截止日期")
private LocalDateTime dueDate; private LocalDateTime dueDate;
@ -58,6 +53,7 @@ public class PurchaseMainImportVO {
@ExcelProperty("数量") @ExcelProperty("数量")
private BigDecimal orderQty; private BigDecimal orderQty;
@ExcelProperty("计量单位") @ExcelProperty("计量单位")
@DictFormat("uom")
private String uom; private String uom;
@ExcelProperty("超收百分比") @ExcelProperty("超收百分比")
private BigDecimal overReceivingPercent; private BigDecimal overReceivingPercent;

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

@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -73,6 +74,11 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe
@Override @Override
public Long createDemandforecastingMain(DemandforecastingMainCreateReqVO createReqVO) { 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); DemandforecastingMainDO demandforecastingMainDO = validatorToCreate(createReqVO);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) { if(RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) {

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

@ -11,6 +11,8 @@ import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchase.vo.*; import com.win.module.wms.controller.purchase.vo.*;
@ -56,7 +58,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -112,6 +113,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private SupplierService supplierService; private SupplierService supplierService;
@Resource
private DictDataApi dictDataApi;
@Override @Override
public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) { public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) {
@ -226,7 +229,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
boolean flag = true; boolean flag = true;
for (PurchaseDetailDO detailDO : subDOList) { for (PurchaseDetailDO detailDO : subDOList) {
String messageDetail = validatorPurchaseDetailImport(detailDO, mainDo); String messageDetail = validatorPurchaseDetailImport(detailDO, mainDo);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) { if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
PurchaseMainImportErrorVO importErrorVO = PurchaseDetailConvert.INSTANCE.convert(createReqVO, detailDO); PurchaseMainImportErrorVO importErrorVO = PurchaseDetailConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败"); importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;
@ -303,20 +306,20 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
this.validatorItembasic(detailDo.getItemCode()); this.validatorItembasic(detailDo.getItemCode());
this.validatorItemPackagingExist(detailDo.getItemCode()); this.validatorItemPackagingExist(detailDo.getItemCode());
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode());
if(itempackagingDO != null){ if (itempackagingDO != null) {
detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit());
detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); detailDo.setStdPackQty(itempackagingDO.getStdPackQty());
} }
SupplieritemDO supplieritemDO = this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); SupplieritemDO supplieritemDO = this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode());
if(supplieritemDO != null){ if (supplieritemDO != null) {
detailDo.setSupplierUom(supplieritemDO.getSupplierUom()); detailDo.setSupplierUom(supplieritemDO.getSupplierUom());
detailDo.setSupplierQty(supplieritemDO.getPackQty()); detailDo.setSupplierQty(supplieritemDO.getPackQty());
detailDo.setConvertRate(supplieritemDO.getConvertRate()); detailDo.setConvertRate(supplieritemDO.getConvertRate());
}else { } else {
throw exception(SUPPLIERITEM_NOT_EXISTS); throw exception(SUPPLIERITEM_NOT_EXISTS);
} }
StdcostpriceDO stdcostpriceDO = this.validatorStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode()); StdcostpriceDO stdcostpriceDO = this.validatorStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode());
if(stdcostpriceDO!=null){ if (stdcostpriceDO != null) {
detailDo.setSinglePrice(stdcostpriceDO.getPrice()); detailDo.setSinglePrice(stdcostpriceDO.getPrice());
if ("CNY".equals(stdcostpriceDO.getCurrency())) { if ("CNY".equals(stdcostpriceDO.getCurrency())) {
detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty())); detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()));
@ -324,7 +327,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY"); CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY");
detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()).multiply(currencyexchangeDO.getRate())); detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()).multiply(currencyexchangeDO.getRate()));
} }
}else { } else {
throw exception(STDCOSTPRICE_NOT_EXISTS); throw exception(STDCOSTPRICE_NOT_EXISTS);
} }
} }
@ -378,8 +381,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
//主表的验证 //主表的验证
//校验供应商基础信息 //校验供应商基础信息
try { try {
ShiftDO shiftDO = shiftService.selectShiftExist(mainDo.getSupplierCode()); SupplierDO supplierDO = supplierService.selectSupplier(mainDo.getSupplierCode());
if (shiftDO == null) { if (supplierDO == null) {
messageMain += "未查找到供应商" + mainDo.getSupplierCode() + "信息" + ","; messageMain += "未查找到供应商" + mainDo.getSupplierCode() + "信息" + ",";
} }
} catch (ServiceException ex) { } catch (ServiceException ex) {
@ -412,9 +415,9 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
// 校验物品基础信息 // 校验物品基础信息
try { try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
if (itembasicDO.getUom() != detailDo.getUom()) { // if (itembasicDO.getUom() != dictDataRespDTO.getValue()) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","; // messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",";
} // }
detailDo.setProjectCode(itembasicDO.getCode()); detailDo.setProjectCode(itembasicDO.getCode());
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += ex.getMessage() + ","; messageDetail += ex.getMessage() + ",";
@ -705,8 +708,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) {
QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper<>(); QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper<>();
purchaseDetailDOQueryWrapper.eq("number", poNumber); purchaseDetailDOQueryWrapper.eq("number", poNumber);
purchaseDetailDOQueryWrapper.eq("line_number", poNumber); purchaseDetailDOQueryWrapper.eq("line_number", poLine);
purchaseDetailDOQueryWrapper.eq("item_code", poNumber); purchaseDetailDOQueryWrapper.eq("item_code", itemCode);
purchaseDetailDOQueryWrapper.eq("available", "TRUE"); purchaseDetailDOQueryWrapper.eq("available", "TRUE");
List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper);
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) {

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

@ -329,7 +329,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
@Transactional @Transactional
public Integer closePurchasePlanMain(Long id) { public Integer closePurchasePlanMain(Long id) {
PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id); PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id);
mainDO.setStatus(PlanStatusEnum.CLOSED.getCode());//增加操作记录 mainDO.setStatus(PurchasePlanStatusEnum.CLOSED.getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "关闭了要货计划申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "plan_purchase_main", "关闭了要货计划申请", TrendsTypeEnum.UPDATE);
return purchasePlanMainMapper.updateById(mainDO); return purchasePlanMainMapper.updateById(mainDO);
} }
@ -338,7 +338,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
@Transactional @Transactional
public Integer openPurchasePlanMain(Long id) { public Integer openPurchasePlanMain(Long id) {
PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id); PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id);
mainDO.setStatus(PlanStatusEnum.NEW.getCode());//增加操作记录 mainDO.setStatus(PurchasePlanStatusEnum.NEW.getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "打开了要货计划申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "plan_purchase_main", "打开了要货计划申请", TrendsTypeEnum.UPDATE);
return purchasePlanMainMapper.updateById(mainDO); return purchasePlanMainMapper.updateById(mainDO);
} }
@ -347,7 +347,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
@Transactional @Transactional
public Integer publishPurchasePlanMain(Long id) { public Integer publishPurchasePlanMain(Long id) {
PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id); PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id);
mainDO.setStatus(PlanStatusEnum.PUBLISHED.getCode());//增加操作记录 mainDO.setStatus(PurchasePlanStatusEnum.PUBLISHED.getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "发布了要货计划申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "plan_purchase_main", "发布了要货计划申请", TrendsTypeEnum.UPDATE);
return purchasePlanMainMapper.updateById(mainDO); return purchasePlanMainMapper.updateById(mainDO);
} }
@ -356,7 +356,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
@Transactional @Transactional
public Integer witPurchasePlanMain(Long id) { public Integer witPurchasePlanMain(Long id) {
PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id); PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id);
mainDO.setStatus(PlanStatusEnum.NEW.getCode());//增加操作记录 mainDO.setStatus(PurchasePlanStatusEnum.NEW.getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "下架了要货计划申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "plan_purchase_main", "下架了要货计划申请", TrendsTypeEnum.UPDATE);
return purchasePlanMainMapper.updateById(mainDO); return purchasePlanMainMapper.updateById(mainDO);
} }
@ -365,7 +365,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
@Transactional @Transactional
public Integer accPurchasePlanMain(Long id) { public Integer accPurchasePlanMain(Long id) {
PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id); PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id);
mainDO.setStatus(PlanStatusEnum.AGREED.getCode());//增加操作记录 mainDO.setStatus(PurchasePlanStatusEnum.ACCEPTED.getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "接受了要货计划申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "plan_purchase_main", "接受了要货计划申请", TrendsTypeEnum.UPDATE);
return purchasePlanMainMapper.updateById(mainDO); return purchasePlanMainMapper.updateById(mainDO);
} }

Loading…
Cancel
Save