add:增加塑料件倒库扫描识别OP单在线查询生产订单
This commit is contained in:
@@ -145,7 +145,7 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
if ("RECEIPT_PickMtrl".equals(formType)) {
|
||||
for (int i = 0; i < fEntityArray.size(); i++) {
|
||||
JSONObject fEntity = fEntityArray.getJSONObject(i);
|
||||
List<MdMeMaterialbase> materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code,JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber") ));
|
||||
List<MdMeMaterialbase> materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code,JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber")));
|
||||
MdMeMaterialbase materialInfo = materialList.get(0);
|
||||
//没有启用批次号
|
||||
if ("0".equals(materialInfo.getPrint_no())) {
|
||||
@@ -168,6 +168,7 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
}
|
||||
if ("FStockId".equals(entry.getKey())) {
|
||||
JSONObject fStockId = new JSONObject();
|
||||
//tofix 目前都入料箱库
|
||||
fStockId.put("FNumber", "25");
|
||||
linkedMap.put("FStockId", fStockId);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.kingdee.bos.webapi.entity.IdentifyInfo;
|
||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -41,7 +40,9 @@ import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
||||
import org.nl.wms.system_manage.service.quartz.task.SyncErpBillsScheduleService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -61,6 +62,14 @@ public class PdaIOService {
|
||||
|
||||
@Autowired
|
||||
private ErpSec erpSec;
|
||||
|
||||
@Autowired
|
||||
private ErpServiceUtils erpServiceUtils;
|
||||
|
||||
@Autowired
|
||||
private SyncErpBillsScheduleService syncErpBillsScheduleService;
|
||||
@Autowired
|
||||
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||
@Autowired
|
||||
private IBmFormStrucService iBmFormStrucService;
|
||||
@Autowired
|
||||
@@ -75,6 +84,7 @@ public class PdaIOService {
|
||||
private StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl;
|
||||
@Autowired
|
||||
private MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl;
|
||||
|
||||
@Resource
|
||||
private PmFormDataMapper pmFormDataMapper;
|
||||
@Autowired
|
||||
@@ -301,11 +311,12 @@ public class PdaIOService {
|
||||
}
|
||||
|
||||
public PmFormData getCertificateInfo(String id) {
|
||||
K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi();
|
||||
PmFormData result = new PmFormData();
|
||||
try {
|
||||
if (id.contains("OP") || id.contains("op")) {
|
||||
//生产入库
|
||||
getOpBills(id, result);
|
||||
getOpBills(id, result, k3CloudApi);
|
||||
} else {
|
||||
//采购入库
|
||||
ReceiveBillData receiveBillData = pmFormDataMapper.queryReceiveBill(id);
|
||||
@@ -357,10 +368,19 @@ public class PdaIOService {
|
||||
}
|
||||
if (StringUtils.isNotBlank(result.getMaterial_id())) {
|
||||
List<MdMeMaterialbase> materialbaseList = mdMeMaterialbaseServiceImpl.list(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_id, result.getMaterial_id()));
|
||||
//本地存在改物料信息
|
||||
if (ObjectUtils.isNotEmpty(materialbaseList)) {
|
||||
result.setMaterial_code(materialbaseList.get(0).getMaterial_code());
|
||||
result.setMaterial_spec(materialbaseList.get(0).getMaterial_spec());
|
||||
result.setMaterial_name(materialbaseList.get(0).getMaterial_name());
|
||||
} else {
|
||||
SyncFormMapping syncFormMapping = syncFormMappingServiceImpl.getOne(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "BD_MATERIAL"));
|
||||
String materialMappingString = JSON.toJSONString(syncFormMapping.getMapping_json());
|
||||
syncErpBillsScheduleService.queryMaterialInfo(materialMappingString, "BD_MATERIAL", false, result.getMaterial_id(), k3CloudApi);
|
||||
List<MdMeMaterialbase> materialList = mdMeMaterialbaseServiceImpl.list(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_id, result.getMaterial_id()));
|
||||
result.setMaterial_code(materialList.get(0).getMaterial_code());
|
||||
result.setMaterial_spec(materialList.get(0).getMaterial_spec());
|
||||
result.setMaterial_name(materialList.get(0).getMaterial_name());
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(result.getStockId())) {
|
||||
@@ -377,10 +397,7 @@ public class PdaIOService {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void getOpBills(String id, PmFormData result) throws Exception {
|
||||
IdentifyInfo identifyInfo = new IdentifyInfo();
|
||||
BeanUtils.copyProperties(erpSec, identifyInfo);
|
||||
K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
|
||||
private void getOpBills(String id, PmFormData result, K3CloudApi k3CloudApi) throws Exception {
|
||||
String filterString = "FBillNo = '" + id + "'";
|
||||
ErpQuery query = new ErpQuery();
|
||||
query.setFilterString(filterString);
|
||||
@@ -388,43 +405,97 @@ public class PdaIOService {
|
||||
query.setFieldKeys("FBillNo,FProOrgId,FStockInOrgId,FProductId,FProductName,FProSpecification,FMOQty,FMOUnitId,FOwnerId,FLot,FProDepartmentId,FMONumber,FMOEntrySeq,FOwnerTypeId");
|
||||
query.setLimit(1);
|
||||
String jsonString = JSON.toJSONString(query);
|
||||
List<List<Object>> lists = cloudApi.executeBillQuery(jsonString);
|
||||
List<List<Object>> lists = k3CloudApi.executeBillQuery(jsonString);
|
||||
if (ObjectUtils.isNotEmpty(lists)) {
|
||||
List<Object> dataList = lists.get(0);
|
||||
if (ObjectUtils.isNotEmpty(dataList)) {
|
||||
String moNumber = dataList.get(11).toString();
|
||||
String moSeq = dataList.get(12).toString();
|
||||
String moEntryId;
|
||||
String moId;
|
||||
String prdOrgId;
|
||||
String stockOrgId;
|
||||
String ownerIdHead_Id;
|
||||
String workShopId1;
|
||||
BigDecimal qty;
|
||||
String ownerId_Id;
|
||||
String stockId;
|
||||
String keeperId;
|
||||
String srcBillNo;
|
||||
JSONObject pFormJson;
|
||||
JSONObject dFormJson;
|
||||
//查询本地生产订单信息
|
||||
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)) {
|
||||
String moNumber = dataList.get(11).toString();
|
||||
result.setBillNo(dataList.get(0).toString());
|
||||
result.setPrdOrgId((pFormJson.getString("PrdOrgId")));
|
||||
result.setStockOrgId((dFormJson.getString("StockOrgId")));
|
||||
result.setOwnerIdHead_Id((dFormJson.getString("InStockOwnerId")));
|
||||
result.setMoNumber(moNumber);
|
||||
result.setMoId(prdMoBillData.getPId().substring(0, prdMoBillData.getPId().indexOf("$")));
|
||||
result.setMoEntryId(prdMoBillData.getDId().substring(0, prdMoBillData.getDId().indexOf("$")));
|
||||
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");
|
||||
result.setSrcBillNo(dFormJson.getString("saleOrderEntryId"));
|
||||
ReceiveBillData prdMoBillData = pmFormDataMapper.queryOrderStockId(dataList.get(11).toString(), dataList.get(12).toString());
|
||||
if (prdMoBillData != null) {
|
||||
String pForm_data = prdMoBillData.getPForm_data();
|
||||
String dForm_data = prdMoBillData.getDForm_data();
|
||||
pFormJson = JSONObject.parseObject(pForm_data);
|
||||
dFormJson = JSONObject.parseObject(dForm_data);
|
||||
if (ObjectUtils.isEmpty(dFormJson) || ObjectUtils.isEmpty(pFormJson)) {
|
||||
throw new BadRequestException("查询合格证关联的生产订单信息异常!");
|
||||
}
|
||||
moId = prdMoBillData.getPId().substring(0, prdMoBillData.getPId().indexOf("$"));
|
||||
prdOrgId = pFormJson.getString("PrdOrgId");
|
||||
moEntryId = prdMoBillData.getDId().substring(0, prdMoBillData.getDId().indexOf("$"));
|
||||
stockOrgId = dFormJson.getString("StockOrgId");
|
||||
ownerIdHead_Id = dFormJson.getString("InStockOwnerId");
|
||||
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 {
|
||||
query.setFieldKeys("FID");
|
||||
query.setFilterString("FBillNo ='" + moNumber + "'");
|
||||
query.setFormId("PRD_MO");
|
||||
JSONArray moBills = erpServiceUtils.queryBills(query);
|
||||
JSONObject moBill = moBills.getJSONObject(0);
|
||||
moId = moBill.getString("Id");
|
||||
prdOrgId = JSON.parseObject(moBill.getString("PrdOrgId")).getString("FNumber");
|
||||
JSONArray moTreeEntity = moBills.getJSONObject(0).getJSONArray("TreeEntity");
|
||||
JSONObject entity = moTreeEntity.stream()
|
||||
.map(r -> (JSONObject) r)
|
||||
.filter(json -> moSeq.equals(json.getString("Seq")))
|
||||
.findFirst()
|
||||
.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");
|
||||
qty = new BigDecimal(entity.getString("Qty"));
|
||||
ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber");
|
||||
keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber");
|
||||
srcBillNo = entity.getString("SaleOrderEntryId");
|
||||
//tofix 目前都入料箱库
|
||||
stockId = "25";
|
||||
} else {
|
||||
throw new BadRequestException("查询合格证关联的生产订单明细信息异常!");
|
||||
}
|
||||
}
|
||||
result.setBillNo(dataList.get(0).toString());
|
||||
result.setPrdOrgId(prdOrgId);
|
||||
result.setStockOrgId(stockOrgId);
|
||||
result.setOwnerIdHead_Id(ownerIdHead_Id);
|
||||
result.setMoNumber(moNumber);
|
||||
result.setMoId(moId);
|
||||
result.setMoEntryId(moEntryId);
|
||||
result.setMaterial_id(dataList.get(3).toString());
|
||||
result.setPcsn(dataList.get(11).toString());
|
||||
result.setUnit_id(dataList.get(7).toString());
|
||||
result.setWorkShopId1(workShopId1);
|
||||
result.setQty(qty);
|
||||
result.setMustQty(qty);
|
||||
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.setStockId(stockId);
|
||||
result.setKeeperId(keeperId);
|
||||
result.setKeeperTypeId("BD_KeeperOrg");
|
||||
result.setSrcBillNo(srcBillNo);
|
||||
} else {
|
||||
throw new BadRequestException("查询合格证关联的生产订单信息异常!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user