toolscode.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. package restcontroller.webmanage.sale.toolscode;
  2. import beans.data.BatchDeleteErr;
  3. import beans.datacontrllog.DataContrlLog;
  4. import com.alibaba.fastjson2.JSONArray;
  5. import com.alibaba.fastjson2.JSONObject;
  6. import common.Controller;
  7. import common.YosException;
  8. import common.annotation.API;
  9. import common.annotation.CACHEING_CLEAN;
  10. import common.data.*;
  11. import org.apache.commons.lang.StringUtils;
  12. import org.apache.poi.xssf.usermodel.*;
  13. import restcontroller.R;
  14. import java.util.ArrayList;
  15. import java.util.HashMap;
  16. public class toolscode extends Controller {
  17. public toolscode(JSONObject arg0) throws YosException {
  18. super(arg0);
  19. // TODO Auto-generated constructor stub
  20. }
  21. /**
  22. * 下载工具序列号模板
  23. *
  24. * @return
  25. */
  26. @API(title = "下载工具序列号模板", apiversion = R.ID20230114142403.v1.class)
  27. public String downloadToolscodeExcel() throws YosException {
  28. ExcelFactory excelFactory = new ExcelFactory("ImportTemplateForToolscode");
  29. XSSFSheet sheet = excelFactory.getXssfWorkbook().createSheet("Sheet1");
  30. XSSFWorkbook xssfFWorkbook = excelFactory.getXssfWorkbook();
  31. ExportExcel.setBatchDetailSheetColumn1(sheet);// 设置工作薄列宽
  32. XSSFCellStyle titleCellStyle1 = ExportExcel.createTitleCellStyle1(xssfFWorkbook);
  33. XSSFCellStyle titleCellStyle2 = ExportExcel.createTitleCellStyle2(xssfFWorkbook);
  34. XSSFCellStyle titleCellStyle3 = ExportExcel.createBodyCellStyle(xssfFWorkbook);
  35. XSSFCellStyle titleCellStyle4 = ExportExcel.createTitleCellStyle3(xssfFWorkbook);
  36. ExportExcel.batchDetail(sheet, titleCellStyle1, titleCellStyle2, titleCellStyle3, titleCellStyle4, xssfFWorkbook);// 写入标题
  37. Rows aa = uploadExcelToObs(excelFactory);
  38. String url = "";
  39. if (!aa.isEmpty()) {
  40. url = aa.get(0).getString("url");
  41. }
  42. return getSucReturnObject().setData(url).toString();
  43. }
  44. /**
  45. * 导入工具序列号
  46. *
  47. * @return
  48. */
  49. @API(title = "导入工具序列号", apiversion = R.ID20230114142503.v1.class)
  50. @CACHEING_CLEAN(apiversions = {R.ID20221215100903.v1.class, R.ID20221215101003.v1.class})
  51. public String uploadToolscodeByExcel() throws YosException {
  52. long itemid = 0;
  53. Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno from plm_item where siteid='" + siteid + "' and status='审核' ");
  54. RowsMap itemRosMap = itemRows.toRowsMap("itemno");
  55. // JSONArray jsonArray = new JSONArray();
  56. // jsonArray.add(content.getLong("attachmentid"));
  57. //
  58. // content.put("ownertable", "sa_itemsku");
  59. // content.put("ownerid", sa_itemskuid);
  60. // content.put("usetype", "default");
  61. // content.put("attachmentids", jsonArray);
  62. // Attachment attachment = new Attachment(content);
  63. // attachment.createFileLink();
  64. ExcelFactory e;
  65. try {
  66. // 华为云
  67. e = getPostExcelFactory(content.getLong("attachmentid"));
  68. // 本地
  69. //e = getPostExcelFactory();
  70. // Rows keyRow = dbConnect.runSqlQuery("select fagentnum,faddress from tagents
  71. // where 1=2");
  72. // Rows row1 = e.getSheetRows(1, keyRow, 1);
  73. ArrayList<String> keys = new ArrayList<>();
  74. ArrayList<String> sqllist = new ArrayList<>();
  75. keys.add("itemno");
  76. keys.add("sku");
  77. Rows rows = e.getSheetRows(0, keys, 3);
  78. int a = 1;
  79. int i = 0;
  80. // String msg = "";
  81. boolean iserr = false;
  82. Rows rowserr = new Rows();
  83. Rows rowssuc = new Rows();
  84. for (Row row : rows) {
  85. if (StringUtils.isEmpty(row.getString("itemno")) || StringUtils.isEmpty(row.getString("sku"))) {
  86. iserr = true;
  87. row.put("msg", "错误信息:商品编号,序列号不能为空");
  88. rowserr.add(row);
  89. // rows.remove(row);
  90. // msg = "手机号,省市县及来源不能为空";
  91. } else {
  92. if (!itemRosMap.get(row.getString("itemno")).isEmpty()) {
  93. row.put("itemid", itemRosMap.get(row.getString("itemno")).get(0).getString("itemid"));
  94. rowssuc.add(row);
  95. } else {
  96. iserr = true;
  97. row.put("msg", "错误信息:不存在商品编号为" + row.getString("itemno") + "的商品");
  98. rowserr.add(row);
  99. }
  100. }
  101. }
  102. if (!rowssuc.isEmpty()) {
  103. SQLFactory sqlFactoryupload = null;
  104. for (Row row : rowssuc) {
  105. Long sa_itemskuid = createTableID("sa_itemsku");
  106. sqlFactoryupload = new SQLFactory(this, "商品序列号档案新增");
  107. sqlFactoryupload.addParameter("siteid", siteid);
  108. sqlFactoryupload.addParameter("userid", userid);
  109. sqlFactoryupload.addParameter("username", username);
  110. sqlFactoryupload.addParameter("itemid", row.getString("itemid"));
  111. sqlFactoryupload.addParameter("sku", row.getString("sku"));
  112. sqlFactoryupload.addParameter("sa_itemskuid", sa_itemskuid);
  113. sqlFactoryupload.addParameter("islimit", 0);
  114. sqlFactoryupload.addParameter("sys_enterpriseid", 0);
  115. sqlFactoryupload.addParameter("stockid", 0);
  116. sqlFactoryupload.addParameter("isyj", 0);
  117. sqllist.add(sqlFactoryupload.getSQL());
  118. sqllist.add(DataContrlLog.createLog(this, "sa_itemsku", sa_itemskuid, "导入", "商品序列号导入成功").getSQL());
  119. i++;
  120. }
  121. }
  122. if (sqllist != null && !sqllist.isEmpty()) {
  123. dbConnect.runSqlUpdate(sqllist);
  124. }
  125. if (iserr) {
  126. ExcelFactory excelFactory = new ExcelFactory("sa_quotedpriceerr");
  127. HashMap<String, String> map = new HashMap<String, String>();
  128. map.put("itemno", "商品编号");
  129. map.put("sku", "序列号");
  130. map.put("msg", "错误信息");
  131. ArrayList<String> colNameList = new ArrayList<String>();
  132. HashMap<String, Class> keytypemap = new HashMap<String, Class>();
  133. colNameList.add("itemno");
  134. colNameList.add("sku");
  135. colNameList.add("msg");
  136. keytypemap.put("itemno", String.class);
  137. keytypemap.put("sku", String.class);
  138. keytypemap.put("msg", String.class);
  139. rowserr.setFieldList(colNameList);
  140. rowserr.setFieldTypeMap(keytypemap);
  141. addSheet(excelFactory, "Sheet1", rowserr, map);
  142. Rows aa = uploadExcelToObs(excelFactory);
  143. String url = "";
  144. if (!aa.isEmpty()) {
  145. url = aa.get(0).getString("url");
  146. }
  147. return getSucReturnObject().setData(url).toString();
  148. }
  149. } catch (Exception e1) {
  150. // TODO Auto-generated catch block
  151. e1.printStackTrace();
  152. return getErrReturnObject().setErrMsg(e1.getMessage()).toString();
  153. }
  154. return getSucReturnObject().toString();
  155. }
  156. @API(title = "商品序列号档案新增更新", apiversion = R.ID20221215100803.v1.class)
  157. @CACHEING_CLEAN(apiversions = {R.ID20221215100903.v1.class, R.ID20221215101003.v1.class})
  158. public String insertormodify_toolscode() throws YosException {
  159. ArrayList<String> sqlList = new ArrayList<>();
  160. // 表名
  161. String tableName = "sa_itemsku";
  162. Long sa_itemskuid = content.getLong("sa_itemskuid");
  163. Long sa_agentsid = content.getLong("sa_agentsid");
  164. Long stockid = content.getLong("stockid");
  165. // Long sys_enterpriseid = content.getLong("sys_enterpriseid");
  166. // Long sa_logiscompid = content.getLong("sa_logiscompid");
  167. // Long rec_contactsid = content.getLongValue("rec_contactsid");
  168. long itemid = content.getLong("itemid");
  169. String sku = content.getString("sku");
  170. boolean islimit = content.getBooleanValue("islimit");
  171. boolean isyj = content.getBooleanValue("isyj");
  172. SQLFactory sqlFactory = new SQLFactory(this, "商品序列号档案新增");
  173. if (sa_itemskuid <= 0 || dbConnect.runSqlQuery("select sa_itemskuid from sa_itemsku where sa_itemskuid=" + sa_itemskuid).isEmpty()) {
  174. Rows rowscode = dbConnect.runSqlQuery("select sa_itemskuid from sa_itemsku where siteid='" + siteid + "' and sku='" + sku + "'");
  175. if (!rowscode.isEmpty()) {
  176. return getErrReturnObject().setErrMsg("该序列号已被使用").toString();
  177. }
  178. sa_itemskuid = createTableID(tableName);
  179. sqlFactory.addParameter("sa_agentsid", sa_agentsid);
  180. sqlFactory.addParameter("itemid", itemid);
  181. sqlFactory.addParameter("stockid", stockid);
  182. sqlFactory.addParameter("islimit", islimit);
  183. sqlFactory.addParameter("isyj", isyj);
  184. sqlFactory.addParameter("sku", sku);
  185. sqlList.add(DataContrlLog.createLog(this, "sa_itemsku", sa_itemskuid, "新增", "商品序列号档案新增成功").getSQL());
  186. } else {
  187. Rows rows = dbConnect.runSqlQuery("SELECT status,sa_itemskuid,sa_agentsid,stockid,itemid from sa_itemsku WHERE sa_itemskuid = " + sa_itemskuid);
  188. Rows rowscode = dbConnect.runSqlQuery("select sa_itemskuid from sa_itemsku where siteid='" + siteid + "' and sku='" + sku + "' and sa_itemskuid !=" + sa_itemskuid);
  189. if (!rowscode.isEmpty()) {
  190. return getErrReturnObject().setErrMsg("该序列号已被使用").toString();
  191. }
  192. if (rows.isNotEmpty()) {
  193. if (!rows.get(0).getBoolean("isused")) {
  194. long oldsa_agentsid = 0;
  195. long newsa_agentsid = 0;
  196. long olditemid = 0;
  197. long newitemid = 0;
  198. long oldstockid = 0;
  199. long newstockid = 0;
  200. sqlFactory = new SQLFactory(this, "商品序列号档案更新");
  201. sqlFactory.addParameter("sa_agentsid", sa_agentsid);
  202. sqlFactory.addParameter("islimit", islimit);
  203. sqlFactory.addParameter("itemid", itemid);
  204. sqlFactory.addParameter("isyj", isyj);
  205. sqlFactory.addParameter("stockid", stockid);
  206. sqlFactory.addParameter("sku", sku);
  207. sqlList.add(DataContrlLog.createLog(this, "sa_itemsku", sa_itemskuid, "更新", "商品序列号档案更新成功").getSQL());
  208. if (sa_agentsid != rows.get(0).getLong("sa_agentsid")) {
  209. newsa_agentsid = sa_agentsid;
  210. oldsa_agentsid = rows.get(0).getLong("sa_agentsid");
  211. }
  212. if (itemid != rows.get(0).getLong("itemid")) {
  213. newitemid = itemid;
  214. olditemid = rows.get(0).getLong("itemid");
  215. if (rows.get(0).getLong("wmsuploadflag") == 2) {
  216. sqlList.add("update sa_itemsku set wmsuploadflag=1 where sa_itemskuid=" + sa_itemskuid + " and siteid='" + siteid + "'");
  217. }
  218. if (StringUtils.isBlank(content.getStringValue("changenotes"))) {
  219. return getErrReturnObject().setErrMsg("变更商品信息时,需填写变更原因").toString();
  220. }
  221. }
  222. if (stockid != rows.get(0).getLong("stockid")) {
  223. newstockid = stockid;
  224. oldstockid = rows.get(0).getLong("stockid");
  225. }
  226. if (newstockid != 0 || newitemid != 0 || newsa_agentsid != 0) {
  227. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_itemsku_change");
  228. insertSQL.setValue("siteid", siteid);
  229. insertSQL.setValue("sa_itemsku_changeid", createTableID("sa_itemsku_change"));
  230. insertSQL.setValue("sa_itemskuid", sa_itemskuid);
  231. insertSQL.setValue("sa_agentsid", oldsa_agentsid);
  232. insertSQL.setValue("sa_agentsidnew", newsa_agentsid);
  233. insertSQL.setValue("itemid", olditemid);
  234. insertSQL.setValue("itemidnew", newitemid);
  235. insertSQL.setValue("stockid", oldstockid);
  236. insertSQL.setValue("stockidnew", newstockid);
  237. insertSQL.setValue("changenotes", "");
  238. if (newitemid != 0) {
  239. insertSQL.setValue("changenotes", content.getStringValue("changenotes"));
  240. }
  241. insertSQL.setDateValue("changedate");
  242. insertSQL.setValue("changeby", username);
  243. sqlList.add(insertSQL.getSQL());
  244. }
  245. } else {
  246. return getErrReturnObject().setErrMsg("非在库状态下无法编辑").toString();
  247. }
  248. } else {
  249. return getErrReturnObject().setErrMsg("该商品序列号档案不存在").toString();
  250. }
  251. }
  252. sqlFactory.addParameter("siteid", siteid);
  253. sqlFactory.addParameter("userid", userid);
  254. sqlFactory.addParameter("username", username);
  255. sqlFactory.addParameter("sa_itemskuid", sa_itemskuid);
  256. sqlList.add(sqlFactory.getSQL());
  257. dbConnect.runSqlUpdate(sqlList);
  258. content.put("sa_itemskuid", sa_itemskuid);
  259. return queryToolscodeMain();
  260. }
  261. @API(title = "商品序列号档案详情", apiversion = R.ID20221215100903.v1.class)
  262. public String queryToolscodeMain() throws YosException {
  263. Long sa_itemskuid = content.getLong("sa_itemskuid");
  264. SQLFactory sqlFactory = new SQLFactory(this, "商品序列号档案详情查询");
  265. sqlFactory.addParameter("sa_itemskuid", sa_itemskuid);
  266. sqlFactory.addParameter("siteid", siteid);
  267. Rows rows = dbConnect.runSqlQuery(sqlFactory);
  268. Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
  269. return getSucReturnObject().setData(row).toString();
  270. }
  271. @API(title = "查询商品序列号档案列表", apiversion = R.ID20221215101003.v1.class)
  272. public String queryToolscodeList() throws YosException {
  273. this.pageSorting = null;
  274. QuerySQL skuQuery = SQLFactory.createQuerySQL(this, "sa_itemsku").setTableAlias("t1");
  275. skuQuery.setPage(pageSize, pageNumber);
  276. skuQuery.setWhere("siteid", siteid);
  277. skuQuery.setOrderBy("sa_itemskuid desc");
  278. if (content.containsKey("where")) {
  279. JSONObject whereObject = content.getJSONObject("where");
  280. if (!"".equals(whereObject.getStringValue("condition"))) {
  281. String condition = whereObject.getString("condition");
  282. skuQuery.setWhere("( t1.sku like'%" + condition + "%'" + "or exists(select * from plm_item where plm_item.itemid=t1.itemid and (plm_item.itemno like'%" + condition + "%'or plm_item.itemname like'%" + condition + "%'))" + "or exists(select * from sa_agents where sa_agents.sa_agentsid=t1.sa_agentsid and sa_agents.agentnum like'%" + condition + "%')" + ")");
  283. }
  284. if (!"".equals(whereObject.getStringValue("status"))) {
  285. skuQuery.setWhere("t1.status", whereObject.getString("status"));
  286. }
  287. if (!"".equals(whereObject.getStringValue("isused"))) {
  288. skuQuery.setWhere("t1.isused", whereObject.getBooleanValue("isused"));
  289. }
  290. }
  291. Rows skuRows = skuQuery.query();
  292. if (skuRows.isNotEmpty()) {
  293. RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemno", "itemname", "spec", "model", "topclassnum", "stockno").addJoinTable(JOINTYPE.left, "plm_unit", "plm_unit", "plm_unit.unitid=plm_item.unitid", "unitname").setWhere("itemid", skuRows.toArrayList("itemid")).query().toRowsMap("itemid");
  294. RowsMap agentsRowsMap = SQLFactory.createQuerySQL(this, "sa_agents", "sa_agentsid", "agentnum").addJoinTable(JOINTYPE.inner, "sys_enterprise", "sys_enterprise", "sa_agentsid=:sa_agentsid", "enterprisename").setWhere("sa_agentsid", skuRows.toArrayList("sa_agentsid")).query().toRowsMap("sa_agentsid");
  295. RowsMap stockRowsMap = SQLFactory.createQuerySQL(this, "st_stock", "stockid", "stockno", "stockname").setWhere("stockid", skuRows.toArrayList("stockid")).query().toRowsMap("stockid");
  296. RowsMap skuChangeRowsMap = SQLFactory.createQuerySQL(this, "sa_itemsku_change", "sa_itemskuid", "changenotes").setWhere("sa_itemskuid", skuRows.toArrayList("sa_itemskuid")).setOrderBy("sa_itemsku_changeid desc").query().toRowsMap("sa_itemskuid");
  297. for (Row skuRow : skuRows) {
  298. String itemid = skuRow.getString("itemid");
  299. if (itemRowsMap.containsKey(itemid) && itemRowsMap.get(itemid).isNotEmpty()) {
  300. Row itemRow = itemRowsMap.get(itemid).get(0);
  301. skuRow.put("itemno", itemRow.getString("itemno"));
  302. skuRow.put("itemname", itemRow.getString("itemname"));
  303. skuRow.put("spec", itemRow.getString("spec"));
  304. skuRow.put("model", itemRow.getString("model"));
  305. skuRow.put("topclassnum", itemRow.getString("topclassnum"));
  306. skuRow.put("itemstockno", itemRow.getString("stockno"));
  307. skuRow.put("unit", itemRow.getString("unitname"));
  308. }
  309. String sa_agentsid = skuRow.getString("sa_agentsid");
  310. if (agentsRowsMap.containsKey(sa_agentsid) && agentsRowsMap.get(sa_agentsid).isNotEmpty()) {
  311. Row agentRow = agentsRowsMap.get(sa_agentsid).get(0);
  312. skuRow.put("agentnum", agentRow.getString("agentnum"));
  313. skuRow.put("enterprisename", agentRow.getString("enterprisename"));
  314. }
  315. String stockid = skuRow.getString("stockid");
  316. if (stockRowsMap.containsKey(stockid) && stockRowsMap.get(stockid).isNotEmpty()) {
  317. Row stockRow = stockRowsMap.get(stockid).get(0);
  318. skuRow.put("stockno", stockRow.getString("stockno"));
  319. skuRow.put("stockname", stockRow.getString("stockname"));
  320. }
  321. String sa_itemskuid = skuRow.getString("sa_itemskuid");
  322. if (skuChangeRowsMap.containsKey(sa_itemskuid) && skuChangeRowsMap.get(sa_itemskuid).isNotEmpty()) {
  323. Row changeNoteRow = skuChangeRowsMap.get(sa_itemskuid).get(0);
  324. skuRow.put("changenotes", changeNoteRow.getString("changenotes"));
  325. }
  326. }
  327. }
  328. return getSucReturnObject().setData(skuRows).toString();
  329. }
  330. @API(title = "查询序列号变更记录", apiversion = R.ID2025021910425003.v1.class)
  331. public String queryToolscodeChangeNotesList() throws YosException {
  332. Long sa_itemskuid = content.getLong("sa_itemskuid");
  333. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemsku_change", "*");
  334. querySQL.setTableAlias("t1");
  335. querySQL.setPage(pageSize, pageNumber);
  336. querySQL.setSiteid(siteid);
  337. querySQL.setWhere("sa_itemskuid", sa_itemskuid);
  338. Rows rows = querySQL.query();
  339. return getSucReturnObject().setData(rows).toString();
  340. }
  341. @API(title = "查询序列号使用记录", apiversion = R.ID2025101809551503.v1.class)
  342. public String querySkuUsedList() throws YosException {
  343. String sku = content.getString("sku");
  344. pageSorting="t1.billdate asc";
  345. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sku_use_view", "*");
  346. querySQL.setTableAlias("t1");
  347. querySQL.setPage(pageSize, pageNumber);
  348. querySQL.setWhere("t1.sku", sku);
  349. Rows rows = querySQL.query();
  350. return getSucReturnObject().setData(rows).toString();
  351. }
  352. @API(title = "删除", apiversion = R.ID20221215101103.v1.class)
  353. @CACHEING_CLEAN(apiversions = {R.ID20221215101003.v1.class, R.ID20221215100903.v1.class})
  354. public String delete() throws YosException {
  355. JSONArray sa_itemskuids = content.getJSONArray("sa_itemskuids");
  356. BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_itemskuids.size());
  357. for (Object o : sa_itemskuids) {
  358. long sa_itemskuid = Long.parseLong(o.toString());
  359. Rows RowsStatus = dbConnect.runSqlQuery("select sa_itemskuid,status from sa_itemsku where siteid='" + siteid + "' and sa_itemskuid='" + sa_itemskuid + "'");
  360. if (RowsStatus.isNotEmpty()) {
  361. if (RowsStatus.get(0).getBoolean("isused")) {
  362. batchDeleteErr.addErr(sa_itemskuid, "已使用的商品序列号无法删除");
  363. continue;
  364. }
  365. }
  366. dbConnect.runSqlUpdate("delete from sa_itemsku where siteid='" + siteid + "' and sa_itemskuid=" + sa_itemskuid);
  367. }
  368. return batchDeleteErr.getReturnObject().toString();
  369. }
  370. public XSSFSheet addSheet(ExcelFactory excelFactory, String sheetname, Rows datarows, HashMap<String, String> titlemap) {
  371. ArrayList<String> keylist = datarows.getFieldList();
  372. XSSFSheet sheet = excelFactory.getXssfWorkbook().createSheet(sheetname);
  373. XSSFWorkbook xssfFWorkbook = excelFactory.getXssfWorkbook();
  374. XSSFCellStyle xssfCellStyle1 = xssfFWorkbook.createCellStyle();
  375. XSSFFont font = xssfFWorkbook.createFont();
  376. font.setColor((short) 0xa);
  377. font.setFontHeightInPoints((short) 12);
  378. font.setBold(true);
  379. xssfCellStyle1.setFont(font);
  380. ExportExcel.setBatchDetailSheetColumn2(sheet);// 设置工作薄列宽
  381. XSSFCellStyle titleCellStyle1 = ExportExcel.createTitleCellStyle1(xssfFWorkbook);
  382. XSSFCellStyle titleCellStyle2 = ExportExcel.createTitleCellStyle2(xssfFWorkbook);
  383. XSSFCellStyle titleCellStyle3 = ExportExcel.createTitleCellStyle3(xssfFWorkbook);
  384. ExportExcel.batchDetailErr(sheet, titleCellStyle1, titleCellStyle2, titleCellStyle3, xssfFWorkbook);// 写入标题
  385. for (int n = 0; n < datarows.size(); n++) {
  386. Row row = datarows.get(n);
  387. XSSFRow datarow = sheet.createRow(n + 3);
  388. for (int i1 = 0; i1 < keylist.size(); i1++) {
  389. Class fieldclazztype = datarows.getFieldMeta(keylist.get(i1)).getFieldtype();
  390. if (fieldclazztype == Integer.class) {
  391. datarow.createCell(i1).setCellValue(row.getInteger((String) keylist.get(i1)));
  392. } else if (fieldclazztype == Long.class) {
  393. datarow.createCell(i1).setCellValue(row.getLong((String) keylist.get(i1)));
  394. } else if (fieldclazztype == Float.class) {
  395. datarow.createCell(i1).setCellValue(row.getFloat((String) keylist.get(i1)));
  396. } else if (fieldclazztype == Double.class) {
  397. datarow.createCell(i1).setCellValue(row.getDouble((String) keylist.get(i1)));
  398. } else {
  399. datarow.createCell(i1).setCellValue(row.getString((String) keylist.get(i1)));
  400. }
  401. if (i1 == 2) {
  402. datarow.getCell(i1).setCellStyle(xssfCellStyle1);
  403. }
  404. }
  405. }
  406. return sheet;
  407. }
  408. }