| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- package xin.glue.ui.G.G04;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.net.URL;
- import java.net.URLConnection;
- import java.sql.CallableStatement;
- import java.util.List;
- import java.util.Map;
- import org.apache.commons.lang.StringUtils;
- import com.posdata.glue.PosException;
- import com.posdata.glue.biz.activity.PosActivity;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- import com.posdata.glue.biz.control.PosBizControlIF;
- import com.posdata.glue.biz.control.PosBizProvider;
- import com.posdata.glue.component.PosConstants;
- import com.posdata.glue.context.PosContext;
- import com.posdata.glue.dao.vo.PosParameter;
- import com.posdata.glue.dao.vo.PosRow;
- import com.posdata.glue.dao.vo.PosRowSet;
- import com.posdata.glue.msg.PosMESMessageImpl;
- import com.posdata.glue.msg.PosMessage;
- public class XINComplusMove extends PosActivity {
- public String runActivity(PosContext context) {
- String[] rowStatus = (String[]) context.get("rowStatus");
- String[] CHK = (String[]) context.get("CHK"); //选择
- String[] SLAB_NO = (String[]) context.get("SLAB_NO"); //板坯号
- String[] YARD_ADDR = (String[]) context.get("YARD_ADDR"); //现在库位置
- String[] FROM_ADDR = (String[]) context.get("CUR_LOAD_LOC"); //现在库位置
- String[] TO_ADDR = (String[]) context.get("TO_YARD"); //目的位置
- String[] MILL_STAT = (String[]) context.get("MILL_SCH_STAT"); //钢号
- String[] CUR_PROG_CD = (String[]) context.get("CUR_PROG_CD"); //胚料进程
- String[] SLAB_STAT = (String[]) context.get("SLAB_STAT"); //胚料状态
- String[] MOVE_EMP_NM = (String[]) context.get("MOVE_EMP_NM"); //操作人
-
- YardHandle yardHandl = new YardHandle(getDao("mesdao"));
- for(int i=0;i< rowStatus.length;i++){
- if(!(CHK[i].equals("Y")))continue;
- if(MILL_STAT[i].equals("A7T")){
- context.put("MESSAGES", " 坯料已经装炉,不能再入库! ");
- return PosBizControlConstants.SUCCESS;
- }
- if(SLAB_STAT[i].equals("3")){
- context.put("MESSAGES", " 板坯状态已经结束! ");
- return PosBizControlConstants.SUCCESS;
- }
- if(SLAB_NO[i] == null||SLAB_NO[i].equals("")||TO_ADDR[i].equals("")||TO_ADDR[i] == null){
- context.put("MESSAGES", " 板坯号,地址不能为空 ");
- return PosBizControlConstants.SUCCESS;
- }
- if(TO_ADDR[i] == null||TO_ADDR[i].equals("")||TO_ADDR[i].length() > 8||TO_ADDR[i].equals("")){
- context.put("MESSAGES", " 垛位错误 ");
- return PosBizControlConstants.SUCCESS;
- }
- PosParameter param1 = new PosParameter();
- param1 = new PosParameter();
- param1.setWhereClauseParameter(0, SLAB_NO[i]);
- PosRowSet rowSet = getDao("mesdao").find("UIG040061_MOVEALBE_SLAB.select", param1);
- while(rowSet.hasNext()){
- PosRow row = rowSet.next();
- String slabStat = (String)row.getAttribute("SLAB_STAT");
- String missionClf = (String)row.getAttribute("MISSNO_CLF");
- String lstIngrCd = (String)row.getAttribute("LST_INGR_CD");
- String slabIngrGrd = (String)row.getAttribute("SLAB_INGR_DEC_GRD");
- String slabTotalGrd = (String)row.getAttribute("SLAB_TOT_DEC_GRD");
- String curProgCd = (String)row.getAttribute("CUR_PROG_CD");
- Object SLAB_OUT_TP = row.getAttribute("SLAB_OUT_TP"); //是否允许出库
- if(slabStat.equals("3")){
- context.put("MESSAGES", " 板坯状态已经结束! ");
- return PosBizControlConstants.SUCCESS;
- }
- //2013/3/11 MODIFY BY MGP
- // if(curProgCd.equals("RAB")){
- // context.put("MESSAGES", " 精整待机坯料! ");
- // return PosBizControlConstants.SUCCESS;
- // }
- if(!(missionClf == null)&&(missionClf.equals("3") || missionClf.equals("2"))){
- context.put("MESSAGES", " 加回,轧回,吊销坯不能在此入库! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- if(lstIngrCd == null){
- context.put("MESSAGES", " 无成份实绩,不能入库! ");
- return PosBizControlConstants.SUCCESS;
- }
- System.out.println(TO_ADDR[i].substring(0,1));
- if((slabIngrGrd == null || (!slabIngrGrd.equals("1"))) && TO_ADDR[i].substring(0,1).equals("Z")){
- context.put("MESSAGES", " 成份等级不合格,不能入库! ");
- return PosBizControlConstants.SUCCESS;
- }
- if((StringUtils.isBlank(slabTotalGrd)) && TO_ADDR[i].substring(0,1).equals("Z")){
- context.put("MESSAGES", " 板坯未进行综合判定,不能入库! ");
- return PosBizControlConstants.SUCCESS;
- }
- //添加不允许出库限制
- if(null == SLAB_OUT_TP || StringUtils.isEmpty(SLAB_OUT_TP.toString())) {
- if("Z".equalsIgnoreCase(TO_ADDR[i].substring(0,1))){
- context.put("MESSAGES", " 坯料不允许出库,请联系质检!");
- return PosBizControlConstants.SUCCESS;
- }
- }
- }
-
- //获得垛位层数
- if(!yardHandl.chekStorelay(TO_ADDR[i])){
- context.put("MESSAGES", TO_ADDR[0] + " 垛位错误或则已经放满,不能超过16块! ");
- return PosBizControlConstants.SUCCESS;
- }
- String StoreLay = null;
- int lay = yardHandl.getStorelay(TO_ADDR[i]);
- if(lay < 10){ StoreLay = "0" + lay; }
- else{ StoreLay = "" + lay; }
-
- //From Address SLAB NO CLEAR
- if(YARD_ADDR[i] != null && !(YARD_ADDR[i].equals(""))){
-
- //防止炼钢,热轧之间误操作,把对方的坯料入库
- //if(YARD_ADDR[i].substring(0, 1).equals("L") || YARD_ADDR[i].substring(0, 1).equals("Z")|| YARD_ADDR[i].substring(0, 1).equals("z")){
- if((YARD_ADDR[i].substring(0, 1).equals("Z")|| YARD_ADDR[i].substring(0, 1).equals("z")) && !"Z999XN".equals(FROM_ADDR[i].substring(0,6))){
- context.put("MESSAGES", " 已经入库 " + YARD_ADDR[i]);
- return PosBizControlConstants.SUCCESS;
- }
- //清空原始垛位信息 EG: A00101 C00203 ....
- else{
- yardHandl.clearFromAddrBySlabNo(SLAB_NO[i]);
- }
- }
-
- /*PosParameter param = new PosParameter();
- PosRowSet rowset = null;
- PosRow row = null;*/
-
- // TO Address SLAB NO Setting
- yardHandl.setToAddr(SLAB_NO[i], FROM_ADDR[i], "", TO_ADDR[i], StoreLay, "", "ComplusMov");
-
- String activityId = "",AppId = "",Exeejob = "";
- int flag = 1;
-
- //入库
- if( (FROM_ADDR[i].substring(0,1).equals("L") || (FROM_ADDR[i].substring(0,1).equals("H") && !FROM_ADDR[i].substring(0,1).equals("H516"))
- || FROM_ADDR[i].substring(0,2).equals("A0") || FROM_ADDR[i].substring(0,2).equals("C0"))//在库跺位
- //出库跺位
- && (TO_ADDR[i].substring(0,1).equals("Z") || TO_ADDR[i].substring(0,1).equals("T") || TO_ADDR[i].equals("H516"))
- ){
-
- activityId = "55A";
- AppId = "板坯入热轧库";
- Exeejob = "N";
- flag = 0;
- //配重自动审核
- CallableStatement cstm = null;
- try
- {
- cstm = this.getDao("mesdao").getCallableStatement("WEIGHT_CHECK.CAL");
- cstm.setString(1, SLAB_NO[i]);
- cstm.registerOutParameter(2, java.sql.Types.VARCHAR);
- cstm.execute();
- //String err = cstm.getString(2);
- }catch(Exception ex){
- ex.printStackTrace();
- }
- finally{
- if(cstm != null){
- try{
- cstm.close();
- }catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- //退库
- if( (FROM_ADDR[i].substring(0,1).equals("T") || FROM_ADDR[i].equals("H516") || FROM_ADDR[i].substring(0,1).equals("Z"))
- && ((TO_ADDR[i].substring(0,1).equals("L") || (TO_ADDR[i].substring(0,1).equals("H") && !TO_ADDR[i].substring(0,1).equals("H516"))
- || TO_ADDR[i].substring(0,2).equals("A0") || TO_ADDR[i].substring(0,2).equals("C0"))) ){
- activityId = "55A";
- AppId = "板坯退热轧库";
- Exeejob = "D";
- flag = 0;
- }
-
- /*跺位变更,出库操作*/
- if(TO_ADDR[i].substring(0,1).equals("Z")){
- yardHandl.setEntSlabComm(SLAB_NO[i], TO_ADDR[i], StoreLay, "1");
- }else if(TO_ADDR[i].substring(0,1).equals("L")){
- yardHandl.setEntSlabComm(SLAB_NO[i], TO_ADDR[i], StoreLay, "");
- }
- //检查是否有悬空垛位
- SendProg_NIG040200(FROM_ADDR[i]);
- SendProg_NIG040200(TO_ADDR[i]);
-
- /*//检查是否热送 HCR_CLF 修改入库时间记录(炼钢,热轧) CUR_LOAD_LOC
- PosParameter param5 = new PosParameter();
- param5.setWhereClauseParameter(0, SLAB_NO[i]);
- PosRowSet SpecSlabVO = getDao("mesdao").find("UIG040042_SPEC_SLAB_MILL_FL.select", param5); */
-
- if(flag == 0){
- /*财务数据上抛*/
- CallableStatement cstm = null;
- try
- {
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, SLAB_NO[i]);
- cstm.setString(2, activityId);
- cstm.setString(3, Exeejob);
- cstm.setString(4, AppId);
- cstm.setString(5, StringUtils.isBlank(MOVE_EMP_NM[0])?"":MOVE_EMP_NM[0]);
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
-
- String err = cstm.getString(6);
- if(!org.apache.commons.lang.StringUtils.isBlank(cstm.getString(6))){
- context.put("MESSAGES","数据上传失败:" + err);
- return PosBizControlConstants.SUCCESS;
- }
- }catch(Exception ex){
- ex.printStackTrace();
- context.put("MESSAGES","Exception:" + ex.getMessage());
- return PosBizControlConstants.SUCCESS;
- }
- finally{
- if(cstm != null){
- try{
- cstm.close();
- }catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- }
- context.put("MESSAGES", " 操作成功! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- /**
- * 向指定URL发送GET方法的请求
- *
- * @param url
- * 发送请求的URL
- * @param param
- * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
- * @return URL 所代表远程资源的响应结果
- */
- public String sendGet(String url, String param) {
- String result = "";
- BufferedReader in = null;
- try {
- String urlNameString = url + param;
- URL realUrl = new URL(urlNameString);
- // 打开和URL之间的连接
- URLConnection connection = realUrl.openConnection();
- // 设置通用的请求属性
- connection.setRequestProperty("accept", "*/*");
- connection.setRequestProperty("connection", "Keep-Alive");
- connection.setRequestProperty("user-agent",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
- // 建立实际的连接
- connection.connect();
- // 获取所有响应头字段
- Map<String, List<String>> map = connection.getHeaderFields();
- // 遍历所有的响应头字段
- for (String key : map.keySet()) {
- System.out.println(key + "--->" + map.get(key));
- }
- // 定义 BufferedReader输入流来读取URL的响应
- in = new BufferedReader(new InputStreamReader(
- connection.getInputStream(),"UTF-8"));
- String line;
- while ((line = in.readLine()) != null) {
- result += line;
- }
- } catch (Exception e) {
- System.out.println("发送GET请求出现异常!" + e);
- e.printStackTrace();
- }
- // 使用finally块来关闭输入流
- finally {
- try {
- if (in != null) {
- in.close();
- }
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- return result;
- }
-
- //Mill Schedule delete request service call
- public void SendProg_NIF024060(String SlabNo )
- {
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
- String TcId = "NIF024060";
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("TYPE","S");
- message.setObject("FROM",SlabNo);
- message.setObject("TO",SlabNo);
- message.setObject("REG_ID","UIG040010");
-
- context.setMessage(message);
- this.processComponent(PosConstants.CREATE_MESSAGE, context);
- String transactionCode = context.getMessage().getTC();
-
- message.setTCID(TcId);
-
- String serviceName = "NIF024060";
-
- String SERVICE_POSTFIX = "-service";
-
-
- context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
-
-
- context.setMessage(message);
-
-
- PosBizControlIF controller = PosBizProvider.getController();
-
- controller.doSubController(context,false);
-
- }
- public String SendProg_NIG040200(String yardAddr)
- {
-
- logger.logInfo("PosSaveSlabCutting---> yardAddr:"+yardAddr );
-
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
-
- String TcId = "NIG040200";
-
- message.setTCID(TcId);
- message.setObject("MSG_ID",TcId);
- message.setObject("YARD_ADDR",yardAddr);
-
- context.setMessage(message);
-
- message.setTCID(TcId);
-
- String SERVICE_POSTFIX = "-service";
- context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX);
- PosBizProvider.getController().doSubController(context, false);
-
- String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
-
- logger.logInfo("PosSaveSlabCutting SendProg_NIE012070 SERVICE_ERR_MSG:"+SERVICE_ERR_MSG );
-
-
- if (SERVICE_ERR_MSG != null)
- {
- throw new PosException(SERVICE_ERR_MSG);
- }
- return null;
- }
- }
|