1、订单管理相关 2、销售订单相关接口
This commit is contained in:
@@ -15,5 +15,6 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode ORDER_ID_NOT_EXISTS = new ErrorCode(1_008_000_010, "订单id不能为空");
|
ErrorCode ORDER_ID_NOT_EXISTS = new ErrorCode(1_008_000_010, "订单id不能为空");
|
||||||
ErrorCode PRCH_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_001, "采购订单明细不存在");
|
ErrorCode PRCH_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_001, "采购订单明细不存在");
|
||||||
ErrorCode PURCHASE_ORDER_STATUS_ERROR = new ErrorCode(1_008_001_020, "非法的订单状态");
|
ErrorCode PURCHASE_ORDER_STATUS_ERROR = new ErrorCode(1_008_001_020, "非法的订单状态");
|
||||||
ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_001, "销售订单不存在");
|
ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在");
|
||||||
|
ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.zt.plat.module.contractorder.enums.purchaseorder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public enum PurchaseOrderStatusEnum {
|
public enum OrderStatusEnum {
|
||||||
// 草稿状态
|
// 草稿状态
|
||||||
DRAFT("DRAFT", "草稿"),
|
DRAFT("DRAFT", "草稿"),
|
||||||
// 审批中状态
|
// 审批中状态
|
||||||
@@ -20,7 +20,7 @@ public enum PurchaseOrderStatusEnum {
|
|||||||
/** 状态描述 */
|
/** 状态描述 */
|
||||||
private final String description;
|
private final String description;
|
||||||
|
|
||||||
PurchaseOrderStatusEnum(String code, String description) {
|
OrderStatusEnum(String code, String description) {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
@@ -30,8 +30,8 @@ public enum PurchaseOrderStatusEnum {
|
|||||||
* @param code 状态编码
|
* @param code 状态编码
|
||||||
* @return 匹配的枚举,无匹配时返回 null
|
* @return 匹配的枚举,无匹配时返回 null
|
||||||
*/
|
*/
|
||||||
public static PurchaseOrderStatusEnum getByCode(String code) {
|
public static OrderStatusEnum getByCode(String code) {
|
||||||
for (PurchaseOrderStatusEnum status : PurchaseOrderStatusEnum.values()) {
|
for (OrderStatusEnum status : OrderStatusEnum.values()) {
|
||||||
if (status.getCode().equals(code)) {
|
if (status.getCode().equals(code)) {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -27,7 +27,7 @@ public class PurchaseOrderDetailsRespVO {
|
|||||||
/**
|
/**
|
||||||
* 公司编码;推送ERP(必须)
|
* 公司编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
/**
|
/**
|
||||||
* 客商编码;推送ERP(必须)
|
* 客商编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class PurchaseOrderRespVO {
|
|||||||
|
|
||||||
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("公司编码;推送ERP(必须)")
|
@ExcelProperty("公司编码;推送ERP(必须)")
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
|
|
||||||
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("客商编码;推送ERP(必须)")
|
@ExcelProperty("客商编码;推送ERP(必须)")
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.zt.plat.module.contractorder.api.ContractApiImpl;
|
|||||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
||||||
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderReviewReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||||
import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService;
|
import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService;
|
||||||
@@ -122,6 +123,26 @@ public class SalesOrderController implements BusinessControllerMarker {
|
|||||||
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
|
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//推送erp091
|
||||||
|
@PostMapping("/push-erp091")
|
||||||
|
@Operation(summary = "推送erp091")
|
||||||
|
public CommonResult<Boolean> pushErp091(@RequestParam("id")String id ) {
|
||||||
|
return success(salesOrderService.pushErp091(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
//提交审批
|
||||||
|
@PostMapping("/submit-order")
|
||||||
|
@Operation(summary = "提交审批")
|
||||||
|
public CommonResult<String> submitOrder(@RequestParam("id")String id ) {
|
||||||
|
return success(salesOrderService.submitOrder(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
//提交审批
|
||||||
|
@PostMapping("/order-pass-reject")
|
||||||
|
@Operation(summary = "订单审核")
|
||||||
|
public CommonResult<Boolean> orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) {
|
||||||
|
return success(salesOrderService.orderPassReject(reqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class SaleOrderDetailsRespVO {
|
|||||||
/**
|
/**
|
||||||
* 公司编码;推送ERP(必须)
|
* 公司编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
/**
|
/**
|
||||||
* 客商编码;推送ERP(必须)
|
* 客商编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ public class SalesOrderDetailSaveReqVO {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072")
|
@Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072")
|
||||||
@NotNull(message = "订单主键不能为空")
|
@NotEmpty(message = "订单主键不能为空")
|
||||||
private Long orderId;
|
private String orderId;
|
||||||
|
|
||||||
@Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotNull(message = "行项目;推送ERP(必须)不能为空")
|
@NotNull(message = "行项目;推送ERP(必须)不能为空")
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class SalesOrderPageReqVO extends PageParam {
|
|||||||
private String systemOrderNumber;
|
private String systemOrderNumber;
|
||||||
|
|
||||||
@Schema(description = "公司编码;推送ERP(必须)")
|
@Schema(description = "公司编码;推送ERP(必须)")
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
|
|
||||||
@Schema(description = "客商编码;推送ERP(必须)")
|
@Schema(description = "客商编码;推送ERP(必须)")
|
||||||
private String supplierNumber;
|
private String supplierNumber;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class SalesOrderRespVO {
|
|||||||
|
|
||||||
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("公司编码;推送ERP(必须)")
|
@ExcelProperty("公司编码;推送ERP(必须)")
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
|
|
||||||
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("客商编码;推送ERP(必须)")
|
@ExcelProperty("客商编码;推送ERP(必须)")
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 订单审核请求对象 Request VO")
|
||||||
|
@Data
|
||||||
|
public class SalesOrderReviewReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "合同主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "合同主键ID不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotBlank(message = "审核意见不能为空")
|
||||||
|
private String reviewOpinion;
|
||||||
|
|
||||||
|
@Schema(description = "状态:待推送 WAIT_PUSH,已驳回 REJECTED", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotBlank(message = "审核状态不能为空")
|
||||||
|
private String status;
|
||||||
|
}
|
||||||
@@ -32,7 +32,7 @@ public class SalesOrderSaveReqVO {
|
|||||||
|
|
||||||
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotEmpty(message = "公司编码;推送ERP(必须)不能为空")
|
@NotEmpty(message = "公司编码;推送ERP(必须)不能为空")
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
|
|
||||||
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotEmpty(message = "客商编码;推送ERP(必须)不能为空")
|
@NotEmpty(message = "客商编码;推送ERP(必须)不能为空")
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class PurchaseOrderDO extends BusinessBaseDO {
|
|||||||
* 公司编码;推送ERP(必须)
|
* 公司编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
@TableField("CPN_NUM")
|
@TableField("CPN_NUM")
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
/**
|
/**
|
||||||
* 客商编码;推送ERP(必须)
|
* 客商编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class SalesOrderDO extends BusinessBaseDO {
|
|||||||
* 公司编码;推送ERP(必须)
|
* 公司编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
@TableField("CPN_NUM")
|
@TableField("CPN_NUM")
|
||||||
private String companyNumber;
|
private String cpNum;
|
||||||
/**
|
/**
|
||||||
* 客商编码;推送ERP(必须)
|
* 客商编码;推送ERP(必须)
|
||||||
*/
|
*/
|
||||||
@@ -291,5 +291,16 @@ public class SalesOrderDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("SALE_ORGZ_NAME")
|
@TableField("SALE_ORGZ_NAME")
|
||||||
private String saleOrgzName;
|
private String saleOrgzName;
|
||||||
|
/**
|
||||||
|
* 付款方名称
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableField("PYER_NUM")
|
||||||
|
private String payerName;
|
||||||
|
/**
|
||||||
|
* 付款方编码
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableField("PYER_NUM")
|
||||||
|
private String payerNum;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseOrderDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseOrderDO>()
|
||||||
.eqIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
.eqIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
||||||
.likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
.likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||||
.eqIfPresent(PurchaseOrderDO::getCompanyNumber, reqVO.getCompanyNumber())
|
.eqIfPresent(PurchaseOrderDO::getCpNum, reqVO.getCompanyNumber())
|
||||||
.eqIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
.eqIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
||||||
.likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName())
|
.likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName())
|
||||||
.eqIfPresent(PurchaseOrderDO::getType, reqVO.getType())
|
.eqIfPresent(PurchaseOrderDO::getType, reqVO.getType())
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public interface SalesOrderMapper extends BaseMapperX<SalesOrderDO> {
|
|||||||
return selectPage(reqVO, new LambdaQueryWrapperX<SalesOrderDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<SalesOrderDO>()
|
||||||
.eqIfPresent(SalesOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
.eqIfPresent(SalesOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
||||||
.eqIfPresent(SalesOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
.eqIfPresent(SalesOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||||
.eqIfPresent(SalesOrderDO::getCompanyNumber, reqVO.getCompanyNumber())
|
.eqIfPresent(SalesOrderDO::getCpNum, reqVO.getCpNum())
|
||||||
.eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
.eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
||||||
.likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName())
|
.likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName())
|
||||||
.eqIfPresent(SalesOrderDO::getType, reqVO.getType())
|
.eqIfPresent(SalesOrderDO::getType, reqVO.getType())
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMappe
|
|||||||
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper;
|
||||||
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper;
|
||||||
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
|
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
|
||||||
import com.zt.plat.module.contractorder.enums.purchaseorder.PurchaseOrderStatusEnum;
|
import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum;
|
||||||
import com.zt.plat.module.contractorder.service.contract.ContractService;
|
import com.zt.plat.module.contractorder.service.contract.ContractService;
|
||||||
import com.zt.plat.module.contractorder.util.constants.ProcessDefinitionKeyConstants;
|
import com.zt.plat.module.contractorder.util.constants.ProcessDefinitionKeyConstants;
|
||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
|
||||||
@@ -92,25 +92,25 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
|
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
|
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
|
||||||
if (Objects.equals(createReqVO.getIsPush(), 0)) {
|
// if (Objects.equals(createReqVO.getIsPush(), 0)) {
|
||||||
purchaseOrder.setStatus(PurchaseOrderStatusEnum.DRAFT.getCode()); //设置初始状态
|
purchaseOrder.setStatus(OrderStatusEnum.DRAFT.getCode()); //设置初始状态
|
||||||
} else {
|
// } else {
|
||||||
purchaseOrder.setStatus(PurchaseOrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
// purchaseOrder.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
||||||
}
|
// }
|
||||||
//生成订单号
|
//生成订单号
|
||||||
String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp());
|
String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp());
|
||||||
purchaseOrder.setSystemOrderNumber(orderNumber);
|
purchaseOrder.setSystemOrderNumber(orderNumber);
|
||||||
purchaseOrderMapper.insert(purchaseOrder);
|
purchaseOrderMapper.insert(purchaseOrder);
|
||||||
|
|
||||||
if (createReqVO.getPrchOrdDtlSaveReqVOS()==null||createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) {
|
// if (createReqVO.getPrchOrdDtlSaveReqVOS()==null||createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) {
|
||||||
return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
// return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||||
}
|
// }
|
||||||
//批量插入订单明细
|
// //批量插入订单明细
|
||||||
createReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(purchaseOrder.getId()));
|
// createReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(purchaseOrder.getId()));
|
||||||
List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getPrchOrdDtlSaveReqVOS());
|
// List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getPrchOrdDtlSaveReqVOS());
|
||||||
PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
// PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||||
purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
|
// purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
|
||||||
return purchaseOrderRespVO;
|
return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -205,7 +205,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);// 获取流程当前审批的任务节点
|
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);// 获取流程当前审批的任务节点
|
||||||
purchaseOrderDO.setTaskId(undoTask.getId());
|
purchaseOrderDO.setTaskId(undoTask.getId());
|
||||||
}
|
}
|
||||||
purchaseOrderDO.setStatus(PurchaseOrderStatusEnum.APPROVING.getCode()); //
|
purchaseOrderDO.setStatus(OrderStatusEnum.APPROVING.getCode()); //
|
||||||
purchaseOrderMapper.updateById(purchaseOrderDO);
|
purchaseOrderMapper.updateById(purchaseOrderDO);
|
||||||
return "提交审批成功";
|
return "提交审批成功";
|
||||||
}
|
}
|
||||||
@@ -233,7 +233,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
BpmTaskRespDTO undoTask = taskListNew.get(taskListNew.size() - 1);
|
BpmTaskRespDTO undoTask = taskListNew.get(taskListNew.size() - 1);
|
||||||
purchaseOrderDO.setTaskId(undoTask.getId());
|
purchaseOrderDO.setTaskId(undoTask.getId());
|
||||||
}
|
}
|
||||||
purchaseOrderDO.setStatus(PurchaseOrderStatusEnum.APPROVING.getCode());
|
purchaseOrderDO.setStatus(OrderStatusEnum.APPROVING.getCode());
|
||||||
purchaseOrderMapper.updateById(purchaseOrderDO);
|
purchaseOrderMapper.updateById(purchaseOrderDO);
|
||||||
return "提交审批成功";
|
return "提交审批成功";
|
||||||
}
|
}
|
||||||
@@ -258,7 +258,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
erpOrderSaveReqVO.setOrderNo(order.getSystemOrderNumber());
|
erpOrderSaveReqVO.setOrderNo(order.getSystemOrderNumber());
|
||||||
// 1. 处理抬头信息(Head)
|
// 1. 处理抬头信息(Head)
|
||||||
ErpOrderSaveReqVO.Head head = new ErpOrderSaveReqVO.Head();
|
ErpOrderSaveReqVO.Head head = new ErpOrderSaveReqVO.Head();
|
||||||
head.setComp_code(order.getCompanyNumber()); // 公司编码 -> 公司代码
|
head.setComp_code(order.getCpNum()); // 公司编码 -> 公司代码
|
||||||
head.setVendor(order.getSupplierNumber()); // 客商编码 -> 供应商帐号
|
head.setVendor(order.getSupplierNumber()); // 客商编码 -> 供应商帐号
|
||||||
head.setDoc_type(order.getType()); // 订单类型 -> 采购凭证类型
|
head.setDoc_type(order.getType()); // 订单类型 -> 采购凭证类型
|
||||||
head.setDoc_date(order.getVoucherDate() != null ? order.getVoucherDate().toLocalDate() : null); // 凭证日期 -> 采购凭证日期
|
head.setDoc_date(order.getVoucherDate() != null ? order.getVoucherDate().toLocalDate() : null); // 凭证日期 -> 采购凭证日期
|
||||||
@@ -395,7 +395,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
public boolean updateOrderStatus(Long orderId, String status) {
|
public boolean updateOrderStatus(Long orderId, String status) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validatePurchaseOrderExists(orderId);
|
validatePurchaseOrderExists(orderId);
|
||||||
PurchaseOrderStatusEnum byCode = PurchaseOrderStatusEnum.getByCode(status);
|
OrderStatusEnum byCode = OrderStatusEnum.getByCode(status);
|
||||||
if (byCode == null) {
|
if (byCode == null) {
|
||||||
throw exception(PURCHASE_ORDER_STATUS_ERROR);
|
throw exception(PURCHASE_ORDER_STATUS_ERROR);
|
||||||
}
|
}
|
||||||
@@ -433,7 +433,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
if (reqVO.getOrderNos() != null) {
|
if (reqVO.getOrderNos() != null) {
|
||||||
validatePurchaseOrderNosExists(reqVO.getOrderNos());
|
validatePurchaseOrderNosExists(reqVO.getOrderNos());
|
||||||
}
|
}
|
||||||
PurchaseOrderStatusEnum byCode = PurchaseOrderStatusEnum.getByCode(reqVO.getSts());
|
OrderStatusEnum byCode = OrderStatusEnum.getByCode(reqVO.getSts());
|
||||||
if (byCode == null) {
|
if (byCode == null) {
|
||||||
throw exception(PURCHASE_ORDER_STATUS_ERROR);
|
throw exception(PURCHASE_ORDER_STATUS_ERROR);
|
||||||
}
|
}
|
||||||
@@ -569,10 +569,10 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||||
//如果审核通过
|
//如果审核通过
|
||||||
if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) {
|
if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
purchaseOrderDO.setStatus(PurchaseOrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
purchaseOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
||||||
} else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) {
|
} else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
//如果审核不通过
|
//如果审核不通过
|
||||||
purchaseOrderDO.setStatus(PurchaseOrderStatusEnum.DRAFT.getCode());
|
purchaseOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||||
}
|
}
|
||||||
//设置审核意见
|
//设置审核意见
|
||||||
purchaseOrderDO.setReviewOpinion(purchaseorderReqVO.getReviewOpinion());
|
purchaseOrderDO.setReviewOpinion(purchaseorderReqVO.getReviewOpinion());
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
|
|||||||
public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) {
|
public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class);
|
SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class);
|
||||||
|
salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId()));
|
||||||
salesOrderDetailMapper.insert(salesOrderDetail);
|
salesOrderDetailMapper.insert(salesOrderDetail);
|
||||||
// 返回
|
// 返回
|
||||||
return BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class);
|
return BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class);
|
||||||
@@ -48,6 +49,9 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public List<SalesOrderDetailRespVO> createSalesOrderDetail(List<SalesOrderDetailSaveReqVO> createReqVOS) {
|
public List<SalesOrderDetailRespVO> createSalesOrderDetail(List<SalesOrderDetailSaveReqVO> createReqVOS) {
|
||||||
List<SalesOrderDetailDO> salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class);
|
List<SalesOrderDetailDO> salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class);
|
||||||
|
salesOrderDetailDOS.forEach(salesOrderDetail -> {
|
||||||
|
createReqVOS.forEach(createReqVO -> salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId())));
|
||||||
|
});
|
||||||
salesOrderDetailMapper.insertBatch(salesOrderDetailDOS);
|
salesOrderDetailMapper.insertBatch(salesOrderDetailDOS);
|
||||||
return BeanUtils.toBean(salesOrderDetailDOS, SalesOrderDetailRespVO.class);
|
return BeanUtils.toBean(salesOrderDetailDOS, SalesOrderDetailRespVO.class);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package com.zt.plat.module.contractorder.service.salesorder;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseorderReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
||||||
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderReviewReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||||
import jakarta.validation.*;
|
import jakarta.validation.*;
|
||||||
@@ -61,7 +63,32 @@ public interface SalesOrderService {
|
|||||||
* @return 采购订单分页
|
* @return 采购订单分页
|
||||||
*/
|
*/
|
||||||
PageResult<SalesOrderDO> getSalesOrderPage(SalesOrderPageReqVO pageReqVO);
|
PageResult<SalesOrderDO> getSalesOrderPage(SalesOrderPageReqVO pageReqVO);
|
||||||
|
/**
|
||||||
|
* 设置采购订单详情
|
||||||
|
*
|
||||||
|
* @param salesOrderRespVO 采购订单
|
||||||
|
*/
|
||||||
void setSalesOrderDetail(SalesOrderRespVO salesOrderRespVO);
|
void setSalesOrderDetail(SalesOrderRespVO salesOrderRespVO);
|
||||||
|
/**
|
||||||
|
* 推送ERP
|
||||||
|
*
|
||||||
|
* @param orderId 订单编号
|
||||||
|
* @return 是否成功
|
||||||
|
*/
|
||||||
|
boolean pushErp091(String orderId);
|
||||||
|
/**
|
||||||
|
* 提交审批
|
||||||
|
*
|
||||||
|
* @param orderId 订单编号
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String submitOrder(String orderId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单审核通过和不通过
|
||||||
|
*
|
||||||
|
* @param salesOrderReviewReqVO 采购审核
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,32 @@
|
|||||||
package com.zt.plat.module.contractorder.service.salesorder;
|
package com.zt.plat.module.contractorder.service.salesorder;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
|
import com.alibaba.fastjson2.JSONException;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO;
|
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
|
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO;
|
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||||
|
import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
|
||||||
|
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseorderReqVO;
|
||||||
|
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.*;
|
||||||
|
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||||
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
|
||||||
|
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
|
||||||
|
import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum;
|
||||||
|
import com.zt.plat.module.contractorder.util.constants.ProcessDefinitionKeyConstants;
|
||||||
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpSalesOrderSaveReqVO;
|
||||||
|
import com.zt.plat.module.erp.service.erp.ErpOrderService;
|
||||||
import com.zt.plat.module.system.api.sequence.SequenceApi;
|
import com.zt.plat.module.system.api.sequence.SequenceApi;
|
||||||
|
import com.zt.plat.module.system.api.user.AdminUserApi;
|
||||||
|
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -22,8 +40,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
|
|||||||
|
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PURCHASE_ORDER_NOT_EXISTS;
|
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*;
|
||||||
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.Sales_ORDER_NOT_EXISTS;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,6 +50,7 @@ import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeCons
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
|
@Slf4j
|
||||||
public class SalesOrderServiceImpl implements SalesOrderService {
|
public class SalesOrderServiceImpl implements SalesOrderService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@@ -40,23 +58,34 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|||||||
@Resource
|
@Resource
|
||||||
private SalesOrderDetailService salesOrderDetailService;
|
private SalesOrderDetailService salesOrderDetailService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmProcessInstanceApi bpmProcessInstanceApi;
|
||||||
|
@Resource
|
||||||
|
private AdminUserApi adminUserApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmTaskApi bpmTaskApi;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SequenceApi sequenceApi;
|
private SequenceApi sequenceApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ErpOrderService erpOrderService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) {
|
public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
SalesOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, SalesOrderDO.class);
|
SalesOrderDO salesOrderDO = BeanUtils.toBean(createReqVO, SalesOrderDO.class);
|
||||||
//订单号
|
//订单号
|
||||||
//生成订单号
|
//生成订单号
|
||||||
String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp());
|
String orderNumber = generateOrderNumber(salesOrderDO.getMtrlTp());
|
||||||
purchaseOrder.setSystemOrderNumber(orderNumber);
|
salesOrderDO.setSystemOrderNumber(orderNumber);
|
||||||
salesOrderMapper.insert(purchaseOrder);
|
salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||||
|
salesOrderMapper.insert(salesOrderDO);
|
||||||
// 返回
|
// 返回
|
||||||
return BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class);
|
return BeanUtils.toBean(salesOrderDO, SalesOrderRespVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -119,9 +148,207 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|||||||
salesOrderRespVO.setSalesOrderDetailRespVOS(salesOrderDetailByOrderId);
|
salesOrderRespVO.setSalesOrderDetailRespVOS(salesOrderDetailByOrderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String generateOrderNumber(String materialType) {
|
private String generateOrderNumber(String materialType) {
|
||||||
return sequenceApi.getNextSequence("SALES_ORDER_NUMBER", null, null).getData();
|
return sequenceApi.getNextSequence("SALES_ORDER_NUMBER", null, null).getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean pushErp091(String orderId) {
|
||||||
|
SalesOrderDO salesOrderDO = salesOrderMapper.selectById(orderId);
|
||||||
|
if (salesOrderDO == null) {
|
||||||
|
throw exception(Sales_ORDER_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
List<SalesOrderDetailRespVO> salesOrderDetailByOrderId = salesOrderDetailService.getSalesOrderDetailByOrderId(Long.valueOf(orderId));
|
||||||
|
if (CollUtil.isEmpty(salesOrderDetailByOrderId)) {
|
||||||
|
throw exception(Sales_ORD_DTL_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
submitErp091(salesOrderDO, salesOrderDetailByOrderId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void submitErp091(SalesOrderDO salesOrderDO, List<SalesOrderDetailRespVO> salesOrderDetailByOrderId) {
|
||||||
|
ErpSalesOrderSaveReqVO erpSalesOrderSaveReqVO = new ErpSalesOrderSaveReqVO();
|
||||||
|
erpSalesOrderSaveReqVO.setOrderNo(salesOrderDO.getSystemOrderNumber());
|
||||||
|
erpSalesOrderSaveReqVO.setPartn_es(salesOrderDO.getPayerNum()); // 供应商编码
|
||||||
|
erpSalesOrderSaveReqVO.setPartn_numb(salesOrderDO.getSupplierNumber());// 付款方编码
|
||||||
|
|
||||||
|
// 销售订单抬头
|
||||||
|
ErpSalesOrderSaveReqVO.Head head = new ErpSalesOrderSaveReqVO.Head();
|
||||||
|
head.setDoc_type(salesOrderDO.getType()); // 销售订单类型
|
||||||
|
head.setSales_org(salesOrderDO.getSaleOrgzCd()); // 销售组织
|
||||||
|
head.setDistr_chan(salesOrderDO.getSaleAcsCdg()); // 销售渠道
|
||||||
|
head.setDivision(salesOrderDO.getPdtGrpCdg());// 产品组
|
||||||
|
head.setReq_date_h(salesOrderDO.getVoucherDate()); // 交货日期
|
||||||
|
head.setSales_grp(salesOrderDO.getPurchaseGroup()); // 销售组
|
||||||
|
erpSalesOrderSaveReqVO.setHead(head);
|
||||||
|
// 销售订单明细
|
||||||
|
List<ErpSalesOrderSaveReqVO.Item> items = new ArrayList<>();
|
||||||
|
for (SalesOrderDetailRespVO salesOrderDetailRespVO : salesOrderDetailByOrderId) {
|
||||||
|
ErpSalesOrderSaveReqVO.Item item = new ErpSalesOrderSaveReqVO.Item();
|
||||||
|
item.setItem_categ(String.valueOf(salesOrderDetailRespVO.getLineNumber()));
|
||||||
|
item.setMaterial(salesOrderDetailRespVO.getMaterialNumber());
|
||||||
|
item.setPlant(salesOrderDetailRespVO.getFactoryNumber());
|
||||||
|
item.setStore_loc(salesOrderDetailRespVO.getShippingPlace());
|
||||||
|
item.setSales_unit(salesOrderDetailRespVO.getUnit());
|
||||||
|
item.setDlvschduse(salesOrderDetailRespVO.getInvoiceType());
|
||||||
|
item.setTarget_qty(salesOrderDetailRespVO.getQuantity());
|
||||||
|
items.add(item);
|
||||||
|
}
|
||||||
|
erpSalesOrderSaveReqVO.setItems(items);
|
||||||
|
// 请求列表-cond
|
||||||
|
// List<ErpSalesOrderSaveReqVO.Cond> conds = new ArrayList<>();
|
||||||
|
// for (SalesOrderDetailRespVO salesOrderDetailRespVO : salesOrderDetailByOrderId) {
|
||||||
|
// ErpSalesOrderSaveReqVO.Cond cond = new ErpSalesOrderSaveReqVO.Cond();
|
||||||
|
// cond.setCond_type(salesOrderDetailRespVO.getTaxAcctasscat());//条件类型
|
||||||
|
// cond.setCond_value(salesOrderDetailRespVO.getGross());//条件金额
|
||||||
|
// cond.setCurrency(salesOrderDO.getCurrencyNumber()); //货币码
|
||||||
|
// cond.setCond_unit(salesOrderDetailRespVO.getUnit());
|
||||||
|
// cond.setCond_p_unt(1); //固定值1
|
||||||
|
// conds.add(cond);
|
||||||
|
// }
|
||||||
|
// erpSalesOrderSaveReqVO.setConds(conds);
|
||||||
|
List<String> conds = new ArrayList<>();
|
||||||
|
salesOrderDetailByOrderId.forEach(salesOrderDetailRespVO -> {
|
||||||
|
String priceConditionDetail = salesOrderDetailRespVO.getPriceConditionDetail();
|
||||||
|
if (priceConditionDetail == null || priceConditionDetail.trim().isEmpty()) {
|
||||||
|
return; // 空字符串直接跳过
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
// 解析 JSON 数组,捕获格式错误
|
||||||
|
List<String> strList = JSONArray.parseArray(priceConditionDetail, String.class);
|
||||||
|
conds.addAll(strList);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
// 处理解析失败(例如打日志、忽略错误数据等)
|
||||||
|
log.error("解析价格条件详情失败,内容:{}", priceConditionDetail, e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
erpSalesOrderSaveReqVO.setConds(conds);
|
||||||
|
String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO);
|
||||||
|
if (result != null) {
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||||
|
String salesdocument = jsonObject.getString("salesdocument");
|
||||||
|
if (salesdocument != null) {
|
||||||
|
salesOrderDO.setOrderSAPNumber(salesdocument);
|
||||||
|
salesOrderMapper.updateById(salesOrderDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public String submitOrder(String id) {
|
||||||
|
if (ObjectUtils.isEmpty(id)) {
|
||||||
|
throw exception(ORDER_ID_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
SalesOrderDO salesOrderDO = salesOrderMapper.selectById(id);
|
||||||
|
if (ObjectUtils.isEmpty(salesOrderDO)) {
|
||||||
|
throw exception(ORDER_ID_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
|
||||||
|
if (ObjectUtils.isEmpty(salesOrderDO.getProcessInstanceId())) {
|
||||||
|
BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO();
|
||||||
|
pidto.setProcessDefinitionKey(ProcessDefinitionKeyConstants.PURCHASE_ORDER_REVIEW_PROCESS);
|
||||||
|
pidto.setBusinessKey(String.valueOf(id));
|
||||||
|
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData();
|
||||||
|
if (StringUtils.isNotBlank(data)) {
|
||||||
|
// 获取流程当前审批的任务节点
|
||||||
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(data).getData();
|
||||||
|
salesOrderDO.setProcessInstanceId(data);
|
||||||
|
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||||
|
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);// 获取流程当前审批的任务节点
|
||||||
|
salesOrderDO.setTaskId(undoTask.getId());
|
||||||
|
}
|
||||||
|
salesOrderDO.setStatus(OrderStatusEnum.APPROVING.getCode()); //
|
||||||
|
salesOrderMapper.updateById(salesOrderDO);
|
||||||
|
return "提交审批成功";
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 获取流程当前审批的任务节点
|
||||||
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(salesOrderDO.getProcessInstanceId()).getData();
|
||||||
|
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||||
|
BpmTaskRespDTO bpmTaskDto = taskList.get(taskList.size() - 1);
|
||||||
|
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||||
|
badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId()); // 流程实例id
|
||||||
|
badrDto.setTaskId(bpmTaskDto.getId()); // 当前审核任务节点id
|
||||||
|
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||||
|
if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
|
// 如果状态是驳回状态,需要重新创建一个流程实例
|
||||||
|
BpmProcessInstanceCreateReqDTO pidtoNew = new BpmProcessInstanceCreateReqDTO();
|
||||||
|
pidtoNew.setProcessDefinitionKey(ProcessDefinitionKeyConstants.PURCHASE_ORDER_REVIEW_PROCESS);
|
||||||
|
pidtoNew.setBusinessKey(String.valueOf(id));
|
||||||
|
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidtoNew).getData();
|
||||||
|
if (StringUtils.isNotBlank(data)) {
|
||||||
|
// 获取流程当前审批的任务节点
|
||||||
|
List<BpmTaskRespDTO> taskListNew = bpmTaskApi.getTaskListByProcessInstanceId(data).getData();
|
||||||
|
salesOrderDO.setProcessInstanceId(data);
|
||||||
|
if (CollectionUtils.isNotEmpty(taskListNew)) {
|
||||||
|
BpmTaskRespDTO undoTask = taskListNew.get(taskListNew.size() - 1);
|
||||||
|
salesOrderDO.setTaskId(undoTask.getId());
|
||||||
|
}
|
||||||
|
salesOrderDO.setStatus(OrderStatusEnum.APPROVING.getCode());
|
||||||
|
salesOrderMapper.updateById(salesOrderDO);
|
||||||
|
return "提交审批成功";
|
||||||
|
}
|
||||||
|
} else if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
|
return "该授信单审批流程已经审批通过";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.info("流程实例id:{}", salesOrderDO.getProcessInstanceId());
|
||||||
|
return "提交审批成功";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO) {
|
||||||
|
SalesOrderDO salesOrderDO = salesOrderMapper.selectById(salesOrderReviewReqVO.getId());
|
||||||
|
if (ObjectUtils.isEmpty(salesOrderDO)) {
|
||||||
|
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
// 获取当前流程正在审批的任务节点
|
||||||
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(salesOrderDO.getProcessInstanceId()).getData();
|
||||||
|
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||||
|
|
||||||
|
// 判断是否流程已经通过、驳回
|
||||||
|
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||||
|
badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId()); // 流程实例id
|
||||||
|
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
|
||||||
|
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||||
|
//如果审核通过
|
||||||
|
if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
|
salesOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
||||||
|
} else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
|
//如果审核不通过
|
||||||
|
salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||||
|
}
|
||||||
|
//设置审核意见
|
||||||
|
salesOrderDO.setReviewOpinion(salesOrderDO.getReviewOpinion());
|
||||||
|
if (ObjectUtils.isNotEmpty(undoTask)) {
|
||||||
|
salesOrderDO.setTaskId(undoTask.getId());
|
||||||
|
}
|
||||||
|
salesOrderMapper.updateById(salesOrderDO); //更新状态
|
||||||
|
|
||||||
|
// 需要调用bpm 审核接口更新审批中的状态
|
||||||
|
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(salesOrderDO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||||
|
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||||
|
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||||
|
btarDto.setId(undoTask.getId());
|
||||||
|
btarDto.setReason(salesOrderDO.getReviewOpinion());
|
||||||
|
bpmProcessInstanceApi.approveTask(btarDto);
|
||||||
|
}
|
||||||
|
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(salesOrderDO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||||
|
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||||
|
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||||
|
btrrDto.setId(undoTask.getId());
|
||||||
|
btrrDto.setReason(salesOrderDO.getReviewOpinion());
|
||||||
|
bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,7 +244,7 @@
|
|||||||
<result column="ORD_SAP_NUM" property="orderSAPNumber"/>
|
<result column="ORD_SAP_NUM" property="orderSAPNumber"/>
|
||||||
<result column="SYS_ORD_NUM" property="systemOrderNumber"/>
|
<result column="SYS_ORD_NUM" property="systemOrderNumber"/>
|
||||||
<result column="CPN_NAME" property="cpName"/>
|
<result column="CPN_NAME" property="cpName"/>
|
||||||
<result column="CPN_NUM" property="companyNumber"/>
|
<result column="CPN_NUM" property="cpNum"/>
|
||||||
<result column="SPLR_NUM" property="supplierNumber"/>
|
<result column="SPLR_NUM" property="supplierNumber"/>
|
||||||
<result column="SPLR_NAME" property="supplierName"/>
|
<result column="SPLR_NAME" property="supplierName"/>
|
||||||
<result column="TP" property="type"/>
|
<result column="TP" property="type"/>
|
||||||
|
|||||||
@@ -0,0 +1,196 @@
|
|||||||
|
package com.zt.plat.module.erp.controller.admin.erp.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ERP销售订单保存请求VO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "ERP销售订单保存请求参数")
|
||||||
|
public class ErpSalesOrderSaveReqVO {
|
||||||
|
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "订单号")
|
||||||
|
private String orderNo;
|
||||||
|
|
||||||
|
@Schema(description = "客户编号-售达方", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "客户编号-售达方不能为空")
|
||||||
|
private String partn_numb; // 客户编号-售达方 CHAR10
|
||||||
|
|
||||||
|
@Schema(description = "客户编号-付款人")
|
||||||
|
private String partn_es; // 客户编号-付款人 CHAR10
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
@NotNull(message = "销售订单抬头信息不能为空")
|
||||||
|
private Head head;
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
@NotEmpty(message = "销售订单行项目列表不能为空")
|
||||||
|
private List<Item> items;
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
private List<String> conds;
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
private List<Source> sources;
|
||||||
|
|
||||||
|
@Schema(description = "销售订单抬头信息")
|
||||||
|
@Data
|
||||||
|
public static class Head {
|
||||||
|
@Schema(description = "销售凭证类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "销售凭证类型不能为空")
|
||||||
|
private String doc_type; // 销售凭证类型 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "销售组织", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "销售组织不能为空")
|
||||||
|
private String sales_org; // 销售组织 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "分销渠道", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "分销渠道不能为空")
|
||||||
|
private String distr_chan; // 分销渠道 CHAR2
|
||||||
|
|
||||||
|
@Schema(description = "产品组", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "产品组不能为空")
|
||||||
|
private String division; // 产品组 CHAR2
|
||||||
|
|
||||||
|
@Schema(description = "要求的交货日期(YYYY-MM-DD)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "要求的交货日期不能为空")
|
||||||
|
private LocalDateTime req_date_h; // 要求的交货日期 DATS8
|
||||||
|
|
||||||
|
@Schema(description = "销售组")
|
||||||
|
private String sales_grp; // 销售组 CHAR3
|
||||||
|
|
||||||
|
@Schema(description = "销售办事处")
|
||||||
|
private String sales_off; // 销售办事处 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "业务分类(默认值10-自产,退货订单必须填写)")
|
||||||
|
private String cust_grp1 = "10"; // 业务分类 CHAR3
|
||||||
|
|
||||||
|
@Schema(description = "客户参考(销售合同编号)")
|
||||||
|
private String purch_no_c; // 客户参考 CHAR35
|
||||||
|
|
||||||
|
@Schema(description = "名称(销售合同名称)")
|
||||||
|
private String name; // 名称 CHAR35
|
||||||
|
|
||||||
|
@Schema(description = "参考(外部单据编号,默认会用bskey赋值)")
|
||||||
|
private String ref_1; // 参考 CHAR12
|
||||||
|
|
||||||
|
@Schema(description = "客户参考日期(YYYY-MM-DD)")
|
||||||
|
private LocalDate purch_date; // 客户参考日期 DATS8
|
||||||
|
|
||||||
|
@Schema(description = "订单原因(退货订单必须填写,默认值Z06-其他原因)")
|
||||||
|
private String ord_reason = "Z06"; // 订单原因 CHAR3
|
||||||
|
|
||||||
|
@Schema(description = "货币码")
|
||||||
|
private String currency; // 货币码 CUKY5
|
||||||
|
|
||||||
|
@Schema(description = "客户税分类(0-无税,1-必须上税。创建客户销售视图时需要,默认值1)")
|
||||||
|
private String taxclass = "1"; // 客户税分类 CHAR1
|
||||||
|
}
|
||||||
|
|
||||||
|
@Schema(description = "销售订单行项目信息")
|
||||||
|
@Data
|
||||||
|
public static class Item {
|
||||||
|
@Schema(description = "行号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "行号不能为空")
|
||||||
|
private Integer itm_number; // 行号 NUMC6
|
||||||
|
|
||||||
|
@Schema(description = "物料编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "物料编号不能为空")
|
||||||
|
private String material; // 物料编号 CHAR18
|
||||||
|
|
||||||
|
@Schema(description = "工厂", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "工厂不能为空")
|
||||||
|
private String plant; // 工厂 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "存储地点", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "存储地点不能为空")
|
||||||
|
private String store_loc; // 存储地点 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "销售单位(使用基本计量单位)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "销售单位不能为空")
|
||||||
|
private String sales_unit; // 销售单位 UNIT3
|
||||||
|
|
||||||
|
@Schema(description = "使用标识(开票类型)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "使用标识不能为空")
|
||||||
|
private String dlvschduse; // 使用标识 CHAR3
|
||||||
|
|
||||||
|
@Schema(description = "销售数量(保留3位小数)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "销售数量不能为空")
|
||||||
|
private BigDecimal target_qty; // 销售数量 QUAN13,3
|
||||||
|
|
||||||
|
@Schema(description = "税分类(默认从客户和物料基础数据带出,创建物料销售视图时默认值为1-13%)")
|
||||||
|
private String tax_class1 = "1"; // 税分类 CHAR1
|
||||||
|
|
||||||
|
@Schema(description = "项目类别")
|
||||||
|
private String item_categ; // 项目类别 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "装运地点")
|
||||||
|
private String ship_point; // 装运地点 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "物料科目分配组(Z1-主营业务,Z2-其它业务,创建物料销售视图时必须填写)")
|
||||||
|
private String acct_assgt; // 物料科目分配组 CHAR2
|
||||||
|
}
|
||||||
|
|
||||||
|
@Schema(description = "销售订单条件信息")
|
||||||
|
@Data
|
||||||
|
public static class Cond {
|
||||||
|
@Schema(description = "行号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "行号不能为空")
|
||||||
|
private Integer itm_number; // 行号 NUMC6
|
||||||
|
|
||||||
|
@Schema(description = "条件类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "条件类型不能为空")
|
||||||
|
private String cond_type; // 条件类型 CHAR4
|
||||||
|
|
||||||
|
@Schema(description = "条件金额(保留9位小数)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "条件金额不能为空")
|
||||||
|
private BigDecimal cond_value; // 条件金额 DEC28,9
|
||||||
|
|
||||||
|
@Schema(description = "货币码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "货币码不能为空")
|
||||||
|
private String currency; // 货币码 CUKY5
|
||||||
|
|
||||||
|
@Schema(description = "条件单位(使用基本计量单位)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "条件单位不能为空")
|
||||||
|
private String cond_unit; // 条件单位 UNIT3
|
||||||
|
|
||||||
|
@Schema(description = "条件定价单位(固定值1)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "条件定价单位不能为空")
|
||||||
|
private Integer cond_p_unt = 1; // 条件定价单位 DEC5
|
||||||
|
}
|
||||||
|
|
||||||
|
@Schema(description = "来料加工原料信息")
|
||||||
|
@Data
|
||||||
|
public static class Source {
|
||||||
|
@Schema(description = "行号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "行号不能为空")
|
||||||
|
private Integer itm_number; // 行号 NUMC6
|
||||||
|
|
||||||
|
@Schema(description = "原料物料编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "原料物料编号不能为空")
|
||||||
|
private String material; // 原料物料编号 CHAR18
|
||||||
|
|
||||||
|
@Schema(description = "原料物料描述")
|
||||||
|
private String mat_desc; // 原料物料描述 CHAR40
|
||||||
|
|
||||||
|
@Schema(description = "数量(保留3位小数)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "数量不能为空")
|
||||||
|
private BigDecimal quantity; // 数量 QUAN13,3
|
||||||
|
|
||||||
|
@Schema(description = "计量单位", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "计量单位不能为空")
|
||||||
|
private String unit; // 计量单位 UNIT3
|
||||||
|
|
||||||
|
@Schema(description = "备注")
|
||||||
|
private String remark; // 备注 CHAR255
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,10 +3,13 @@ package com.zt.plat.module.erp.service.erp;
|
|||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO;
|
||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
|
||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO;
|
||||||
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpSalesOrderSaveReqVO;
|
||||||
|
|
||||||
public interface ErpOrderService {
|
public interface ErpOrderService {
|
||||||
|
|
||||||
String submitOrderToErp061(ErpOrderSaveReqVO createVo);
|
String submitOrderToErp061(ErpOrderSaveReqVO createVo);
|
||||||
|
|
||||||
String submitOrderToErp062(ErpOrderUpdateReqVO createVo);
|
String submitOrderToErp062(ErpOrderUpdateReqVO createVo);
|
||||||
|
|
||||||
|
String submitOrderToErp091(ErpSalesOrderSaveReqVO erpSalesOrderSaveReqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO;
|
|||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO;
|
||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
|
||||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO;
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO;
|
||||||
|
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpSalesOrderSaveReqVO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -78,6 +79,21 @@ public class ErpOrderServiceImpl implements ErpOrderService {
|
|||||||
return submitToErp(reqDTO);
|
return submitToErp(reqDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String submitOrderToErp091(ErpSalesOrderSaveReqVO createVo) {
|
||||||
|
ErpSubmitReqDTO reqDTO = buildBaseReqDTO091(createVo, "091");
|
||||||
|
|
||||||
|
Map<String, Object> req = new HashMap<>();
|
||||||
|
req.put("head", createVo.getHead());
|
||||||
|
req.put("item", createVo.getItems());
|
||||||
|
req.put("conds", createVo.getConds());
|
||||||
|
req.put("partn_es", createVo.getPartn_es());
|
||||||
|
req.put("partn_numb", createVo.getPartn_numb());
|
||||||
|
reqDTO.setReq(req);
|
||||||
|
|
||||||
|
return submitToErp(reqDTO);
|
||||||
|
}
|
||||||
|
|
||||||
private ErpSubmitReqDTO buildBaseReqDTO062(ErpOrderUpdateReqVO vo, String funcnr) {
|
private ErpSubmitReqDTO buildBaseReqDTO062(ErpOrderUpdateReqVO vo, String funcnr) {
|
||||||
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
||||||
reqDTO.setFuncnr(funcnr);
|
reqDTO.setFuncnr(funcnr);
|
||||||
@@ -86,4 +102,13 @@ public class ErpOrderServiceImpl implements ErpOrderService {
|
|||||||
reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
||||||
return reqDTO;
|
return reqDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErpSubmitReqDTO buildBaseReqDTO091(ErpSalesOrderSaveReqVO vo, String funcnr){
|
||||||
|
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
||||||
|
reqDTO.setFuncnr(funcnr);
|
||||||
|
reqDTO.setBskey(vo.getOrderNo());
|
||||||
|
reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId()));
|
||||||
|
reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
||||||
|
return reqDTO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user