|
|
|
@ -1457,58 +1457,116 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<OdsProcureOutOrder> ProductionMaterialRequisitionSC(OdsProcureOutOrder odsProcureOutOrder) {
|
|
|
|
|
//二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单
|
|
|
|
|
DynamicDataSourceContextHolder.push("ds_" + odsProcureOutOrder.getFactoryCode());
|
|
|
|
|
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
|
|
|
|
|
if (orderListone.size()>0){
|
|
|
|
|
for (OdsProcureOutOrder order:orderListone){
|
|
|
|
|
if (!"3".equals(order.getOrderStatus())){
|
|
|
|
|
orderLists.add(order);
|
|
|
|
|
if (odsProcureOutOrder.getUserDefined4().length()<=10){
|
|
|
|
|
//二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单
|
|
|
|
|
|
|
|
|
|
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
|
|
|
|
|
if (orderListone.size()>0){
|
|
|
|
|
for (OdsProcureOutOrder order:orderListone){
|
|
|
|
|
if (!"3".equals(order.getOrderStatus())){
|
|
|
|
|
orderLists.add(order);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return orderLists;
|
|
|
|
|
}
|
|
|
|
|
return orderLists;
|
|
|
|
|
}
|
|
|
|
|
OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
|
|
|
|
|
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order);
|
|
|
|
|
// OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
|
|
|
|
|
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectPreDetailHzList(odsProcureOutOrder);
|
|
|
|
|
//根据订单号查询对应的最大批次号
|
|
|
|
|
Integer orderItem = 0;
|
|
|
|
|
for (OdsProcureOutOrder orderLine1 :
|
|
|
|
|
orderList) {
|
|
|
|
|
orderItem++;
|
|
|
|
|
orderLine1.setUserDefined2(String.format("%05d", orderItem));
|
|
|
|
|
}
|
|
|
|
|
List<OdsProcureOutOrder> orderList1=new ArrayList<>();
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList) {
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID());
|
|
|
|
|
odsProcureOutOrder1.setSiteCode(order1.getFactoryCode());
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(odsProcureOutOrder.getUserDefined4());//反冲
|
|
|
|
|
odsProcureOutOrder1.setOutNumber(new BigDecimal("0"));
|
|
|
|
|
//odsProcureOutOrder1.setLocCode(order.getWarehouseNo());
|
|
|
|
|
odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode());
|
|
|
|
|
odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc());
|
|
|
|
|
odsProcureOutOrder1.setPlanDate(new Date());
|
|
|
|
|
odsProcureOutOrder1.setUnit(order1.getUnit());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined5(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
|
|
|
|
|
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
|
|
|
|
|
odsProcureOutOrder1.setActive("1");
|
|
|
|
|
odsProcureOutOrder1.setOrderStatus("1");//
|
|
|
|
|
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined10("1");
|
|
|
|
|
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
|
|
|
|
|
odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder.set
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
|
|
|
|
|
orderList1.add(odsProcureOutOrder1);
|
|
|
|
|
}
|
|
|
|
|
return orderList1;
|
|
|
|
|
}else {
|
|
|
|
|
//二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单
|
|
|
|
|
|
|
|
|
|
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
|
|
|
|
|
if (orderListone.size()>0){
|
|
|
|
|
for (OdsProcureOutOrder order:orderListone){
|
|
|
|
|
if (!"3".equals(order.getOrderStatus())){
|
|
|
|
|
orderLists.add(order);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return orderLists;
|
|
|
|
|
}
|
|
|
|
|
OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
|
|
|
|
|
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order);
|
|
|
|
|
|
|
|
|
|
//根据订单号查询对应的最大批次号
|
|
|
|
|
Integer orderItem = 0;
|
|
|
|
|
for (OdsProcureOutOrder orderLine1 :
|
|
|
|
|
orderList) {
|
|
|
|
|
orderItem++;
|
|
|
|
|
orderLine1.setUserDefined2(String.format("%05d", orderItem));
|
|
|
|
|
}
|
|
|
|
|
List<OdsProcureOutOrder> orderList1=new ArrayList<>();
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList) {
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID());
|
|
|
|
|
odsProcureOutOrder1.setSiteCode(order1.getFactoryCode());
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(order.getProduceCode());
|
|
|
|
|
odsProcureOutOrder1.setOutNumber(new BigDecimal("0"));
|
|
|
|
|
//odsProcureOutOrder1.setLocCode(order.getWarehouseNo());
|
|
|
|
|
odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode());
|
|
|
|
|
odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc());
|
|
|
|
|
odsProcureOutOrder1.setPlanDate(new Date());
|
|
|
|
|
odsProcureOutOrder1.setUnit(order1.getUnit());
|
|
|
|
|
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
|
|
|
|
|
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
|
|
|
|
|
odsProcureOutOrder1.setActive("1");
|
|
|
|
|
odsProcureOutOrder1.setOrderStatus("1");//
|
|
|
|
|
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined10("1");
|
|
|
|
|
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
|
|
|
|
|
odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder.set
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
|
|
|
|
|
orderList1.add(odsProcureOutOrder1);
|
|
|
|
|
//根据订单号查询对应的最大批次号
|
|
|
|
|
Integer orderItem = 0;
|
|
|
|
|
for (OdsProcureOutOrder orderLine1 :
|
|
|
|
|
orderList) {
|
|
|
|
|
orderItem++;
|
|
|
|
|
orderLine1.setUserDefined2(String.format("%05d", orderItem));
|
|
|
|
|
}
|
|
|
|
|
List<OdsProcureOutOrder> orderList1=new ArrayList<>();
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList) {
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID());
|
|
|
|
|
odsProcureOutOrder1.setSiteCode(order1.getFactoryCode());
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(order.getProduceCode());
|
|
|
|
|
odsProcureOutOrder1.setOutNumber(new BigDecimal("0"));
|
|
|
|
|
//odsProcureOutOrder1.setLocCode(order.getWarehouseNo());
|
|
|
|
|
odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode());
|
|
|
|
|
odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc());
|
|
|
|
|
odsProcureOutOrder1.setPlanDate(new Date());
|
|
|
|
|
odsProcureOutOrder1.setUnit(order1.getUnit());
|
|
|
|
|
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
|
|
|
|
|
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
|
|
|
|
|
odsProcureOutOrder1.setActive("1");
|
|
|
|
|
odsProcureOutOrder1.setOrderStatus("1");//
|
|
|
|
|
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
|
|
|
|
|
odsProcureOutOrder1.setUserDefined10("1");
|
|
|
|
|
odsProcureOutOrder1.setUserDefined5(order1.getNeedDate());
|
|
|
|
|
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
|
|
|
|
|
odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder1.setCreateDate(new Date());
|
|
|
|
|
//odsProcureOutOrder.set
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
|
|
|
|
|
orderList1.add(odsProcureOutOrder1);
|
|
|
|
|
}
|
|
|
|
|
return orderList1;
|
|
|
|
|
}
|
|
|
|
|
return orderList1;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -1569,6 +1627,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
order.setActive("1");
|
|
|
|
|
order.setCreateBy(createBy);
|
|
|
|
|
order.setCreateDate(new Date());
|
|
|
|
|
order.setSiteCode(factoryCode);
|
|
|
|
|
odsProcureOutOrderMapper.insertWmsRawMissionOut(order);
|
|
|
|
|
OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder();
|
|
|
|
|
odsProcureOutOrder1.setProduceCode(produceCode);
|
|
|
|
@ -1614,18 +1673,25 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
//先根据出库单获取
|
|
|
|
|
// * 退料的移动类型为 262
|
|
|
|
|
// * 领料的移动类型为 261
|
|
|
|
|
// List<OdsProcureOutOrder> orderList1=odsProcureOutOrderMapper.selectOdsProcureOutOrderListByIds(orderList);
|
|
|
|
|
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectOdsProcureOutOrderListByu1(orderList);
|
|
|
|
|
//查询这个地方先暂时去掉Order_Status = '3' 条件
|
|
|
|
|
//List<SapMaterialPosting> sapMaterialPostingList=new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();
|
|
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
|
|
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
|
|
|
|
|
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
|
|
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
|
|
|
|
|
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
|
|
|
|
|
List<OdsProcureOutOrder> orderList2FC = new ArrayList<>();//反冲
|
|
|
|
|
for (OdsProcureOutOrder odsProcureOutOrder :
|
|
|
|
|
orderList1) {
|
|
|
|
|
//取sap仓库号
|
|
|
|
|
if ("X".equals(odsProcureOutOrder.getUserDefined3())) {
|
|
|
|
|
if (!"X".equals(odsProcureOutOrder.getUserDefined3())){
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
|
|
|
|
|
map.put("PLANT", odsProcureOutOrder.getSiteCode());
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
|
map.put("LGORT", lgort);
|
|
|
|
|
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
|
|
|
|
|
map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString());
|
|
|
|
|
map.put("MEINS", odsProcureOutOrder.getUnit());
|
|
|
|
|
mapList.add(map);
|
|
|
|
|
orderList2.add(odsProcureOutOrder);
|
|
|
|
|
}else {
|
|
|
|
|
SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery();
|
|
|
|
|
sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
@ -1636,20 +1702,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号
|
|
|
|
|
sapMaterialPostingFCList.add(sapBackflushMPQuery);
|
|
|
|
|
orderList2FC.add(odsProcureOutOrder);
|
|
|
|
|
} else {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
|
|
|
|
|
map.put("PLANT", odsProcureOutOrder.getSiteCode());
|
|
|
|
|
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
|
|
|
|
|
map.put("LGORT", lgort);
|
|
|
|
|
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
|
|
|
|
|
map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString());
|
|
|
|
|
map.put("MEINS", odsProcureOutOrder.getUnit());
|
|
|
|
|
mapList.add(map);
|
|
|
|
|
orderList2.add(odsProcureOutOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (mapList.size() > 0) {//非反冲过账
|
|
|
|
|
if (mapList.size() > 0) {
|
|
|
|
|
//非反冲过账
|
|
|
|
|
SapMaterialPosting sapMaterialPosting = new SapMaterialPosting();
|
|
|
|
|
sapMaterialPosting.setPostingType("261");
|
|
|
|
|
sapMaterialPosting.setMapList(mapList);
|
|
|
|
@ -1666,15 +1722,25 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
order.setUserDefined9(userDefined9);
|
|
|
|
|
order.setUserDefined10("2");//成功
|
|
|
|
|
odsProcureOutOrderMapper.updateOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
|
|
|
|
|
} else {//
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList2) {
|
|
|
|
|
//过账成功--减库存
|
|
|
|
|
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
|
|
|
|
|
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
|
|
|
|
|
odsEmStorageNews) {
|
|
|
|
|
//wmsOdsMateStorageNews
|
|
|
|
|
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//
|
|
|
|
|
order.setUserDefined9("");
|
|
|
|
|
order.setUserDefined10("3");//失败
|
|
|
|
|
odsProcureOutOrderMapper.updateOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (sapMaterialPostingFCList.size() > 0) {
|
|
|
|
|
//反冲过账
|
|
|
|
|
R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x
|
|
|
|
@ -1689,11 +1755,22 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
|
|
|
|
|
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
|
|
|
|
|
order.setUserDefined9(userDefined9);
|
|
|
|
|
order.setUserDefined10("2");//成功
|
|
|
|
|
odsProcureOutOrderMapper.updateOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
for (OdsProcureOutOrder order1:
|
|
|
|
|
orderList2FC) {
|
|
|
|
|
//过账成功--减库存
|
|
|
|
|
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
|
|
|
|
|
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
|
|
|
|
|
odsEmStorageNews) {
|
|
|
|
|
//wmsOdsMateStorageNews
|
|
|
|
|
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {//
|
|
|
|
|
order.setUserDefined9("");
|
|
|
|
|
order.setUserDefined10("3");//失败
|
|
|
|
|
odsProcureOutOrderMapper.updateOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|