| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.deepoove.poi.policy.DynamicTableRenderPolicy; |
| | | import org.apache.poi.xwpf.usermodel.XWPFTable; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | /** |
| | | * 设备表格渲染策略 |
| | |
| | | @Override |
| | | public void render(XWPFTable table, Object data) throws Exception { |
| | | var deviceRecords = (JSONArray) data; |
| | | int colCnt = table.getRow(1).getTableCells().size(); |
| | | for (var d : deviceRecords) { |
| | | var deviceInfo = (JSONObject) d; |
| | | var records = deviceInfo.getJSONArray("问题"); |
| | | var name = deviceInfo.getString("设备编号"); |
| | | for (var record : records) { |
| | | var info = (JSONObject) record; |
| | | var row = table.insertNewTableRow(table.getRows().size() ); |
| | | RenderHelper.renderCell(row, name); |
| | | RenderHelper.renderCell(row, info.getString("检查问题")); |
| | | RenderHelper.renderCell(row, info.getString("隐患等级")); |
| | | if (!CollectionUtils.isEmpty(records)) { |
| | | var highLevelColor = RenderHelper.highLevelColor(records); |
| | | for (var record : records) { |
| | | var info = (JSONObject) record; |
| | | var row = table.insertNewTableRow(table.getRows().size()); |
| | | var errorLevel = info.getString("隐患等级"); |
| | | var textColor = RenderHelper.getErrorLevelColor(errorLevel); |
| | | RenderHelper.renderCell(row, name, highLevelColor); |
| | | RenderHelper.renderCell(row, info.getString("检查问题"), textColor); |
| | | RenderHelper.renderCell(row, info.getString("隐患等级"), textColor); |
| | | if (colCnt >= 5) { |
| | | RenderHelper.renderCell(row, String.valueOf(info.getLongValue("同类隐患出现频次")), textColor); |
| | | RenderHelper.renderCell(row, String.valueOf(info.getLongValue("检查频次")), textColor); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |