opt:优化生产入库单回传

This commit is contained in:
2024-12-17 23:57:05 +08:00
parent 55b5c573fc
commit ef76e96459
4 changed files with 36 additions and 34 deletions

View File

@@ -113,32 +113,36 @@ public class SyncReceiptProcessHandler implements ClassProcess {
private void handleBillEntity(String formType, JSONObject formData) {
JSONArray fEntityArray = formData.getJSONObject("Model").getJSONArray("FEntity");
//判断生产入库的手工录入与MRP生成方式需回传不同的源单信息
if ("0".equals(formData.getString("FSrcEntryId")) && "RECEIPT_PRD".equals(formType)) {
//查询工序汇报单
ErpQuery reportQuery = new ErpQuery();
reportQuery.setFilterString("FMoNumber ='" + formData.getString("moNumber") + "'");
reportQuery.setOrderString("FId desc");
reportQuery.setFormId("SFC_OperationReport");
JSONArray jsonArray = erpServiceUtils.queryBills(reportQuery);
if ("RECEIPT_PRD".equals(formType)) {
for (int i = 0; i < fEntityArray.size(); i++) {
JSONObject fEntity = fEntityArray.getJSONObject(i);
if (fEntity.containsKey("FSrcEntryId")) {
fEntity.remove("FSrcEntryId");
}
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"));
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);
JSONArray optRptEntry = jsonArray.getJSONObject(0).getJSONArray("OptRptEntry");
if (fEntity.containsKey("FSrcEntryId")) {
//增加源单分录id
fEntity.put("FSrcEntryId", optRptEntry.getJSONObject(0).getString("SrcEntryId"));
}
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);
}
fEntity.clear();
fEntity.putAll(tempMap);
}
}
//判断生产领料单的批次与辅助单位

View File

@@ -463,12 +463,12 @@ public class PdaIOService {
.orElse(null);
if (entity != null) {
moEntryId = entity.getString("Id");
stockOrgId = JSON.parseObject(entity.getString("StockInOrgId")).getString("FNumber");
ownerIdHead_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber");
workShopId1 = JSON.parseObject(entity.getString("WorkShopID")).getString("FNumber");
stockOrgId = JSON.parseObject(entity.getString("StockInOrgId")).getString("Number");
ownerIdHead_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
workShopId1 = JSON.parseObject(entity.getString("WorkShopID")).getString("Number");
qty = new BigDecimal(entity.getString("Qty"));
ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber");
keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber");
ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
srcBillNo = entity.getString("SaleOrderEntryId");
//tofix 目前都入料箱库
stockId = "25";
@@ -492,7 +492,7 @@ public class PdaIOService {
result.setInStockType("1");
result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString());
result.setOwnerId_Id(ownerId_Id);
result.setStockStatusId("10000");
result.setStockStatusId("KCZT01_SYS");
result.setStockId(stockId);
result.setKeeperId(keeperId);
result.setKeeperTypeId("BD_KeeperOrg");

View File

@@ -49,7 +49,7 @@ public class PdaInIOService {
if (StringUtils.isBlank(mst.getMaterial_code())) {
throw new BadRequestException("操作失败,物料信息不存在!");
}
Assert.noNullElements(new Object[]{mst.getStor_code(), mst.getQty(), mst.getMaterial_code(), mst.getBar_code(), materialId, mst.getQty(), mst.getSingle_weight(), mst.getStockOrgId()}, "入库失败:请求参数不全");
Assert.noNullElements(new Object[]{mst.getStor_code(), mst.getQty(), mst.getMaterial_code(), mst.getBar_code(), materialId, mst.getQty()}, "入库失败:请求参数不全");
MaterGroupDto groupDto = new MaterGroupDto();
groupDto.setStor_code(mst.getStor_code());
String form_type;

View File

@@ -195,10 +195,9 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
if (!CollectionUtils.isEmpty(pmFormDataDtos)) {
handleFormDatas(pmFormDataDtos);
} else {
//根据单据编号同步ERP用料清单单据
if ("PRD_PPBOM".equals(query.getForm_type())) {
List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, "PRD_PPBOM"));
JSONArray mappingJson = list.get(0).getMapping_json();
//根据单据编号同步ERP单据
List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, query.getForm_type()));
JSONArray mappingJson = list.get(0).getMapping_json();
String mappingString = JSON.toJSONString(mappingJson);
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode());
List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query);
@@ -210,7 +209,6 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
dtoPage.setTotal(pmFormData.size());
return dtoPage;
}
}
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
dtoPage.setRecords(pmFormDataDtos);
return dtoPage;