Compare commits
2 Commits
0becda94f8
...
e770868de1
Author | SHA1 | Date | |
---|---|---|---|
e770868de1 | |||
da6ae3fc74 |
@ -334,6 +334,67 @@ public class ToSAPServiceImpl {
|
||||
}
|
||||
return undoId;
|
||||
}
|
||||
|
||||
public String FGStockIn2(String RECEIVEACTNO, String user) throws Exception {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(SystemPropHelper.CR)
|
||||
.append("SELECT m.MATERIALSPECNAME ,").append(SystemPropHelper.CR)
|
||||
.append(" m.PRODUCTORDER ,").append(SystemPropHelper.CR)
|
||||
.append(" m.PACKINGGRADE ,").append(SystemPropHelper.CR)
|
||||
.append(" m.ERPFACTORY ,").append(SystemPropHelper.CR)
|
||||
.append(" m.ERPLOCATION ,").append(SystemPropHelper.CR)
|
||||
.append(" m.UNIT ,").append(SystemPropHelper.CR)
|
||||
.append(" m.PACKINGGRADE,").append(SystemPropHelper.CR)
|
||||
.append(" m.MATERIALSPECTYPE,").append(SystemPropHelper.CR)
|
||||
.append(" sum(m.MATERIALQUANTITY ) MATERIALQUANTITY ").append(SystemPropHelper.CR)
|
||||
.append(" FROM MATERIALPACKING m ").append(SystemPropHelper.CR)
|
||||
.append("LEFT JOIN BS_MES_SHIPPED bms ON m.materialpackingname = bms.lotname ").append(SystemPropHelper.CR)
|
||||
.append(" WHERE bms.RECEIVE_FLAG <> 'Y' ").append(SystemPropHelper.CR)
|
||||
.append(" AND m.STOCKSTATE = 'Created' ").append(SystemPropHelper.CR)
|
||||
.append(" AND m.RECEIVEACTNO = :RECEIVEACTNO ").append(SystemPropHelper.CR)
|
||||
.append("GROUP BY m.MATERIALSPECNAME ,m.PRODUCTORDER ,m.PACKINGGRADE ,m.ERPFACTORY ,m.ERPLOCATION ,m.UNIT ,").append(SystemPropHelper.CR)
|
||||
.append(" m.PACKINGGRADE,m.MATERIALSPECTYPE ");
|
||||
Map<String, Object> hashMap = new HashMap<String, Object>();
|
||||
hashMap.put("RECEIVEACTNO", RECEIVEACTNO);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql.toString(), hashMap);
|
||||
String makeFGStockIn = makeFGStockIn(queryForList, user, RECEIVEACTNO);
|
||||
String sapreturn = "";
|
||||
String rcode = "";
|
||||
String rmsg = "";
|
||||
String undoId = "";
|
||||
try {
|
||||
sapreturn = toSAPMessageUtil.sendHttpPost(toSAPMessageUtil.materialChangeLocationUrl, "",
|
||||
makeFGStockIn);
|
||||
org.json.JSONObject receiveJsonObject = new org.json.JSONObject(sapreturn);
|
||||
|
||||
org.json.JSONObject returnJsonObject = (org.json.JSONObject) receiveJsonObject.get("RETURN");
|
||||
rcode = returnJsonObject.get("STATUS").toString();
|
||||
rmsg = returnJsonObject.get("MSGTXT").toString();
|
||||
if ("S".equals(rcode)) {
|
||||
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("WMS请求SAP异常:" + e.getMessage(), e);
|
||||
throw new RuntimeException("WMS请求SAP异常:" + rmsg);
|
||||
} finally {
|
||||
// 将消息记录log表
|
||||
ErpMessageLog erplog = new ErpMessageLog();
|
||||
erplog.setEventUser(user);
|
||||
erplog.setServerName("WmsToErp");
|
||||
erplog.setEventName("FGStockIn");
|
||||
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
|
||||
erplog.setMessageId(RECEIVEACTNO);
|
||||
erplog.setSendMsg2(makeFGStockIn);
|
||||
erplog.setSendMsg(makeFGStockIn);
|
||||
erplog.setReturnMsg2(sapreturn);
|
||||
erplog.setResultCode(rcode);
|
||||
MessageLogUtil.writeMessageLog(erplog);
|
||||
}
|
||||
if (!"S".equals(rcode)) {
|
||||
throw new RuntimeException("SAP返回" + rmsg);
|
||||
}
|
||||
return undoId;
|
||||
}
|
||||
|
||||
//取消成品入库接口。zd.2024.8.29
|
||||
public String cancelFGStockIn(List<String> boxList, String user,String siteName) throws Exception {
|
||||
|
@ -158,7 +158,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
bindMap.put("LOTNAME",materialPackingName);
|
||||
List<Map<String,Object>> list2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql2, bindMap);
|
||||
if(list2.size() < 1) {
|
||||
throw new GlobalException( materialPackingName + "生产未完成入库,请联系IT处理!");
|
||||
throw new GlobalException( materialPackingName + "生产未完成入库,请联系生产确认!");
|
||||
}
|
||||
String phase = (list2.get(0).get("PHASE") == null || "".equals(list2.get(0).get("PHASE"))) ? "" : list2.get(0).get("PHASE").toString();
|
||||
String sdk_id = (list2.get(0).get("SDK_ID") == null || "~".equals(list2.get(0).get("SDK_ID"))) ? "" : list2.get(0).get("SDK_ID").toString();
|
||||
@ -194,7 +194,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
bindMap.put("SDK_ID",sdk_id);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql3.toString(), bindMap);
|
||||
if (queryForList == null || queryForList.size() < 1) {
|
||||
throw new RuntimeException(materialPackingName.split("\\|")[0] + materialPackingName.split("\\|")[4] + "生产报告未完成,请联系IT处理!");
|
||||
throw new RuntimeException(materialPackingName.split("\\|")[0] + materialPackingName.split("\\|")[4] + "生产报告未完成,请联系生产确认!");
|
||||
}
|
||||
EventInfo makeEventInfo = new EventInfoUtil().makeEventInfo("createfgBoxInfo", user, "createfgBoxInfo");
|
||||
//IDMFrameServiceProxy.getTransactionManager().beginTransaction();
|
||||
@ -293,7 +293,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
sql.append(" T.PACKINGGRADE , ");
|
||||
sql.append(" T.SHIPTIME , ");
|
||||
sql.append(" M3.MATERIALTYPE , ");
|
||||
sql.append(" T.PHASE,T.CAREER_ASSISTANCE,T.DURABLETYPE ,T.BUSINESS_UNIT,T.SALESPERSON,T.MJPC ,T.TRUEGG,T.CHARGE,T.MAKEDATE, T.CUSTOMERNO ,"
|
||||
sql.append(" T.REMARK,T.PHASE,T.CAREER_ASSISTANCE,T.DURABLETYPE ,T.BUSINESS_UNIT,T.SALESPERSON,T.MJPC ,T.TRUEGG,T.CHARGE,T.MAKEDATE, T.CUSTOMERNO ,"
|
||||
+ "T.LK_DURABLENAME,T.LK_AREANAME,T.LK_PRODUCTLINE,T.LK_WIDTH ,T.LK_DEVIATION,T.LK_WEIGHT,T.LK_DIAMETER,T.LK_SHELFNAME ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" BS_MES_SHIPPED T ");
|
||||
@ -428,7 +428,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
bindMap.put("productOrder", receiveRequestName);
|
||||
bindMap.put("ReceiveRequestDetailName",receiveRequestDetailName);
|
||||
bindMap.put("MakeDate", queryForList.get(0).get("MAKEDATE"));
|
||||
bindMap.put("expiringDate", getExpridate(queryForList.get(0).get("MAKEDATE").toString(), queryForList.get(0).get("MATERIALSPECNAME").toString()));
|
||||
bindMap.put("expiringDate", getExpridate(queryForList.get(0).get("MAKEDATE") == null ? "" : queryForList.get(0).get("MAKEDATE").toString(), queryForList.get(0).get("MATERIALSPECNAME").toString()));
|
||||
bindMap.put("ReceiveTime", eventInfo.getEventTime());
|
||||
bindMap.put("ReceiveUser", eventInfo.getEventUser());
|
||||
bindMap.put("ShipTime",queryForList.get(0).get("SHIPTIME"));
|
||||
@ -445,6 +445,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
bindMap.put("BUSINESS_UNIT", queryForList.get(0).get("BUSINESS_UNIT"));//业务
|
||||
bindMap.put("SALESPERSON", queryForList.get(0).get("SALESPERSON"));//事业部
|
||||
bindMap.put("MJPC", queryForList.get(0).get("MJPC"));//母卷批次
|
||||
bindMap.put("remark", queryForList.get(0).get("REMARK"));//备注
|
||||
if("Y".equals(is_oven)) {
|
||||
bindMap.put("MATURATIONINTIME", eventInfo.getEventTime());//熟化入库时间
|
||||
}
|
||||
@ -685,26 +686,59 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
|
||||
if (queryForList != null && queryForList.size() > 0) {
|
||||
return queryForList.get(0).get("EXP").toString();
|
||||
return queryForList.get(0).get("EXP") == null ? "" : queryForList.get(0).get("EXP").toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public boolean fgStockIn (String RECEIVEACTNO, String eventUser) throws Exception {
|
||||
//根据抬头文本获取批次集合
|
||||
List<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
|
||||
String sql = "SELECT * FROM MATERIALPACKING WHERE RECEIVEACTNO = :RECEIVEACTNO";
|
||||
// List<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
|
||||
// String sql = "SELECT * FROM MATERIALPACKING WHERE RECEIVEACTNO = :RECEIVEACTNO";
|
||||
// Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
// hashMap.put("RECEIVEACTNO", RECEIVEACTNO);
|
||||
// List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
// for (Map<String, Object> map : queryForList) {
|
||||
// MaterialPackingKey materialPackingKey = new MaterialPackingKey();
|
||||
// materialPackingKey.setMaterialPackingName(map.get("MATERIALPACKINGNAME").toString());
|
||||
// materialPackingKey.setSiteName(map.get("SITENAME").toString());
|
||||
// MaterialPacking materialPacking = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
|
||||
// boxList.add(materialPacking);
|
||||
// }
|
||||
// fgStockInNew(boxList, eventUser, RECEIVEACTNO, "", "");
|
||||
|
||||
|
||||
String billCode = toSAPService.FGStockIn2(RECEIVEACTNO, eventUser);
|
||||
if (billCode == null) {
|
||||
throw new GlobalException("报送ERP失败,请联系IT处理!");
|
||||
}
|
||||
EventInfo makeEventInfo = EventInfoUtil.makeEventInfo("FGStockIn", eventUser, "FGStockIn", "", "");
|
||||
//更新抬头文本状态和Box状态
|
||||
String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME FROM MATERIALPACKING M WHERE M.RECEIVEACTNO = :RECEIVEACTNO";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("RECEIVEACTNO", RECEIVEACTNO);
|
||||
List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
for (Map<String, Object> map : queryForList) {
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey();
|
||||
materialPackingKey.setMaterialPackingName(map.get("MATERIALPACKINGNAME").toString());
|
||||
materialPackingKey.setSiteName(map.get("SITENAME").toString());
|
||||
MaterialPacking materialPacking = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
|
||||
boxList.add(materialPacking);
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(),map.get("MATERIALPACKINGNAME").toString());
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||
bindMap.put("unDoID", billCode);
|
||||
bindMap.put("StockState", "Stocked");
|
||||
setEventInfo.setUserColumns(bindMap);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
|
||||
|
||||
String sql2 = "UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'Y', T.RECEIVE_TIME = SYSDATE WHERE T.LOTNAME = :LOTNAME";
|
||||
Map<String, Object> hashMap2 = new HashMap<String,Object> ();
|
||||
hashMap2.put("LOTNAME", map.get("MATERIALPACKINGNAME").toString());
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(sql2, hashMap2);
|
||||
|
||||
|
||||
String sql3 = "UPDATE MATERIALRECEIVEACT SET RECEIVEACTSTATE = 'Received' WHERE RECEIVEACTNO = :RECEIVEACTNO";
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(sql3, hashMap);
|
||||
|
||||
}
|
||||
fgStockInNew(boxList, eventUser, RECEIVEACTNO, "", "");
|
||||
String commitDate=TimeStampUtil.getCurrentTime("yyyy-MM-dd");
|
||||
SaveUnDoInfo( billCode, commitDate);
|
||||
//更新MES标识
|
||||
return true;
|
||||
}
|
||||
|
@ -329,7 +329,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
|
||||
sql.append(" M4.EXPIRINGDATE , ");
|
||||
sql.append(" NVL(M4.MAKEDATE ,T.MAKEDATE ) SHIPTIME , ");
|
||||
sql.append(" M3.MATERIALTYPE , ");
|
||||
sql.append(" T.PHASE, T.RETURNPC,T.MJPC ");
|
||||
sql.append(" T.REMARK, T.PHASE, T.RETURNPC,T.MJPC ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" BS_MES_SHIPPED T LEFT JOIN MATERIALPACKING M4 ON T.RETURNPC = M4.CHARGE AND T.PRODUCTSPECNAME = M4.MATERIALSPECNAME ");
|
||||
sql.append(" LEFT JOIN MATERIALSHIPREQUEST M ON ");
|
||||
@ -431,6 +431,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
|
||||
bindMap.put("BUSINESS_UNIT", queryForList.get(0).get("BUSINESS_UNIT"));//业务
|
||||
bindMap.put("SALESPERSON", queryForList.get(0).get("SALESPERSON"));//事业部
|
||||
bindMap.put("CUSTOMNO", queryForList.get(0).get("CUSTOMNO"));//客户
|
||||
bindMap.put("remark", queryForList.get(0).get("REMARK"));//备注
|
||||
createInfo.setUserColumns(bindMap);
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName,materialPackingName);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().create(
|
||||
|
Loading…
x
Reference in New Issue
Block a user