package weaver.interfaces.hzzx.action; import com.engine.hzzx.conn.DataUtil; import weaver.conn.RecordSet; import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.*; import java.util.HashMap; import java.util.Map; import java.util.UUID; /** * 5.2.2.2培训实施申请 * 流程归档,写入建模表 * * @author:dxfeng * @createTime: 2025/02/28 * @version: 1.0 */ public class TrainingApplicationAction implements Action { private static final String MODE_TABLE_NAME = "uf_pxsssq"; RecordSet rs = new RecordSet(); @Override public String execute(RequestInfo requestInfo) { try { MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); Map mainDataMap = new HashMap<>(); for (Property property : properties) { mainDataMap.put(property.getName(), property.getValue()); } // 插入主表数据,并生成ID int mainId = insertMainTable(mainDataMap); if (-1 == mainId) { requestInfo.getRequestManager().setMessagecontent("流程数据写入建模主表失败"); return FAILURE_AND_CONTINUE; } DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo(); DetailTable[] detailTables = detailTableInfo.getDetailTable(); for (int i = 0; i < detailTables.length; i++) { String detailTableName = MODE_TABLE_NAME + "_dt" + (i + 1); DetailTable table = detailTables[i]; Row[] rows = table.getRow(); for (Row row : rows) { Map detailDataMap = new HashMap<>(); detailDataMap.put("mainid", String.valueOf(mainId)); Cell[] cells = row.getCell(); for (Cell cell : cells) { detailDataMap.put(cell.getName(), cell.getValue()); } // 插入明细表数据 insertDetailTable(detailDataMap, detailTableName); } } return SUCCESS; } catch (Exception e) { rs.writeLog(e); requestInfo.getRequestManager().setMessagecontent(e.getMessage()); return FAILURE_AND_CONTINUE; } } /** * 插入主表 * * @param mainDataMap * @return */ private int insertMainTable(Map mainDataMap) { String operateId = mainDataMap.get("sqr"); Map insertData = new HashMap<>(); String uuid = UUID.randomUUID().toString(); insertData.put("modeuuid", uuid); int formModeId = DataUtil.getModeIdByTableName(MODE_TABLE_NAME); insertData.put("formmodeid", String.valueOf(formModeId)); DataUtil.buildModeInsertFields(insertData, operateId); insertData.put("pxrs", mainDataMap.get("pxrs")); insertData.put("pxdx", mainDataMap.get("pxdx")); insertData.put("szbm", mainDataMap.get("szbm")); insertData.put("pxdd", mainDataMap.get("pxdd")); insertData.put("jssjyc", mainDataMap.get("jssjyc")); insertData.put("pxsj", mainDataMap.get("pxsj")); insertData.put("sqr", mainDataMap.get("sqr")); // insertData.put("pxzt",mainDataMap.get("pxzt")); insertData.put("sfzndjhn", mainDataMap.get("sfzndjhn")); insertData.put("pxmc", mainDataMap.get("pxmc")); insertData.put("xs", mainDataMap.get("xs")); insertData.put("jf", mainDataMap.get("jf")); insertData.put("xzk", mainDataMap.get("xzk")); insertData.put("yjpxrs", mainDataMap.get("yjpxrs")); String pxjh = mainDataMap.get("pxjh"); String docIdByImageId = DataUtil.getDocIdByImageId(pxjh); insertData.put("pxjh", docIdByImageId); insertData.put("qsm", mainDataMap.get("qsm")); DataUtil.insertData(insertData, MODE_TABLE_NAME); return DataUtil.refreshRight(uuid, MODE_TABLE_NAME, formModeId, operateId); } /** * 插入子表 * * @param detailDataMap * @param detailTableName */ private void insertDetailTable(Map detailDataMap, String detailTableName) { DataUtil.insertData(detailDataMap, detailTableName); } }