Merge branch 'main' of http://162.14.99.253:3000/10539622/2025-03-JS-SDK-svr
This commit is contained in:
commit
bf1552a0bd
@ -177,6 +177,15 @@ public class QMSServiceImpl implements QMSService{
|
||||
jsonObject.put("transferOrderNumber", receiveActNo);
|
||||
jsonObject.put("factoryArea", factoryArea);
|
||||
|
||||
/**
|
||||
* 增加供应商编码和供应商名称
|
||||
* 2025-05-12
|
||||
*/
|
||||
//供应商编码
|
||||
jsonObject.put("supplierCode", list.get(i).get("SUPPLIERCODE"));
|
||||
//供应商名称
|
||||
jsonObject.put("supplierName", list.get(i).get("SUPPLIERNAME"));
|
||||
|
||||
String lots = list.get(i).get("LOTS") == null ? "" : list.get(i).get("LOTS").toString();
|
||||
String[] split = lots.split("\\;");
|
||||
JSONArray jsonArray2 = new JSONArray ();
|
||||
|
@ -552,7 +552,13 @@ public class MaterialReceiveActController {
|
||||
EventInfoUtil util = new EventInfoUtil();
|
||||
makeEventInfo = util.makeEventInfo("NormalStockInForSDK", user, "NormalStockInForSDK");
|
||||
// 更新入库凭证
|
||||
SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoId, makeEventInfo);
|
||||
//SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoId, makeEventInfo);
|
||||
/**
|
||||
* updateUndoIdByReceive和updateStockState都在MATERIALPACKINGHISTORY表插入了数据,导致有重复的入库记录
|
||||
* 为了不影响后续通过undoId作为条件处理其它业务,新建方法updateMaterialPackingUndoIdByReceive,只更新undoId,不插入MATERIALPACKINGHISTORY表
|
||||
* 2025-05-12
|
||||
*/
|
||||
SDKMaterialPackingServiceImpl.updateMaterialPackingUndoIdByReceive(receiveRequestName, undoId);
|
||||
// 更新库存状态
|
||||
SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoId,commitDate);
|
||||
SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoId,opCode);
|
||||
|
@ -1112,4 +1112,76 @@ public class SaleOutController {
|
||||
EventInfo eventInfo = new EventInfoUtil().makeEventInfo("auxiliaryDessign", user, "auxiliaryDessign", "", "");
|
||||
return materialShipService.MaterialShipRequestAuxiliaryCancelConfirmStocking(eventInfo,siteName,shipRequestName,user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 备货出库
|
||||
* 2025-05-12
|
||||
* @param in
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Transactional
|
||||
@RequestMapping(value = "/CompleteShipRequestStockUp", method = RequestMethod.POST)
|
||||
public AjaxResult completeShipRequestStockUp(@RequestBody JSONObject in ) throws Exception{
|
||||
StockOutDto ms = JSON.toJavaObject(in, StockOutDto.class);
|
||||
String shipRequestName = ms.getShipRequestName();
|
||||
String siteName = "SDK";
|
||||
String user = ms.getUser();
|
||||
String commitDate = ms.getCommitDate();
|
||||
String opCode = ms.getOpCode();
|
||||
String reMark = ms.getReMark();
|
||||
List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> boxList = new ArrayList<>();
|
||||
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("SHIPREQUESTNAME", shipRequestName);
|
||||
String sqlGetBox = " SELECT m.MATERIALPACKINGNAME,\n" +
|
||||
" m.MATERIALQUANTITY,\n" +
|
||||
" DECODE(NVL(m.MATERIALQUANTITY2, 0), 0 , m.MATERIALQUANTITY, m.MATERIALQUANTITY2) MATERIALQUANTITY2\n" +
|
||||
"FROM MATERIALPACKING m\n" +
|
||||
"WHERE " +
|
||||
"m.SHIPREQUESTNAME =:SHIPREQUESTNAME\n" +
|
||||
"AND m.STOCKSTATE = 'Stocked'\n" +
|
||||
"AND m.MATERIALQUANTITY2 > 0\n" +
|
||||
"AND NOT EXISTS (\n" +
|
||||
" SELECT 1 FROM MATERIALSHIPREQUESTDETAIL mdl\n" +
|
||||
" WHERE mdl.SHIPREQUESTNAME = m.SHIPREQUESTNAME\n" +
|
||||
" AND mdl.MATERIALSPECNAME = m.MATERIALSPECNAME\n" +
|
||||
" AND (m.ERPLOCATION = mdl.ERPRECEIVELOCATION AND mdl.ERPRECEIVELOCATION IS NOT NULL)\n" +
|
||||
") ";
|
||||
List<Map<String, Object>> sr = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlGetBox, hashMap);
|
||||
if(sr.size()>0)
|
||||
{
|
||||
for(int i=0;i<sr.size();i++)
|
||||
{
|
||||
MaterialPackingKey mpk=new MaterialPackingKey(siteName, sr.get(i).get("MATERIALPACKINGNAME").toString());
|
||||
com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking mp = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(mpk);
|
||||
mp.setMaterialQuantity( Double.parseDouble(sr.get(i).get("MATERIALQUANTITY").toString()));
|
||||
mp.setMaterialQuantity2( Double.parseDouble(sr.get(i).get("MATERIALQUANTITY2").toString()));
|
||||
boxList.add(mp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new CustomException("找不到出库单号" + shipRequestName);
|
||||
}
|
||||
String sendERPStockOut = null;
|
||||
String shipRequestType="";
|
||||
String sql = "SELECT m.SHIPREQUESTTYPE FROM MATERIALSHIPREQUEST m WHERE m.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
if (queryForList != null && queryForList.size() > 0) {
|
||||
String type = queryForList.get(0).get("SHIPREQUESTTYPE").toString();
|
||||
shipRequestType = type;
|
||||
} else {
|
||||
return AjaxResult.me().setSuccess(false).setMessage("找不到出库单据" + shipRequestName);
|
||||
}
|
||||
InvoiceServiceImpl invoiceServiceImpl=new InvoiceServiceImpl();
|
||||
// sendERPStockOut=invoiceServiceImpl.SendERPStockOut20240802(shipRequestName, siteName, user, boxList,commitDate,opCode);
|
||||
sendERPStockOut=invoiceServiceImpl.StockUpOutSendSAPOrMES(shipRequestName, siteName, user, boxList,commitDate,opCode);
|
||||
// sendERPStockOut="1";
|
||||
if (sendERPStockOut == null || "".equals(sendERPStockOut)) {
|
||||
return AjaxResult.me().setSuccess(false).setMessage("过账失败");
|
||||
}
|
||||
return AjaxResult.me().setResultObj(null);
|
||||
}
|
||||
}
|
||||
|
@ -2907,5 +2907,304 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
}
|
||||
}
|
||||
}
|
||||
@Transactional
|
||||
public String StockUpOutSendSAPOrMES(String shipRequestName, String siteName, String eventUser,
|
||||
List<MaterialPacking> list , String commitDate, String opCode) throws Exception {
|
||||
//判断单据类型调用不同的NC接口
|
||||
String sql = "SELECT m.SHIPREQUESTTYPE,m.SHIPREQUESTDETAILTYPE FROM MATERIALSHIPREQUEST m WHERE m.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("SHIPREQUESTNAME", shipRequestName);
|
||||
List<String> materialPackingKeyList = new ArrayList<> ();
|
||||
List<MaterialPackingKey> arrayList = new ArrayList<MaterialPackingKey> ();
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
String shipRequestType = queryForList.get(0).get("SHIPREQUESTTYPE").toString();
|
||||
String detailype = queryForList.get(0).get("SHIPREQUESTDETAILTYPE").toString();
|
||||
if ("4C".equals(shipRequestType)) {
|
||||
String sql222 = "SELECT SUM(m.REQUESTQUANTITY - m.ASSIGNEDQUANTITY) QTY,MATERIALSPECNAME FROM MATERIALSHIPREQUESTDETAIL m WHERE m.SHIPREQUESTNAME = :SHIPREQUESTNAME GROUP BY MATERIALSPECNAME";
|
||||
List<Map<String, Object>> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql222, hashMap);
|
||||
for (int i = 0; i < queryForList2.size(); i++) {
|
||||
String string = queryForList2.get(i).get("QTY").toString();
|
||||
String MATERIALSPECNAME = queryForList2.get(i).get("MATERIALSPECNAME").toString();
|
||||
BigDecimal bigDecimal = new BigDecimal(string);
|
||||
if (bigDecimal.compareTo(BigDecimal.ZERO) < 0 ) {
|
||||
throw new CustomException( MATERIALSPECNAME + "销售不允许超发");
|
||||
}
|
||||
}
|
||||
}
|
||||
//备份过账条码表的信息,并删除
|
||||
String bfSql = "INSERT\r\n" +
|
||||
" INTO\r\n" +
|
||||
" MATERIALPACKINGSUBHISTORY T (T.MATERIALPACKINGNAME,\r\n" +
|
||||
" T.RECEIVEREQUESTNAME,\r\n" +
|
||||
" T.RECEIVEREQUESTDETAILNAME,\r\n" +
|
||||
" T.QTY)\r\n" +
|
||||
"SELECT\r\n" +
|
||||
" M.MATERIALPACKINGNAME,\r\n" +
|
||||
" M.RECEIVEREQUESTNAME,\r\n" +
|
||||
" M.RECEIVEREQUESTDETAILNAME,\r\n" +
|
||||
" M.QTY\r\n" +
|
||||
"FROM\r\n" +
|
||||
" MATERIALPACKINGSUB M\r\n" +
|
||||
"WHERE\r\n" +
|
||||
" M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME";
|
||||
String scSql = "DELETE FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :SHIPREQUESTNAME";
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(bfSql, hashMap);
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(scSql, hashMap);
|
||||
EventInfoUtil eventInfoUtil = new EventInfoUtil();
|
||||
EventInfo makeEventInfo = eventInfoUtil.makeEventInfo("CompletedShipRequest", eventUser, "CompletedShipRequest");
|
||||
//循环过账批次
|
||||
for (int i = 0; i < list.size(); ++ i) {
|
||||
String materialPackingName = list.get(i).getMaterialPackingName();
|
||||
String sdk_ID = list.get(i).getSDK_ID();
|
||||
String phase = list.get(i).getPHASE();
|
||||
String materialSpecName = list.get(i).getMaterialSpecName();
|
||||
// float materialQuantity = list.get(i).getMaterialQuantity();
|
||||
//重新获取下数量,通过sql查询取数
|
||||
String SLsQL = "SELECT m.MATERIALPACKINGNAME,m.MATERIALQUANTITY,"
|
||||
+ "DECODE(NVL(m.MATERIALQUANTITY2,0), 0 ,m.MATERIALQUANTITY,m.MATERIALQUANTITY2) MATERIALQUANTITY2 FROM MATERIALPACKING m"
|
||||
+ " WHERE m.SHIPREQUESTNAME = :SHIPRQEUESTNAME AND MATERIALPACKINGNAME = :MATERIALPACKINGNAME ";
|
||||
Map<String, Object> hashMap2 = new HashMap<String,Object> ();
|
||||
hashMap2.put("SHIPRQEUESTNAME", shipRequestName);
|
||||
hashMap2.put("MATERIALPACKINGNAME", materialPackingName);
|
||||
String materialQuantity2 = list.get(i).getMaterialQuantity2() + "";
|
||||
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(SLsQL, hashMap2);
|
||||
if (queryForList3 != null && queryForList3.size() > 0) {
|
||||
materialQuantity2 = queryForList3.get(0).get("MATERIALQUANTITY2").toString();
|
||||
} else {
|
||||
throw new CustomException("单据" + shipRequestName + "库存" + materialPackingName + "绑定关系不存在");
|
||||
}
|
||||
//循环单据查询过帐表
|
||||
String pcSql = "SELECT SHIPREQUESTNAME, SHIPREQUESTDETAILNAME,\r\n" +
|
||||
" m.MATERIALSPECNAME ,\r\n" +
|
||||
" m.PHASE ,\r\n" +
|
||||
" m.SDK_ID ,\r\n" +
|
||||
" m.REQUESTQUANTITY ,\r\n" +
|
||||
" m.ASSIGNEDQUANTITY ,\r\n" +
|
||||
" (m.REQUESTQUANTITY - nvl(m.SALEOUTQUANTITY, 0) ) SALEOUTQUANTITY\r\n" +
|
||||
"FROM\r\n" +
|
||||
" MATERIALSHIPREQUESTDETAIL m\r\n" +
|
||||
"WHERE\r\n" +
|
||||
" m.MATERIALSPECNAME = :MATERIALSPECNAME\r\n" +
|
||||
" AND SHIPREQUESTNAME = :SHIPREQUESTNAME ORDER BY TO_NUMBER(SHIPREQUESTDETAILNAME) ASC ";
|
||||
hashMap.put("MATERIALSPECNAME", materialSpecName);
|
||||
hashMap.put("SDK_ID", sdk_ID);
|
||||
hashMap.put("PHASE", phase);
|
||||
List<Map<String, Object>> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(pcSql, hashMap);
|
||||
BigDecimal pcQty = new BigDecimal(materialQuantity2);//批次数量
|
||||
BigDecimal temp;
|
||||
for (int j = 0; j < queryForList2.size(); j++) {
|
||||
String sq = queryForList2.get(j).get("SALEOUTQUANTITY").toString();//剩余发货数量
|
||||
String shipRequestDetailName = queryForList2.get(j).get("SHIPREQUESTDETAILNAME").toString();//行项
|
||||
BigDecimal saleQty = new BigDecimal(sq);//需要发货数量
|
||||
if (pcQty.compareTo(BigDecimal.ZERO) == 0
|
||||
|| (saleQty.compareTo(BigDecimal.ZERO) == 0 && (j != queryForList2.size() - 1) )
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
int compareTo = saleQty.compareTo(pcQty);//大于等于0则批次全发,小于0则需要拆分
|
||||
int compareToZero=saleQty.compareTo(BigDecimal.ZERO);
|
||||
if (compareTo >= 0) {
|
||||
untils.fahuoSplit(materialPackingName, shipRequestName, shipRequestDetailName, pcQty);
|
||||
break;
|
||||
} else {//需要拆行
|
||||
if( (j != queryForList2.size() - 1) && compareToZero>0) {//判断是否是最后一行,不是最后一行就不允许超发,发货数量等于请求数量即拆
|
||||
untils.fahuoSplit(materialPackingName, shipRequestName, shipRequestDetailName, saleQty);
|
||||
pcQty = pcQty.subtract(saleQty);
|
||||
continue;
|
||||
} else {
|
||||
untils.fahuoSplit(materialPackingName, shipRequestName, shipRequestDetailName, pcQty);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
materialPackingKeyList.add(materialPackingName);
|
||||
}
|
||||
//判断会有多少个仓库发货,不同仓库需要分开走账
|
||||
StringBuffer cklx = new StringBuffer();
|
||||
cklx.append("SELECT m.MATERIALPACKINGNAME,m.SITENAME FROM MATERIALPACKING m WHERE m.MATERIALPACKINGNAME IN ");
|
||||
String str = "";
|
||||
str += "(";
|
||||
for (String materialPacking : materialPackingKeyList) {
|
||||
str += "'" + materialPacking + "',";
|
||||
}
|
||||
str += "'')";
|
||||
// 查询MATERIALQUANTITY 与 MATERIALQUANTITY2是否相等,如果相等则未修改数量,不相等则修改数量
|
||||
List<Map<String, Object>> packingQueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(cklx.toString() + str, hashMap);
|
||||
|
||||
String billCode = "";
|
||||
switch (shipRequestType) {
|
||||
case "NLCC" : //STO调拨出库
|
||||
|
||||
billCode=TransferStockOut_NLCC(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
|
||||
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
||||
break;
|
||||
|
||||
case "01"://生产领料
|
||||
case "02"://生产补料
|
||||
// 判断是否是现场仓
|
||||
String IsSql = "SELECT m.ERPRECEIVELOCATION,m.ERPLOCATION,m.ERPRECEIVEFACTORY FROM MATERIALSHIPREQUESTDETAIL m WHERE SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||
Map<String,Object> bpc=new HashMap<>();
|
||||
bpc.put("SHIPREQUESTNAME", shipRequestName);
|
||||
List<Map<String,Object>> receiveList = IDMFrameServiceProxy.getSqlTemplate().queryForList(IsSql, bpc);
|
||||
String ERPRECEIVELOCATION = receiveList.get(0).get("ERPRECEIVELOCATION") == null ? "" : receiveList.get(0).get("ERPRECEIVELOCATION").toString();
|
||||
String ERPLOCATION = receiveList.get(0).get("ERPLOCATION") == null ? "" : receiveList.get(0).get("ERPLOCATION").toString();
|
||||
String ERPRECEIVEFACTORY = receiveList.get(0).get("ERPRECEIVEFACTORY") == null ? "" : receiveList.get(0).get("ERPRECEIVEFACTORY").toString();
|
||||
|
||||
//判断是否为MES需要二次接收的物料
|
||||
String sqlc=" SELECT e.ENUMVALUE FROM MES_ENUMDEFVALUE e \r\n" +
|
||||
" WHERE e.ENUMNAME ='ConfirmReceiveArea'\r\n" +
|
||||
" AND e.ENUMVALUE in(\r\n" +
|
||||
" SELECT p.AREANAME FROM MES_PRODUCTREQUEST p \r\n" +
|
||||
" WHERE p.PRODUCTREQUESTNAME =(SELECT m.RECEIVEPRODUCTIONORDERNUMBER FROM MATERIALSHIPREQUESTDETAIL m \r\n" +
|
||||
" WHERE m.SHIPREQUESTNAME=:SHIPREQUESTNAME AND RECEIVEPRODUCTIONORDERNUMBER IS NOT NULL AND ROWNUM=1))";
|
||||
|
||||
List<Map<String,Object>> src=IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlc, bpc);
|
||||
|
||||
|
||||
//MES需要接收,则只抛送数据。 或如果是现场仓,先移到现场仓
|
||||
if(src.size()>0) {
|
||||
billCode="Y";
|
||||
String sqlZK=" SELECT\r\n" +
|
||||
" t.MATERIALSPECNAME,m.MATERIALPACKINGNAME,\r\n" +
|
||||
" t.ERPFACTORY,\r\n" +
|
||||
" t.ERPLOCATION,\r\n" +
|
||||
" m2.SHIPREQUESTDETAILTYPE,\r\n" +
|
||||
" t.UNIT,\r\n" +
|
||||
" m1.COSTCENTER,\r\n" +
|
||||
" m1.SHIPREQUESTNAME,\r\n" +
|
||||
" m1.SHIPREQUESTDETAILNAME,\r\n" +
|
||||
" m1.ERPRECEIVELOCATION,\r\n" +
|
||||
" m1.ERPRECEIVEFACTORY,\r\n" +
|
||||
" m1.SENDSALESORDER ,m1.SENDSALESORDERDETAILNO,\r\n" +
|
||||
" CASE WHEN m1.SENDSALESORDER IS NOT NULL THEN 'E' ELSE '' END SOBKZ,\r\n" +
|
||||
" (\r\n" +
|
||||
" SELECT\r\n" +
|
||||
" RECEIVEPRODUCTIONORDERNUMBER\r\n" +
|
||||
" FROM\r\n" +
|
||||
" MATERIALSHIPREQUESTDETAIL m5\r\n" +
|
||||
" WHERE\r\n" +
|
||||
" m5.SHIPREQUESTNAME =:SHIPREQUESTNAME\r\n" +
|
||||
" AND m5.MATERIALSPECNAME = t.MATERIALSPECNAME\r\n" +
|
||||
" ORDER BY\r\n" +
|
||||
" m5.USEDATE,\r\n" +
|
||||
" m5.SHIPREQUESTDETAILNAME FETCH FIRST ROW ONLY)RECEIVEPRODUCTIONORDERNUMBER,\r\n" +
|
||||
" SUM(m.QTY) AS MATERIALQUANTITY\r\n" +
|
||||
" FROM \r\n" +
|
||||
" MATERIALPACKINGSUB m\r\n" +
|
||||
" LEFT JOIN MATERIALPACKING T ON \r\n" +
|
||||
" m.MATERIALPACKINGNAME = T.MATERIALPACKINGNAME\r\n" +
|
||||
" AND m.RECEIVEREQUESTNAME = T.SHIPREQUESTNAME\r\n" +
|
||||
" LEFT JOIN MATERIALSHIPREQUESTDETAIL M1 \r\n" +
|
||||
" ON \r\n" +
|
||||
" m.RECEIVEREQUESTNAME = M1.SHIPREQUESTNAME\r\n" +
|
||||
" AND m.RECEIVEREQUESTDETAILNAME = M1.SHIPREQUESTDETAILNAME\r\n" +
|
||||
" LEFT JOIN MATERIALSHIPREQUEST M2 \r\n" +
|
||||
" ON \r\n" +
|
||||
" M1.SHIPREQUESTNAME = M2.SHIPREQUESTNAME\r\n" +
|
||||
" WHERE \r\n" +
|
||||
" T.SHIPREQUESTNAME = :SHIPREQUESTNAME\r\n" +
|
||||
" AND T.SITENAME = :SITENAME\r\n" +
|
||||
" AND T.STOCKSTATE = 'Stocked'\r\n" +
|
||||
" AND T.MATERIALPACKINGNAME IN (:BOXLIST)\r\n" +
|
||||
" GROUP BY\r\n" +
|
||||
" t.MATERIALSPECNAME,\r\n" +
|
||||
" t.ERPFACTORY,\r\n" +
|
||||
" t.ERPLOCATION,\r\n" +
|
||||
" m2.SHIPREQUESTDETAILTYPE,\r\n" +
|
||||
" t.UNIT,\r\n" +
|
||||
" m1.COSTCENTER,\r\n" +
|
||||
" m1.SHIPREQUESTNAME,m1.SENDSALESORDER ,m1.SENDSALESORDERDETAILNO,\r\n" +
|
||||
" m1.SHIPREQUESTDETAILNAME,\r\n" +
|
||||
" m1.ERPRECEIVELOCATION,\r\n" +
|
||||
" m1.ERPRECEIVEFACTORY,m.MATERIALPACKINGNAME";
|
||||
|
||||
// 转库到线边仓
|
||||
Map<String, Object> hashMapZK = new HashMap<String, Object>();
|
||||
hashMapZK.put("BOXLIST", materialPackingKeyList);
|
||||
hashMapZK.put("SHIPREQUESTNAME", shipRequestName);
|
||||
hashMapZK.put("SITENAME", siteName);
|
||||
List<Map<String, Object>> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlZK.toString(), hashMapZK);
|
||||
|
||||
for (int z = 0; z < ZKqueryForList.size(); z++) {
|
||||
String materialPackingName = ZKqueryForList.get(z).get("MATERIALPACKINGNAME").toString();
|
||||
materialPackingKeyList.add(materialPackingName);
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName);
|
||||
arrayList.add(materialPackingKey);
|
||||
}
|
||||
/*List<MaterialPackingKey> mpKeyList = new ArrayList<MaterialPackingKey> ();
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
for (MaterialPackingKey materialPacking : arrayList) {
|
||||
MaterialPackingKey key = materialPacking;
|
||||
mpKeyList.add(key);
|
||||
}
|
||||
|
||||
Map<String, Object> hashMapPack = new HashMap<String,Object> ();
|
||||
hashMapPack.put("erpLocation", ERPRECEIVELOCATION == null ? "" : ERPRECEIVELOCATION);
|
||||
hashMapPack.put("erpFactory", ERPRECEIVEFACTORY == null ? "" : ERPRECEIVEFACTORY);
|
||||
hashMapPack.put("locationName", "");
|
||||
hashMapPack.put("lastEventUser", eventUser);
|
||||
hashMapPack.put("unDoID", billCode);
|
||||
setEventInfo.setUserColumns(hashMapPack);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mpKeyList, makeEventInfo, setEventInfo);
|
||||
*/
|
||||
//抛送MES数据
|
||||
untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList);
|
||||
}
|
||||
else
|
||||
{
|
||||
billCode=ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
|
||||
if (billCode.isEmpty()) {
|
||||
throw new CustomException("SAP过账异常!");
|
||||
}
|
||||
// billCode=toSAPService.ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||
//抛送MES数据
|
||||
untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList);
|
||||
//billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,"");
|
||||
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case "06"://成本中心领料
|
||||
// billCode=toSAPService.orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||
billCode=orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
|
||||
//抛送MES数据
|
||||
untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList);
|
||||
//更新MES管芯数据
|
||||
new MESServiceImpl().updateDurable_ByCostcenter(shipRequestName, "SDK", eventUser, materialPackingKeyList);
|
||||
//billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,"");
|
||||
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
||||
break;
|
||||
case "09"://研发领料
|
||||
// billCode=toSAPService.orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||
// billCode=orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||
// //更新MES管芯数据
|
||||
// new MESServiceImpl().updateDurable_ByCostcenter(shipRequestName, "SDK", eventUser, materialPackingKeyList);
|
||||
// //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,"");
|
||||
// untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
||||
break;
|
||||
case "ZLF0"://销售出库确认 (单据类型ZLF0~ZLF8) SD023(销售回传)
|
||||
case "ZLF1":
|
||||
case "ZLF2":
|
||||
case "ZLF3":
|
||||
case "ZLF4":
|
||||
case "ZLF5":
|
||||
case "ZLF6":
|
||||
case "ZLF7":
|
||||
case "ZLF8":
|
||||
// billCode=toSAPService.saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||
billCode=saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
|
||||
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
||||
break;
|
||||
case "08": // 委外
|
||||
case "OEM": // 委外
|
||||
// billCode=toSAPService.oemStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||
billCode=oemStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList, commitDate);
|
||||
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
||||
break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return billCode;
|
||||
}
|
||||
}
|
||||
|
@ -171,9 +171,10 @@ public class MESToWMSServiceImpl implements MESToWMSService {
|
||||
String shipRequestName = "";
|
||||
for (int i = 0; i < in.size(); i++) {
|
||||
JSONObject jb = in.getJSONObject(i);
|
||||
String charge = jb.get("charge").toString(); // 批号
|
||||
// String charge = jb.get("charge").toString(); // 批号
|
||||
String materialPackingName = jb.get("lotName").toString();
|
||||
shipRequestName = jb.get("shipRequestName").toString(); // 领料单号
|
||||
boxIdList.add(charge);
|
||||
boxIdList.add(materialPackingName);
|
||||
|
||||
}
|
||||
|
||||
|
@ -458,4 +458,28 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据RECEIVEREQUESTNAME更新标签信息的物料凭证
|
||||
* @param receiveRequestName DN
|
||||
* @param UNDOID 物料凭证
|
||||
*/
|
||||
public void updateMaterialPackingUndoIdByReceive (String receiveRequestName,String UNDOID) {
|
||||
String sql = "SELECT MATERIALPACKINGNAME, SITENAME FROM MATERIALPACKING WHERE RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND STOCKSTATE = 'Created' ";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("RECEIVEREQUESTNAME", receiveRequestName);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
for (Map<String, Object> map : queryForList) {
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||
bindMap.put("unDoID",UNDOID);
|
||||
setEventInfo.setUserColumns(bindMap);
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());
|
||||
//MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);
|
||||
MaterialPacking materialPacking = new MaterialPacking();
|
||||
materialPacking.setKey(materialPackingKey);
|
||||
materialPacking.setUnDoID(UNDOID);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().update(materialPacking);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user