| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533 |
- package xin.glue.ui.H.H05;
- import java.math.BigDecimal;
- import java.sql.CallableStatement;
- import java.sql.SQLException;
- import java.text.DateFormat;
- import java.text.DecimalFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import xin.glue.ui.common.PosGridSave;
- import xin.glue.ui.common.component.PosSiteLog;
- 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.vo.PosParameter;
- import com.posdata.glue.dao.vo.PosRow;
- import com.posdata.glue.dao.vo.PosRowSet;
- /*
- * 这里做钢卷的盘入盘出操作。必须设置权限
- * @author TangLiang 唐亮
- * @data 2009.07.11
- */
- public class SaveCOIL_IO extends PosActivity {
- public String runActivity(PosContext context) {
- try {
- // 钢卷号
- String[] coil_no = (String[]) context.get("coil_no");
- // 盘出
- String[] COIL_OUT = (String[]) context.get("COIL_OUT");
- // 盘入
- String[] COIL_IN = (String[]) context.get("COIL_IN");
- //外卖盘出
- String[] COIL_SALE = (String[]) context.get("COIL_SALE");
- // 废钢盘出
- String[] COIL_END = (String[]) context.get("COIL_END");
- // 操作人
- String[] REG_ID = (String[]) context.get("REG_ID");
- // 盘入的垛位
- String[] CUR_LOAD_LOC = (String[]) context.get("CUR_LOAD_LOC");
- String coil_no_tmp = null;
- String OLD_SAMPL_NO = null;
- String CUR_LOAD_LOC_TMP = null;
- String OLD_SAMPL_NO_TMP = null;
- String CUR_PROG_CD = null;
- String coil_stat = null;
- String SHIP_PROG_CD = null;
- // 这里的是钢卷的状态
- String CUR_PROG_CD_C = null;
- String TRNF_DTIME = null;
- String slab_no = null;
- String ordNo = "";
- String ordSeq = "";
- String ordFl = "";
- // 判断是做盘入操作还是做盘出操作
- if (COIL_IN[0].equals("1") && "".equals(COIL_OUT[0])&&"".equals(COIL_SALE[0])&&"".equals(COIL_END[0])) {
- // 这里做盘入操作,首先要检查钢卷号是否存在系统。不存在的情况下给予提示
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0, coil_no[0]);
- PosRowSet rows = getDao("mesdao").find("UIH051600_02.select",
- param1);
- if (rows.hasNext()) {
- PosRow row = rows.next();
- OLD_SAMPL_NO = (String) row.getAttribute("OLD_SAMPL_NO");
- coil_no_tmp = (String) row.getAttribute("COIL_NO");
- slab_no = (String) row.getAttribute("SLAB_NO");
- coil_stat = (String) row.getAttribute("COIL_STAT");
- CUR_PROG_CD_C = (String) row.getAttribute("CUR_PROG_CD");
- TRNF_DTIME = (String) row.getAttribute("TRNF_DTIME");
- SHIP_PROG_CD = (String) row.getAttribute("SHIP_PROG_CD");
- // add by jungan 2010-12-27 插入降余材历史记录
- ordNo = row.getAttribute("ORD_NO") != null ? ((String) row.getAttribute("ORD_NO")).trim() : "";
- ordSeq = row.getAttribute("ORD_SEQ") != null ?((String) row.getAttribute("ORD_SEQ")).trim() : "";
- ordFl = row.getAttribute("ORD_FL") != null ? ((String) row.getAttribute("ORD_FL")).trim() : "";
- if (!"".equals(OLD_SAMPL_NO) && null != OLD_SAMPL_NO) {
- // 这里必须加入此卷是否已经正常发货的提示,正常发货的卷暂时不允许发货
- if (coil_stat.equals("3")
- && ((CUR_PROG_CD_C.equals("SFF")
- && TRNF_DTIME != null
- && SHIP_PROG_CD.equals("08")) || CUR_PROG_CD_C.equals("SGF"))) {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘入库的" + coil_no_tmp
- + "属于正常发货出库,不能进行盘入操作!");
- String vtemp = "FAHUO";
- context.put("rs", vtemp);
- } else {
- if (!"".equals(CUR_LOAD_LOC[0])
- && null != CUR_LOAD_LOC[0]) {
- // 这里还需要判断垛位上是否存在卷信息
- PosParameter param11 = new PosParameter();
- param11.setWhereClauseParameter(0,
- CUR_LOAD_LOC[0]);
- PosRowSet rows1 = getDao("mesdao").find(
- "UIH051600_04.select", param11);
- if (rows1.hasNext()) {
- PosRow row1 = rows1.next();
- CUR_LOAD_LOC_TMP = (String) row1
- .getAttribute("COIL_NO");
- if ("".equals(CUR_LOAD_LOC_TMP)
- || null == CUR_LOAD_LOC_TMP) {
- // 人工盘入库的卷,改为余材
- // 更新钢卷公共表
- PosParameter param2 = new PosParameter();
- param2.setWhereClauseParameter(0,
- CUR_LOAD_LOC[0]);
- param2.setWhereClauseParameter(1,
- REG_ID[0]);
- param2.setWhereClauseParameter(2,
- OLD_SAMPL_NO);
- getDao("mesdao").update(
- "UIH051600_01.update", param2);
- // add by jungan 2010-12-27 插入降余材历史记录
- if (ordFl.equals("1")) {
- CallableStatement cstm = getDao(
- "mesdao")
- .getCallableStatement(
- "UIH051600_01.call");
- cstm.setString(1, "B");
- cstm.setString(2, "S");
- cstm.setString(3, REG_ID[0]);
- cstm.setString(4, "UIH051600");
- cstm.setString(5, "");
- cstm.setString(6, "");
- cstm.setString(7, "");
- cstm.setString(8, OLD_SAMPL_NO);
- cstm.setString(9, "CR");
- cstm.setString(10, ordNo);
- cstm.setString(11, ordSeq);
- cstm.setString(12, "");
- cstm.setString(13, "");
- boolean res = cstm.execute();
- cstm.close();
- logger
- .logInfo("UIM051600 SaveCOIL_IO 盘入保存历史记录结果 : "
- + res);
- }
- // 更新钢卷公共_D 表
- PosParameter param3 = new PosParameter();
- param3.setWhereClauseParameter(0,
- coil_no_tmp);
- getDao("mesdao").update(
- "UIH051600_02.update", param3);
- // 把钢卷信息录入垛位表
- PosParameter param4 = new PosParameter();
- param4.setWhereClauseParameter(0,
- OLD_SAMPL_NO);
- param4
- .setWhereClauseParameter(
- 1,
- CUR_LOAD_LOC[0]
- .substring(0, 5));
- param4
- .setWhereClauseParameter(
- 2,
- CUR_LOAD_LOC[0]
- .substring(5, 7));
- param4
- .setWhereClauseParameter(
- 3,
- CUR_LOAD_LOC[0]
- .substring(7, 8));
- param4
- .setWhereClauseParameter(
- 4,
- CUR_LOAD_LOC[0]
- .substring(8, 9));
- getDao("mesdao").update(
- "UIH051600_03.update", param4);
- // 这里还需要修改板坯公共表,如果已经做了计划的板坯就不能动了
- PosParameter param111 = new PosParameter();
- param111.setWhereClauseParameter(0,
- slab_no);
- PosRowSet rows11 = getDao("mesdao")
- .find("UIH051600_06.select",
- param111);
- if (rows11.hasNext()) {
- PosRow row11 = rows11.next();
- CUR_PROG_CD = (String) row11
- .getAttribute("CUR_PROG_CD");
- if (CUR_PROG_CD.equals("RBB")) {
- // 如果此板坯已做计划,给出提示
- logger
- .logInfo("SaveCOIL_IO类中,需要盘入库的"
- + coil_no_tmp
- + "卷对应的板坯:"
- + slab_no
- + "已经做计划。请联系轧制计划员处理!!");
- String vtemp = "SLAB_NO";
- context.put("rs", vtemp);
- } else {
- PosParameter param5 = new PosParameter();
- param5.setWhereClauseParameter(
- 0, slab_no);
- getDao("mesdao").update(
- "UIH051600_06.update",
- param5);
- // 还需要清空库存垛位表
- PosParameter param6 = new PosParameter();
- param6.setWhereClauseParameter(
- 0, slab_no);
- getDao("mesdao").update(
- "UIH051600_07.update",
- param6);
- }
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘入库的"
- + coil_no_tmp
- + "卷需要存放的堆位上面存在钢卷!");
- String vtemp = "CUR_LOAD_LOC";
- context.put("rs", vtemp);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘入库的"
- + coil_no_tmp + "卷需要存放的堆位上面存在钢卷!");
- String vtemp = "CUR_LOAD_LOC";
- context.put("rs", vtemp);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘入库的"
- + coil_no_tmp + "卷不存在垛位数据!");
- String vtemp = "CUR_LOAD_LOC_NO";
- context.put("rs", vtemp);
- }
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘入库的" + coil_no_tmp
- + "不存在,请确认后再进行相应的处理!");
- String vtemp = "ERROR";
- context.put("rs", vtemp);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘入库的" + coil_no_tmp
- + "不存在,请确认后再进行相应的处理!");
- String vtemp = "ERROR";
- context.put("rs", vtemp);
- }
- } else if (COIL_OUT[0].equals("2") && "".equals(COIL_IN[0])&& "".equals(COIL_SALE[0])&& "".equals(COIL_END[0])) {
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0, coil_no[0]);
- PosRowSet rows = getDao("mesdao").find("UIH051600_03.select",
- param1);
- if (rows.hasNext()) {
- PosRow row = rows.next();
- OLD_SAMPL_NO = (String) row.getAttribute("OLD_SAMPL_NO");
- coil_no_tmp = (String) row.getAttribute("COIL_NO");
- CUR_PROG_CD = (String) row.getAttribute("CUR_PROG_CD");
- // add by jungan 2010-12-27 插入降余材历史记录
- ordNo = row.getAttribute("ORD_NO") != null ? ((String) row.getAttribute("ORD_NO")).trim() : "";
- ordSeq = row.getAttribute("ORD_SEQ") != null ?((String) row.getAttribute("ORD_SEQ")).trim() : "";
- ordFl = row.getAttribute("ORD_FL") != null ? ((String) row.getAttribute("ORD_FL")).trim() : "";
- if (!"".equals(OLD_SAMPL_NO) && null != OLD_SAMPL_NO) {
- if (CUR_PROG_CD.equals("SFB")) {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "已经做了下车计划,请确认后再进行相应的处理!");
- String vtemp = "CUR_PROG_CD";
- context.put("rs", vtemp);
- } else {
- // 这里进行人工出库操作
- PosParameter param2 = new PosParameter();
- param2.setWhereClauseParameter(0, REG_ID[0]);
- param2.setWhereClauseParameter(1, OLD_SAMPL_NO);
- getDao("mesdao").update("UIH051600_04.update",
- param2);
- // add by jungan 2010-12-27 插入降余材历史记录
- if (ordFl.equals("1")) {
- CallableStatement cstm = getDao("mesdao")
- .getCallableStatement(
- "UIH051600_01.call");
- cstm.setString(1, "B");
- cstm.setString(2, "S");
- cstm.setString(3, REG_ID[0]);
- cstm.setString(4, "UIH051600");
- cstm.setString(5, "");
- cstm.setString(6, "");
- cstm.setString(7, "");
- cstm.setString(8, OLD_SAMPL_NO);
- cstm.setString(9, "CR");
- cstm.setString(10, ordNo);
- cstm.setString(11, ordSeq);
- cstm.setString(12, "");
- cstm.setString(13, "");
- boolean res = cstm.execute();
- cstm.close();
- logger
- .logInfo("UIM051600 SaveCOIL_IO 盘出保存历史记录结果 : "
- + res);
- }
- // 更新钢卷公共_D 表
- PosParameter param3 = new PosParameter();
- param3.setWhereClauseParameter(0, coil_no_tmp);
- getDao("mesdao").update("UIH051600_02.update",
- param3);
- // 把钢卷信息清除垛位表
- PosParameter param4 = new PosParameter();
- param4.setWhereClauseParameter(0, OLD_SAMPL_NO);
- getDao("mesdao").update("UIH051600_05.update",
- param4);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "不存在,请确认后再进行相应的处理!");
- String vtemp = "ERROR";
- context.put("rs", vtemp);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "不存在,请确认后再进行相应的处理!");
- String vtemp = "ERROR";
- context.put("rs", vtemp);
- }
- }
- else if ((COIL_SALE[0].equals("3")||COIL_END[0].equals("4")) && "".equals(COIL_OUT[0])&& "".equals(COIL_IN[0])){
- DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
- String currDate = formatter.format(new Date());
- String seqno="FG"+currDate;
- String dlivnoNEXT;
- String wg;
- dlivnoNEXT=dlivno(seqno);//生成废钢编号
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0, coil_no[0]);
- PosRowSet rows = getDao("mesdao").find("UIH051600_03.select",
- param1);
- if (rows.hasNext()) {
- PosRow row = rows.next();
- OLD_SAMPL_NO = (String) row.getAttribute("OLD_SAMPL_NO");
- coil_no_tmp = (String) row.getAttribute("COIL_NO");
- CUR_PROG_CD = (String) row.getAttribute("CUR_PROG_CD");
- wg =row.getAttribute("EXTSHAPE_DEC_GRD") != null ? ((String) row.getAttribute("EXTSHAPE_DEC_GRD")).trim() : "";
- // add by jungan 2010-12-27 插入降余材历史记录
- ordNo = row.getAttribute("ORD_NO") != null ? ((String) row.getAttribute("ORD_NO")).trim() : "";
- ordSeq = row.getAttribute("ORD_SEQ") != null ?((String) row.getAttribute("ORD_SEQ")).trim() : "";
- ordFl = row.getAttribute("ORD_FL") != null ? ((String) row.getAttribute("ORD_FL")).trim() : "";
- if (!"".equals(OLD_SAMPL_NO) && null != OLD_SAMPL_NO) {
- if ("".equals(wg) || !("4".equals(wg))) {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "未判废,请确认后再进行相应的处理!");
- String vtemp = "CUR_PROG_CD1";
- context.put("rs", vtemp);
- return PosBizControlConstants.SUCCESS;
- }
- if (CUR_PROG_CD.equals("SFB")) {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "已经做了下车计划,请确认后再进行相应的处理!");
- String vtemp = "CUR_PROG_CD";
- context.put("rs", vtemp);
- } else {
- // 这里进行人工出库操作
- PosParameter param2 = new PosParameter();
- param2.setWhereClauseParameter(0, REG_ID[0]);
- param2.setWhereClauseParameter(1, dlivnoNEXT);
- param2.setWhereClauseParameter(2, OLD_SAMPL_NO);
- getDao("mesdao").update("UIH051600_08.update",
- param2);
- // add by jungan 2010-12-27 插入降余材历史记录
- if (ordFl.equals("1")) {
- CallableStatement cstm = getDao("mesdao")
- .getCallableStatement(
- "UIH051600_01.call");
- cstm.setString(1, "B");
- cstm.setString(2, "S");
- cstm.setString(3, REG_ID[0]);
- cstm.setString(4, "UIH051600");
- cstm.setString(5, "");
- cstm.setString(6, "");
- cstm.setString(7, "");
- cstm.setString(8, OLD_SAMPL_NO);
- cstm.setString(9, "CR");
- cstm.setString(10, ordNo);
- cstm.setString(11, ordSeq);
- cstm.setString(12, "");
- cstm.setString(13, "");
- boolean res = cstm.execute();
- cstm.close();
- logger
- .logInfo("UIM051600 SaveCOIL_IO 盘出保存历史记录结果 : "
- + res);
- }
- // 更新钢卷公共_D 表
- PosParameter param3 = new PosParameter();
- param3.setWhereClauseParameter(0, coil_no_tmp);
- getDao("mesdao").update("UIH051600_02.update",
- param3);
- // 把钢卷信息清除垛位表
- PosParameter param4 = new PosParameter();
- param4.setWhereClauseParameter(0, OLD_SAMPL_NO);
- getDao("mesdao").update("UIH051600_05.update",
- param4);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "不存在,请确认后再进行相应的处理!");
- String vtemp = "ERROR";
- context.put("rs", vtemp);
- }
- } else {
- // 抛出异常
- logger.logInfo("SaveCOIL_IO类中,需要盘出库的" + coil_no_tmp
- + "不存在,请确认后再进行相应的处理!");
- String vtemp = "ERROR";
- context.put("rs", vtemp);
- }
- }
- } catch (Exception e) {
- // TODO: handle exception
- logger.logError("SaveCOIL_IO数据库操作异常a");
- logger.logError(e.getMessage());
- }
- return PosBizControlConstants.SUCCESS;
- }
- private String dlivno(String syddate) {
- String dlivno = "";
- PosParameter param1 = new PosParameter();
- param1.setWhereClauseParameter(0, syddate);
- PosRowSet rows = getDao("mesdao").find("UIH051600_07.select",
- param1);
- try {
- if (rows.hasNext()) {
- PosRow row = rows.next();
- String temp="";
- if("".equals((String) row.getAttribute("WDLIVNO"))||(String) row.getAttribute("WDLIVNO")==null)
- {
- dlivno=syddate+"01";
- }else{
- temp = (String) row.getAttribute("WDLIVNO");
- temp = temp.substring(10);
- int aa=Integer.parseInt(temp) + 1;
- temp = new DecimalFormat("00").format(aa);
- dlivno=syddate+temp;
- }
- }
- else{
- dlivno=syddate+"01";
- }
- } catch (Exception r) {
- } finally {
- try {
- if (null != rows) {
-
- }
-
- } catch (Exception e) {
- }
- }
- return dlivno;
- }
- }
|