Browse Source

BUG修改

master
叶佳兴 2 years ago
parent
commit
d9696b4225
  1. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageExportReqVO.java
  4. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java
  5. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java
  6. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java
  7. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainExcelVO.java
  8. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java
  9. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainUpdateReqVO.java
  10. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java
  11. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseMainConvert.java
  12. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java
  13. 329
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java
  14. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java
  15. 78
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java
  16. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java
  17. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java
  18. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java

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

@ -66,7 +66,7 @@ public interface DictTypeConstants {
String INVENTORY_STATUS = "inventory_status";//库存状态
String REQUEST_STATUS = "request_status";//请求状态
String PLAN_STATUS = "plan_status";//计划状态
String PURCHASE_ORDER_TYPE = "purchase_order_type";//采购订单类型
String PURCHASE_RETURN_REASON = "purchase_return_reason";//原因
String TRANSFER_MODE = "transfer_mode";//运输方式

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

@ -414,6 +414,8 @@ public interface ErrorCodeConstants {
ErrorCode PURCHASE_PLAN_MAIN_NOT_EXISTS = new ErrorCode(1_000_069_000, "要货计划主不存在");
//要货计划子ErrorCode
ErrorCode PURCHASE_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_069_001, "要货计划子不存在");
//要货计划子ErrorCode
ErrorCode PURCHASE_PLAN_DETAIL_ACCEPTED = new ErrorCode(1_000_069_001, "未查找到接收状态下的要货计划");
//供应商发货申请主ErrorCode
ErrorCode SUPPLIERDELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_070_000, "供应商发货申请主不存在");
ErrorCode SUPPLIERDELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_070_001, "供应商发货申请子不存在");

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageExportReqVO.java

@ -1,13 +1,11 @@
package com.win.module.wms.controller.packageMassage.vo;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -83,7 +81,7 @@ public class PackageExportReqVO {
@Schema(description = "供应商物品代码")
private String supplierItemCode;
@Schema(description = "采购订单号")
@Schema(description = "Demandforecasting号")
private String poNumber;
@Schema(description = "采购订单行")

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

@ -3,6 +3,7 @@ package com.win.module.wms.controller.purchase;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
@ -11,6 +12,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.purchase.vo.*;
import com.win.module.wms.convert.purchase.PurchaseMainConvert;
import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.purchase.PurchaseMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -55,9 +57,10 @@ public class PurchaseMainController {
@Operation(summary = "更新采购订单主")
@PreAuthorize("@ss.hasPermission('wms:purchase-main:update')")
public CommonResult<Boolean> updatePurchaseMain(@Valid @RequestBody PurchaseMainUpdateReqVO updateReqVO) {
purchaseMainService.updatePurchaseMain(updateReqVO);
return success(true);
Long result = purchaseMainService.updatePurchaseMain(updateReqVO);
return success(result > 0);
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:purchase-main:query')")
@ -116,9 +119,11 @@ public class PurchaseMainController {
// 导出 Excel
List<PurchaseMainExcelVO> datas = PurchaseMainConvert.INSTANCE.convertList02(list);
for(PurchaseMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
if(vo.getCreator()!=null){
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
}
ExcelUtils.write(response, "采购订单主.xls", "数据", PurchaseMainExcelVO.class, datas);
}
@ -129,8 +134,8 @@ public class PurchaseMainController {
// 手动创建导出 demo
List<PurchaseMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
// mapDropDown.put(16, purchaseReturnReason);
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_ORDER_TYPE);
mapDropDown.put(2, type);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom);
// 输出

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

@ -1,5 +1,6 @@
package com.win.module.wms.controller.purchase.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -24,7 +25,7 @@ public class PurchaseMainBaseVO {
private String supplierCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
@OnlyOne
private String number;
@Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED)

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java

@ -13,7 +13,6 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PurchaseMainCreateReqVO extends PurchaseMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PurchaseDetailCreateReqVO> subList;

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainExcelVO.java

@ -1,17 +1,15 @@
package com.win.module.wms.controller.purchase.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
@ -37,9 +35,11 @@ public class PurchaseMainExcelVO {
private String status;
@ExcelProperty("订单日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime orderDate;
@ExcelProperty("截止日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime dueDate;
@ExcelProperty("版本")
@ -68,12 +68,14 @@ public class PurchaseMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
private String creator;
@ExcelProperty("最后更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")

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

@ -2,6 +2,7 @@ package com.win.module.wms.controller.purchase.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -29,6 +30,7 @@ public class PurchaseMainImportVO {
private String supplierCode;
//日程/离散
@ExcelProperty("订单类型")
@DictFormat("purchase_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type;
@ExcelProperty("联系人姓名")

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainUpdateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.purchase.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;
@Schema(description = "管理后台 - 采购订单主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PurchaseMainUpdateReqVO extends PurchaseMainBaseVO {
@Schema(description = "子表数据")
private List<PurchaseDetailUpdateReqVO> subList;
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java

@ -35,6 +35,8 @@ public interface PurchaseDetailConvert {
List<PurchaseDetailDO> convertList03(List<PurchaseDetailCreateReqVO> list);
List<PurchaseDetailDO> convertList05(List<PurchaseDetailUpdateReqVO> list);
PurchaseDetailCreateReqVO convert1(PurchaseDetailDO bean);
@Mappings({
@ -50,10 +52,9 @@ public interface PurchaseDetailConvert {
})
PurchaseDetailExcelVO convert( PurchaseMainDO mainDO, PurchaseDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchaseMainImportErrorVO convert( PurchaseMainCreateReqVO mainVo, PurchaseDetailCreateReqVO detailVo);
PurchaseMainImportErrorVO convert(PurchaseMainCreateReqVO mainVo, PurchaseDetailDO detailDo);
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseMainConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.purchase;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchase.vo.PurchaseMainCreateReqVO;
import com.win.module.wms.controller.purchase.vo.PurchaseMainExcelVO;
import com.win.module.wms.controller.purchase.vo.PurchaseMainRespVO;
import com.win.module.wms.controller.purchase.vo.PurchaseMainUpdateReqVO;
import com.win.module.wms.controller.purchase.vo.*;
import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO;
import java.util.List;
/**
* 采购订单主 Convert
@ -28,6 +24,8 @@ public interface PurchaseMainConvert {
PurchaseMainRespVO convert(PurchaseMainDO bean);
PurchaseMainDO convert( PurchaseMainBaseVO baseVO);
List<PurchaseMainRespVO> convertList(List<PurchaseMainDO> list);
PageResult<PurchaseMainRespVO> convertPage(PageResult<PurchaseMainDO> page);

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java

@ -39,7 +39,7 @@ public interface PurchaseMainService {
*
* @param updateReqVO 更新信息
*/
void updatePurchaseMain(@Valid PurchaseMainUpdateReqVO updateReqVO);
Long updatePurchaseMain(@Valid PurchaseMainUpdateReqVO updateReqVO);
/**
* 删除采购订单主
@ -90,9 +90,9 @@ public interface PurchaseMainService {
* @return 采购订单子列表
* @author chenfang
*/
public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine);
PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine);
public List<PurchaseMainImportErrorVO> importPurchaseMaintList(List<PurchaseMainCreateReqVO> datas, Integer mode, boolean updatePart);
List<PurchaseMainImportErrorVO> importPurchaseMaintList(List<PurchaseMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 关闭采购订单申请主

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

@ -5,13 +5,14 @@ import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.enums.CommonStatusEnum;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchase.vo.*;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.purchase.PurchaseDetailConvert;
@ -25,6 +26,7 @@ import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO;
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO;
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
@ -36,6 +38,7 @@ import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.order.OrderStatusEnum;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.plan.PurchasePlanStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.currencyexchange.CurrencyexchangeService;
import com.win.module.wms.service.documentSwitch.SwitchService;
@ -48,10 +51,8 @@ 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.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
@ -105,29 +106,38 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
private PurchasePlanMainService purchasePlanMainService;
@Resource
private PurchasePlanDetailMapper purchasePlanDetailMapper;
@Resource
private SerialNumberApi serialNumberApi;
@Override
public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) {
// 插入
PurchaseMainDO purchaseMain = PurchaseMainConvert.INSTANCE.convert(createReqVO);
purchaseMainMapper.insert(purchaseMain);
// 返回
return purchaseMain.getId();
// 插入主表
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseOrder");
PurchaseMainDO purchaseMainDO = validatorToCreate(createReqVO);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(purchaseMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseOrder", "增加了采购订单", TrendsTypeEnum.CREATE);
return purchaseMainDO.getId();
}
@Override
public PageResult<PurchaseMainDO> getPurchaseMainSenior(CustomConditions conditions) {
return purchaseMainMapper.selectSenior(conditions);
public Long updatePurchaseMain(PurchaseMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseOrder");
// 校验存在,如子表需要也再此校验
validatePurchaseMainExists(updateReqVO.getId());
// 更新主表
PurchaseMainDO purchaseMainDO = validatorToUpdate(updateReqVO);
if (RequestStatusEnum.HANDLING.getCode().equals(purchaseMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
return purchaseMainDO.getId();
}
@Override
public void updatePurchaseMain(PurchaseMainUpdateReqVO updateReqVO) {
// 校验存在
validatePurchaseMainExists(updateReqVO.getId());
// 更新
PurchaseMainDO updateObj = PurchaseMainConvert.INSTANCE.convert(updateReqVO);
purchaseMainMapper.updateById(updateObj);
public PageResult<PurchaseMainDO> getPurchaseMainSenior(CustomConditions conditions) {
return purchaseMainMapper.selectSenior(conditions);
}
@Override
@ -200,132 +210,186 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
}
List<PurchaseMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
//主表的验证
//校验供应商基础信息
try {
ShiftDO shiftDO = shiftService.selectShiftExist(createReqVO.getSupplierCode());
BeanUtils.copyProperties(createReqVO, shiftDO);
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
//校验供应商送货策略
// try {
// RuleRespVO ruleRespVO = ruleService.deliverGoods(null, createReqVO.getSupplierCode(), null);
// String json = ruleRespVO.getConfiguration();
// } catch (ServiceException ex) {
// importRemark += ex.getMessage() + ",";
// }
//子表的验证
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPurchaseMainImport(mainDo, businesstypeDO);
List<PurchaseDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseDetailDO> subDOList = PurchaseDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseDetailDO purchaseDetailDO : subDOList) {
String messageDetail = "";
// 校验物品基础信息
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode());
if (itembasicDO.getUom() != purchaseDetailDO.getUom()) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ",";
}
purchaseDetailDO.setProjectCode(itembasicDO.getCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
// 是否有错误数据
boolean flag = true;
for (PurchaseDetailDO detailDO : subDOList) {
String messageDetail = validatorPurchaseDetailImport(detailDO, mainDo);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
PurchaseMainImportErrorVO importErrorVO = PurchaseDetailConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
// 校验物品标包信息
try {
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailDO.getItemCode());
purchaseDetailDO.setStdPackUnit(itempackagingDO.getStdPackUnit());
purchaseDetailDO.setStdPackQty(itempackagingDO.getStdPackQty());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_ORDER.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setOrderDate(LocalDateTime.MAX);
purchaseMainMapper.insert(mainDo);
for ( PurchaseDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
purchaseDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
// 校验供应商物品
try {
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(createReqVO.getSupplierCode(), purchaseDetailDO.getItemCode());
purchaseDetailDO.setSupplierUom(supplieritemDO.getSupplierUom());
purchaseDetailDO.setStdPackQty(supplieritemDO.getPackQty());
purchaseDetailDO.setConvertRate(supplieritemDO.getConvertRate());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
//主表校验 校验供应商基础信息
private void validatorShiftExist(String supplierCode) {
shiftService.selectShiftExist(supplierCode);
}
// 校验标准成本价格
try {
StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(createReqVO.getSupplierCode(), purchaseDetailDO.getItemCode());
purchaseDetailDO.setSinglePrice(stdcostpriceDO.getPrice());
if ("CNY".equals(stdcostpriceDO.getCurrency())) {
purchaseDetailDO.setAmount(purchaseDetailDO.getSinglePrice().multiply(purchaseDetailDO.getOrderQty()));
} else {
CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY");
purchaseDetailDO.setAmount(purchaseDetailDO.getSinglePrice().multiply(purchaseDetailDO.getOrderQty()).multiply(currencyexchangeDO.getRate()));
}
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
//子表校验 校验供应商基础信息
private void validatorItembasic(String itemCode) {
itembasicService.selectItembasic(itemCode);
}
PurchaseDetailCreateReqVO purchaseDetailCreateReqVO = PurchaseDetailConvert.INSTANCE.convert1(purchaseDetailDO);
PurchaseMainImportErrorVO importVO = PurchaseDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
purchaseDetailDO.setNumber(createReqVO.getNumber());
purchaseDetailDO.setMasterId(createReqVO.getId());
purchaseDetailDO.setShippedQty(new BigDecimal(0));
purchaseDetailDO.setReceivedQty(new BigDecimal(0));
purchaseDetailDO.setReturnedQty(new BigDecimal(0));
purchaseDetailDO.setPutawayQty(new BigDecimal(0));
purchaseDetailDO.setErpLocationCode(null);
purchaseDetailDO.setStatus(CommonStatusEnum.ENABLE.getStatus());
}
}
//子表校验 校验物品标包信息
private void validatorItemPackagingExist(String itemCode) {
itempackagingService.selectItemPackagingExist(itemCode);
}
if (errorList.isEmpty()) {
// 判断如果不存在,在进行插入
PurchaseMainDO existPurchaseclaimRequestMainDO = purchaseMainMapper.selectByNumber(createReqVO.getNumber());
if (existPurchaseclaimRequestMainDO == null && mode != 3) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
if (businesstypeDO != null) {
createReqVO.setBusinessType(businesstypeDO.getCode());
}
createReqVO.setOrderDate(LocalDateTime.now());
createReqVO.setVersion(null);
createReqVO.setTaxRate(null);
PurchaseMainDO createObj = PurchaseMainConvert.INSTANCE.convert(createReqVO);
purchaseMainMapper.insert(createObj);
purchaseDetailMapper.insertBatch(subDOList);
} else if (existPurchaseclaimRequestMainDO != null && mode != 2) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
if (businesstypeDO != null) {
createReqVO.setBusinessType(businesstypeDO.getCode());
}
createReqVO.setOrderDate(LocalDateTime.now());
createReqVO.setVersion(null);
createReqVO.setTaxRate(null);
PurchaseMainDO createObj = PurchaseMainConvert.INSTANCE.convert(createReqVO);
purchaseMainMapper.updateById(createObj);
purchaseDetailMapper.updateBatch(subDOList);
}
//子表校验 校验供应商物品
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 PurchaseMainDO validatorMainMethod(PurchaseMainBaseVO baseVO) {
PurchaseMainDO mainDo =PurchaseMainConvert.INSTANCE.convert(baseVO);
this.validatorShiftExist(mainDo.getSupplierCode());
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
mainDo.setBusinessType(businesstypeDO.getCode());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchaseDetailDO detailDo, PurchaseMainDO mainDo) {
validatorItembasic(detailDo.getItemCode());
validatorItemPackagingExist(detailDo.getItemCode());
validatorSupplierItemExist(mainDo.getSupplierCode(),detailDo.getItemCode());
validatorStdcostpriceExist(mainDo.getSupplierCode(),detailDo.getItemCode());
}
//新增校验
private PurchaseMainDO validatorToCreate(PurchaseMainCreateReqVO createReqVO) {
PurchaseMainDO purchaseMainDO = validatorMainMethod(createReqVO);
//子表校验
List<PurchaseDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseDetailDO> subDOList =PurchaseDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseDetailDO purchaseDetailDO : subDOList) {
validatorDetailMethod(purchaseDetailDO, purchaseMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_ORDER.getCode());
purchaseMainDO.setNumber(number);
purchaseMainMapper.insert(purchaseMainDO);
purchaseDetailMapper.insertBatch(subDOList);
return purchaseMainDO;
}
//修改校验
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) {
validatorDetailMethod(purchaseDetailDO, purchaseMainDO);
}
purchaseMainMapper.updateById(purchaseMainDO);
purchaseDetailMapper.updateBatch(subDOList);
return purchaseMainDO;
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPurchaseMainImport(PurchaseMainDO mainDo, BusinesstypeDO businesstypeDO) {
String messageMain = "";
//主表的验证
//校验供应商基础信息
try {
ShiftDO shiftDO = shiftService.selectShiftExist(mainDo.getSupplierCode());
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
return messageMain;
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPurchaseDetailImport(PurchaseDetailDO detailDo,PurchaseMainDO mainDo) {
String messageDetail = "";
// 校验物品基础信息
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
if (itembasicDO.getUom() != detailDo.getUom()) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",";
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
detailDo.setProjectCode(itembasicDO.getCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
return errorList;
// 校验物品标包信息
try {
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode());
detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit());
detailDo.setStdPackQty(itempackagingDO.getStdPackQty());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验供应商物品
try {
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode());
detailDo.setSupplierUom(supplieritemDO.getSupplierUom());
detailDo.setStdPackQty(supplieritemDO.getPackQty());
detailDo.setConvertRate(supplieritemDO.getConvertRate());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验标准成本价格
try {
StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode());
detailDo.setSinglePrice(stdcostpriceDO.getPrice());
if ("CNY".equals(stdcostpriceDO.getCurrency())) {
detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()));
} else {
CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY");
detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()).multiply(currencyexchangeDO.getRate()));
}
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
return messageDetail;
}
@Override
@Transactional
public Integer closePurchaseMain(Long id) {
@ -486,6 +550,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
throw new ServiceException(PURCHASE_MAIN_NUMBERNO);
}
}
//更新采购订单表的已收货数量
@Override
@Transactional
@ -514,7 +579,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) {
//如果是离散单
if ("DISCRETE".equals(purchaseMainDO.getType())) {
if (purchaseDetailDO.getReceivedQty() .compareTo(purchaseDetailDO.getOrderQty())==0
if (purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty()) == 0
|| purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty().multiply(new BigDecimal(1).add(purchaseDetailDO.getOverReceivingPercent())))
>= 0) {
purchaseDetailDO.setAvailable("FALSE");
@ -534,6 +599,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
throw new ServiceException(PURCHASE_MAIN_NUMBERNO);
}
}
//更新采购订单表的已发货数量
@Override
@Transactional
@ -565,6 +631,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
throw new ServiceException(PURCHASE_MAIN_NUMBERNO);
}
}
//更新采购订单表的已发货数量
@Override
@Transactional

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java

@ -7,6 +7,7 @@ import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO;
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
@ -144,5 +145,17 @@ public interface PurchasePlanMainService {
*/
Integer rejPurchasePlanMain(Long id);
/**
* 更新要货计划的已发货数量
* @param number
* @param poNumber
* @param poLine
* @param itemCode
* @param shippedQty
* @return
*/
void updatePlanPurchaseShippedQty(String number, String poNumber,String poLine, String itemCode, BigDecimal shippedQty);
}

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

@ -22,6 +22,7 @@ import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanDetailMapper;
import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.plan.PurchasePlanStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
@ -33,13 +34,13 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 要货计划主 Service 实现类
@ -65,7 +66,6 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
@Resource
private TrendsApi trendsApi;
@Override
public Long createPurchasePlanMain(PurchasePlanMainCreateReqVO createReqVO) {
// 插入
@ -105,8 +105,6 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
return purchasePlanMainDO;
}
@Override
public PurchasePlanMainDO getPurchasePlanMain(Long id) {
return purchasePlanMainMapper.selectById(id);
@ -292,35 +290,45 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
}
//更新要货计划的已发货数量
// @Override
// @Transactional
// public void updatePlanPurchaseShippedQty(String number, String poNumber,String poLine, String itemCode, BigDecimal shippedQty) {
// QueryWrapper<PurchasePlanMainDO> purchaseMainDOQueryWrapper = new QueryWrapper();
// purchaseMainDOQueryWrapper.eq("number", poNumber);
// purchaseMainDOQueryWrapper.eq("status", OrderStatusEnum.PUBLISHED.getCode());
// List<PurchaseMainDO> purchaseMainDOList = purchaseMainMapper.selectList(purchaseMainDOQueryWrapper);
// if (purchaseMainDOList != null && purchaseMainDOList.size() > 0) {
// for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) {
// QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper();
// purchaseDetailDOQueryWrapper.eq("number", poNumber);
// purchaseDetailDOQueryWrapper.eq("line_number", poNumber);
// purchaseDetailDOQueryWrapper.eq("item_code", poNumber);
// purchaseDetailDOQueryWrapper.eq("available", "TRUE");
// List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper);
// for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) {
// //如果是离散单
// if ("DISCRETE".equals(purchaseMainDO.getType())) {
// purchaseDetailDO.setPlannedQty(purchaseDetailDO.getPlannedQty().add(planQty));
// } else {
// purchaseDetailDO.setPlannedQty(planQty);
// }
// trendsApi.createTrends(purchaseDetailDO.getId(), "plan_purchase_detail", "修改了采购订单申请子", TrendsTypeEnum.UPDATE);
// purchaseDetailMapper.updateById(purchaseDetailDO);
// }
// }
// } else {
// throw new ServiceException(PURCHASE_MAIN_NUMBERNO);
// }
// }
@Override
@Transactional
public void updatePlanPurchaseShippedQty(String number, String poNumber, String poLine, String itemCode, BigDecimal shippedQty) {
QueryWrapper<PurchasePlanMainDO> purchasePlanMainDOQueryWrapper = new QueryWrapper();
purchasePlanMainDOQueryWrapper.eq("number", poNumber);
purchasePlanMainDOQueryWrapper.eq("status", PurchasePlanStatusEnum.ACCEPTED.getCode());
List<PurchasePlanMainDO> purchasePlanMainDOList = purchasePlanMainMapper.selectList(purchasePlanMainDOQueryWrapper);
if (purchasePlanMainDOList != null && purchasePlanMainDOList.size() > 0) {
for (PurchasePlanMainDO purchasePlanMainDO : purchasePlanMainDOList) {
int i = 0;
QueryWrapper<PurchasePlanDetailDO> purchasePlanDetailDOQueryWrapper = new QueryWrapper();
purchasePlanDetailDOQueryWrapper.eq("number", number);
purchasePlanDetailDOQueryWrapper.eq("po_number", poNumber);
purchasePlanDetailDOQueryWrapper.eq("po_line", poLine);
purchasePlanDetailDOQueryWrapper.eq("item_code", itemCode);
purchasePlanDetailDOQueryWrapper.eq("available", "TRUE");
List<PurchasePlanDetailDO> purchasePlanDetailDOList = purchasePlanDetailMapper.selectList(purchasePlanDetailDOQueryWrapper);
if (purchasePlanDetailDOList != null && purchasePlanDetailDOList.size() > 0) {
for (PurchasePlanDetailDO purchasePlanDetailDO : purchasePlanDetailDOList) {
purchasePlanDetailDO.setShippedQty(shippedQty);
if (purchasePlanDetailDO.getPlanQty().compareTo(purchasePlanDetailDO.getShippedQty()) == 0) {
purchasePlanDetailDO.setAvailable("FALSE");
}
purchasePlanDetailMapper.updateById(purchasePlanDetailDO);
}
for (PurchasePlanDetailDO purchasePlanDetailDO : purchasePlanDetailDOList) {
if ("TRUE".equals(purchasePlanDetailDO.getAvailable())) {
i = 1;
}
}
}
if (i == 0) {
purchasePlanMainDO.setStatus(PurchasePlanStatusEnum.COMPLETED.getCode());
}
purchasePlanMainMapper.updateById(purchasePlanMainDO);
}
} else {
throw new ServiceException(PURCHASE_PLAN_DETAIL_ACCEPTED);
}
}
}

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

@ -81,14 +81,15 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override
@Transactional
public Long createPurchaseclaimRequestMain(PurchaseclaimRequestMainCreateReqVO createReqVO) {
// 插入主表
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO, requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
if (RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
@ -103,7 +104,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
validatorPurchaseclaimRequestMainExists(updateReqVO.getId());
// 更新主表
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
if (RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
@ -156,7 +157,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
}
@Override
public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
}
@ -189,7 +190,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6, BigDecimal.ROUND_HALF_UP));
}
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
}
@ -197,43 +198,44 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return errorList;
}
private void validatorSupplier(String SupplierCode){
private void validatorSupplier(String SupplierCode) {
supplierService.selectSupplier(SupplierCode);
}
private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode,String poLine){
private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode, String poLine) {
return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine);
}
private ItembasicDO validatorItembasic(String itemCode){
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
private void selectUomExist(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom);
private void selectUomExist(String itemUom, String uom) {
if (!itemUom.equals(uom)) {
throw exception(UOM_EXCEPTION, "提示单位" + uom + "错误,应该是" + itemUom);
}
}
private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine){
return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode,pasnNumber,pitemCode,ppoNumber,ppoLine);
private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine) {
return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode, pasnNumber, pitemCode, ppoNumber, ppoLine);
}
private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) {
if(shippedQty.add(qty).compareTo(orderQty) > 0){
throw exception(QTY_EXCEPTION,"订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
if (shippedQty.add(qty).compareTo(orderQty) > 0) {
throw exception(QTY_EXCEPTION, "订单行" + poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
}
}
//新增校验
private PurchaseclaimRequestMainDO validatorToCreate(PurchaseclaimRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO);
//子表校验
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO);
validatorDetailMethod(purchaseclaimRequestDetailDO, purchaseclaimRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
purchaseclaimRequestMainDO.setNumber(number);
@ -245,19 +247,20 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
//修改校验
private PurchaseclaimRequestMainDO validatorToUpdate(PurchaseclaimRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO);
//子表校验
List<PurchaseclaimRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList05(subList);
for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO);
validatorDetailMethod(purchaseclaimRequestDetailDO, purchaseclaimRequestMainDO);
}
purchaseclaimRequestMainMapper.updateById(purchaseclaimRequestMainDO);
purchaseclaimRequestDetailMapper.updateBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//校验主表公共方法(适用于新增/修改)
private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(baseVO);
this.validatorSupplier(mainDo.getSupplierCode());
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
@ -270,8 +273,9 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
mainDo.setBusinessType(businesstypeDO.getCode());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo,PurchaseclaimRequestMainDO mainDo) {
private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) {
validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), mainDo.getAsnNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine());
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
this.selectUomExist(itembasicDO.getUom(), detailDo.getUom());
@ -325,7 +329,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
private String validatorPurchaseclaimRequestDetailImport(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
if(!"".equals(mainDo.getAsnNumber())){
if (!"".equals(mainDo.getAsnNumber())) {
validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), detailDo.getNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine());
}
} catch (Exception ex) {
@ -345,7 +349,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
try {
ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty());
}catch (Exception ex){
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {

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

@ -19,7 +19,6 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -229,7 +228,7 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
@Override
public StdcostpriceDO selectStdcostpriceExist(String supplierCode,String pitemCode){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("itemcode",pitemCode);
queryWrapper.eq("item_code",pitemCode);
queryWrapper.eq("supplier_code",supplierCode);
StdcostpriceDO stdcostpriceDO = stdcostpriceMapper.selectOne(queryWrapper);
if(stdcostpriceDO != null && "TRUE".equals(stdcostpriceDO.getAvailable())){

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java

@ -19,7 +19,6 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -227,7 +226,7 @@ public class SupplieritemServiceImpl implements SupplieritemService {
@Override
public SupplieritemDO selectSupplierItemExist(String psupplierCode,String pitemCode){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("itemcode",pitemCode);
queryWrapper.eq("item_code",pitemCode);
queryWrapper.eq("supplier_code",psupplierCode);
SupplieritemDO supplieritemDO = supplieritemMapper.selectOne(queryWrapper);
if(supplieritemDO != null && "TRUE".equals(supplieritemDO.getAvailable())){

Loading…
Cancel
Save