public void isSplitChange( DataDom dataDom, SessionInfo sessionInfo, ServiceRequest serviceRequest) { try { String pkValue = dataDom.getRootTable().getPkValue(); if ((pkValue != null) && (!"".equals(pkValue))) { Database.execString("delete from yxprjlin where prj_no=" + pkValue); } } catch (Exception e) { Log.error(e); } }
public void reStartPrj(DataDom dataDom, SessionInfo sessionInfo, ServiceRequest serviceRequest) { String pkValue = dataDom.getRootTable().getPkValue(); if ((pkValue != null) && (!"".equals(pkValue))) { CommSequence cs = CommSequence.getInstance("YXPRJMST_SEQ"); CommCodeNumber KLTYPID = new CommCodeNumber("PRJ", sessionInfo.getCurrentLanguage(), sessionInfo.getUserId()); String newPk = cs.getNextValue(); String prjNam = dataDom.getRootTable().getSafeRowColumnValue("PRJ_NAM"); String rSql = "declare v_wkpl YXPRJMST%rowtype; zbTime yxprjmst.ZB_TIMES%type; begin select * into v_wkpl from YXPRJMST where PRJ_NO =" + pkValue + ";" + " v_wkpl.OLD_PRJ := v_wkpl.PRJ_NO;" + " v_wkpl.PRJ_NO := " + newPk + ";" + " select nvl(max(ZB_TIMES),v_wkpl.ZB_TIMES) into zbTime from YXPRJMST where PRJ_NAM ='" + prjNam + "';" + " v_wkpl.ZB_TIMES := zbTime+1;" + " v_wkpl.VALID_STA := 'A';" + " v_wkpl.VEN_NO := null;" + " v_wkpl.ZB_ID := null;" + " v_wkpl.PRJ_STA := '00';" + " v_wkpl.PRJ_STAG := '01';" + " v_wkpl.PRJ_ID := '" + KLTYPID.getNextValue() + "';" + " v_wkpl.FSTUSR_DTM := sysdate;" + " v_wkpl.FSTUSR_ID := '" + sessionInfo.getUserId() + "';" + " insert into YXPRJMST values v_wkpl;" + "end;"; Database.execString(rSql); setForwardURL(Tools.getProgramURL(dataDom, "B1YXM00030", "jsp?pkValue=" + newPk)); } else { serviceRequest.getMessage().addError("请先维护主表!"); } }
public void save(DataDom dataDom, SessionInfo sessionInfo, ServiceRequest serviceRequest) throws LiemsException { if (!saveBefore(dataDom, serviceRequest, sessionInfo)) { return; } Table table = dataDom.getTable("YXPRJMST"); Database db = null; Row currRow = table.getRow(0L); if (currRow == null) { table.addRow(new Row(false, 0, 0, "new")); currRow = table.getRow(0L); } currRow.setFirstLastUserInfo(sessionInfo.getUserId()); try { db = Tools.getDatabase(false); String isSplit = dataDom.getRootTable().getSafeRowColumnValue("IS_SPLIT"); if (currRow.getDataStatus().equals("new")) { currRow.addColumn("ORG_NO", sessionInfo.getDefaultOrg()); if ((currRow.getColumn("PRJ_ID") == null) || (currRow.getColumn("PRJ_ID").getValue() == null) || (currRow.getColumn("PRJ_ID").getValue().equals(""))) { String idTyp = currRow.getColumnValue("PRJ_EXT02"); if ("A".equals(idTyp)) { CommCodeNumber KLTYPID = new CommCodeNumber( "PRJ", sessionInfo.getCurrentLanguage(), sessionInfo.getUserId()); currRow.addColumn(new Column("PRJ_ID", KLTYPID.getNextValue())); } CommCodeNumber ZB_ID = new CommCodeNumber("ZBBH", sessionInfo.getCurrentLanguage(), sessionInfo.getUserId()); currRow.addColumn(new Column("ZB_ID", ZB_ID.getNextValue())); currRow.addColumn("VALID_STA", "A"); currRow.addColumn(new Column("ZB_TIMES", "1")); } if ("N".equals(isSplit)) { Row row = new Row(false, 0, 0, "new"); row.addColumn("PRJL_NAM", currRow.getColumnValue("PRJ_NAM")); row.addColumn("PRJL_ID", currRow.getColumnValue("PRJ_ID")); row.addColumn("BZ_AMT", "0.00"); row.addColumn("IS_FB", "Y"); dataDom.getChildTable().getRows().put("0", row); } } String dlfTyp = dataDom.getRootTable().getSafeRowColumnValue("DLF_TYP"); super.save(dataDom, sessionInfo, serviceRequest, db); db.commit(); String pkValue = currRow.getPkValue("PRJ_NO"); if (isSplit.equals("Y")) { String sql = ""; if (dlfTyp.equals("B")) { sql = "update YXPRJMST set ZBS_AMT = (select sum(ZBS_AMT) from YXPRJLIN where PRJ_NO=" + pkValue + ")," + "BZ_AMT = (select sum(BZ_AMT) from YXPRJLIN where PRJ_NO=" + pkValue + ")," + "DL_AMT=(select sum(DLFL_AMT) from YXPRJLIN where PRJ_NO=" + pkValue + ")" + " where PRJ_NO = " + pkValue; dataDom.getChildTable().getField("DLFL_AMT").setReadonly(false); } else { sql = "update YXPRJMST set ZBS_AMT = (select sum(ZBS_AMT) from YXPRJLIN where PRJ_NO=" + pkValue + ")," + "BZ_AMT = (select sum(BZ_AMT) from YXPRJLIN where PRJ_NO=" + pkValue + ")" + " where PRJ_NO = " + pkValue; dataDom.getChildTable().getField("DLFL_AMT").setReadonly(true); } Database.execString(sql); } serviceRequest.getMessage().addInfo("保存成功"); initSel(dataDom); dataDom.getChildTable().getWhereLimit().addColumn("PRJ_NO", pkValue); dataDom.refresh(sessionInfo); } catch (Exception e) { if (db != null) { db.rollback(); } Log.error(e); serviceRequest.getMessage().addInfo("保存失败,请重试或联系系统管理员!"); } finally { if (db != null) { db.cleanup(); } } }