| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- package xin.glue.ui.G.G02;
- import java.sql.CallableStatement;
- import java.sql.SQLException;
- import org.apache.commons.lang.StringUtils;
- import xin.glue.ui.G.G01.XTBGCOMM;
- import com.posdata.glue.biz.activity.PosActivity;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- 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.PosRow;
- import com.posdata.glue.dao.vo.PosRowSet;
- public class XinDivideCharge extends PosActivity {
- public String runActivity(PosContext context) {
- CallableStatement cstm = null;
- PosGenericDao dao = getDao("mesdao");
- PosParameter param = null;
- PosRowSet rowset = null;
- PosRow row = null;
- String sReturnMsg = "";
-
- String[] chk = (String[])context.get("CHK");
- String[] divideType = (String[])context.get("DIVIDE_TYPE");
- String[] chargeNo = (String[])context.get("CHARGE_NO");
- String[] subChargeNo = (String[])context.get("SUB_CHARGE_NO");
- String[] slabNo = (String[])context.get("SUB_SLAB_NO");
- String[] subSlabNo = (String[])context.get("SUB_SLAB_NO");
- String[] chargeWgt = (String[])context.get("CHARGE_WGT");
- String[] slabWgt = (String[])context.get("SLAB_WGT");
- String[] subChargeCode = (String[])context.get("SUB_CHARGE_CODE");
- String[] regId = (String[])context.get("REG_ID");
- String[] regShift = (String[])context.get("REG_SHIFT");
- String[] regGroup = (String[])context.get("REG_GROUP");
- String[] chemSeq = (String[])context.get("CHEM_SEQ");
- String[] SLAB_NO = (String[])context.get("SLAB_NO");
- String[] REG_EMP_ID = (String[])context.get("REG_EMP_ID");
- if(divideType == null ){ return "SUCCESS";}
- String subChNo = "" ;
- String chNo = "";
- String chmSq = "";
- String newSlabNo = "";
- for(int i = 0 ; i < divideType.length ; i++){
- if(!chk[i].equals("Y")){continue;}
-
-
- subChNo = subChargeNo[i];
- chNo = subChargeNo[i].substring(0, 9).trim() + subChargeCode[i].trim();
- chmSq = chemSeq[i];
- newSlabNo = subChargeNo[i].substring(0, 9).trim() + subChargeCode[i].trim() + SLAB_NO[i].substring(10,13);
- //炉次
- /*if(divideType[i].equals("C")){
- //检查有板坯切割以后,不能直接根据钢水分炉,必须从板坯划分
- param = new PosParameter();
- param.setWhereClauseParameter(0, chargeNo[i]);
- rowset = dao.find("UIG020090_SLAB_CUTED_CHEK", param);
- if(rowset.hasNext()){
- context.put("MESSAGES", " 板坯切割完成,不能操作! ");
- return PosBizControlConstants.SUCCESS;
- }
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, "Y");
- param.setWhereClauseParameter(1, chargeNo[i]);
- dao.update("UIG020090_CHARGE_COMM_DIVIDE_UPDATE", param);
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, chargeWgt[i]);
- param.setWhereClauseParameter(1, subChargeCode[i]);
- int uptCnt = dao.update("UIG020090_CHARGE_COMMD_WGT_UPDATE", param);
- if(uptCnt == 0){
- param = new PosParameter();
- param.setValueParamter(0, subChargeCode[i]);
- param.setValueParamter(1, chargeWgt[i]);
- param.setValueParamter(2, subChargeCode[i]);
- param.setValueParamter(3, regId[i]);
- param.setValueParamter(4, regShift[i]);
- param.setValueParamter(5, regGroup[i]);
- param.setValueParamter(6, chargeNo[i]);
-
- dao.insert("UIG020090_CHARGE_COMMD_WGT_INSERT", param);
- }
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, chargeNo[i]);
- param.setWhereClauseParameter(1, chargeNo[i]);
- param.setWhereClauseParameter(2, chargeNo[i]);
- param.setWhereClauseParameter(3, chargeNo[i]);
- dao.update("UIG020090_CHARGE_COMMD_WGT_UPDATE_02", param);
-
- //板坯
- }else*/
- if(divideType[i].equals("S")){
-
- if(!newSlabNo.equals(SLAB_NO[i])){
- String sql = "SELECT COILSTAT(T.SLAB_NO) STAT_FLAG FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?";
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_NO[i]);
- rowset = this.getDao("mesdao").findByQueryStatement(sql, param);
- if (rowset.hasNext())//查询库存信息 记录更改跺位之后的库存信息
- {
- row = rowset.next();
- String cntStat = (String)row.getAttribute("STAT_FLAG");//
- if(!"在库".equals(cntStat)){//视为不在库
- context.put("MESSAGES", " 操作失败!" + SLAB_NO[i] + "已不在炼钢库,请退库后再进行操作");
- return PosBizControlConstants.SUCCESS;
- }
- }
- /*财务数据上抛*/
- try{
- /*原板坯号*/
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, SLAB_NO[i]);
- cstm.setString(2, "72AD");
- cstm.setString(3, "N");
- cstm.setString(4, "炉次拆分(板坯)O");
- cstm.setString(5, StringUtils.isBlank(REG_EMP_ID[0])?"3qAdmin00":REG_EMP_ID[0]);
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
-
- String err = cstm.getString(6);
- }catch (Exception e) {
- // TODO: handle exception
- }finally{
- if (cstm != null){
- try{
- cstm.close();
- }
- catch (SQLException e){
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- }
-
- String sqlStr = "select * from tbg02_charge_comm_d where charge_no = ?";
- String para = subChargeNo[i].substring(0, 9).trim() + subChargeCode[i].trim();
- if(!XTBGCOMM.chekRecord(dao,para, sqlStr)){
- param = new PosParameter();
- param.setValueParamter(0, subChargeCode[i]);
- param.setValueParamter(1, "");
- param.setValueParamter(2, subChargeCode[i]);
- param.setValueParamter(3, regId[i]);
- param.setValueParamter(4, regShift[i]);
- param.setValueParamter(5, regGroup[i]);
- param.setValueParamter(6, subChargeNo[i]);
-
- dao.insert("UIG020090_CHARGE_COMMD_WGT_INSERT", param);
- }else{
- param = new PosParameter();
- param.setValueParamter(0, "");
- param.setValueParamter(1, subChargeCode[i]);
- param.setValueParamter(2, regId[i]);
- param.setValueParamter(3, regShift[i]);
- param.setValueParamter(4, regGroup[i]);
- param.setValueParamter(5, subChargeNo[i]);
- param.setValueParamter(6, para);
- dao.insert("UIG020090_CHARGE_COMMD_WGT_UPDATE_03", param);
- }
-
- //是否分炉区分
- param = new PosParameter();
- param.setWhereClauseParameter(0, "Y");
- param.setWhereClauseParameter(1, chargeNo[i]);
- dao.update("UIG020090_CHARGE_COMM_DIVIDE_UPDATE", param);
-
-
- //清空垛位
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_NO[i]);
- dao.update("UIG040060_COMPLUS_FROM_SLAB_NO.update", param);
-
- //所有坯料分炉后都清空判定信息
- param = new PosParameter();
- param.setWhereClauseParameter(0, subChargeCode[i]);
- param.setWhereClauseParameter(1, subChargeCode[i]);
- param.setWhereClauseParameter(2, slabNo[i]);
- dao.update("UIG020090_SLAB_COMM_UPDATE_NEW", param);
-
- /*String sql1 = "SELECT NVL(T1.V_COUNT,0) V_COUNT, T2.HOT_ROLL_REQ_DATE FROM TBG02_SLAB_COMM T "
- + "LEFT JOIN (SELECT SUM(1) V_COUNT, TT.BILLET_XN FROM SCC_BOARD_STEELPLAN_LOG TT "
- + " GROUP BY TT.BILLET_XN) T1 ON T.DSN_SLAB_NO = T1.BILLET_XN "
- + "LEFT JOIN TBF01_SPEC_SLAB T2 ON T.PLAN_SLAB_NO = T2.SLAB_MANA_NO "
- + " WHERE T.SLAB_NO = ?";
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_NO[i]);
- rowset = dao.findByQueryStatement(sql1, param);
- if (rowset.hasNext())
- {
- row = rowset.next();
- String HOT_ROLL_REQ_DATE = (String)row.getAttribute("HOT_ROLL_REQ_DATE");
- int V_COUNT = ((BigDecimal)row.getAttribute("V_COUNT")).intValue();
- if("JH".equals(HOT_ROLL_REQ_DATE) || V_COUNT > 0){
- //一体化计划则清除所有判定结果
- param = new PosParameter();
- param.setWhereClauseParameter(0, subChargeCode[i]);
- param.setWhereClauseParameter(1, subChargeCode[i]);
- param.setWhereClauseParameter(2, slabNo[i]);
- dao.update("UIG020090_SLAB_COMM_UPDATE_NEW", param);
- }else{
- //修改板坯分炉号
- param = new PosParameter();
- param.setWhereClauseParameter(0, subChargeCode[i]);
- param.setWhereClauseParameter(1, subChargeCode[i]);
- param.setWhereClauseParameter(2, slabNo[i]);
- dao.update("UIG020090_SLAB_COMM_UPDATE", param);
- }
- }*/
-
-
-
- //修改分炉次板坯块数,重量
- param = new PosParameter();
- param.setWhereClauseParameter(0, subChargeNo[i]);
- rowset = dao.find("UIG020090_SLAB_COMM_QUERY",param);
- while(rowset.hasNext()){
- row = rowset.next();
- String chgNo = (String)row.getAttribute("CHARGE_NO");
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, regId[i]);
- param.setWhereClauseParameter(1, regShift[i]);
- param.setWhereClauseParameter(2, regGroup[i]);
- param.setWhereClauseParameter(3, chgNo);
- param.setWhereClauseParameter(4, chgNo);
- dao.update("UIG020090_CHARGE_COMMD_UPDATE_02", param);
- }
- }
- if(divideType[0].equals("S")){
- param = new PosParameter();
- param.setWhereClauseParameter(0, subChargeNo[i]);
- param.setWhereClauseParameter(1, subChargeNo[i]);
- dao.update("UIG020090_CHARGE_COMMD_DELETE", param);
- }
-
- if(!newSlabNo.equals(SLAB_NO[i])){
- /*财务数据上抛*/
- try{
- /*新板坯号*/
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, newSlabNo);
- cstm.setString(2, "72AD");
- cstm.setString(3, "N");
- cstm.setString(4, "炉次拆分(板坯)N");
- cstm.setString(5, StringUtils.isBlank(REG_EMP_ID[0])?"3qAdmin00":REG_EMP_ID[0]);
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
-
- String err = cstm.getString(6);
- }catch (Exception e) {
- // TODO: handle exception
- }finally{
- if (cstm != null){
- try{
- cstm.close();
- }
- catch (SQLException e){
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- }
- }
-
- //修改分炉次板坯块数,重量
- try{
- cstm = dao.getCallableStatement("UIG0020090_01.CALLSTATEMENT");
- cstm.setString(1, subChNo);
- cstm.setString(2, chNo);
- cstm.setString(3, chmSq);
- cstm.setString(4, "");
- cstm.registerOutParameter(5, java.sql.Types.VARCHAR);
- cstm.execute();
- sReturnMsg = cstm.getString(5);
-
- System.out.println("------------> " + sReturnMsg + "-----------" + sReturnMsg);
- }catch(Exception ex){
- logger.logError(ex.getMessage(), ex);
- }finally
- {
- if (cstm != null)
- {
- try
- {
- cstm.close();
- }
- catch (SQLException e)
- {
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
-
- context.put("MESSAGES", " 操作成功! ");
- return PosBizControlConstants.SUCCESS;
- }
- }
|