| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487 |
- package xin.glue.ui.G.G04;
- import java.math.BigDecimal;
- import java.sql.CallableStatement;
- import java.sql.SQLException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- 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.PosGenericDao;
- 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 ErrorSalbChek extends PosActivity {
- private PosGenericDao dao = this.getDao("mesdao");
- private PosParameter param = new PosParameter();
- private PosRowSet rowset = null;
- private PosRow row = null;
- private String PLT_TRS_EMP_NM = "";
- public String runActivity(PosContext context) {
- String[] operType = (String[]) context.get("OPER_TYPE");
- String[] SLAB_RTURN = (String[]) context.get("SLAB_RTURN");
- String[] slabNo = (String[]) context.get("SLAB_NO");
- String[] curProgCd = (String[]) context.get("CUR_PROG_CD");
- String[] chk = (String[]) context.get("CHK");
- String[] PLT_TRS_EMP_NM1 = (String[]) context.get("PLT_TRS_EMP_NM");
- PosRowSet rowset = null;
- PosRow row = null;
-
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- PLT_TRS_EMP_NM = (PLT_TRS_EMP_NM1 == null || PLT_TRS_EMP_NM1.length == 0) ?"3qAdmin00":PLT_TRS_EMP_NM1[0];
- if (operType[0].equals("END")) { //END 强制结束
- for (int i = 0; i < slabNo.length; i++) {
- if (!chk[i].equals("Y"))
- continue;
- if (curProgCd[0].equals("RBB")) {
- context.put("MESSAGES", slabNo[i] + "已经制定轧制计划,请先取消轧制计划!");
- return PosBizControlConstants.SUCCESS;
- }// else if(curProgCd[0].equals("RBA")){
- // SendProg_NIF024060(slabNo[i],"M");
- // }
- String sql = "SELECT COILSTAT(T.SLAB_NO) STAT_FLAG,TO_CHAR(TO_DATE(T.SLAB_CUT_DTIME,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') SLAB_CUT_DTIME1 FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?";
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo[i]);
- rowset = dao.findByQueryStatement(sql, param);
- if (rowset.hasNext())//查询库存信息 已出库板坯不允许强制结束
- {
- row = rowset.next();
- Calendar nowCal = Calendar.getInstance();
- int nowMonth = nowCal.get(Calendar.MONTH) + 1;
-
- Calendar cutCal = Calendar.getInstance();
- try {
- cutCal.setTime(sdf.parse((String)row.getAttribute("SLAB_CUT_DTIME1")));
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- int cutMonth = cutCal.get(Calendar.MONTH) + 1;
- if(nowMonth > cutMonth){
- context.put("MESSAGES", slabNo[i] + "板坯已关帐,不允许强制结束");
- return PosBizControlConstants.SUCCESS;
- }
- String stat = (String)row.getAttribute("STAT_FLAG");//
- if(!"在库".equals(stat)){
- context.put("MESSAGES", slabNo[i] + "板坯已出炼钢库,不允许强制结束,请核实");
- return PosBizControlConstants.SUCCESS;
- }
- }
- if(!"X01519".equals(PLT_TRS_EMP_NM) && !"sdf".equals(PLT_TRS_EMP_NM) && !"XL005001".equals(PLT_TRS_EMP_NM)){
- context.put("MESSAGES", "强制结束只可由限定账号操作,请联系相关人员");
- return PosBizControlConstants.SUCCESS;
- }
- forceEndSlab(slabNo[i]);
- }
- } else if (operType[0].equals("BCK") || operType[0].equals("CHF")
- || operType[0].equals("ZHK")) { //CHF 切废 ZHK 转废钢库 BCK 强制退回
- for (int i = 0; i < slabNo.length; i++) {
- if (!chk[i].equals("Y"))
- continue;
- if (curProgCd[0].equals("RBB")) {
- context.put("MESSAGES", slabNo[i] + "已经制定轧制计划,请先取消轧制计划!");
- return PosBizControlConstants.SUCCESS;
- }
- String sql = "SELECT COILSTAT(T.SLAB_NO) STAT_FLAG FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?";
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo[i]);
- rowset = dao.findByQueryStatement(sql, param);
- if (rowset.hasNext())//查询库存信息 已做过下列操作的不允许再操作
- {
- row = rowset.next();
- String stat = (String)row.getAttribute("STAT_FLAG");//
- if("利库母坯".equals(stat)){
- context.put("MESSAGES", slabNo[i] + "板坯已利库,不允许再进行此操作");
- return PosBizControlConstants.SUCCESS;
- }
- if("强制结束".equals(stat)){
- context.put("MESSAGES", slabNo[i] + "板坯已强制结束,不允许再进行此操作");
- return PosBizControlConstants.SUCCESS;
- }
- /*if("废钢库".equals(stat)){
- context.put("MESSAGES", slabNo[i] + "板坯已进入废钢库,不允许再进行此操作");
- return PosBizControlConstants.SUCCESS;
- }*/
- if("切废".equals(stat)){
- context.put("MESSAGES", slabNo[i] + "板坯已切废,不允许再进行此操作");
- return PosBizControlConstants.SUCCESS;
- }
- }
- /*热轧已入炉且处于上料,轧制完成的不可以退回到炼钢库*/
- if(operType[0].equals("BCK")){
- String sql1 = "select t.RHF_STAT from tbh02_reheatfur t where t.SLAB_NO like ?||'%' ";
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo[i]);
- rowset = dao.findByQueryStatement(sql1, param);
- if (rowset.hasNext())
- {
- row = rowset.next();
- String RHF_STAT = (String)row.getAttribute("RHF_STAT");
- if(!"3".equals(RHF_STAT)){
- context.put("MESSAGES", "此坯料处于轧制上料或者轧制完成状态,不可退回炼钢库");
- return PosBizControlConstants.SUCCESS;
- }
- }
- }
- String err = forceRebackSlab(slabNo[i], SLAB_RTURN[0], operType[0]);
- if(!err.contains("成功")){
- context.put("MESSAGES", err);
- return PosBizControlConstants.SUCCESS;
- }
- }
- }
- context.put("MESSAGES", " 操作成功!");
- return PosBizControlConstants.SUCCESS;
- }
- private void forceEndSlab(String slabNo) {
- CallableStatement cstm = null;
- param = new PosParameter();
- param.setWhereClauseParameter(0, "5");
- param.setWhereClauseParameter(1, "3");
- param.setWhereClauseParameter(2, slabNo);
- dao.update("NIG020610_SLAB_END.update", param);
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- dao.update("NIG020610_SLAB_END_D.update", param);
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- dao.update("UIG040060_COMPLUS_FROM_SLAB_NO.update", param);
-
- /*财务数据上抛 强制结束的板坯也需要上传*/
- try{
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, slabNo);
- cstm.setString(2, "11A");
- cstm.setString(3, "D");
- cstm.setString(4, "板坯强制结束");
- cstm.setString(5, PLT_TRS_EMP_NM);
- cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
- cstm.execute();
- String err = cstm.getString(6);
- String er1 = "";
- }catch (Exception e) {
- // TODO: handle exception
- }finally{
- if (cstm != null){
- try{
- cstm.close();
- }
- catch (SQLException e){
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- }
- private String forceRebackSlab(String slabNo, String SLAB_RTURN,
- String operType) {
- // 增加降级历史记录 20101227 wxy
- CallableStatement cstm = null;
- //param = new PosParameter();
- try {
- cstm = this.getDao("mesdao").getCallableStatement(
- "ORD_HIS_INSERT.call");
- cstm.setString(1, "B");
- cstm.setString(2, "S");
- cstm.setString(3, "");
- cstm.setString(4, "UIG040700");
- cstm.setString(5, "");
- cstm.setString(6, "");
- cstm.setString(7, "");
- cstm.setString(8, slabNo);
- cstm.setString(9, "TM");
- cstm.setString(10, "");
- cstm.setString(11, "");
- cstm.setString(12, "");
- cstm.setString(13, "");
- cstm.execute();
- } catch (Exception ex) {
- logger.logError(ex.getMessage(), ex);
- } finally {
- if (cstm != null) {
- try {
- cstm.close();
- } catch (SQLException e) {
- logger.logWarn(e.getMessage(), e);
- }
- }
- }
- // end 增加降级历史记录
-
-
- if (operType.equals("BCK")) {//强制退回
- String sql = "SELECT COILSTAT(T.SLAB_NO) STAT_FLAG FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?";
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- rowset = dao.findByQueryStatement(sql, param);
- if (rowset.hasNext())//查询库存信息 热轧切废不发送移动点,炼钢切废发送
- {
- row = rowset.next();
- String stat = (String)row.getAttribute("STAT_FLAG");//
- if("在库".equals(stat) || "利库母坯".equals(stat)){
- return "坯料"+slabNo+"已是"+stat+",不可再退回,请核实";
- }
- }
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_RTURN);
- param.setWhereClauseParameter(1, slabNo);
- dao.update("UIG040700_SLAB_BACK.update", param);
-
- //清除时要退回原跺位
- int updateCnt = new YardHandle(getDao("mesdao")).clearFromAddrBySlabNo(slabNo);
-
- /*财务数据上抛*/
- try{
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, slabNo);
- cstm.setString(2, "55A");
- cstm.setString(3, "D");
- cstm.setString(4, "板坯退热轧库(强制)");
- cstm.setString(5, PLT_TRS_EMP_NM);
- 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);
- }
- }
- }
- } else if ((operType.equals("CHF"))) {//切废
- String sql = "SELECT COILSTAT(T.SLAB_NO) STAT_FLAG FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?";
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- rowset = dao.findByQueryStatement(sql, param);
- if (rowset.hasNext())//查询库存信息 热轧切废不发送移动点,炼钢切废发送
- {
- row = rowset.next();
- String stat = (String)row.getAttribute("STAT_FLAG");//
- if("在库".equals(stat)){
- /*切废新增发送异动点 jiangxin 20220304*/
- try{
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, slabNo);
- cstm.setString(2, "11AD");
- cstm.setString(3, "N");
- cstm.setString(4, "板坯切废");
- cstm.setString(5, PLT_TRS_EMP_NM);
- 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);
- }
- }
- }
- }
- }
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_RTURN);
- param.setWhereClauseParameter(1, slabNo);
- dao.update("UIG040700_SLAB_CHF.update", param);
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- dao.update("UIG040700_CHF_YARD.update", param);
-
- } else if ((operType.equals("ZHK"))) {//转废钢库
- //转入废钢库的坯料必须判废
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- String querysql = "SELECT T.SLAB_TOT_DEC_GRD FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO = ?";
- rowset = dao.findByQueryStatement(querysql, param);
- if(rowset.hasNext()){
- row = rowset.next();
- String SLAB_TOT_DEC_GRD = (String)row.getAttribute("SLAB_TOT_DEC_GRD");
- if(StringUtils.isBlank(SLAB_TOT_DEC_GRD) || !"8".equals(SLAB_TOT_DEC_GRD)){
- return "坯料"+slabNo+"综判未判废,不允许转入废钢库,请联系质检";
- }
- }
-
- param = new PosParameter();
- param.setWhereClauseParameter(0, SLAB_RTURN);
- param.setWhereClauseParameter(1, slabNo);
- dao.update("UIG040700_SLAB_ZHK.update", param);
- param = new PosParameter();
- param.setWhereClauseParameter(0, slabNo);
- dao.update("UIG040700_CHF_YARD.update", param);
-
- /*财务数据上抛 转废钢库不再抛送异动点
- try{
- cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
- cstm.setString(1, slabNo);
- cstm.setString(2, "11A");
- cstm.setString(3, "D");
- cstm.setString(4, "板坯转废钢库");
- cstm.setString(5, PLT_TRS_EMP_NM);
- 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);
- }
- }
- }*/
- }
- return "操作成功";
- }
- public String SendProg_NIE012070(String MatNo, String sOrdNo,
- String sOrdSeq, String sBefOrdNo, String sBefOrdSeq,
- String sProgCd, String sBefProgCd, String sKind, String nwgt) {
- logger.logInfo("PosSaveSlabCutting---> nwgt:" + nwgt);
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
- BigDecimal Wgt = new BigDecimal(nwgt);
- 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", sBefProgCd);
- message.setObject("PROG_CD", sProgCd);
- message.setObject("MAT_TYPE", sKind);
- message.setObject("MAT_NO", MatNo);
- message.setObject("WGT", Wgt);
- message.setObject("PGMID", "PosSaveSlabCutting");
- message.setObject("REG_ID", "UIG020060");
- 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;
- }
- 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;
- }
- // call mill scheduling reject service class
- public void SendProg_NIF024060(String SlabNo, String RejType) {
- logger.logInfo("PosSaveMissionNo SendProg_NIF024060 ");
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
- String TcId = "NIF024060";
- message.setTCID(TcId);
- message.setObject("MSG_ID", TcId);
- message.setObject("TYPE", RejType);
- message.setObject("FROM", SlabNo);
- message.setObject("TO", SlabNo);
- message.setObject("REG_ID", "UIG020060");
- 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);
- }
- }
|