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