| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527 |
- package xin.glue.ui.G.G04;
- import java.math.BigDecimal;
- import java.sql.CallableStatement;
- import java.sql.SQLException;
- import org.apache.commons.lang.StringUtils;
- import xin.glue.ui.common.component.PosSiteLog;
- 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.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;
- /*
- * 中厚板移送实绩登录与查询,从我方仓库取出板坯,发货到中厚板仓库
- * 这里涉及到多个表,所以自己写一个类
- * @author tangliang
- * @date 2008.11.05
- */
- public class SavePltBlabNo extends PosActivity {
- public String runActivity(PosContext context) {
- // 从页面获取数据供插入和更新使用
- // 获得所选择的行数
- String[] status = (String[]) context.get("rowStuts");
- String[] hcrClf = (String[]) context.get("HCR_CLF");
- // 车辆号
- String[] PLT_TRS_CAR_NO = (String[]) context.get("PLT_TRS_CAR_NO");
- // 移送货单_前半部分_日期
- String[] PLT_TRS_INVOICE_NO = (String[]) context
- .get("PLT_TRS_INVOICE_NO");
- // 移送货单_后半部分_编号,移送货单需要把两个数据拼起来做为一个整体插入数据库
- String[] PLT_TRS_INVOICE_NO_MANUAL = (String[]) context
- .get("PLT_TRS_INVOICE_NO_MANUAL");
- // 目的地,前台手工录入的
- String[] PLT_PLANT_ARRV_LOC = (String[]) context.get("PLT_PLANT_ARRV_LOC");
- // 班次
- String[] PLT_TRS_WKSHIFT = (String[]) context.get("PLT_TRS_WKSHIFT");
- // 组
- String[] PLT_TRS_WKGROUP = (String[]) context.get("PLT_TRS_WKGROUP");
- // 登录人
- String[] PLT_TRS_EMP_ID = (String[]) context.get("PLT_TRS_EMP_ID");
- String[] PLT_TRS_EMP_NM = (String[]) context.get("PLT_TRS_EMP_NM");
- // 板坯号SLAB_NO
- String[] SLAB_NO = (String[]) context.get("SLAB_NO");
- // 移送时间PLT_TRS_DTIME
- String[] PLT_TRS_DTIME = (String[]) context.get("PLT_TRS_DTIME");
- // 选择项,如果选择响为Y的才让它更新数据库。在前台只要是点击过选择按钮的数据都会发到后台来
- String[] CHK = (String[]) context.get("CHK");
- // 从前台获取的,移送货单的值,这里的值肯定是存在的取的是选择项的
- String[] CUR_LOAD_LOC = (String[]) context.get("CUR_LOAD_LOC");
- // 炉次号
- String[] CHARGE_NO = (String[]) context.get("CHARGE_NO");
- // 外观等级
- String[] EXTSHAPE_GRD = (String[]) context.get("EXTSHAPE_GRD");
- // 成分等级
- String[] SLAB_INGR_DEC_GRD = (String[]) context
- .get("SLAB_INGR_DEC_GRD");
- // 瑕疵代码1
- String[] CRK_CD1 = (String[]) context.get("CRK_CD1");
- // 瑕疵代码2
- String[] CRK_CD2 = (String[]) context.get("CRK_CD2");
- // 瑕疵代码3
- String[] CRK_CD3 = (String[]) context.get("CRK_CD3");
- // 瑕疵代码4
- String[] CRK_CD4 = (String[]) context.get("CRK_CD4");
- // 合同号码
- String[] ORD_NO = (String[]) context.get("L2_SCH_NO");
- // 钢码
- String[] STL_GRD = (String[]) context.get("STL_GRD");
- // 板坯厚度
- String[] SLAB_THK = (String[]) context.get("SLAB_THK");
- // 板坯宽度
- String[] SLAB_WTH = (String[]) context.get("SLAB_WTH");
- // 板坯长度
- String[] SLAB_LEN = (String[]) context.get("SLAB_LEN");
- // 板坯重量
- String[] SLAB_WGT = (String[]) context.get("SLAB_WGT");
- //称重重量
- String[] WEIGHT_WGT = (String[])context.get("WEIGHT_WGT");
-
- String CC_DEVNO = "";
- CallableStatement cstm = null;
- // 该炉次所对应的中厚板厂的板坯号
- String[] dsnSlabNo = new String[SLAB_NO.length];
- PosParameter param = null;
- PosRow rnm = null;
- for (int i = 0; i < SLAB_NO.length; i++) {
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_NO[i]);
- PosRowSet rowSet = getDao("mesdao").find(
- "UIG040090_DSN_SLAB_NO.select", param);
- if (rowSet.hasNext()) {
- rnm = rowSet.next();
- dsnSlabNo[i] = (String) rnm.getAttribute("DSN_SLAB_NO");
- }
- }
- // 炉次对应的成份信息
- BigDecimal C = null;
- BigDecimal SI = null;
- BigDecimal MN = null;
- BigDecimal P = null;
- BigDecimal S = null;
- BigDecimal NI = null;
- BigDecimal CR = null;
- BigDecimal CU = null;
- BigDecimal TI = null;
- BigDecimal V = null;
- BigDecimal MO = null;
- BigDecimal B = null;
- BigDecimal W = null;
- BigDecimal AL = null;
- BigDecimal ALS = null;
- BigDecimal ALT = null;
- BigDecimal ZN = null;
- BigDecimal PB = null;
- BigDecimal SN = null;
- BigDecimal CA = null;
- BigDecimal LA = null;
- BigDecimal SB = null;
- BigDecimal CE = null;
- BigDecimal SE = null;
- BigDecimal MG = null;
- BigDecimal NB = null;
- BigDecimal O = null;
- BigDecimal N = null;
- BigDecimal H = null;
- BigDecimal FE = null;
- BigDecimal AS = null;
- BigDecimal XTZ = null;
- BigDecimal CD = null;
- BigDecimal CS = null;
- BigDecimal ZR = null;
- BigDecimal PSR = null;
- BigDecimal L2AS = null;
- BigDecimal BI = null;
- // 这里必须取选中的记录才有意义,所以选择项必须为Y
- // 这里在后台不好处理,所以放在前台,如果选中的项为空就给予提示不准许提交。还是默认取第一个
- // 在插入发送到中厚板的表时需要判断移送货单号是否存在,如果存在的话要给出提示。让插入失败
- String sql = "select TRS_INVOICE_NO from tbg04_slab_transf where STAT_CD = '0' AND TRS_INVOICE_NO = ? and SLAB_NO = ? ";
- // 把现在的货单号为条件放入查询语句中,如果可以查出结果说明货单号存在,如果查不出结果说明可以插入
- PosParameter param2 = new PosParameter();
- // 如果行数不为空
- if (status != null) {
- // 循环取出每一行的内容
- // 更新表TBG02_SLAB_COMM
- for (int i = 0; i < status.length; i++) {
- param2 = new PosParameter();
- param2.setWhereClauseParameter(0, PLT_TRS_INVOICE_NO[i]
- + PLT_TRS_INVOICE_NO_MANUAL[i]);
- param2.setWhereClauseParameter(1, SLAB_NO[i]);
- PosRowSet rows = getDao("mesdao").findByQueryStatement(sql,
- param2);
- if (rows.hasNext()) {
- context.put("MESSAGES", " 移送货单号已经存在! ");
- return PosBizControlConstants.SUCCESS;
- }
- // 在后台判断,如果选择标识为Y的才可以进行相关的数据库操作
- if (CHK[i].equals("Y")) {
- // 取出需要发送中厚板的成分信息
- PosParameter param3 = new PosParameter();
- param3.setWhereClauseParameter(0,CHARGE_NO[i]);
- PosRowSet chemRows = getDao("mesdao").find(
- "UIG040090_05.select", param3);
- if(chemRows.hasNext()){
- PosRow chemRow = chemRows.next();
- CC_DEVNO = (String)chemRow.getAttribute("CC_DEVNO");
- }
-
- param3 = new PosParameter();
- param3.setWhereClauseParameter(0, CHARGE_NO[i]);
- // 成分数据对象为
- chemRows = getDao("mesdao").find(
- "UIG040090_03.select", param3);
- PosRow chemRow = null;
- // 如果炉次不存在成分的情况
- if (chemRows.hasNext()) {
- chemRow = chemRows.next();
- // 获取具体的成分信息
- C = (BigDecimal) chemRow.getAttribute("C");
- MN = (BigDecimal) chemRow.getAttribute("MN");
- S = (BigDecimal) chemRow.getAttribute("S");
- P = (BigDecimal) chemRow.getAttribute("P");
- SI = (BigDecimal) chemRow.getAttribute("SI");
- CR = (BigDecimal) chemRow.getAttribute("CR");
- NI = (BigDecimal) chemRow.getAttribute("NI");
- CU = (BigDecimal) chemRow.getAttribute("CU");
- MO = (BigDecimal) chemRow.getAttribute("MO");
- V = (BigDecimal) chemRow.getAttribute("V");
- TI = (BigDecimal) chemRow.getAttribute("TI");
- ALS = (BigDecimal) chemRow.getAttribute("ALS");
- ALT = (BigDecimal) chemRow.getAttribute("ALT");
- NB = (BigDecimal) chemRow.getAttribute("NB");
- AL = (BigDecimal) chemRow.getAttribute("AL");
- N = (BigDecimal) chemRow.getAttribute("N");
- AS = (BigDecimal) chemRow.getAttribute("AS");
- SN = (BigDecimal) chemRow.getAttribute("SN");
- CA = (BigDecimal) chemRow.getAttribute("CA");
- B = (BigDecimal) chemRow.getAttribute("B");
- PB = (BigDecimal) chemRow.getAttribute("PB");
- ZN = (BigDecimal) chemRow.getAttribute("ZN");
- XTZ = (BigDecimal) chemRow.getAttribute("XTZ");
- LA = (BigDecimal) chemRow.getAttribute("LA");
- SB = (BigDecimal) chemRow.getAttribute("SB");
- SE = (BigDecimal) chemRow.getAttribute("SE");
- MG = (BigDecimal) chemRow.getAttribute("MG");
- CD = (BigDecimal) chemRow.getAttribute("CD");
- O = (BigDecimal) chemRow.getAttribute("O");
- H = (BigDecimal) chemRow.getAttribute("H");
- FE = (BigDecimal) chemRow.getAttribute("FE");
- CS = (BigDecimal) chemRow.getAttribute("CS");
- ZR = (BigDecimal) chemRow.getAttribute("ZR");
- PSR = (BigDecimal) chemRow.getAttribute("PSR");
- W = (BigDecimal) chemRow.getAttribute("W");
- L2AS = (BigDecimal) chemRow.getAttribute("L2AS");
- BI = (BigDecimal) chemRow.getAttribute("BI");
- /*配重自动审核*/
- 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();
- }
- }
- }
- param2 = new PosParameter();
- param2.setWhereClauseParameter(0, SLAB_NO[i]);
- PosRowSet SlabRows = getDao("mesdao").findByQueryStatement("SELECT NVL(WEIGHT_WGT*1000,0) WEIGHT_WGT FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?",param2);
- if (SlabRows.hasNext()) {
- PosRow slabRow = SlabRows.next();
- WEIGHT_WGT[i] = ((BigDecimal)slabRow.getAttribute("WEIGHT_WGT")).intValue() + "";
- }
-
-
- // 同时还需要把记录插入到发送中厚版工厂的表
- PosParameter param1 = new PosParameter();
- param1.setValueParamter(0, PLT_TRS_INVOICE_NO[i]
- + PLT_TRS_INVOICE_NO_MANUAL[i]);
- param1.setValueParamter(1, PLT_TRS_CAR_NO[i]);
- param1.setValueParamter(2, SLAB_NO[i]);
- // param1.setValueParamter(3, PLT_TRS_DTIME[i]);
- param1.setValueParamter(3, PLT_PLANT_ARRV_LOC[i]);
- param1.setValueParamter(4, CHARGE_NO[i]);
- param1.setValueParamter(5, ORD_NO[i]);
- param1.setValueParamter(6, STL_GRD[i]);
- param1.setValueParamter(7, SLAB_THK[i]);
- param1.setValueParamter(8, SLAB_WTH[i]);
- param1.setValueParamter(9, SLAB_LEN[i]);
- if(StringUtils.isBlank(WEIGHT_WGT[i]) || "0".equals(WEIGHT_WGT[i]) || WEIGHT_WGT[i] == null){
- param1.setValueParamter(10, SLAB_WGT[i]);
- }else{
- param1.setValueParamter(10, WEIGHT_WGT[i]);
- }
- param1.setValueParamter(11, SLAB_INGR_DEC_GRD[i]);
- param1.setValueParamter(12, EXTSHAPE_GRD[i]);
- // 瑕疵代码是把编号和内容一起传过来的,这里分别截取相应的位置
- param1.setValueParamter(13,
- CRK_CD1[i].length() == 0 ? "" : CRK_CD1[i]
- .substring(0, 2));
- param1.setValueParamter(14,
- CRK_CD1[i].length() == 0 ? "" : CRK_CD1[i]
- .substring(2, CRK_CD1[i].length()));
- param1.setValueParamter(15,
- CRK_CD2[i].length() == 0 ? "" : CRK_CD2[i]
- .substring(0, 2));
- param1.setValueParamter(16,
- CRK_CD2[i].length() == 0 ? "" : CRK_CD2[i]
- .substring(2, CRK_CD2[i].length()));
- param1.setValueParamter(17,
- CRK_CD3[i].length() == 0 ? "" : CRK_CD3[i]
- .substring(0, 2));
- param1.setValueParamter(18,
- CRK_CD3[i].length() == 0 ? "" : CRK_CD3[i]
- .substring(2, CRK_CD3[i].length()));
- param1.setValueParamter(19,
- CRK_CD4[i].length() == 0 ? "" : CRK_CD4[i]
- .substring(0, 2));
- param1.setValueParamter(20,
- CRK_CD4[i].length() == 0 ? "" : CRK_CD4[i]
- .substring(2, CRK_CD4[i].length()));
- param1.setValueParamter(21, C);
- param1.setValueParamter(22, MN);
- param1.setValueParamter(23, S);
- param1.setValueParamter(24, P);
- param1.setValueParamter(25, SI);
- param1.setValueParamter(26, CR);
- param1.setValueParamter(27, NI);
- param1.setValueParamter(28, CU);
- param1.setValueParamter(29, MO);
- param1.setValueParamter(30, V);
- param1.setValueParamter(31, TI);
- param1.setValueParamter(32, ALS);
- param1.setValueParamter(33, ALT);
- param1.setValueParamter(34, NB);
- param1.setValueParamter(35, AL);
- param1.setValueParamter(36, N);
- param1.setValueParamter(37, AS);
- param1.setValueParamter(38, SN);
- param1.setValueParamter(39, CA);
- param1.setValueParamter(40, B);
- param1.setValueParamter(41, PB);
- param1.setValueParamter(42, ZN);
- param1.setValueParamter(43, XTZ);
- param1.setValueParamter(44, LA);
- param1.setValueParamter(45, SB);
- param1.setValueParamter(46, SE);
- param1.setValueParamter(47, MG);
- param1.setValueParamter(48, CD);
- param1.setValueParamter(49, O);
- param1.setValueParamter(50, H);
- param1.setValueParamter(51, FE);
- param1.setValueParamter(52, CS);
- param1.setValueParamter(53, ZR);
- param1.setValueParamter(54, PSR);
- param1.setValueParamter(55, W);
- param1.setValueParamter(56, hcrClf[i]);
- param1.setValueParamter(57, dsnSlabNo[i]);
- param1.setValueParamter(58, L2AS);
- param1.setValueParamter(59, BI);
- param1.setValueParamter(60, CC_DEVNO);
- getDao("mesdao").insert("UIG040090_01.insert", param1);
- // 打印日志
- PosSiteLog.writeLog(context, getDao("mesdao"),
- "UIG040090_01.insert", param1
- .getValueParameters());
- // 更新表TBG02_SLAB_COMM,这里不传入板坯瑕疵信息。板坯公共表的瑕疵信息字段可能在别的地方使用。
- PosParameter param0 = new PosParameter();
- param0.setWhereClauseParameter(0, PLT_TRS_CAR_NO[i]);
- param0.setWhereClauseParameter(1, PLT_TRS_INVOICE_NO[i] + PLT_TRS_INVOICE_NO_MANUAL[i]);
- param0.setWhereClauseParameter(2,PLT_PLANT_ARRV_LOC[i]);
- param0.setWhereClauseParameter(3, PLT_TRS_WKSHIFT[i]);
- param0.setWhereClauseParameter(4, PLT_TRS_WKGROUP[i]);
- param0.setWhereClauseParameter(5, PLT_TRS_EMP_ID[i]);
- param0.setWhereClauseParameter(6, SLAB_NO[i]);
- // 从维护的公共表查出数据,供更新页面使用
- getDao("mesdao").update("UIG040090_02.update", param0);
- param0 = new PosParameter();
- param0.setWhereClauseParameter(0, SLAB_NO[i]);
- getDao("mesdao").update("UIG040090_SLAB_YARD.update",
- param0);
- /*
- * try { cstm =
- * getDao("mesdao").getCallableStatement("UIG040090_01.CALL"
- * ); cstm.setString(1, SLAB_NO[i]);
- * cstm.registerOutParameter(2,
- * java.sql.Types.VARBINARY); //cstm.execute();
- * }catch(Exception ex) { ex.printStackTrace(); }
- * finally { if(cstm != null) { try { cstm.close(); }
- * catch(Exception e) { e.printStackTrace(); } } }
- *
- * BigDecimal SlabWgt = new BigDecimal(SLAB_WGT[i]);
- *
- *
- * //SendProg_NIE012070(SLAB_NO[i],"","","","","RGF","RGB"
- * ,"TM",SlabWgt); //SendProg_NIE012080();
- */
- // 打印日志
- PosSiteLog.writeLog(context, getDao("mesdao"),
- "UIG040090_01.update", param0
- .getValueParameters());
-
- /*财务数据上抛*/
- try{
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, SLAB_NO[i]);
- cstm.setString(2, "55A");
- cstm.setString(3, "N");
- cstm.setString(4, "板坯移送中厚板");
- cstm.setString(5, StringUtils.isBlank(PLT_TRS_EMP_NM[0])?"3qAdmin00":PLT_TRS_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);
- }
- }catch (Exception e) {
- // TODO: handle exception
- }finally{
- if (cstm != null){
- try{
- cstm.close();
- }
- catch (SQLException e){
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- } else {
- logger.logDebug("UIG040090,查询tbb02_work_ingr表,炉次没有相应的成分信息!");
- String vtemp = " 缺少炉次成份信息 !";
- context.put("MESSAGES", vtemp);
- }
- }
- }
- }
- return PosBizControlConstants.SUCCESS;
- }
- public PosContext SendProg_NIE012070(String MatNo, String sOrdNo,
- String sOrdSeq, String sBefOrdNo, String sBefOrdSeq,
- String sProgCd, String BefProcCd, String sKind, BigDecimal nwgt) {
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
- String TcId = "NIE012070";
- message.setTCID(TcId);
- message.setObject("MSG_ID", TcId);
- message.setObject("BEF_ORD_NO", sBefOrdNo);
- message.setObject("BEF_ORD_SEQ", sBefOrdSeq);
- message.setObject("ORD_NO", sOrdNo);
- message.setObject("ORD_SEQ", sOrdSeq);
- message.setObject("BEF_PROG_CD", BefProcCd);
- message.setObject("PROG_CD", sProgCd);
- message.setObject("MAT_TYPE", sKind);
- message.setObject("MAT_NO", MatNo);
- message.setObject("WGT", nwgt);
- message.setObject("PGMID", "UIG040090");
- message.setObject("REG_ID", "UIG040090");
- message.setTCID(TcId);
- context.setMessage(message);
- // this.processComponent(PosConstants.CREATE_MESSAGE, context);
- // String transactionCode = context.getMessage().getTC();
- String SERVICE_POSTFIX = "-service";
- context
- .put(PosBizControlConstants.SERVICE_NAME, TcId
- + SERVICE_POSTFIX);
- // context.setMessage(message);
- PosBizControlIF controller = PosBizProvider.getController();
- controller.doSubController(context, false);
- return null;
- }
- public String SendProg_NIE012080() {
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
- String TcId = "NIE012080";
- message.setTCID(TcId);
- message.setObject("MSG_ID", TcId);
- message.setObject("AA", null);
- 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_NIE012080 SERVICE_ERR_MSG:"
- + SERVICE_ERR_MSG);
- if (SERVICE_ERR_MSG != null) {
- throw new PosException(SERVICE_ERR_MSG);
- }
- return null;
- }
- }
|