rev:修改合格证入库回传;

This commit is contained in:
2024-12-01 14:17:41 +08:00
parent a0b8c280af
commit e0a8d1ec44
12 changed files with 240 additions and 119 deletions

View File

@@ -27,11 +27,11 @@ public class SyncReceiptProcessHandler implements ClassProcess {
ErpSec erpSec; ErpSec erpSec;
/** /**
* * 回执单回传
*/ */
@Override @Override
public JSONObject process(JSONObject from, JSONObject param) { public JSONObject process(JSONObject from, JSONObject param) {
//执行回传 //执行回传
String formType = from.getString("form_type"); String formType = from.getString("form_type");
try { try {
String code = from.getString("code"); String code = from.getString("code");
@@ -48,7 +48,9 @@ public class SyncReceiptProcessHandler implements ClassProcess {
IdentifyInfo identifyInfo = new IdentifyInfo(); IdentifyInfo identifyInfo = new IdentifyInfo();
BeanUtils.copyProperties(erpSec, identifyInfo); BeanUtils.copyProperties(erpSec, identifyInfo);
K3CloudApi cloudApi = new K3CloudApi(identifyInfo); K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
String jsonData = formData.toJSONString();
String result = cloudApi.save(formid, formData.toJSONString()); String result = cloudApi.save(formid, formData.toJSONString());
String ex = result;
} catch (Exception ex) { } catch (Exception ex) {
Log.error(ex.getMessage()); Log.error(ex.getMessage());
} }

View File

@@ -2,6 +2,8 @@ package org.nl.wms.pda_manage.group.dto;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* 组盘入库物料明细数据 * 组盘入库物料明细数据
*/ */
@@ -38,7 +40,7 @@ public class MaterItem {
/** /**
* 物料数量 * 物料数量
*/ */
private Integer qty; private BigDecimal qty;
/** /**
* 载具编码 * 载具编码
*/ */

View File

@@ -3,6 +3,7 @@ package org.nl.wms.pda_manage.iostorage.server.dto;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* <p> * <p>
@@ -43,12 +44,12 @@ public class PdaFormInMst implements Serializable {
/** /**
* 对应明细:生产入库单,采购入库单-物料FMaterialID * 物料Id
*/ */
private String material_id; private String material_id;
/** /**
* 物料code * 对应明细:生产入库单-关联物料编码FMaterialId/采购入库单-关联物料编码FMaterialId
*/ */
private String material_code; private String material_code;
@@ -95,13 +96,13 @@ public class PdaFormInMst implements Serializable {
/** /**
* 对应明细:生产入库单-入库数量FRealQty/采购入库单-采购数量FRealQty * 对应明细:生产入库单-入库数量FRealQty/采购入库单-采购数量FRealQty
*/ */
private Integer qty; private BigDecimal qty;
/** /**
* 对应明细:生产入库单-应收数量FMustQty * 对应明细:生产入库单-应收数量FMustQty
*/ */
private Integer mustQty; private BigDecimal mustQty;
/** /**
@@ -222,7 +223,6 @@ public class PdaFormInMst implements Serializable {
private String taxPrice; private String taxPrice;
/** /**
* 对应明细:生产入库单-关联订单号Id-FMoId * 对应明细:生产入库单-关联订单号Id-FMoId
*/ */

View File

@@ -24,6 +24,21 @@ public class ReceiveBillData implements Serializable {
private static final long serialVersionUID = 1L; 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 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; private String pForm_data;
// /**
// * 自定义表单字段
// */
// @TableField(typeHandler = FastjsonTypeHandler.class)
// private JSONObject form_data = new JSONObject();
//
// /**
// * 自定义表单字段父级
// */
// @TableField(typeHandler = FastjsonTypeHandler.class)
// private JSONObject pForm_data = new JSONObject();
/** /**

View File

@@ -11,6 +11,8 @@ import org.apache.commons.lang3.StringUtils;
import org.nl.common.domain.exception.BadRequestException; import org.nl.common.domain.exception.BadRequestException;
import org.nl.common.enums.StatusEnum; import org.nl.common.enums.StatusEnum;
import org.nl.common.utils.*; 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.dao.MdMeMaterialbase;
import org.nl.wms.base_manage.material.service.impl.MdMeMaterialbaseServiceImpl; import org.nl.wms.base_manage.material.service.impl.MdMeMaterialbaseServiceImpl;
import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit; import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit;
@@ -54,6 +56,12 @@ public class PdaIOService {
@Autowired @Autowired
BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl; BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl;
@Autowired
StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl;
@Autowired @Autowired
MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl; MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl;
@@ -143,33 +151,31 @@ public class PdaIOService {
PmFormData result = new PmFormData(); PmFormData result = new PmFormData();
try { try {
if (id.contains("OP") || id.contains("op")) { if (id.contains("OP") || id.contains("op")) {
//生产入库
getOpBills(id, result); getOpBills(id, result);
} else { } else {
//采购入库
ReceiveBillData receiveBillData = pmFormDataMapper.queryReceiveBill(id); ReceiveBillData receiveBillData = pmFormDataMapper.queryReceiveBill(id);
if (receiveBillData != null) { if (receiveBillData != null) {
String form_data = receiveBillData.getForm_data();
String pForm_data = receiveBillData.getPForm_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); 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.setBillNo(receiveBillData.getPCode());
result.setMaterial_id(receiveBillData.getMaterial_id()); result.setBusinessType(StringUtils.isBlank(pFormJson.getString("businessType")) ? "CG" : dFormJson.getString("businessType"));
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.setSupplierId(pFormJson.getString("SupplierId_Id")); result.setSupplierId(pFormJson.getString("SupplierId_Id"));
result.setMoNumber(formJson.getString("OrderBillNo")); result.setMaterial_id(receiveBillData.getMaterial_id());
result.setQty(new BigDecimal(formJson.getString("ActReceiveQty"))); result.setPcsn(receiveBillData.getPCode());
result.setOwnerIdHead_Id(StringUtils.isBlank(pFormJson.getString("OwnerIdHead_Id")) ? "750572" : pFormJson.getString("OwnerIdHead_Id")); result.setPurchaserId(dFormJson.getString("PurchaserId"));
result.setOwnerTypeIdHead(StringUtils.isBlank(pFormJson.getString("OwnerTypeIdHead")) ? "BD_OwnerOrg" : pFormJson.getString("OwnerTypeIdHead")); result.setUnit_id(receiveBillData.getUnit_id());
result.setOwnerId_Id(StringUtils.isBlank(formJson.getString("OwnerId_Id")) ? "750572" : formJson.getString("OwnerId_Id")); result.setQty(new BigDecimal(dFormJson.getString("ActReceiveQty")));
result.setOwnerTypeId(StringUtils.isBlank(formJson.getString("OwnerTypeId")) ? "BD_OwnerOrg" : formJson.getString("OwnerTypeId")); result.setTaxPrice(dFormJson.getString("taxPrice"));
result.setRemainInStockUnitId(StringUtils.isBlank(formJson.getString("PriceUnitId_Id")) ? receiveBillData.getUnit_id() : formJson.getString("PriceUnitId_Id")); result.setMoNumber(receiveBillData.getPCode());
result.setMoEntryId(receiveBillData.getDId());
result.setSrcBillNo(dFormJson.getString("OrderBillNo"));
} else { } else {
throw new BadRequestException("合格证信息有误"); throw new BadRequestException("查询合格证关联的收料通知单信息异常");
} }
} else { } else {
throw new BadRequestException("未查询到该合格证信息!"); throw new BadRequestException("未查询到该合格证信息!");
@@ -182,6 +188,7 @@ public class PdaIOService {
List<BmMeasureUnit> bmMeasureUnitList = bmMeasureUnitServiceImpl.list(new LambdaQueryWrapper<BmMeasureUnit>().eq(BmMeasureUnit::getUnit_id, result.getUnit_id())); List<BmMeasureUnit> bmMeasureUnitList = bmMeasureUnitServiceImpl.list(new LambdaQueryWrapper<BmMeasureUnit>().eq(BmMeasureUnit::getUnit_id, result.getUnit_id()));
if (ObjectUtils.isNotEmpty(bmMeasureUnitList)) { if (ObjectUtils.isNotEmpty(bmMeasureUnitList)) {
result.setUnit_name(bmMeasureUnitList.get(0).getUnit_name()); result.setUnit_name(bmMeasureUnitList.get(0).getUnit_name());
result.setUnit_code(bmMeasureUnitList.get(0).getUnit_code());
} }
} }
if (StringUtils.isNotBlank(result.getMaterial_id())) { if (StringUtils.isNotBlank(result.getMaterial_id())) {
@@ -192,6 +199,14 @@ public class PdaIOService {
result.setMaterial_name(materialbaseList.get(0).getMaterial_name()); result.setMaterial_name(materialbaseList.get(0).getMaterial_name());
} }
} }
if (StringUtils.isNotBlank(result.getStockId())) {
List<StIvtBsrealstorattr> storattrList = stIvtBsrealstorattrServiceImpl.list(new LambdaQueryWrapper<StIvtBsrealstorattr>().eq(StIvtBsrealstorattr::getId, result.getStockId()));
if (ObjectUtils.isNotEmpty(storattrList)) {
result.setStockId(storattrList.get(0).getStor_code());
}
}else{
result.setStockId("0");
}
return result; return result;
} }
@@ -212,27 +227,41 @@ public class PdaIOService {
List<List<Object>> lists = cloudApi.executeBillQuery(jsonString); List<List<Object>> lists = cloudApi.executeBillQuery(jsonString);
if (ObjectUtils.isNotEmpty(lists)) { if (ObjectUtils.isNotEmpty(lists)) {
List<Object> dataList = lists.get(0); List<Object> dataList = lists.get(0);
if (dataList != null && !dataList.isEmpty()) { if (ObjectUtils.isNotEmpty(dataList)) {
result.setBillNo(dataList.get(0).toString()); //查询生产订单信息
result.setPrdOrgId(dataList.get(1).toString()); ReceiveBillData prdMoBillData = pmFormDataMapper.queryOrderStockId(dataList.get(11).toString(),dataList.get(12).toString());
result.setStockOrgId(dataList.get(2).toString()); if (prdMoBillData == null) {
result.setMaterial_id(dataList.get(3).toString()); throw new BadRequestException("查询合格证关联的生产订单信息异常!");
result.setMaterial_name(dataList.get(4).toString()); }
result.setMaterial_spec(dataList.get(5).toString()); String pForm_data = prdMoBillData.getPForm_data();
result.setQty(new BigDecimal(dataList.get(6).toString())); String dForm_data = prdMoBillData.getDForm_data();
result.setUnit_id(dataList.get(7).toString()); JSONObject pFormJson = JSONObject.parseObject(pForm_data);
result.setOwnerId_Id(dataList.get(8).toString()); JSONObject dFormJson = JSONObject.parseObject(dForm_data);
result.setPcsn(dataList.get(9).toString()); if (ObjectUtils.isNotEmpty(dFormJson) && ObjectUtils.isNotEmpty(pFormJson)) {
result.setProduct_area(dataList.get(10).toString()); result.setBillNo(dataList.get(0).toString());
result.setMoNumber(dataList.get(11).toString()); result.setPrdOrgId((pFormJson.getString("PrdOrgId")));
result.setMoEntrySeq(dataList.get(12).toString()); result.setStockOrgId((dFormJson.getString("StockOrgId")));
result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); result.setOwnerIdHead_Id((dFormJson.getString("InStockOwnerId")));
result.setKeeperId("750572"); result.setMoNumber(dataList.get(11).toString());
result.setKeeperTypeId("BD_KeeperOrg"); result.setMoId(prdMoBillData.getPId());
result.setStockStatusId("10000"); result.setMoEntryId(prdMoBillData.getDId());
//查询仓库信息 result.setSrcBillNo(dFormJson.getString("saleOrderEntryId"));
String stockId = pmFormDataMapper.queryOrderStockId(result.getMoNumber(), result.getMoEntrySeq()); result.setMaterial_id(dataList.get(3).toString());
result.setStockId(stockId); 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 { } else {
throw new BadRequestException("未查询到该合格证信息!"); throw new BadRequestException("未查询到该合格证信息!");

View File

@@ -39,11 +39,12 @@ public interface IPmFormDataService extends IService<PmFormData> {
/** /**
* 一对多同步改成一对一同步 * 一对多同步改成一对一同步
* @param formMapping * @param mappingJson
* @param formType
* @param sourceString * @param sourceString
* @return * @return
*/ */
List<PmFormData> syncAnalyse(SyncFormMapping formMapping, String sourceString); List<PmFormData> syncAnalyse(JSONArray mappingJson, String formType,Boolean dtlSplit,String sourceString);
/** /**
* *
*/ */

View File

@@ -71,7 +71,7 @@ public class PmFormData implements Serializable {
private String material_id; private String material_id;
/** /**
* 数量 * 对应明细:生产入库单-入库数量FRealQty/采购入库单-采购数量FRealQty
*/ */
private BigDecimal qty; private BigDecimal qty;
/** /**
@@ -158,20 +158,6 @@ public class PmFormData implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String stockOrgId; private String stockOrgId;
/**
* 货主
*/
@TableField(exist = false)
private String ownerId_Id;
/**
* 货主1
*/
@TableField(exist = false)
private String ownerIdHead_Id;
/** /**
* 货主类型1 * 货主类型1
@@ -179,7 +165,11 @@ public class PmFormData implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String ownerTypeIdHead; private String ownerTypeIdHead;
/**
* 对应表头:生产入库单-货主FOwnerId0
*/
@TableField(exist = false)
private String ownerIdHead_Id;
/** /**
* 物料名称 * 物料名称
@@ -202,30 +192,19 @@ public class PmFormData implements Serializable {
private String material_spec; private String material_spec;
/** /**
* 物料编码 * 对应明细:生产入库单-关联物料编码FMaterialId/采购入库单-关联物料编码FMaterialId
*/ */
@TableField(exist = false) @TableField(exist = false)
private String material_code; private String material_code;
/**
* 生产车间
*/
@TableField(exist = false)
private String product_area;
/** /**
* ERP仓库 * 对应明细:生产入库单,采购入库单-单位FUnitCode
*/ */
@TableField(exist = false) @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) @TableField(exist = false)
private String unit_name; private String unit_name;
/** /**
* 货主类型 * 对应明细:生产入库单-货主类型FOwnerTypeId,默认(BD_OwnerOrg)
*/ */
@TableField(exist = false) @TableField(exist = false)
private String ownerTypeId; 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) @TableField(exist = false)
private String keeperTypeId; private String keeperTypeId;
/** /**
* 保管者 * 对应明细:生产入库单-保管者FKeeperId
*/ */
@TableField(exist = false) @TableField(exist = false)
private String keeperId; private String keeperId;
/** /**
* 库存状态 * 对应表头:采购入库单-业务类型FBusinessType:默认(CG)
*/ */
@TableField(exist = false) @TableField(exist = false)
private String stockStatusId; private String businessType;
/**
* 对应明细:采购入库单-采购员FPurchaserId
*/
@TableField(exist = false)
private String purchaserId;
/**
* 对应明细:生产入库单-含税价FTaxPrice
*/
@TableField(exist = false)
private String taxPrice;
} }

View File

@@ -31,7 +31,7 @@ public interface PmFormDataMapper extends BaseMapper<PmFormData> {
void dynamicSql(@Param("sql")String sql); 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); ReceiveBillData queryReceiveBill(@Param("bar_code")String bar_code);

View File

@@ -159,8 +159,18 @@
</foreach> </foreach>
</select> </select>
<select id="queryOrderStockId" resultType="java.lang.String"> <select id="queryOrderStockId" resultType="org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData">
SELECT d.bar_code 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 FROM pm_form_data d
JOIN pm_form_data p ON d.parent_id = p.id JOIN pm_form_data p ON d.parent_id = p.id
WHERE p.CODE = #{code} WHERE p.CODE = #{code}
@@ -168,10 +178,13 @@
</select> </select>
<select id="queryReceiveBill" resultType="org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData"> <select id="queryReceiveBill" resultType="org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData">
SELECT d.unit_id, SELECT d.unit_id,
d.id AS dId,
d.pcsn, d.pcsn,
d.form_data, d.form_data,
d.material_id, d.material_id,
d.bar_code, d.bar_code,
d.form_data AS dForm_data,
p.id AS pId,
p.code AS pCode, p.code AS pCode,
p.form_data AS pForm_data p.form_data AS pForm_data
FROM pm_form_data d FROM pm_form_data d

View File

@@ -70,7 +70,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
if (syncFormMapping == null) { if (syncFormMapping == null) {
throw new BadRequestException("当前表单无同步配置信息"); throw new BadRequestException("当前表单无同步配置信息");
} }
List<PmFormData> pmFormDatas = this.syncAnalyse(syncFormMapping, dataString); List<PmFormData> pmFormDatas = this.syncAnalyse(syncFormMapping.getMapping_json(),syncFormMapping.getForm_type(), syncFormMapping.getDtl_split(),dataString);
this.saveBatch(pmFormDatas); this.saveBatch(pmFormDatas);
return pmFormDatas.size(); return pmFormDatas.size();
} }
@@ -80,14 +80,13 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
* *
*/ */
@Override @Override
public List<PmFormData> syncAnalyse(SyncFormMapping formMapping, String sourceString) { public List<PmFormData> syncAnalyse(JSONArray mappingJson, String formType,Boolean dtlSplit,String sourceString) {
try { try {
BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", formMapping.getForm_type())); BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type",formType));
if (one == null) { if (one == null) {
throw new BadRequestException("当前表单无配置信息" + formMapping.getForm_type()); throw new BadRequestException("当前表单无配置信息" + formType);
} }
List<PmFormData> result = new ArrayList<>(); List<PmFormData> result = new ArrayList<>();
Boolean dtlSplit = formMapping.getDtl_split();
//直接取 //直接取
JSONObject sourceData = JSONObject.parseObject(sourceString); JSONObject sourceData = JSONObject.parseObject(sourceString);
// if (StringUtils.isNotEmpty(convertJson)){ // if (StringUtils.isNotEmpty(convertJson)){
@@ -95,27 +94,27 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
// }else { // }else {
// sourceData = JSONObject.parseObject(sourceString); // sourceData = JSONObject.parseObject(sourceString);
// } // }
JSONArray mappingJson = formMapping.getMapping_json(); JSONArray newMappingJson =mappingJson;
if (dtlSplit) { if (dtlSplit) {
List<JSONObject> items_arr = mappingParseList(mappingJson, one, sourceData); List<JSONObject> items_arr = mappingParseList(newMappingJson, one, sourceData);
for (int i = 0; i < items_arr.size(); i++) { for (int i = 0; i < items_arr.size(); i++) {
JSONObject itemTarget = items_arr.get(i); JSONObject itemTarget = items_arr.get(i);
itemTarget.put("id", IdUtil.getStringId()); itemTarget.put("id", IdUtil.getStringId());
itemTarget.put("code", CodeUtil.getNewCode(formMapping.getForm_type())); itemTarget.put("code", CodeUtil.getNewCode(formType));
itemTarget.put("create_time", DateUtil.now()); itemTarget.put("create_time", DateUtil.now());
itemTarget.put("create_name", SecurityUtils.getCurrentNickName()); itemTarget.put("create_name", SecurityUtils.getCurrentNickName());
PmFormData dtl = itemTarget.toJavaObject(PmFormData.class); PmFormData dtl = itemTarget.toJavaObject(PmFormData.class);
result.add(dtl); result.add(dtl);
} }
} else { } else {
JSONObject target = mappingParse(mappingJson, one, sourceData); JSONObject target = mappingParse(newMappingJson, one, sourceData);
Object items = target.remove("item"); Object items = target.remove("item");
target.put("id", target.put("id",
StringUtils.isEmpty(target.getString("biz_id")) StringUtils.isEmpty(target.getString("biz_id"))
? IdUtil.getStringId() : target.getString("biz_id")); ? IdUtil.getStringId() : target.getString("biz_id"));
target.put("code", target.put("code",
StringUtils.isEmpty(target.getString("biz_code")) StringUtils.isEmpty(target.getString("biz_code"))
? CodeUtil.getNewCode(formMapping.getForm_type()) : target.getString("biz_code")); ? CodeUtil.getNewCode(formType) : target.getString("biz_code"));
target.put("create_time", DateUtil.now()); target.put("create_time", DateUtil.now());
target.put("create_name", SecurityUtils.getCurrentNickName()); target.put("create_name", SecurityUtils.getCurrentNickName());
PmFormData mst = target.toJavaObject(PmFormData.class); PmFormData mst = target.toJavaObject(PmFormData.class);

View File

@@ -104,7 +104,9 @@ public class SyncFormMappingController {
if (analyseData == null){ if (analyseData == null){
throw new BadRequestException("解析数据不能为空"); throw new BadRequestException("解析数据不能为空");
} }
List<PmFormData> pmFormDatas = formDataService.syncAnalyse(form.toJavaObject(SyncFormMapping.class), (String) analyseData); JSONArray jsonArray = JSONArray.parseArray(form.getString("mapping_json"));
boolean dtlSplit =Boolean.parseBoolean(form.getString("mapping_json"));
List<PmFormData> pmFormDatas = formDataService.syncAnalyse(jsonArray,form.getString("form_type"),dtlSplit,(String) analyseData);
if (needSave!=null && (Boolean)needSave){ if (needSave!=null && (Boolean)needSave){
formDataService.saveBatch(pmFormDatas); formDataService.saveBatch(pmFormDatas);
} }

View File

@@ -2,6 +2,7 @@ package org.nl.wms.system_manage.service.quartz.task;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kingdee.bos.webapi.entity.*; import com.kingdee.bos.webapi.entity.*;
@@ -54,18 +55,22 @@ public class SyncErpBillsScheduleService {
MDC.put("requestIp", "127.0.0.1"); MDC.put("requestIp", "127.0.0.1");
MDC.put("requestTime", DateUtil.now()); MDC.put("requestTime", DateUtil.now());
LuceneAppender.traceIdTL.set(BaseCode.intToChars(IdUtil.getLongId())); LuceneAppender.traceIdTL.set(BaseCode.intToChars(IdUtil.getLongId()));
List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, "PUR_ReceiveBill")); List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "PRD_MO"));
list.forEach(this::syncData); for (SyncFormMapping m : list) {
JSONArray mappingJson = m.getMapping_json();
String mappingString = JSON.toJSONString(mappingJson);
syncData(mappingString, m.getForm_type(), m.getDtl_split());
}
// list.forEach(this::syncData);
} finally { } finally {
LuceneAppender.traceIdTL.remove(); LuceneAppender.traceIdTL.remove();
} }
} }
/** /**
* *
*/ */
public void syncData(SyncFormMapping syncFormMapping) { public void syncData(String mappingJson, String formType, Boolean dtlSplit) {
boolean islock = lock.tryLock(); boolean islock = lock.tryLock();
try { try {
if (islock) { if (islock) {
@@ -74,10 +79,11 @@ public class SyncErpBillsScheduleService {
BeanUtils.copyProperties(erpSec, identifyInfo); BeanUtils.copyProperties(erpSec, identifyInfo);
K3CloudApi cloudApi = new K3CloudApi(identifyInfo); K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String filterString = "FCreateDate >= '" + "2024-11-27" + " 00:00:00' and FCreateDate <= '" + today + " 23:59:59'"; //String filterString = "FCreateDate >= '" + "2024-11-01" + " 00:00:00' and FCreateDate <= '" + today + " 23:59:59'";
String filterString = "FCreateDate >= '2024-11-22 00:00:00' and FCreateDate <= '2024-11-22 23:59:59'";
ErpQuery query = new ErpQuery(); ErpQuery query = new ErpQuery();
query.setFilterString(filterString); query.setFilterString(filterString);
query.setFormId(syncFormMapping.getForm_type()); query.setFormId(formType);
query.setFieldKeys("FID"); query.setFieldKeys("FID");
query.setLimit(0); query.setLimit(0);
String jsonString = JSON.toJSONString(query); String jsonString = JSON.toJSONString(query);
@@ -98,7 +104,7 @@ public class SyncErpBillsScheduleService {
Map<String, String> error = new HashMap<>(); Map<String, String> error = new HashMap<>();
for (String id : ids) { for (String id : ids) {
param.setId(id); param.setId(id);
OperatorResult view = cloudApi.view(syncFormMapping.getForm_type(), param); OperatorResult view = cloudApi.view(formType, param);
RepoStatus status = view.getResult().getResponseStatus(); RepoStatus status = view.getResult().getResponseStatus();
if (status.isIsSuccess()) { if (status.isIsSuccess()) {
result.add(view.getResult().getResult()); result.add(view.getResult().getResult());
@@ -114,7 +120,8 @@ public class SyncErpBillsScheduleService {
List<PmFormData> pmFormDataAll = new ArrayList<>(); List<PmFormData> pmFormDataAll = new ArrayList<>();
for (Object r : result) { for (Object r : result) {
log.info(JSON.toJSONString(r)); log.info(JSON.toJSONString(r));
pmFormDataAll.addAll(formDataService.syncAnalyse(syncFormMapping, JSON.toJSONString(r))); JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson);
pmFormDataAll.addAll(formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r)));
} }
//今天已同步单据 //今天已同步单据
List<PmFormData> existFormDataList = formDataService.list( List<PmFormData> existFormDataList = formDataService.list(