订单绑定相关
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
package com.zt.plat.module.contractorder.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum OrderTypeEnum {
|
||||||
|
// 基础业务订单
|
||||||
|
SALE("SALE", "销售", 0),
|
||||||
|
PUR("PUR", "采购", 1),
|
||||||
|
ENT("ENT", "委托加工", 2),
|
||||||
|
ENTED_PUR("ENTED_PUR", "来料加工-采购", 3),
|
||||||
|
ENTED_SALE("ENTED_SALE", "来料加工-销售", 10),
|
||||||
|
|
||||||
|
// 物流服务订单
|
||||||
|
HD_13("13HD", "货运代理", 4),
|
||||||
|
YS_10("10YS", "货物运输", 5),
|
||||||
|
CC_11("11CC", "货物保管仓储", 6),
|
||||||
|
BX_03("03BX", "货物保险", 7);
|
||||||
|
|
||||||
|
/** 订单类型编码(字典键值) */
|
||||||
|
private final String code;
|
||||||
|
/** 订单类型描述(字典标签) */
|
||||||
|
private final String description;
|
||||||
|
/** 排序号(字典排序) */
|
||||||
|
private final Integer sort;
|
||||||
|
|
||||||
|
OrderTypeEnum(String code, String description, Integer sort) {
|
||||||
|
this.code = code;
|
||||||
|
this.description = description;
|
||||||
|
this.sort = sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据编码获取枚举
|
||||||
|
*/
|
||||||
|
public static OrderTypeEnum getByCode(String code) {
|
||||||
|
if (code == null || code.trim().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (OrderTypeEnum type : values()) {
|
||||||
|
if (type.getCode().equals(code.trim())) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ import com.zt.plat.framework.common.exception.ErrorCode;
|
|||||||
*/
|
*/
|
||||||
public interface ErrorCodeConstants {
|
public interface ErrorCodeConstants {
|
||||||
|
|
||||||
ErrorCode PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_001, "采购订单不存在");
|
ErrorCode PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_001, "订单不存在");
|
||||||
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, "非法的订单状态");
|
||||||
@@ -22,4 +22,7 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode WAREHOUSE_CODE_OR_FACTORY_CODE_NOT_EXISTS = new ErrorCode(1_008_000_151, "{}");
|
ErrorCode WAREHOUSE_CODE_OR_FACTORY_CODE_NOT_EXISTS = new ErrorCode(1_008_000_151, "{}");
|
||||||
ErrorCode ERP_ORDER_UPDATE_FAILED = new ErrorCode(1_008_000_160, "erp订单更新失败");
|
ErrorCode ERP_ORDER_UPDATE_FAILED = new ErrorCode(1_008_000_160, "erp订单更新失败");
|
||||||
ErrorCode ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_000_060, "订单明细不能为空");
|
ErrorCode ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_000_060, "订单明细不能为空");
|
||||||
|
ErrorCode PURCHASE_ORDER_ID_IS_NULL = new ErrorCode(1_008_000_070, "订单ID不能为空");
|
||||||
|
ErrorCode PURCHASE_ORDER_ID_IS_EMPTY = new ErrorCode(1_008_000_080, "业务订单类型非法,请参考字典:SPLY_BSN_TP");
|
||||||
|
ErrorCode PURCHASE_ORDER_NOT_ALLOW_BIND = new ErrorCode(1_008_000_090, "来料销售加工订单不允许绑定订单");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
|||||||
public CommonResult<PageResult<PurchaseOrderRespVO>> getPurchaseOrderPage(@Valid PurchaseOrderPageReqVO pageReqVO) {
|
public CommonResult<PageResult<PurchaseOrderRespVO>> getPurchaseOrderPage(@Valid PurchaseOrderPageReqVO pageReqVO) {
|
||||||
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(pageReqVO);
|
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.getPurchaseOrderPage(pageReqVO);
|
||||||
PageResult<PurchaseOrderRespVO> purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class);
|
PageResult<PurchaseOrderRespVO> purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class);
|
||||||
if (purchaseOrderRespVOPageResult.getList().isEmpty()){
|
if (purchaseOrderRespVOPageResult.getList().isEmpty()) {
|
||||||
return success(purchaseOrderRespVOPageResult);
|
return success(purchaseOrderRespVOPageResult);
|
||||||
}
|
}
|
||||||
purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> purchaseOrderService.setOrderDetails(purchaseOrderRespVO));
|
purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> purchaseOrderService.setOrderDetails(purchaseOrderRespVO));
|
||||||
@@ -207,7 +207,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
|||||||
@Operation(summary = "根据订单id和方式获取上或下游订单")
|
@Operation(summary = "根据订单id和方式获取上或下游订单")
|
||||||
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
|
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
|
||||||
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
|
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
|
||||||
return success( purchaseOrderService.getOrderByOrderIdAndType(reqVO));
|
return success(purchaseOrderService.getOrderByOrderIdAndType(reqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -218,5 +218,21 @@ public class PurchaseOrderController implements BusinessControllerMarker {
|
|||||||
return success(purchaseOrderService.getBindOrderByOrder(reqVO));
|
return success(purchaseOrderService.getBindOrderByOrder(reqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//无权限查询订单
|
||||||
|
@PostMapping("/page-no-permission")
|
||||||
|
@Operation(summary = "无权限查询订单")
|
||||||
|
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')")
|
||||||
|
public CommonResult<PageResult<PurchaseOrderRespVO>> pageOrderNoPermission(@RequestBody PurchaseOrderPageReqVO pageReqVO) {
|
||||||
|
PageResult<PurchaseOrderDO> pageResult = purchaseOrderService.pageOrderNoPermission(pageReqVO);
|
||||||
|
return success( BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class));
|
||||||
|
}
|
||||||
|
//关联订单
|
||||||
|
@PostMapping("/bound-order")
|
||||||
|
@Operation(summary = "关联订单")
|
||||||
|
@PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','purchase:order:list:OrderList:edit')")
|
||||||
|
public CommonResult<Boolean> boundOrder(@RequestBody @Validated BoundOrderReqVO req) {
|
||||||
|
purchaseOrderService.boundOrder(req);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Validated
|
||||||
|
@Schema(description = "绑定订单请求参数")
|
||||||
|
public class BoundOrderReqVO {
|
||||||
|
@Schema(description = "订单ID")
|
||||||
|
@NotNull(message = "订单ID不能为空")
|
||||||
|
private Long id;
|
||||||
|
@Schema(description = "绑定的订单ID")
|
||||||
|
@NotNull(message = "被绑定的订单ID不能为空")
|
||||||
|
private Long boundId;
|
||||||
|
}
|
||||||
@@ -14,7 +14,8 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
|||||||
@Schema(description = "管理后台 - 采购订单分页 Request VO")
|
@Schema(description = "管理后台 - 采购订单分页 Request VO")
|
||||||
@Data
|
@Data
|
||||||
public class PurchaseOrderPageReqVO extends PageParam {
|
public class PurchaseOrderPageReqVO extends PageParam {
|
||||||
|
@Schema(description = "订单主键")
|
||||||
|
private Long id;
|
||||||
@Schema(description = "ERP订单号")
|
@Schema(description = "ERP订单号")
|
||||||
private String orderSAPNumber;
|
private String orderSAPNumber;
|
||||||
|
|
||||||
|
|||||||
@@ -295,5 +295,9 @@ public class PurchaseOrderDO extends BusinessBaseDO {
|
|||||||
@TableField("ISS_CAUS")
|
@TableField("ISS_CAUS")
|
||||||
private String issueCause;
|
private String issueCause;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联订单ID
|
||||||
|
*/
|
||||||
|
@TableField(value = "REL_ORD_ID")
|
||||||
|
private Long relatedOrderId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.zt.plat.module.contractorder.dal.mysql.purchaseorder;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
|
||||||
@@ -78,4 +80,50 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
|
|||||||
List<PurchaseOrderWithDetailsVO> selectOrderByAndAllIds(@Param("ids") List<Long> ids);
|
List<PurchaseOrderWithDetailsVO> selectOrderByAndAllIds(@Param("ids") List<Long> ids);
|
||||||
|
|
||||||
PurchaseOrderDO findOrderById(@Param("id") Long id);
|
PurchaseOrderDO findOrderById(@Param("id") Long id);
|
||||||
|
|
||||||
|
@CompanyDataPermissionIgnore
|
||||||
|
@DeptDataPermissionIgnore
|
||||||
|
default PageResult<PurchaseOrderDO> selectLinkPage(PurchaseOrderPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseOrderDO>()
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getCpNum, reqVO.getCompanyNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getType, reqVO.getType())
|
||||||
|
.betweenIfPresent(PurchaseOrderDO::getVoucherDate, reqVO.getVoucherDate())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getExchangeRate, reqVO.getExchangeRate())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getAgreementNumber, reqVO.getAgreementNumber())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getRemark, reqVO.getRemark())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getAgentNumber, reqVO.getAgentNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getAgentName, reqVO.getAgentName())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getMtrlTp, reqVO.getMtrlTp())
|
||||||
|
// .eqIfPresent(PurchaseOrderDO::getOrderNumber, reqVO.getOrderNumber())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getContractNumber, reqVO.getContractNumber())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getMaterialNumber, reqVO.getMaterialNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getMaterialName, reqVO.getMaterialName())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getContractName, reqVO.getContractName())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getTenantNumber, reqVO.getTenantNumber())
|
||||||
|
.betweenIfPresent(PurchaseOrderDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getErpStatus, reqVO.getErpStatus())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp() != null ? reqVO.getSplyBsnTp() : "PUR")
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getCause, reqVO.getCause())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getStatus, reqVO.getStatus())
|
||||||
|
.eqIfPresent(PurchaseOrderDO::getMeteringType, reqVO.getMeteringType())
|
||||||
|
.likeIfPresent(PurchaseOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName())
|
||||||
|
.orderByDesc(PurchaseOrderDO::getId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.zt.plat.framework.security.core.LoginUser;
|
import com.zt.plat.framework.security.core.LoginUser;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
@@ -2093,6 +2095,8 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@CompanyDataPermissionIgnore
|
||||||
|
@DeptDataPermissionIgnore
|
||||||
public void relationContract(RelationContractVO relationContractVO) {
|
public void relationContract(RelationContractVO relationContractVO) {
|
||||||
//查询当前订单是否已经绑定订单了
|
//查询当前订单是否已经绑定订单了
|
||||||
ContractMainDO contractMainDO = contractMainMapper.selectById(relationContractVO.getContractId());
|
ContractMainDO contractMainDO = contractMainMapper.selectById(relationContractVO.getContractId());
|
||||||
|
|||||||
@@ -156,4 +156,12 @@ public interface PurchaseOrderService {
|
|||||||
* @return 订单和计划数据
|
* @return 订单和计划数据
|
||||||
*/
|
*/
|
||||||
PageResult<PurchaseOrderDO> queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO);
|
PageResult<PurchaseOrderDO> queryOrderAndPlanData(OrderAndPlanDataReqDTO reqDTO);
|
||||||
|
/**
|
||||||
|
* 分页查询订单数据
|
||||||
|
*
|
||||||
|
* @param pageReqVO 查询条件
|
||||||
|
* @return 订单数据
|
||||||
|
*/
|
||||||
|
PageResult<PurchaseOrderDO> pageOrderNoPermission(PurchaseOrderPageReqVO pageReqVO);
|
||||||
|
void boundOrder(BoundOrderReqVO reqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import com.zt.plat.framework.common.pojo.CommonResult;
|
|||||||
import com.zt.plat.framework.common.pojo.PageParam;
|
import com.zt.plat.framework.common.pojo.PageParam;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.CompanyDataPermissionIgnore;
|
||||||
|
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi;
|
import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi;
|
||||||
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
|
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
|
||||||
@@ -23,14 +25,17 @@ import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
|
|||||||
import com.zt.plat.module.contractorder.api.dto.order.OrderAndPlanDataReqDTO;
|
import com.zt.plat.module.contractorder.api.dto.order.OrderAndPlanDataReqDTO;
|
||||||
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
|
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
|
||||||
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.dal.dataobject.contract.ContractMainDO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
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.contract.ContractMainMapper;
|
||||||
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
|
||||||
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.ErpConstants;
|
import com.zt.plat.module.contractorder.enums.ErpConstants;
|
||||||
|
import com.zt.plat.module.contractorder.enums.OrderTypeEnum;
|
||||||
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.OrderStatusEnum;
|
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;
|
||||||
@@ -105,6 +110,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
private WarehouseFactoryService warehouseFactoryService;
|
private WarehouseFactoryService warehouseFactoryService;
|
||||||
@Resource
|
@Resource
|
||||||
private InternalWarehouseService internalWarehouseService;
|
private InternalWarehouseService internalWarehouseService;
|
||||||
|
@Resource
|
||||||
|
private ContractMainMapper contractMainMapper;
|
||||||
|
private static final Map<String, String> VALID_RELATIONS = new HashMap<>();
|
||||||
|
static {
|
||||||
|
// 初始化合法的双向映射关系
|
||||||
|
VALID_RELATIONS.put("ENT", "ENTED_PUR");
|
||||||
|
VALID_RELATIONS.put("ENTED_PUR", "ENT");
|
||||||
|
VALID_RELATIONS.put("PUR", "SALE");
|
||||||
|
VALID_RELATIONS.put("SALE", "PUR");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -903,6 +918,58 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
return new PageResult<>(pageData, (long) allData.size());
|
return new PageResult<>(pageData, (long) allData.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CompanyDataPermissionIgnore
|
||||||
|
@DeptDataPermissionIgnore
|
||||||
|
public PageResult<PurchaseOrderDO> pageOrderNoPermission(PurchaseOrderPageReqVO pageReqVO) {
|
||||||
|
if (pageReqVO.getId() == null){
|
||||||
|
throw exception(PURCHASE_ORDER_ID_IS_NULL);
|
||||||
|
}
|
||||||
|
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(pageReqVO.getId());
|
||||||
|
ContractMainDO contractMainDO = contractMainMapper.selectOne(new LambdaQueryWrapper<ContractMainDO>()
|
||||||
|
.eq(ContractMainDO::getId, purchaseOrderDO.getContractNumber()));
|
||||||
|
ContractMainDO relatedContract = contractMainMapper.selectById(contractMainDO.getRelatedContractId());
|
||||||
|
String splyBsnTp = VALID_RELATIONS.getOrDefault(purchaseOrderDO.getSplyBsnTp(), null); // 获取供应商业务类型
|
||||||
|
if (splyBsnTp == null){
|
||||||
|
throw exception(PURCHASE_ORDER_ID_IS_EMPTY);
|
||||||
|
}
|
||||||
|
pageReqVO.setContractNumber(relatedContract.getSystemContractNumber());
|
||||||
|
pageReqVO.setSplyBsnTp(splyBsnTp);
|
||||||
|
return purchaseOrderMapper.selectLinkPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CompanyDataPermissionIgnore
|
||||||
|
@DeptDataPermissionIgnore
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void boundOrder(BoundOrderReqVO reqVO) {
|
||||||
|
log.info("开始执行绑定订单操作,请求参数:{}", reqVO);
|
||||||
|
//查询当前订单是否已经绑定订单
|
||||||
|
PurchaseOrderDO orderDO = purchaseOrderMapper.selectById(reqVO.getId());
|
||||||
|
PurchaseOrderDO boundOrder = purchaseOrderMapper.selectById(reqVO.getBoundId());
|
||||||
|
if (boundOrder == null|| orderDO==null){
|
||||||
|
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
//判断当前订单是否是来料加工销售订单(来料加工消费订单不允许绑定订单)
|
||||||
|
if (OrderTypeEnum.ENTED_SALE.getCode().equals(orderDO.getSplyBsnTp())) {
|
||||||
|
throw exception(PURCHASE_ORDER_NOT_ALLOW_BIND);
|
||||||
|
}
|
||||||
|
if (orderDO.getRelatedOrderId()!=null){
|
||||||
|
//将已绑定的订单置空
|
||||||
|
PurchaseOrderDO relatedOrder = purchaseOrderMapper.selectById(orderDO.getRelatedOrderId());
|
||||||
|
relatedOrder.setRelatedOrderId(null);
|
||||||
|
purchaseOrderMapper.updateById(relatedOrder);
|
||||||
|
log.info("已绑定的订单已解绑,订单ID:{}", relatedOrder.getId());
|
||||||
|
}
|
||||||
|
orderDO.setRelatedOrderId(reqVO.getBoundId());
|
||||||
|
purchaseOrderMapper.updateById(orderDO);
|
||||||
|
log.info("订单ID:{} 已绑定订单ID:{}", reqVO.getId(), reqVO.getBoundId());
|
||||||
|
//修改已绑定的的订单
|
||||||
|
boundOrder.setRelatedOrderId(reqVO.getId());
|
||||||
|
purchaseOrderMapper.updateById(boundOrder);
|
||||||
|
log.info("绑定订单操作完成,订单ID:{}", reqVO.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public WarehouseFactoryRespVO getBoundFactoryAndWarehouse(String factoryCode, String warehouseCode) {
|
public WarehouseFactoryRespVO getBoundFactoryAndWarehouse(String factoryCode, String warehouseCode) {
|
||||||
// 1. 查询主库信息,空值直接抛异常(精准异常信息)
|
// 1. 查询主库信息,空值直接抛异常(精准异常信息)
|
||||||
|
|||||||
Reference in New Issue
Block a user