📄 pipemain.java
字号:
//extractDataFromDB("dispatchDBtoCSV.txt");
setEngineCompleteMsg();
cleanup();
}
catch (Exception e) {
System.out.println("Engine ERROR:" + e.getMessage());
return;
}
}
private void buildConstraints() {
String msg = res.getString("Engine1002");
MessageArea.getInstance().addMessage(msg);
InventoryConstraint invConstr = InventoryConstraint.getInstance();
StartsOutsConstraint startsOutsConstr = StartsOutsConstraint.getInstance();
CapacityConstraint capacityConstr = CapacityConstraint.getInstance();
SourcingConstraint srcingConstr = SourcingConstraint.getInstance();
ShipmentConstraint shipConstr = ShipmentConstraint.getInstance();
MaterialConstraint matConstr = MaterialConstraint.getInstance();
ProductBoundConstraint bndConstr = ProductBoundConstraint.getInstance();
MinInvConstraint minInvConstr = MinInvConstraint.getInstance();
invConstr.buildConstraints();
startsOutsConstr.buildConstraints();
capacityConstr.buildConstraints();
System.gc();
srcingConstr.buildConstraints();
System.gc();
shipConstr.buildConstraints();
matConstr.buildConstraints();
bndConstr.buildConstraints();
minInvConstr.buildConstraints();
System.gc();
TightCapacityConstraint.getInstance().buildConstraints();
}
private void buildObjectiveFunction() {
String msg = res.getString("Engine1300");
MessageArea.getInstance().addMessage(msg);
BackorderVariable.getInstance().sendObjElemToLPModel();
BackorderOneVariable.getInstance().sendObjElemToLPModel();
InventoryVariable.getInstance().sendObjElemToLPModel();
BoundVariable.getInstance().sendObjElemToLPModel();
MinInvSlackVariable.getInstance().sendObjElemToLPModel();
}
private void solve() {
String msg = res.getString("Engine2000");
MessageArea.getInstance().addMessage(msg);
String urlAddr = GlobalConfig.getInstance().getLPServerURL() +
"com.power.pipeengine.LPServlet";
URL url = null;
HttpURLConnection urlconn = null;
BufferedReader d = null;
InputStream in = null;
try {
url = new URL(urlAddr + "?" +
"exePath=c:\\paraster\\lpsolver\\paraster.exe&" +
"outPath=c:\\paraster\\work\\model.out&" +
"workPath=c:\\paraster\\work&" +
"paraPath=c:\\paraster\\work\\model.mps&" +
"testPath=c:\\paraster\\work\\model.mps&" +
"logPath=c:\\paraster\\work\\model.log");
urlconn = (HttpURLConnection) (url.openConnection());
urlconn.setRequestMethod("POST");
in = urlconn.getInputStream();
d = new BufferedReader(new InputStreamReader(in));
StringBuffer svrSideMsg = new StringBuffer();
String tmpStr;
while ( (tmpStr = d.readLine()) != null) {
if (tmpStr.length() >= errMsg.length() &&
tmpStr.substring(0, errMsg.length()).equals(errMsg)) {
MessageArea.getInstance().addMessage(
"Error writing file through URL: " + tmpStr + "\n");
break;
}
//System.out.println(tmpStr);
svrSideMsg.append(tmpStr + "\n");
}
MessageArea.getInstance().addSvrSideMsg(svrSideMsg.toString());
}
catch (Exception e) {
MessageArea.getInstance().addMessage("Error opening LPServer URL\n");
}
finally {
try {
d.close();
in.close();
}
catch (Exception e) {}
}
/**** Waiting Engine Result ****/
boolean endLoop = false;
int countLoop = 1;
urlAddr = GlobalConfig.getInstance().getLPServerURL() +
"com.power.pipeengine.LPCheckFile" +
"?FileName=c:\\paraster\\work\\model.out&" +
"LogPath=c:\\paraster\\work\\model.log";
do {
try {
url = new URL(urlAddr);
urlconn = (HttpURLConnection) (url.openConnection());
urlconn.setRequestMethod("POST");
in = urlconn.getInputStream();
d = new BufferedReader(new InputStreamReader(in));
String tmpStr;
if ( (tmpStr = d.readLine()).equals("found"))
endLoop = true;
else {
tmpStr = "\t" + res.getString("SolvingModel") +
(countLoop++ * INTERVAL) + res.getString("Seconds") + "\n";
MessageArea.getInstance().addMessage(tmpStr);
PIPEMain.sleep(INTERVAL * 1000);
}
}
catch (Exception e) {
endLoop = true;
System.out.println(e.getMessage());
}
}
while (!endLoop);
//Solve.getInstance().createSolution();
//Solution.getInstance().setSolution( Solve.getInstance().getSolution() );
}
private void createReports() throws Exception {
String msg = res.getString("Engine3000");
MessageArea.getInstance().addMessage(msg);
//BoundsSupport.getInstance().createReport();
//Delinquency.getInstance().createReport();
//MaterialConsumption.getInstance().createReport();
//MinInvSupport.getInstance().createReport();
//System.gc();
//ProductDispatch.getInstance().createReport();
ProductionStartsSchedule.getInstance().createReport();
//ProductionOutsSchedule.getInstance().createReport();
//ProductionOutsByRoute.getInstance().createReport();
//System.gc();
//ProductReceipt.getInstance().createReport();
ResourceUsage.getInstance().createReport();
//Sourcing.getInstance().createReport();
//EndingInventory.getInstance().createReport();
}
private void setEngineCompleteMsg() {
MessageArea msgArea = MessageArea.getInstance();
msgArea.getTextArea().setSelectionStart(msgArea.getTextArea().getText().
length());
msgArea.addMessage(res.getString("Engine5000_1"));
msgArea.addMessage(res.getString("Engine5000_You_can"));
msgArea.getTextArea().setSelectionEnd(msgArea.getTextArea().getText().
length());
msgArea.getTextArea().setSelectedTextColor(Color.blue);
}
private void writeEngineRunLog() {
URLFileWriter.getInstance().write(GlobalConfig.getInstance().
getFileReadWriteURL(),
GlobalConfig.getInstance().getRunLogDir() +
"engine.log",
"WriteModel",
MessageArea.getInstance().
getClntSideMessage() +
MessageArea.getInstance().
getSvrSideMessage());
}
public void reset() {
//MessageArea.getInstance().reset();
// EngineRunTime.getInstance().reset();
//reset variables
AllocationVariable.getInstance().reset();
BackorderOneVariable.getInstance().reset();
BackorderTwoVariable.getInstance().reset();
BackorderVariable.getInstance().reset();
BoundVariable.getInstance().reset();
InventoryVariable.getInstance().reset();
LostSaleVariable.getInstance().reset();
MinInvSlackVariable.getInstance().reset();
OutsVariable.getInstance().reset();
ReceivingVariable.getInstance().reset();
RscSlackVariable.getInstance().reset();
ShipOutVariable.getInstance().reset();
StartsVariable.getInstance().reset();
DataModel.getInstance().reset();
UIEventUpdateThread.getInstance().reset();
Model.getInstance().reset();
System.gc();
}
public void setRunFlag(boolean flag) {
runPIPE = flag;
}
public class waitThread
extends Thread {
int interval = 0;
public waitThread(int secs) {
this.interval = secs;
}
public void run() {
try {
waitThread.sleep(interval * 1000);
isWait = false;
}
catch (Exception e) {}
}
}
public void cleanup() {
EngineRunTime.getInstance().cancel();
Date endDate = new Date();
MessageArea.getInstance().addMessage(res.getString("EngineEndTime"));
MessageArea.getInstance().addMessage(sdfInput.format(endDate) + "\n");
writeEngineRunLog();
//this.reset();
//System.gc();
}
private void createRoutingNetwork() {
Hashtable allDmds = DataModel.getInstance().getProductDemands().
getAllDemands();
Enumeration dmds = allDmds.elements();
while (dmds.hasMoreElements()) {
ProductDemand aDmd = (ProductDemand) dmds.nextElement();
aDmd.genProducingRoutes();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -