From e0a8d1ec44fabf8428ada79fb216712d2371f871 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Sun, 1 Dec 2024 14:17:41 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E4=BF=AE=E6=94=B9=E5=90=88=E6=A0=BC?= =?UTF-8?q?=E8=AF=81=E5=85=A5=E5=BA=93=E5=9B=9E=E4=BC=A0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyncReceiptProcessHandler.java | 6 +- .../wms/pda_manage/group/dto/MaterItem.java | 4 +- .../iostorage/server/dto/PdaFormInMst.java | 10 +- .../iostorage/server/dto/ReceiveBillData.java | 32 +++-- .../iostorage/sevice/PdaIOService.java | 107 ++++++++------ .../form_data/service/IPmFormDataService.java | 5 +- .../form_data/service/dao/PmFormData.java | 130 +++++++++++++----- .../service/dao/mapper/PmFormDataMapper.java | 2 +- .../dao/mapper/xml/PmFormDataMapper.xml | 17 ++- .../service/impl/PmFormDataServiceImpl.java | 19 ++- .../SyncFormMappingController.java | 4 +- .../task/SyncErpBillsScheduleService.java | 23 ++-- 12 files changed, 240 insertions(+), 119 deletions(-) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java index 69e9dc03..2b912f38 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java @@ -27,11 +27,11 @@ public class SyncReceiptProcessHandler implements ClassProcess { ErpSec erpSec; /** - * + * 回执单回传 */ @Override public JSONObject process(JSONObject from, JSONObject param) { - //执行回传 + //执行回传单 String formType = from.getString("form_type"); try { String code = from.getString("code"); @@ -48,7 +48,9 @@ public class SyncReceiptProcessHandler implements ClassProcess { IdentifyInfo identifyInfo = new IdentifyInfo(); BeanUtils.copyProperties(erpSec, identifyInfo); K3CloudApi cloudApi = new K3CloudApi(identifyInfo); + String jsonData = formData.toJSONString(); String result = cloudApi.save(formid, formData.toJSONString()); + String ex = result; } catch (Exception ex) { Log.error(ex.getMessage()); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/group/dto/MaterItem.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/group/dto/MaterItem.java index dc479a9a..3e7c9d31 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/group/dto/MaterItem.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/group/dto/MaterItem.java @@ -2,6 +2,8 @@ package org.nl.wms.pda_manage.group.dto; import lombok.Data; +import java.math.BigDecimal; + /** * 组盘入库物料明细数据 */ @@ -38,7 +40,7 @@ public class MaterItem { /** * 物料数量 */ - private Integer qty; + private BigDecimal qty; /** * 载具编码 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormInMst.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormInMst.java index f60823b6..77eda8b7 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormInMst.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormInMst.java @@ -3,6 +3,7 @@ package org.nl.wms.pda_manage.iostorage.server.dto; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; /** *

@@ -43,12 +44,12 @@ public class PdaFormInMst implements Serializable { /** - * 对应明细:生产入库单,采购入库单-物料FMaterialID + * 物料Id */ private String material_id; /** - * 物料code + * 对应明细:生产入库单-关联物料编码FMaterialId/采购入库单-关联物料编码FMaterialId */ private String material_code; @@ -95,13 +96,13 @@ public class PdaFormInMst implements Serializable { /** * 对应明细:生产入库单-入库数量FRealQty/采购入库单-采购数量FRealQty */ - private Integer qty; + private BigDecimal qty; /** * 对应明细:生产入库单-应收数量FMustQty */ - private Integer mustQty; + private BigDecimal mustQty; /** @@ -222,7 +223,6 @@ public class PdaFormInMst implements Serializable { private String taxPrice; - /** * 对应明细:生产入库单-关联订单号Id-FMoId */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/ReceiveBillData.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/ReceiveBillData.java index 9bd339a6..1c26addb 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/ReceiveBillData.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/ReceiveBillData.java @@ -24,6 +24,21 @@ public class ReceiveBillData implements Serializable { private static final long serialVersionUID = 1L; + + /** + * FMoId + */ + private String pId; + + + /** + * FMoEntryId + */ + private String dId; + + + + /** * 单据编码 */ @@ -34,10 +49,12 @@ public class ReceiveBillData implements Serializable { */ private String material_id; + /** * 数量 */ - private BigDecimal ActReceiveQty; + private BigDecimal qty; + /** @@ -54,7 +71,7 @@ public class ReceiveBillData implements Serializable { /** * 自定义表单字段 */ - private String form_data; + private String dForm_data; /** * 自定义表单字段父级 @@ -62,17 +79,6 @@ public class ReceiveBillData implements Serializable { private String pForm_data; -// /** -// * 自定义表单字段 -// */ -// @TableField(typeHandler = FastjsonTypeHandler.class) -// private JSONObject form_data = new JSONObject(); -// -// /** -// * 自定义表单字段父级 -// */ -// @TableField(typeHandler = FastjsonTypeHandler.class) -// private JSONObject pForm_data = new JSONObject(); /** diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java index 6c438740..d2a0b85a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java @@ -11,6 +11,8 @@ import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.exception.BadRequestException; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.*; +import org.nl.wms.base_manage.bsrealstorattr.service.dao.StIvtBsrealstorattr; +import org.nl.wms.base_manage.bsrealstorattr.service.impl.StIvtBsrealstorattrServiceImpl; import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase; import org.nl.wms.base_manage.material.service.impl.MdMeMaterialbaseServiceImpl; import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit; @@ -54,6 +56,12 @@ public class PdaIOService { @Autowired BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl; + + @Autowired + StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl; + + + @Autowired MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl; @@ -143,33 +151,31 @@ public class PdaIOService { PmFormData result = new PmFormData(); try { if (id.contains("OP") || id.contains("op")) { + //生产入库 getOpBills(id, result); } else { + //采购入库 ReceiveBillData receiveBillData = pmFormDataMapper.queryReceiveBill(id); if (receiveBillData != null) { - String form_data = receiveBillData.getForm_data(); String pForm_data = receiveBillData.getPForm_data(); - JSONObject formJson = JSONObject.parseObject(form_data); + String dForm_data = receiveBillData.getDForm_data(); JSONObject pFormJson = JSONObject.parseObject(pForm_data); - if (ObjectUtils.isNotEmpty(formJson) && ObjectUtils.isNotEmpty(pFormJson)) { + JSONObject dFormJson = JSONObject.parseObject(dForm_data); + if (ObjectUtils.isNotEmpty(dFormJson) && ObjectUtils.isNotEmpty(pFormJson)) { result.setBillNo(receiveBillData.getPCode()); - result.setMaterial_id(receiveBillData.getMaterial_id()); - result.setUnit_id(receiveBillData.getUnit_id()); - result.setPcsn(receiveBillData.getPcsn()); - result.setPrdOrgId(pFormJson.getString("PurOrgId_Id")); - result.setStockOrgId(pFormJson.getString("DemandOrgId_Id")); - result.setOwnerIdHead_Id(pFormJson.getString("OwnerIdHead_Id")); - result.setOwnerTypeIdHead(pFormJson.getString("OwnerTypeIdHead")); + result.setBusinessType(StringUtils.isBlank(pFormJson.getString("businessType")) ? "CG" : dFormJson.getString("businessType")); result.setSupplierId(pFormJson.getString("SupplierId_Id")); - result.setMoNumber(formJson.getString("OrderBillNo")); - result.setQty(new BigDecimal(formJson.getString("ActReceiveQty"))); - result.setOwnerIdHead_Id(StringUtils.isBlank(pFormJson.getString("OwnerIdHead_Id")) ? "750572" : pFormJson.getString("OwnerIdHead_Id")); - result.setOwnerTypeIdHead(StringUtils.isBlank(pFormJson.getString("OwnerTypeIdHead")) ? "BD_OwnerOrg" : pFormJson.getString("OwnerTypeIdHead")); - result.setOwnerId_Id(StringUtils.isBlank(formJson.getString("OwnerId_Id")) ? "750572" : formJson.getString("OwnerId_Id")); - result.setOwnerTypeId(StringUtils.isBlank(formJson.getString("OwnerTypeId")) ? "BD_OwnerOrg" : formJson.getString("OwnerTypeId")); - result.setRemainInStockUnitId(StringUtils.isBlank(formJson.getString("PriceUnitId_Id")) ? receiveBillData.getUnit_id() : formJson.getString("PriceUnitId_Id")); + result.setMaterial_id(receiveBillData.getMaterial_id()); + result.setPcsn(receiveBillData.getPCode()); + result.setPurchaserId(dFormJson.getString("PurchaserId")); + result.setUnit_id(receiveBillData.getUnit_id()); + result.setQty(new BigDecimal(dFormJson.getString("ActReceiveQty"))); + result.setTaxPrice(dFormJson.getString("taxPrice")); + result.setMoNumber(receiveBillData.getPCode()); + result.setMoEntryId(receiveBillData.getDId()); + result.setSrcBillNo(dFormJson.getString("OrderBillNo")); } else { - throw new BadRequestException("合格证信息有误!"); + throw new BadRequestException("查询合格证关联的收料通知单信息异常!"); } } else { throw new BadRequestException("未查询到该合格证信息!"); @@ -182,6 +188,7 @@ public class PdaIOService { List bmMeasureUnitList = bmMeasureUnitServiceImpl.list(new LambdaQueryWrapper().eq(BmMeasureUnit::getUnit_id, result.getUnit_id())); if (ObjectUtils.isNotEmpty(bmMeasureUnitList)) { result.setUnit_name(bmMeasureUnitList.get(0).getUnit_name()); + result.setUnit_code(bmMeasureUnitList.get(0).getUnit_code()); } } if (StringUtils.isNotBlank(result.getMaterial_id())) { @@ -192,6 +199,14 @@ public class PdaIOService { result.setMaterial_name(materialbaseList.get(0).getMaterial_name()); } } + if (StringUtils.isNotBlank(result.getStockId())) { + List storattrList = stIvtBsrealstorattrServiceImpl.list(new LambdaQueryWrapper().eq(StIvtBsrealstorattr::getId, result.getStockId())); + if (ObjectUtils.isNotEmpty(storattrList)) { + result.setStockId(storattrList.get(0).getStor_code()); + } + }else{ + result.setStockId("0"); + } return result; } @@ -212,27 +227,41 @@ public class PdaIOService { List> lists = cloudApi.executeBillQuery(jsonString); if (ObjectUtils.isNotEmpty(lists)) { List dataList = lists.get(0); - if (dataList != null && !dataList.isEmpty()) { - result.setBillNo(dataList.get(0).toString()); - result.setPrdOrgId(dataList.get(1).toString()); - result.setStockOrgId(dataList.get(2).toString()); - result.setMaterial_id(dataList.get(3).toString()); - result.setMaterial_name(dataList.get(4).toString()); - result.setMaterial_spec(dataList.get(5).toString()); - result.setQty(new BigDecimal(dataList.get(6).toString())); - result.setUnit_id(dataList.get(7).toString()); - result.setOwnerId_Id(dataList.get(8).toString()); - result.setPcsn(dataList.get(9).toString()); - result.setProduct_area(dataList.get(10).toString()); - result.setMoNumber(dataList.get(11).toString()); - result.setMoEntrySeq(dataList.get(12).toString()); - result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); - result.setKeeperId("750572"); - result.setKeeperTypeId("BD_KeeperOrg"); - result.setStockStatusId("10000"); - //查询仓库信息 - String stockId = pmFormDataMapper.queryOrderStockId(result.getMoNumber(), result.getMoEntrySeq()); - result.setStockId(stockId); + if (ObjectUtils.isNotEmpty(dataList)) { + //查询生产订单信息 + ReceiveBillData prdMoBillData = pmFormDataMapper.queryOrderStockId(dataList.get(11).toString(),dataList.get(12).toString()); + if (prdMoBillData == null) { + throw new BadRequestException("查询合格证关联的生产订单信息异常!"); + } + String pForm_data = prdMoBillData.getPForm_data(); + String dForm_data = prdMoBillData.getDForm_data(); + JSONObject pFormJson = JSONObject.parseObject(pForm_data); + JSONObject dFormJson = JSONObject.parseObject(dForm_data); + if (ObjectUtils.isNotEmpty(dFormJson) && ObjectUtils.isNotEmpty(pFormJson)) { + result.setBillNo(dataList.get(0).toString()); + result.setPrdOrgId((pFormJson.getString("PrdOrgId"))); + result.setStockOrgId((dFormJson.getString("StockOrgId"))); + result.setOwnerIdHead_Id((dFormJson.getString("InStockOwnerId"))); + result.setMoNumber(dataList.get(11).toString()); + result.setMoId(prdMoBillData.getPId()); + result.setMoEntryId(prdMoBillData.getDId()); + result.setSrcBillNo(dFormJson.getString("saleOrderEntryId")); + result.setMaterial_id(dataList.get(3).toString()); + result.setPcsn(dataList.get(11).toString()); + result.setUnit_id(dataList.get(7).toString()); + result.setWorkShopId1(dFormJson.getString("product_code")); + result.setQty(prdMoBillData.getQty()); + result.setMustQty(prdMoBillData.getQty()); + result.setInStockType("1"); + result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); + result.setOwnerId_Id(dFormJson.getString("InStockOwnerId")); + result.setStockStatusId("10000"); + result.setStockId(dFormJson.getString("stockId")); + result.setKeeperId((dFormJson.getString("StockOrgId"))); + result.setKeeperTypeId("BD_KeeperOrg"); + } + } else { + throw new BadRequestException("查询合格证关联的生产订单信息异常!"); } } else { throw new BadRequestException("未查询到该合格证信息!"); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java index 66bc8ad7..7400632e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java @@ -39,11 +39,12 @@ public interface IPmFormDataService extends IService { /** * 一对多同步改成一对一同步 - * @param formMapping + * @param mappingJson + * @param formType * @param sourceString * @return */ - List syncAnalyse(SyncFormMapping formMapping, String sourceString); + List syncAnalyse(JSONArray mappingJson, String formType,Boolean dtlSplit,String sourceString); /** * */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java index 80500ede..86595e1c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java @@ -71,7 +71,7 @@ public class PmFormData implements Serializable { private String material_id; /** - * 数量 + * 对应明细:生产入库单-入库数量FRealQty/采购入库单-采购数量FRealQty */ private BigDecimal qty; /** @@ -158,20 +158,6 @@ public class PmFormData implements Serializable { @TableField(exist = false) private String stockOrgId; - /** - * 货主 - */ - @TableField(exist = false) - private String ownerId_Id; - - - - /** - * 货主1 - */ - @TableField(exist = false) - private String ownerIdHead_Id; - /** * 货主类型1 @@ -179,7 +165,11 @@ public class PmFormData implements Serializable { @TableField(exist = false) private String ownerTypeIdHead; - + /** + * 对应表头:生产入库单-货主FOwnerId0 + */ + @TableField(exist = false) + private String ownerIdHead_Id; /** * 物料名称 @@ -202,30 +192,19 @@ public class PmFormData implements Serializable { private String material_spec; /** - * 物料编码 + * 对应明细:生产入库单-关联物料编码FMaterialId/采购入库单-关联物料编码FMaterialId */ @TableField(exist = false) private String material_code; - /** - * 生产车间 - */ - @TableField(exist = false) - private String product_area; /** - * ERP仓库 + * 对应明细:生产入库单,采购入库单-单位FUnitCode */ @TableField(exist = false) - private String stockId; + private String unit_code; - /** - * 生产订单编号 - */ - @TableField(exist = false) - private String moNumber; - /** * 生产订单行号 */ @@ -245,12 +224,18 @@ public class PmFormData implements Serializable { @TableField(exist = false) private String unit_name; + /** - * 货主类型 + * 对应明细:生产入库单-货主类型FOwnerTypeId,默认(BD_OwnerOrg) */ @TableField(exist = false) private String ownerTypeId; + /** + * 对应明细:生产入库单-货主FOwnerId + */ + @TableField(exist = false) + private String ownerId_Id; /** * 供应商 @@ -266,25 +251,100 @@ public class PmFormData implements Serializable { /** - * 保管者类型 + * 对应明细:生产入库单-关联订单号FMoBillNo/采购入库单-关联订单号FPoOrderNo + */ + @TableField(exist = false) + private String moNumber; + + /** + * 对应明细:生产入库单-关联订单号Id-FMoId + */ + @TableField(exist = false) + private String moId; + + + /** + * 对应明细:生产入库单-关联订单号明细Id-FMoEntryId/采购入库单-关联订单号明细FPoOrderEntryId + */ + @TableField(exist = false) + private String moEntryId; + + + /** + * 对应明细:生产入库单-关联源头订单号明细Id-FSrcEntryId/采购入库单-关联源头订单号编号FSrcBillNo + */ + @TableField(exist = false) + private String srcBillNo; + + /** + * 对应明细:生产入库单-生产车间FWorkShopId1 + */ + @TableField(exist = false) + private String workShopId1; + + + /** + * 对应明细:生产入库单-应收数量FMustQty + */ + @TableField(exist = false) + private BigDecimal mustQty; + + + + + /** + * 对应明细:生产入库单-入库类型FInStockType,默认: 1 + */ + @TableField(exist = false) + private String inStockType; + + /** + * 对应明细:生产入库单-库存状态FStockStatusId,默认: 10000 + */ + @TableField(exist = false) + private String stockStatusId; + + + /** + * 对应明细:生产入库单-ERP仓库FStockId + */ + @TableField(exist = false) + private String stockId; + + + /** + * 对应明细:生产入库单-保管者类型FKeeperTypeId,默认(BD_KeeperOrg) */ @TableField(exist = false) private String keeperTypeId; /** - * 保管者 + * 对应明细:生产入库单-保管者FKeeperId */ @TableField(exist = false) private String keeperId; /** - * 库存状态 + * 对应表头:采购入库单-业务类型FBusinessType:默认(CG) */ @TableField(exist = false) - private String stockStatusId; + private String businessType; + /** + * 对应明细:采购入库单-采购员FPurchaserId + */ + @TableField(exist = false) + private String purchaserId; + + + /** + * 对应明细:生产入库单-含税价FTaxPrice + */ + @TableField(exist = false) + private String taxPrice; + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/PmFormDataMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/PmFormDataMapper.java index 78819baa..9059461d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/PmFormDataMapper.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/PmFormDataMapper.java @@ -31,7 +31,7 @@ public interface PmFormDataMapper extends BaseMapper { void dynamicSql(@Param("sql")String sql); - String queryOrderStockId(@Param("code")String code,@Param("seq")String seq); + ReceiveBillData queryOrderStockId(@Param("code")String code,@Param("seq")String seq); ReceiveBillData queryReceiveBill(@Param("bar_code")String bar_code); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml index 8798e975..0f47f3ed 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml @@ -159,8 +159,18 @@ - + SELECT d.unit_id, + d.id AS dId, + d.pcsn, + d.qty, + d.form_data, + d.material_id, + d.bar_code, + d.form_data AS dForm_data, + p.form_data AS pForm_data, + p.id AS pId, + p.code AS pCode FROM pm_form_data d JOIN pm_form_data p ON d.parent_id = p.id WHERE p.CODE = #{code} @@ -168,10 +178,13 @@