订单管理相关

This commit is contained in:
潘荣晟
2025-10-11 18:01:39 +08:00
parent 9011d8fc5a
commit 5119c6cdd5
14 changed files with 772 additions and 12 deletions

View File

@@ -12,6 +12,6 @@ import com.zt.plat.framework.common.exception.ErrorCode;
public interface ErrorCodeConstants {
ErrorCode PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_001, "采购订单不存在");
ErrorCode ORDER_ID_NOT_EXISTS = new ErrorCode(1_008_000_010, "订单id不能为空");
ErrorCode PRCH_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_001, "采购订单明细不存在");
}

View File

@@ -0,0 +1,41 @@
package com.zt.plat.module.contractorder.enums.purchaseorder;
import lombok.Getter;
@Getter
public enum PurchaseOrderStatusEnum {
// 草稿状态
DRAFT("DRAFT", "草稿"),
// 审批中状态
APPROVING("APPR", "审批中"),
// 待提交ERP状态
TO_SUBMIT_ERP("SUB", "待提交ERP"),
// 执行中状态
IN_PROGRESS("IN_PROGRESS", "执行中"),
// 关闭状态
CLOSED("CLOSE", "关闭");
/** 状态编码 */
private final String code;
/** 状态描述 */
private final String description;
PurchaseOrderStatusEnum(String code, String description) {
this.code = code;
this.description = description;
}
/**
* 根据编码获取枚举实例
* @param code 状态编码
* @return 匹配的枚举,无匹配时返回 null
*/
public static PurchaseOrderStatusEnum getByCode(String code) {
for (PurchaseOrderStatusEnum status : PurchaseOrderStatusEnum.values()) {
if (status.getCode().equals(code)) {
return status;
}
}
return null;
}
}

View File

@@ -107,4 +107,20 @@ public class PurchaseOrderController implements BusinessControllerMarker {
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
}
//提交订单审核
@PostMapping("/submit-order")
@Operation(summary = "提交订单审核")
@PreAuthorize("@ss.hasPermission('bse:purchase-order:update')")
public CommonResult<Boolean> submitOrder(@RequestParam("id") Long id) {
purchaseOrderService.submitOrder(id);
return success(true);
}
//提交ERP订单
@PostMapping("/submit-erp")
@Operation(summary = "提交ERP订单", description = "bse:purchase-order:update')")
public CommonResult<?> submitErp(@RequestBody List<Long> ids) {
return success( purchaseOrderService.submitErp(ids));
}
}

View File

@@ -1,6 +1,7 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -148,4 +149,22 @@ public class PurchaseOrderSaveReqVO {
@Schema(description = "订单明细")
@ExcelProperty("订单明细")
private List<PrchOrdDtlSaveReqVO> prchOrdDtlSaveReqVOS;
@Schema(description = "流程实例编号")
@ExcelProperty("流程实例编号")
@NotEmpty(message = "流程实例编号不能为空")
private String processInstanceId;
@Schema(description = "流程当前任务节点id")
@ExcelProperty("流程当前任务节点id")
private String taskId;
@Schema(description = " 审批意见")
@ExcelProperty(" 审批意见")
private String reviewOpinion;
@Schema(description = "是否提交审核value为0或1")
@ExcelProperty("是否提交审核")
private int isPush;
}

View File

@@ -0,0 +1,28 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
import lombok.Data;
import java.util.List;
/**
* 采购订单及明细查询结果 VO
*/
@Data
public class PurchaseOrderWithDetailsVO {
/**
* 采购订单信息
*/
private PurchaseOrderDO purchaseOrder;
/**
* 订单明细列表
*/
private List<PrchOrdDtlDO> orderDetails;
/**
* 订单号(用于分组)
*/
private String systemOrderNumber;
}

View File

@@ -214,4 +214,27 @@ public class PurchaseOrderDO extends BusinessBaseDO {
@TableField("PRCH_GRP_NAME")
private String purchaseGroupName;
/**
* 流程实例编号
*/
@TableField("PRCS_INSC_ID")
private String processInstanceId;
/**
* 流程当前任务节点id
*/
@TableField("TSK_NDE_ID")
private String taskId;
/**
* 审批意见
*/
@TableField("RVW_ONN")
private String reviewOpinion;
/**
* 是否需要审批
*/
@TableField("IS_PUSH")
private int isPush;
}

View File

@@ -7,8 +7,10 @@ import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderWithDetailsVO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
@@ -60,4 +62,5 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.orderByDesc(PurchaseOrderDO::getId));
}
List<PurchaseOrderWithDetailsVO> selectOrderById(@Param("ids") List<Long> id);
}

View File

@@ -63,4 +63,8 @@ public interface PurchaseOrderService {
*/
PageResult<PurchaseOrderDO> getPurchaseOrderPage(PurchaseOrderPageReqVO pageReqVO);
String submitOrder(Long id);
String submitErp(List<Long> ids);
}

View File

@@ -1,28 +1,41 @@
package com.zt.plat.module.contractorder.service.purchaseorder;
import cn.hutool.core.collection.CollUtil;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderSaveReqVO;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
import com.zt.plat.module.bpm.api.task.dto.BpmApprovalDetailReqDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmApprovalDetailRespDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
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.util.constants.ProcessDefinitionKeyConstants;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
import com.zt.plat.module.erp.service.erp.ErpOrderService;
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 jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;
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.util.collection.CollectionUtils.convertList;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.ORDER_ID_NOT_EXISTS;
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PURCHASE_ORDER_NOT_EXISTS;
@@ -31,23 +44,39 @@ import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeCons
*
* @author 后台管理-1
*/
@Slf4j
@Service
@Validated
public class PurchaseOrderServiceImpl implements PurchaseOrderService {
@Resource
private ErpOrderService erpOrderService;
@Resource
private PurchaseOrderMapper purchaseOrderMapper;
@Resource
private PrchOrdDtlService prchOrdDtlService;
@Resource
private BpmProcessInstanceApi bpmProcessInstanceApi;
@Resource
private AdminUserApi adminUserApi;
@Resource
private BpmTaskApi bpmTaskApi;
@Override
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
// 插入
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
if (Objects.equals(createReqVO.getIsPush(), 0)) {
purchaseOrder.setStatus(PurchaseOrderStatusEnum.DRAFT.getCode()); //设置初始状态
} else {
purchaseOrder.setStatus(PurchaseOrderStatusEnum.TO_SUBMIT_ERP.getCode());
}
purchaseOrderMapper.insert(purchaseOrder);
// 返回
//批量插入订单明细
createReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO->prchOrdDtlSaveReqVO.setOrdId(purchaseOrder.getId()));
createReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(purchaseOrder.getId()));
List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getPrchOrdDtlSaveReqVOS());
PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
@@ -72,7 +101,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
}
@Override
public void deletePurchaseOrderListByIds(List<Long> ids) {
public void deletePurchaseOrderListByIds(List<Long> ids) {
// 校验存在
validatePurchaseOrderExists(ids);
// 删除
@@ -80,7 +109,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
//删除根据订单号订单明细
prchOrdDtlService.deletePrchOrdDtlListByOrdIds(ids);
}
}
private void validatePurchaseOrderExists(List<Long> ids) {
List<PurchaseOrderDO> list = purchaseOrderMapper.selectByIds(ids);
@@ -105,4 +134,111 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
return purchaseOrderMapper.selectPage(pageReqVO);
}
@Override
@Transactional
public String submitOrder(Long id) {
if (ObjectUtils.isEmpty(id)) {
throw exception(ORDER_ID_NOT_EXISTS);
}
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(id);
if (ObjectUtils.isEmpty(purchaseOrderDO)) {
throw exception(ORDER_ID_NOT_EXISTS);
}
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
if (ObjectUtils.isEmpty(purchaseOrderDO.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();
purchaseOrderDO.setProcessInstanceId(data);
if (CollectionUtils.isNotEmpty(taskList)) {
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);// 获取流程当前审批的任务节点
purchaseOrderDO.setTaskId(undoTask.getId());
}
purchaseOrderDO.setStatus(PurchaseOrderStatusEnum.APPROVING.getCode()); //
purchaseOrderMapper.updateById(purchaseOrderDO);
return "提交审批成功";
}
} else {
// 获取流程当前审批的任务节点
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData();
if (CollectionUtils.isNotEmpty(taskList)) {
BpmTaskRespDTO bpmTaskDto = taskList.get(taskList.size() - 1);
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
badrDto.setProcessInstanceId(purchaseOrderDO.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();
purchaseOrderDO.setProcessInstanceId(data);
if (CollectionUtils.isNotEmpty(taskListNew)) {
BpmTaskRespDTO undoTask = taskListNew.get(taskListNew.size() - 1);
purchaseOrderDO.setTaskId(undoTask.getId());
}
purchaseOrderDO.setStatus(PurchaseOrderStatusEnum.APPROVING.getCode());
purchaseOrderMapper.updateById(purchaseOrderDO);
return "提交审批成功";
}
} else if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) {
return "该授信单审批流程已经审批通过";
}
}
}
log.info("流程实例id:{}", purchaseOrderDO.getProcessInstanceId());
return "提交审批成功";
}
@Override
public String submitErp(List<Long> ids) {
//通过订单号查询订单
List<PurchaseOrderWithDetailsVO> purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderById(ids);
if (!purchaseOrderWithDetailsVOS.isEmpty()) {
purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> {
ErpOrderSaveReqVO erpOrderSaveReqVO = new ErpOrderSaveReqVO();
if (purchaseOrderWithDetailsVO.getPurchaseOrder() != null) {
erpOrderSaveReqVO.setOrderid(purchaseOrderWithDetailsVO.getPurchaseOrder().getOrderNumber());
erpOrderSaveReqVO.setCompCode(purchaseOrderWithDetailsVO.getPurchaseOrder().getCompanyNumber());//公司代码
erpOrderSaveReqVO.setVendor(purchaseOrderWithDetailsVO.getPurchaseOrder().getSupplierNumber());// 供应商帐号
erpOrderSaveReqVO.setDocType(purchaseOrderWithDetailsVO.getPurchaseOrder().getType());//采购凭证类型
erpOrderSaveReqVO.setDocDate(purchaseOrderWithDetailsVO.getPurchaseOrder().getVoucherDate()); //采购凭证日期
erpOrderSaveReqVO.setPurchOrg(purchaseOrderWithDetailsVO.getPurchaseOrder().getPurchaseOrganizationCustomsDeclaration());//采购组织
erpOrderSaveReqVO.setPurGroup(purchaseOrderWithDetailsVO.getPurchaseOrder().getPurchaseGroup());//采购组
erpOrderSaveReqVO.setCurrency(purchaseOrderWithDetailsVO.getPurchaseOrder().getCurrencyNumber()); // 货币码
erpOrderSaveReqVO.setExchRate(purchaseOrderWithDetailsVO.getPurchaseOrder().getExchangeRate());//汇率
erpOrderSaveReqVO.setZzhth(purchaseOrderWithDetailsVO.getPurchaseOrder().getContractNumber());//纸质合同号
erpOrderSaveReqVO.setZxxyh(purchaseOrderWithDetailsVO.getPurchaseOrder().getPaperContractNumber());//小协议号
}
if (purchaseOrderWithDetailsVO.getOrderDetails()!= null){
purchaseOrderWithDetailsVO.getOrderDetails().forEach(orderDetail -> {
erpOrderSaveReqVO.setPoItem(orderDetail.getLineNum()); //行号
erpOrderSaveReqVO.setMaterial(orderDetail.getRcvFactNum());//物料号
erpOrderSaveReqVO.setQuantity(orderDetail.getQty());// 数量
erpOrderSaveReqVO.setPoUnit(orderDetail.getUnt());// 计量单位
erpOrderSaveReqVO.setNetPrice(orderDetail.getInTaxUprc());// 含税单价
erpOrderSaveReqVO.setActsCtgrDtl(orderDetail.getActsCtgrDtl());
});
}
erpOrderService.submitOrderToErp(erpOrderSaveReqVO);
log.info("订单推送成功,订单id【{}】", purchaseOrderWithDetailsVO.getPurchaseOrder().getId());
});
return "ERP推送成功";
} else {
return "订单不存在";
}
}
}

View File

@@ -0,0 +1,6 @@
package com.zt.plat.module.contractorder.util.constants;
public interface ProcessDefinitionKeyConstants {
String PURCHASE_ORDER_REVIEW_PROCESS = "purchase_order_review_process";
}

View File

@@ -9,4 +9,203 @@
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="selectOrderById" resultMap="PurchaseOrderWithDetailsResultMap">
SELECT
po.ID as po_id,
po.ORD_SAP_NUM,
po.SYS_ORD_NUM,
po.CPN_NAME,
po.CPN_NUM,
po.SPLR_NUM,
po.SPLR_NAME,
po.TP,
po.VCHR_DT,
po.PRCH_ORGZ_CD,
po.RCV_FACT_NAME,
po.RCV_FACT_NUM,
po.RCV_WRH_NAME,
po.RCV_WRH_NUM,
po.PRCH_GRP,
po.CUR_NUM,
po.EXCH_RTE,
po.PPR_CTRT_NUM,
po.AGR_NUM,
po.RMK,
po.AGT_NUM,
po.AGT_NAME,
po.ORD_NUM,
po.CTRT_NUM,
po.MTRL_NUM,
po.MTRL_NAME,
po.CTRT_NAME,
po.TNT_NUM,
po.ERP_PRCH_CPN_NUM,
po.ERP_PRCH_CPN_NAME,
po.ERP_SALE_CPN_NUM,
po.ERP_SALE_CPN_NAME,
po.PRCH_ORGZ_NAME,
po.ERP_STS,
po.CAUS,
po.STS,
po.PRCH_GRP_NAME,
po.PRCS_INSC_ID,
po.RVW_ONN,
po.TSK_NDE_ID,
po.IS_PUSH,
pod.ID as pod_id,
pod.ORD_ID,
pod.LINE_NUM,
pod.MTRL_NUM,
pod.MTRL_NAME,
pod.RCV_FACT_NAME,
pod.RCV_FACT_NUM,
pod.RCV_WRH_NAME,
pod.RCV_WRH_NUM,
pod.QTY,
pod.UNT,
pod.IN_TAX_UPRC,
pod.PRC_UNT,
pod.TAX_NUM,
pod.IS_GR_INV,
pod.IS_UNL_RCV,
pod.BAT,
pod.PRJ_CTGR,
pod.ACTS_CTGR,
pod.MTRL_CPNT_NUM,
pod.MTRL_CPNT_DSP,
pod.SHRT_TXT,
pod.IS_RLBK_CGO,
pod.IS_FREE_RCV,
pod.OUT_LINE_NUM,
pod.RMK_UNT,
pod.RMK_MTRL,
pod.BGN_DT,
pod.DDL_DT,
pod.LST_QTY,
pod.TRF_QTY,
pod.AGR_NUM as pod_agr_num,
pod.TRF_FACT_NAME,
pod.TRF_FACT_NUM,
pod.TRF_WRH_NAME,
pod.TRF_WRH_NUM,
pod.RMK as pod_rmk,
pod.ORIG_WET,
pod.SALE_MTRL_NUM,
pod.IN_ORD,
pod.PRCH_CTGR,
pod.IS_ENB,
pod.ACTS_CTGR_DTL,
pod.ENTT_DTL,
pod.ELEM_ABBR,
pod.ELEM_NAME,
pod.ELEM_CDG
FROM BSE_PRCH_ORD po
LEFT JOIN BSE_PRCH_ORD_DTL pod ON po.ID = pod.ORD_ID
WHERE po.Id IN
<foreach collection="ids" item="orderNumber" open="(" separator="," close=")">
#{orderNumber}
</foreach>
AND po.deleted=0
ORDER BY po.SYS_ORD_NUM, pod.LINE_NUM
</select>
<resultMap id="PurchaseOrderWithDetailsResultMap" type="com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderWithDetailsVO">
<result column="SYS_ORD_NUM" property="systemOrderNumber"/>
<association property="purchaseOrder" resultMap="PurchaseOrderResultMap"/>
<collection property="orderDetails" ofType="com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO" resultMap="PrchOrdDtlResultMap"/>
</resultMap>
<resultMap id="PurchaseOrderResultMap" type="com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO">
<id column="po_id" property="id"/>
<result column="ORD_SAP_NUM" property="orderSAPNumber"/>
<result column="SYS_ORD_NUM" property="systemOrderNumber"/>
<result column="CPN_NAME" property="cpName"/>
<result column="CPN_NUM" property="companyNumber"/>
<result column="SPLR_NUM" property="supplierNumber"/>
<result column="SPLR_NAME" property="supplierName"/>
<result column="TP" property="type"/>
<result column="VCHR_DT" property="voucherDate"/>
<result column="PRCH_ORGZ_CD" property="purchaseOrganizationCustomsDeclaration"/>
<result column="RCV_FACT_NAME" property="receiveFactoryName"/>
<result column="RCV_FACT_NUM" property="receiveFactoryNumber"/>
<result column="RCV_WRH_NAME" property="receiveWarehouseName"/>
<result column="RCV_WRH_NUM" property="receiveWarehouseNumber"/>
<result column="PRCH_GRP" property="purchaseGroup"/>
<result column="CUR_NUM" property="currencyNumber"/>
<result column="EXCH_RTE" property="exchangeRate"/>
<result column="PPR_CTRT_NUM" property="paperContractNumber"/>
<result column="AGR_NUM" property="agreementNumber"/>
<result column="RMK" property="remark"/>
<result column="AGT_NUM" property="agentNumber"/>
<result column="AGT_NAME" property="agentName"/>
<result column="ORD_NUM" property="orderNumber"/>
<result column="CTRT_NUM" property="contractNumber"/>
<result column="MTRL_NUM" property="materialNumber"/>
<result column="MTRL_NAME" property="materialName"/>
<result column="CTRT_NAME" property="contractName"/>
<result column="TNT_NUM" property="tenantNumber"/>
<result column="ERP_PRCH_CPN_NUM" property="erpPurchaseCompanyNumber"/>
<result column="ERP_PRCH_CPN_NAME" property="erpPurchaseCompanyName"/>
<result column="ERP_SALE_CPN_NUM" property="erpSalesCompanyNumber"/>
<result column="ERP_SALE_CPN_NAME" property="erpSalesCompanyName"/>
<result column="PRCH_ORGZ_NAME" property="purchaseOrganizationName"/>
<result column="ERP_STS" property="erpStatus"/>
<result column="CAUS" property="cause"/>
<result column="STS" property="status"/>
<result column="PRCH_GRP_NAME" property="purchaseGroupName"/>
<result column="PRCS_INSC_ID" property="processInstanceId"/>
<result column="RVW_ONN" property="reviewOpinion"/>
<result column="TSK_NDE_ID" property="taskId"/>
<result column="IS_PUSH" property="isPush"/>
</resultMap>
<resultMap id="PrchOrdDtlResultMap" type="com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO">
<id column="pod_id" property="id"/>
<result column="ORD_ID" property="ordId"/>
<result column="LINE_NUM" property="lineNum"/>
<result column="MTRL_NUM" property="mtrlNum"/>
<result column="MTRL_NAME" property="mtrlName"/>
<result column="RCV_FACT_NAME" property="rcvFactName"/>
<result column="RCV_FACT_NUM" property="rcvFactNum"/>
<result column="RCV_WRH_NAME" property="rcvWrhName"/>
<result column="RCV_WRH_NUM" property="rcvWrhNum"/>
<result column="QTY" property="qty"/>
<result column="UNT" property="unt"/>
<result column="IN_TAX_UPRC" property="inTaxUprc"/>
<result column="PRC_UNT" property="prcUnt"/>
<result column="TAX_NUM" property="taxNum"/>
<result column="IS_GR_INV" property="isGrInv"/>
<result column="IS_UNL_RCV" property="isUnlRcv"/>
<result column="BAT" property="bat"/>
<result column="PRJ_CTGR" property="prjCtgr"/>
<result column="ACTS_CTGR" property="actsCtgr"/>
<result column="MTRL_CPNT_NUM" property="mtrlCpntNum"/>
<result column="MTRL_CPNT_DSP" property="mtrlCpntDsp"/>
<result column="SHRT_TXT" property="shrtTxt"/>
<result column="IS_RLBK_CGO" property="isRlbkCgo"/>
<result column="IS_FREE_RCV" property="isFreeRcv"/>
<result column="OUT_LINE_NUM" property="outLineNum"/>
<result column="RMK_UNT" property="rmkUnt"/>
<result column="RMK_MTRL" property="rmkMtrl"/>
<result column="BGN_DT" property="bgnDt"/>
<result column="DDL_DT" property="ddlDt"/>
<result column="LST_QTY" property="lstQty"/>
<result column="TRF_QTY" property="trfQty"/>
<result column="pod_agr_num" property="agrNum"/>
<result column="TRF_FACT_NAME" property="trfFactName"/>
<result column="TRF_FACT_NUM" property="trfFactNum"/>
<result column="TRF_WRH_NAME" property="trfWrhName"/>
<result column="TRF_WRH_NUM" property="trfWrhNum"/>
<result column="pod_rmk" property="rmk"/>
<result column="ORIG_WET" property="origWet"/>
<result column="SALE_MTRL_NUM" property="saleMtrlNum"/>
<result column="IN_ORD" property="inOrd"/>
<result column="PRCH_CTGR" property="prchCtgr"/>
<result column="IS_ENB" property="isEnb"/>
<result column="ACTS_CTGR_DTL" property="actsCtgrDtl"/>
<result column="ENTT_DTL" property="enttDtl"/>
<result column="ELEM_ABBR" property="elemAbbr"/>
<result column="ELEM_NAME" property="elemName"/>
<result column="ELEM_CDG" property="elemCdg"/>
</resultMap>
</mapper>