package xin.glue.nui.E.E03; import java.math.BigDecimal; import java.sql.CallableStatement; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import xin.glue.ui.common.PosDBEngine; import com.posdata.glue.PosException; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.biz.control.PosBizProvider; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRowSet; import com.posdata.glue.msg.PosMESMessageImpl; import com.posdata.glue.msg.PosMessage; public class OrdRepSave extends PosDBEngine { String V_ORD_NO; String V_ORD_SEQ; String V_ORD_NO2; public String runActivity(PosContext ctx) { Initialize(); // 2. Get Parameter( 各语句参数名获取 ) setParamMap(ctx, "sqlkey0", "param0"); // 充当订单及其余量查询 setParamMap(ctx, "sqlkey1", "param1"); // 充当物料及其重量查询 setParamMap(ctx, "sqlkey2", "param2"); // NIE012070 接口参数查询 setParamMap(ctx, "sqlkey-h", "param-h");// 历史插入 setParamMap(ctx, "sqlkey-u", "param-u");// XXXX_COMM setParamMap(ctx, "sqlkey-d", "param-d");// 删除 XXXX_COMM_D setParamMap(ctx, "sqlkey-i", "param-i");// 插入 XXXX_COMM_D setParamMap(ctx, "sqlkey-ud", "param-ud");// 更新 XXXX_COMM_D setParamMap(ctx, "sqlkey2-u", "param-u");//外销坯 20181106 String SERVICE_POSTFIX = "-service"; PosMessage message = new PosMESMessageImpl(); // message.setTCID("NIE012070"); ctx.setMessage(message); // processComponent(PosConstants.CREATE_MESSAGE, ctx); List list = new ArrayList(); PosRowSet rowSet1 = (PosRowSet) super.Execute(ctx, "sqlkey0", "param0"); while (rowSet1 == null || rowSet1.hasNext()) { if (rowSet1 != null) { Map fields = rowSet1.next().getAttributes(); for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); ctx.put(entry.getKey().toString(), entry.getValue()); message.setObject(entry.getKey().toString(), entry.getValue()); list.add(entry.getKey()); } } PosRowSet rowSet2 = (PosRowSet) super.Execute(ctx, "sqlkey1", "param1"); while (rowSet2.hasNext()) { Map fields = rowSet2.next().getAttributes(); for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); ctx.put(entry.getKey(), entry.getValue()); message.setObject(entry.getKey().toString(), entry.getValue()); list.add(entry.getKey()); } PosRowSet rowSet = (PosRowSet)Execute(ctx, "sqlkey2", "param2"); Execute(ctx, "sqlkey-h", "param-h", 'i'); //外销坯------------------------------------------------- Object obj2 = ctx.get("ORD_NO"); if (obj2 instanceof String[]) { V_ORD_NO2 = ((String[]) obj2)[0]; } else { V_ORD_NO2 = obj2.toString(); } if ("7".contains(V_ORD_NO2.substring(0, 1)) || "W7".contains(V_ORD_NO2.substring(0, 2))) { Execute(ctx, "sqlkey2-u", "param-u", 'u'); } else { Execute(ctx, "sqlkey-u", "param-u", 'u'); } //------------------------------------------------- Execute(ctx, "sqlkey-d", "param-d", 'd'); //Execute(ctx, "sqlkey-i", "param-i", 'i'); String matNO = (String)ctx.get("MAT_NO"); String[] ob = (String[])ctx.get("COIL_CNT"); if (ob == null||ob[0].equals("")){ PosParameter param = new PosParameter(); param.setValueParamter(0, matNO); this.getDao("mesdao").update("NIE031045.SlabCommD_detail.delete", param); param = new PosParameter(); param.setValueParamter(0, matNO); this.getDao("mesdao").update("NIE031045.CoilCommD_detail.delete", param); }else{ BigDecimal coils = new BigDecimal(ob[0]); for(int i = 1 ;i <= coils.intValue() ;i++){ PosParameter param = new PosParameter(); param.setValueParamter(0, "0"+i); param.setValueParamter(1, coils); param.setValueParamter(2, matNO); this.getDao("mesdao").update("NIE031045.SlabCommD_detail.Insert", param); param = new PosParameter(); param.setValueParamter(0, "0"+i); param.setValueParamter(1, coils); param.setValueParamter(2, matNO); this.getDao("mesdao").update("NIE031045.CoilCommD_Detail.Insert", param); } } Execute(ctx, "sqlkey-ud", "param-ud", 'u'); // 设置向sub service里传入的Parameter. Object obj = ctx.get("REG_ID"); if (obj instanceof String[]) message.setObject("REG_ID", ((String[])obj)[0]); else message.setObject("REG_ID", obj); // if (!message.getAttributes().containsKey("ORD_NO")) { // obj = ctx.get("ORD_NO"); // if (obj instanceof String[]) // message.setObject("ORD_NO", ((String[])obj)[0]); // else // message.setObject("ORD_NO", obj); // obj = ctx.get("ORD_SEQ"); // if (obj instanceof String[]) // message.setObject("ORD_SEQ", ((String[])obj)[0]); // else // message.setObject("ORD_SEQ", obj); // } if (!message.getAttributes().containsKey("ORD_NO")) { obj = ctx.get("ORD_NO"); if (obj instanceof String[]){ message.setObject("ORD_NO", ((String[])obj)[0]); V_ORD_NO = ((String[])obj)[0]; } else { message.setObject("ORD_NO", obj); V_ORD_NO = obj.toString(); } obj = ctx.get("ORD_SEQ"); if (obj instanceof String[]) { message.setObject("ORD_SEQ", ((String[])obj)[0]); V_ORD_SEQ = ((String[])obj)[0]; } else{ message.setObject("ORD_SEQ", obj); V_ORD_SEQ = obj.toString(); } } while (rowSet.hasNext()) { for (Iterator iterator = rowSet.next().getAttributes().entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); message.setObject(entry.getKey().toString(), entry.getValue()); } // NIE012070_订单进程OS I/F程序 // 调用sub service. // 为用one transaction来进行连接 // 把doSubController Method的第二个Parameter用 'false'来指定. ctx.put(PosBizControlConstants.SERVICE_NAME, "NIE012070" + SERVICE_POSTFIX); PosBizProvider.getController().doSubController(ctx, false); } } if (rowSet1 == null) break; } // NIE012080_订单进程OS编辑MAIN程序 ctx.put(PosBizControlConstants.SERVICE_NAME, "NIE012100" + SERVICE_POSTFIX); //ctx.put(PosBizControlConstants.SERVICE_NAME, "NIE012080" + SERVICE_POSTFIX); PosBizProvider.getController().doSubController(ctx, false); // //超量检查 // if (new OrdChk(V_ORD_NO, V_ORD_SEQ).isOver()) { // throw new PosException("订单超量...OrdRepSave.OrdChk.isOver..." // + V_ORD_NO + " - " + V_ORD_SEQ); // } // ; for (int i = list.size() - 1; i >= 0; i--) ctx.remove(list.get(i)); return PosBizControlConstants.SUCCESS; } }