订单管理相关

This commit is contained in:
潘荣晟
2025-10-20 16:19:53 +08:00
parent d365732a0e
commit bcdab44cda
15 changed files with 121 additions and 5 deletions

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.contractorder.api.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@@ -185,6 +186,9 @@ public class PurchaseOrderWithDetailsDTO {
* 物料类型
*/
private String mtrlTp;
/**
* 订单类型
*/
private String splyBsnTp;
private List<PrchOrdDtlDTO> orderDetails;
}

View File

@@ -26,4 +26,5 @@ public interface ErrorCodeConstants {
ErrorCode CONTRACT_ERP_RCV_DLVY_NOT_EXISTS = new ErrorCode(1_027_000_011, "不存在的收支类型或收支类型为空");
ErrorCode CONTRACT_STATUS_NOT_ARCHIVE = new ErrorCode(1_027_000_012, "{}状态合同不允许归档");
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP");
ErrorCode CONTRACT_ORDER_EXISTS = new ErrorCode(1_027_000_014, "关联订单已存在");
}

View File

@@ -124,6 +124,14 @@ public class PurchaseOrderController implements BusinessControllerMarker {
return success(true);
}
@PostMapping("/submit-order-batch")
@Operation(summary = "批量提交订单审核")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
public CommonResult<Boolean> submitOrder(@RequestParam("ids") @Validated @NotEmpty(message = "采购订单id不能为空") List<Long> ids) {
ids.forEach(id -> purchaseOrderService.submitOrder(id));
return success(true);
}
//提交ERP订单
@PostMapping("/submit-erp061")
@Operation(summary = "推送ERP订单", description = "061')")
@@ -163,4 +171,11 @@ public class PurchaseOrderController implements BusinessControllerMarker {
return purchaseOrderService.getMaterial(orderNo);
}
//关联订单
@PostMapping("/link-order")
@Operation(summary = "关联订单")
public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req){
return success(purchaseOrderService.linkOrder(req));
}
}

View File

@@ -0,0 +1,15 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "关联订单请求参数 VO")
public class LinkOrderReqVO {
@Schema(description = "上游订单号")
private Long upOrderId;
@Schema(description = "下游订单号")
private Long downOrderId;
@Schema(description = "关联订单类型")
private String linkOrderType;
}

View File

@@ -62,7 +62,7 @@ public class PrchOrdDtlDetailsRespVO {
* 计量单位;推送ERP必须
*/
private BigDecimal unt;
private String unt;
/**
* 含税单价;推送ERP必须
*/

View File

@@ -130,4 +130,8 @@ public class PurchaseOrderPageReqVO extends PageParam {
@Schema(description = "物料类型(字典:MTRL_TP)", example = "2")
private String mtrlTp;
@Schema(description = "订单分类")
private String splyBsnTp;
}

View File

@@ -171,4 +171,8 @@ public class PurchaseOrderRespVO {
@Schema(description = "物料类型(字典:MTRL_TP)", example = "2")
@ExcelProperty("物料类型(字典:MTRL_TP)")
private String mtrlTp;
@Schema(description = "订单分类", example = "2")
@ExcelProperty("订单分类")
private String splyBsnTp;
}

View File

@@ -158,7 +158,6 @@ public class PurchaseOrderSaveReqVO {
@Schema(description = "流程实例编号")
@ExcelProperty("流程实例编号")
@NotEmpty(message = "流程实例编号不能为空")
private String processInstanceId;
@Schema(description = "流程当前任务节点id")
@@ -175,4 +174,8 @@ public class PurchaseOrderSaveReqVO {
@Schema(description = "物料类别(字典:MTRL_TP)", example = "1")
@ExcelProperty("物料类别")
private String mtrlTp;
@Schema(description = "订单分类", example = "2")
@ExcelProperty("订单分类")
private String splyBsnTp;
}

View File

@@ -250,4 +250,11 @@ public class PurchaseOrderDO extends BusinessBaseDO {
*/
@TableField("MTRL_TP")
private String mtrlTp;
/**
* 订单分类
*
*/
@TableField("SPLY_BSN_TP")
private String splyBsnTp;
}

View File

@@ -56,6 +56,7 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.likeIfPresent(PurchaseOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName())
.likeIfPresent(PurchaseOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName())
.eqIfPresent(PurchaseOrderDO::getErpStatus, reqVO.getErpStatus())
.eqIfPresent(PurchaseOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp())
.eqIfPresent(PurchaseOrderDO::getCause, reqVO.getCause())
.eqIfPresent(PurchaseOrderDO::getStatus, reqVO.getStatus())
.likeIfPresent(PurchaseOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName())

View File

@@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO;
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import jakarta.validation.Valid;
import org.springframework.core.io.ByteArrayResource;
@@ -193,4 +194,13 @@ public interface ContractService {
* @return 完结结果
*/
Boolean complete(List<Long> ids);
/**
* 关联订单;该接口仅供订单关联使用
*
* @param LinkOrderReqVO 订单信息
* @return 结果
*/
Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO);
}

View File

@@ -2,6 +2,7 @@ package com.zt.plat.module.contractorder.service.contract;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
@@ -24,6 +25,7 @@ import com.zt.plat.module.bpm.api.task.dto.*;
import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
import com.zt.plat.module.contractorder.api.dto.contract.*;
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.*;
import com.zt.plat.module.contractorder.dal.mysql.contract.*;
import com.zt.plat.module.contractorder.enums.*;
@@ -1512,6 +1514,20 @@ public class ContractServiceImpl implements ContractService {
return true;
}
@Override
public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) {
SystemRelativityDO saveDO = new SystemRelativityDO();
saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode());
saveDO.setUpId(LinkOrderReqVO.getUpOrderId());
saveDO.setDownId(LinkOrderReqVO.getDownOrderId());
//判断订单有没有关联过
if (systemRelativityMapper.selectCount(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId()))>0){
throw exception(CONTRACT_ORDER_EXISTS);
}
return systemRelativityMapper.insert(saveDO)>0;
}
private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();

View File

@@ -82,9 +82,32 @@ public interface PurchaseOrderService {
* @return 订单信息
*/
List<PurchaseOrderDetailsRespVO> getOrderByOrderNo(List<String> orderNo);
/**
* 通过订单编号查询订单信息
*
* @param purchaseOrderRespVO 订单信息
*
*/
void setOrderDetails(PurchaseOrderRespVO purchaseOrderRespVO);
/**
* 修改订单状态
*
* @param reqVO 订单状态
*
*/
void updateOrderStatusByIdOrOrderNo(PurchaseOrderStsReqVO reqVO);
/**
* 获取物料
*
* @param orderNo 订单号
*
*/
CommonResult<MaterialRespVO> getMaterial(String orderNo);
/**
* 关联订单
*
* @param reqVO 关联订单
*
*/
boolean linkOrder(LinkOrderReqVO reqVO);
}

View File

@@ -20,6 +20,7 @@ import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrd
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.enums.purchaseorder.PurchaseOrderStatusEnum;
import com.zt.plat.module.contractorder.service.contract.ContractService;
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.ErpOrderUpdateReqVO;
@@ -77,6 +78,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
@Resource
private SequenceApi sequenceApi;
@Resource
private ContractService contractService;
@Override
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
@@ -381,6 +384,11 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
}
@Override
public boolean linkOrder(LinkOrderReqVO reqVO) {
return contractService.linkOrder(reqVO);
}
private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) {
//head
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseOrderWithDetailsVO.getPurchaseOrder().getId());

View File

@@ -47,6 +47,7 @@
po.CAUS,
po.STS,
po.MTRL_TP,
po.SPLY_BSN_TP,
po.PRCH_GRP_NAME,
po.PRCS_INSC_ID,
po.RVW_ONN,
@@ -159,6 +160,7 @@
po.RVW_ONN,
po.TSK_NDE_ID,
po.IS_PUSH,
po.SPLY_BSN_TP,
po.CREATE_TIME,
po.UPDATE_TIME,
po.CREATOR,
@@ -274,6 +276,9 @@
<result column="RVW_ONN" property="reviewOpinion"/>
<result column="TSK_NDE_ID" property="taskId"/>
<result column="IS_PUSH" property="isPush"/>
<result column="UNT" property="unt"/>
<result column="MTRL_TP" property="mtrlTp"/>
<result column="SPLY_BSN_TP" property="splyBsnTp"/>
</resultMap>
<resultMap id="PrchOrdDtlResultMap" type="com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO">