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) { private void handleBillEntity(String formType, JSONObject formData) {
JSONArray fEntityArray = formData.getJSONObject("Model").getJSONArray("FEntity"); JSONArray fEntityArray = formData.getJSONObject("Model").getJSONArray("FEntity");
//判断生产入库的手工录入与MRP生成方式需回传不同的源单信息 //判断生产入库的手工录入与MRP生成方式需回传不同的源单信息
if ("0".equals(formData.getString("FSrcEntryId")) && "RECEIPT_PRD".equals(formType)) { if ("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);
for (int i = 0; i < fEntityArray.size(); i++) { for (int i = 0; i < fEntityArray.size(); i++) {
JSONObject fEntity = fEntityArray.getJSONObject(i); JSONObject fEntity = fEntityArray.getJSONObject(i);
if (fEntity.containsKey("FSrcEntryId")) { if ("0".equals(fEntity.getString("FSrcEntryId"))) {
fEntity.remove("FSrcEntryId"); //查询工序汇报单
} ErpQuery reportQuery = new ErpQuery();
Map<String, Object> linkedMap = new LinkedHashMap<>(); reportQuery.setFilterString("FMoNumber ='" + fEntity.getString("FMoBillNo") + "'");
for (String key : fEntity.keySet()) { reportQuery.setOrderString("FId desc");
linkedMap.put(key, fEntity.get(key)); reportQuery.setFormId("SFC_OperationReport");
} JSONArray jsonArray = erpServiceUtils.queryBills(reportQuery);
Map<String, Object> tempMap = new LinkedHashMap<>(); JSONArray optRptEntry = jsonArray.getJSONObject(0).getJSONArray("OptRptEntry");
for (Map.Entry<String, Object> entry : linkedMap.entrySet()) { if (fEntity.containsKey("FSrcEntryId")) {
tempMap.put(entry.getKey(), entry.getValue()); //增加源单分录id
if ("FMoEntryId".equals(entry.getKey())) { fEntity.put("FSrcEntryId", optRptEntry.getJSONObject(0).getString("SrcEntryId"));
//源单编号为工序汇报单号
tempMap.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo"));
} }
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); .orElse(null);
if (entity != null) { if (entity != null) {
moEntryId = entity.getString("Id"); moEntryId = entity.getString("Id");
stockOrgId = JSON.parseObject(entity.getString("StockInOrgId")).getString("FNumber"); stockOrgId = JSON.parseObject(entity.getString("StockInOrgId")).getString("Number");
ownerIdHead_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber"); ownerIdHead_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
workShopId1 = JSON.parseObject(entity.getString("WorkShopID")).getString("FNumber"); workShopId1 = JSON.parseObject(entity.getString("WorkShopID")).getString("Number");
qty = new BigDecimal(entity.getString("Qty")); qty = new BigDecimal(entity.getString("Qty"));
ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber"); ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber"); keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("Number");
srcBillNo = entity.getString("SaleOrderEntryId"); srcBillNo = entity.getString("SaleOrderEntryId");
//tofix 目前都入料箱库 //tofix 目前都入料箱库
stockId = "25"; stockId = "25";
@@ -492,7 +492,7 @@ public class PdaIOService {
result.setInStockType("1"); result.setInStockType("1");
result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString());
result.setOwnerId_Id(ownerId_Id); result.setOwnerId_Id(ownerId_Id);
result.setStockStatusId("10000"); result.setStockStatusId("KCZT01_SYS");
result.setStockId(stockId); result.setStockId(stockId);
result.setKeeperId(keeperId); result.setKeeperId(keeperId);
result.setKeeperTypeId("BD_KeeperOrg"); result.setKeeperTypeId("BD_KeeperOrg");

View File

@@ -49,7 +49,7 @@ public class PdaInIOService {
if (StringUtils.isBlank(mst.getMaterial_code())) { if (StringUtils.isBlank(mst.getMaterial_code())) {
throw new BadRequestException("操作失败,物料信息不存在!"); 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(); MaterGroupDto groupDto = new MaterGroupDto();
groupDto.setStor_code(mst.getStor_code()); groupDto.setStor_code(mst.getStor_code());
String form_type; String form_type;

View File

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