opt:生产入库单增加源单及单据明细行号

This commit is contained in:
2025-01-08 16:24:16 +08:00
parent f236b08daa
commit 6568ce7a15
5 changed files with 48 additions and 45 deletions

View File

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.javaparser.utils.Log;
import com.kingdee.bos.webapi.entity.IdentifyInfo;
import com.kingdee.bos.webapi.sdk.K3CloudApi;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -72,7 +71,6 @@ public class SyncReceiptProcessHandler implements ClassProcess {
try {
IdentifyInfo identifyInfo = new IdentifyInfo();
BeanUtils.copyProperties(erpSec, identifyInfo);
K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
JSONObject res;
if (Integer.parseInt(StatusEnum.ERP_TYPE.code(formid)) > 22) {
String result = erpServiceUtils.audit(formData).getString("result");
@@ -121,38 +119,37 @@ public class SyncReceiptProcessHandler implements ClassProcess {
if ("RECEIPT_PRD".equals(formType)) {
for (int i = 0; i < fEntityArray.size(); i++) {
JSONObject fEntity = fEntityArray.getJSONObject(i);
if ("0".equals(fEntity.getString("FSrcEntryId"))) {
//查询工序汇报单
ErpQuery reportQuery = new ErpQuery();
reportQuery.setFilterString("FMoNumber ='" + fEntity.getString("FMoBillNo") + "'");
reportQuery.setOrderString("FId desc");
reportQuery.setFormId("SFC_OperationReport");
JSONArray jsonArray = erpServiceUtils.queryBills(reportQuery);
if (CollectionUtils.isEmpty(jsonArray)) {
throw new BadRequestException("该生产订单未找到对应生产汇报单");
}
JSONArray optRptEntry = jsonArray.getJSONObject(0).getJSONArray("OptRptEntry");
if (fEntity.containsKey("FSrcEntryId")) {
//增加源单分录id
fEntity.put("FSrcEntryId", optRptEntry.getJSONObject(0).getString("SrcEntryId"));
fEntity.put("FSrcEntrySeq", optRptEntry.getJSONObject(0).getString("SrcEntrySeq"));
fEntity.put("FSrcBillType", "SFC_OperationReport");
}
Map<String, Object> linkedMap = new LinkedHashMap<>();
for (String key : fEntity.keySet()) {
linkedMap.put(key, fEntity.get(key));
}
Map<String, Object> tempMap = new LinkedHashMap<>();
for (Map.Entry<String, Object> entry : linkedMap.entrySet()) {
tempMap.put(entry.getKey(), entry.getValue());
if ("FMoEntryId".equals(entry.getKey())) {
//源单编号为工序汇报单号
tempMap.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo"));
}
}
fEntity.clear();
fEntity.putAll(tempMap);
//查询工序汇报单
ErpQuery reportQuery = new ErpQuery();
reportQuery.setFilterString("FMoNumber ='" + fEntity.getString("FMoBillNo") + "'");
reportQuery.setOrderString("FId desc");
reportQuery.setFormId("SFC_OperationReport");
JSONArray jsonArray = erpServiceUtils.queryBills(reportQuery);
if (CollectionUtils.isEmpty(jsonArray)) {
throw new BadRequestException("该生产订单未找到对应生产汇报单");
}
JSONArray optRptEntry = jsonArray.getJSONObject(0).getJSONArray("OptRptEntry");
if (fEntity.containsKey("FSrcEntryId")) {
//增加源单分录id
fEntity.put("FSrcEntryId", optRptEntry.getJSONObject(0).getString("SrcEntryId"));
fEntity.put("FSrcEntrySeq", optRptEntry.getJSONObject(0).getString("SrcEntrySeq"));
fEntity.put("FSrcBillType", "SFC_OperationReport");
}
Map<String, Object> linkedMap = new LinkedHashMap<>();
for (String key : fEntity.keySet()) {
linkedMap.put(key, fEntity.get(key));
}
Map<String, Object> tempMap = new LinkedHashMap<>();
for (Map.Entry<String, Object> entry : linkedMap.entrySet()) {
tempMap.put(entry.getKey(), entry.getValue());
if ("FMoEntryId".equals(entry.getKey())) {
//源单编号为工序汇报单号
tempMap.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo"));
}
}
fEntity.clear();
fEntity.putAll(tempMap);
}
}
//判断生产领料单的批次与辅助单位
@@ -180,12 +177,11 @@ public class SyncReceiptProcessHandler implements ClassProcess {
fUnit.put("FNumber", materialInfo.getAssist_unit_id());
tempMap.put("FSecUnitId", fUnit);
}
if ("FStockId".equals(entry.getKey())) {
JSONObject fStockId = new JSONObject();
//tofix 目前都入料箱库
fStockId.put("FNumber", "25");
tempMap.put("FStockId", fStockId);
}
// if ("FStockId".equals(entry.getKey())) {
// JSONObject fStockId = new JSONObject();
// fStockId.put("FNumber", "25");
// tempMap.put("FStockId", fStockId);
// }
}
fEntity.clear();
fEntity.putAll(tempMap);

View File

@@ -20,4 +20,9 @@ public class GroupItemData {
*/
private String single_weight;
@JsonProperty("FMoEntrySeq")
@JSONField(name = "FMoEntrySeq")
private String FMoEntrySeq;
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.pda_manage.iostorage.server.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
@@ -182,6 +183,11 @@ public class PdaFormInMst implements Serializable {
*/
private String ownerIdHead_Id;
/**
* 生产订单行号
*/
@TableField(exist = false)
private String moEntrySeq;
/**
* 对应表头:采购入库单-业务类型FBusinessType:默认(CG)

View File

@@ -421,7 +421,6 @@ public class PdaIOService {
String workShopId1;
BigDecimal qty;
String ownerId_Id;
String stockId;
String keeperId;
String srcBillNo;
JSONObject pFormJson;
@@ -445,8 +444,6 @@ public class PdaIOService {
workShopId1 = dFormJson.getString("product_code");
qty = prdMoBillData.getQty();
ownerId_Id = dFormJson.getString("InStockOwnerId");
//tofix 目前都入料箱库
stockId = "25";
keeperId = dFormJson.getString("StockOrgId");
srcBillNo = dFormJson.getString("saleOrderEntryId");
} else {
@@ -473,8 +470,6 @@ public class PdaIOService {
ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
srcBillNo = entity.getString("SaleOrderEntryId");
//tofix 目前都入料箱库
stockId = "25";
} else {
throw new BadRequestException("查询合格证关联的生产订单明细信息异常!");
}
@@ -497,7 +492,6 @@ public class PdaIOService {
result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString());
result.setOwnerId_Id(ownerId_Id);
result.setStockStatusId("KCZT01_SYS");
result.setStockId(stockId);
result.setKeeperId(keeperId);
result.setKeeperTypeId("BD_KeeperOrg");
result.setSrcBillNo(srcBillNo);

View File

@@ -43,6 +43,7 @@ public class PdaInIOService {
String materialId = mst.getMaterial_id();
String vehicleCode = mst.getVehicle_code();
String unitId = mst.getUnit_id();
mst.setStockId("FStockPallet".equals(mst.getStor_code())? "24" : "25");
if (StringUtils.isBlank(mst.getSrcBillNo())) {
throw new BadRequestException("操作失败,源单信息不存在!");
}
@@ -87,6 +88,7 @@ public class PdaInIOService {
GroupItemData groupItemData = new GroupItemData();
groupItemData.setSingle_weight(mst.getSingle_weight());
groupItemData.setFMoBillNo(mst.getBillNo());
groupItemData.setFMoEntrySeq(mst.getMoEntrySeq());
materItem.setForm_data(groupItemData);
groupDto.setItem(ListOf.of(materItem));
iMdGruopDickService.groupDick((JSONObject) JSONObject.toJSON(groupDto));