|
@@ -0,0 +1,309 @@
|
|
|
+package restcontroller.webmanage.sale.rebatescheme;
|
|
|
+
|
|
|
+import beans.data.BatchDeleteErr;
|
|
|
+import beans.datacontrllog.DataContrlLog;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import common.Controller;
|
|
|
+import common.YosException;
|
|
|
+import common.annotation.API;
|
|
|
+import common.annotation.CACHEING;
|
|
|
+import common.annotation.CACHEING_CLEAN;
|
|
|
+import common.data.*;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.apache.poi.ss.usermodel.CellStyle;
|
|
|
+import org.apache.poi.ss.usermodel.CellType;
|
|
|
+import org.apache.poi.ss.usermodel.DataFormat;
|
|
|
+import org.apache.poi.xssf.usermodel.*;
|
|
|
+import restcontroller.R;
|
|
|
+import restcontroller.system.attachment.Attachment;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+
|
|
|
+public class rebateunjoinproducts extends Controller {
|
|
|
+ /**
|
|
|
+ * 构造函数
|
|
|
+ *
|
|
|
+ * @param content
|
|
|
+ */
|
|
|
+ public rebateunjoinproducts(JSONObject content) throws YosException {
|
|
|
+ super(content);
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "装修返利方案参与返利商品查询", apiversion = R.ID20240722145303.v1.class)
|
|
|
+ @CACHEING
|
|
|
+ public String queryItemList() throws YosException {
|
|
|
+ /*
|
|
|
+ * 过滤条件设置
|
|
|
+ */
|
|
|
+ Long sa_rebateschemeid = content.getLong("sa_rebateschemeid");
|
|
|
+ StringBuffer where = new StringBuffer(" 1=1 ");
|
|
|
+ if (content.containsKey("where")) {
|
|
|
+ JSONObject whereObject = content.getJSONObject("where");
|
|
|
+ if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
|
|
|
+ where.append(" and(");
|
|
|
+ where.append("t1.itemno like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append("or t1.itemname like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append(")");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SQLFactory sqlFactory = new SQLFactory(this, "参与返利商品查询", pageSize, pageNumber, pageSorting);
|
|
|
+
|
|
|
+ sqlFactory.addParameter_SQL("where", where);
|
|
|
+ sqlFactory.addParameter("sa_rebateschemeid", sa_rebateschemeid);
|
|
|
+ sqlFactory.addParameter("siteid", siteid);
|
|
|
+ Rows rows = dbConnect.runSqlQuery(sqlFactory);
|
|
|
+
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "装修返利方案参与返利商品新增更新", apiversion = R.ID20240722145403.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {rebateunjoinproducts.class})
|
|
|
+ public String insertormodify_rebateunproducts() throws YosException {
|
|
|
+ Long sa_rebateschemeid = content.getLong("sa_rebateschemeid");
|
|
|
+ JSONArray iteminfos = content.getJSONArray("iteminfos");
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ int i = 0;
|
|
|
+ long[] rebateunjoinproductsid = createTableID("sa_rebateunjoinproducts", iteminfos.size());
|
|
|
+ for (Object obj : iteminfos) {
|
|
|
+ JSONObject iteminfo = (JSONObject) obj;
|
|
|
+
|
|
|
+ if (iteminfo.getLong("sa_rebateunjoinproductsid") <= 0 || dbConnect
|
|
|
+ .runSqlQuery("select sa_rebateunjoinproductsid from sa_rebateunjoinproducts where sa_rebateunjoinproductsid="
|
|
|
+ + iteminfo.getLong("sa_rebateunjoinproductsid"))
|
|
|
+ .isEmpty()) {
|
|
|
+ SQLFactory saleFactory = new SQLFactory(this, "装修返利方案参与返利商品新增");
|
|
|
+ saleFactory.addParameter("siteid", siteid);
|
|
|
+ saleFactory.addParameter("sa_rebateunjoinproductsid", rebateunjoinproductsid[i]);
|
|
|
+ saleFactory.addParameter("sa_rebateschemeid", sa_rebateschemeid);
|
|
|
+ saleFactory.addParameter("itemid", iteminfo.getLong("itemid"));
|
|
|
+ sqlList.add(saleFactory.getSQL());
|
|
|
+ sqlList.add("delete from sa_rebateunproducts where sa_rebateschemeid="+sa_rebateschemeid+" and itemid="+ iteminfo.getLong("itemid")+" and siteid='"+siteid+"'");
|
|
|
+ i++;
|
|
|
+ } else {
|
|
|
+ SQLFactory saleFactory = new SQLFactory(this, "装修返利方案参与返利商品更新");
|
|
|
+ saleFactory.addParameter("siteid", siteid);
|
|
|
+ saleFactory.addParameter("sa_rebateunjoinproductsid", iteminfo.getLong("sa_rebateunjoinproductsid"));
|
|
|
+ saleFactory.addParameter("sa_rebateschemeid", sa_rebateschemeid);
|
|
|
+ saleFactory.addParameter("itemid", iteminfo.getLong("itemid"));
|
|
|
+ sqlList.add(saleFactory.getSQL());
|
|
|
+ sqlList.add("delete from sa_rebateunproducts where sa_rebateschemeid="+sa_rebateschemeid+" and itemid="+ iteminfo.getLong("itemid")+" and siteid='"+siteid+"'");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+
|
|
|
+ return queryrebateunproductsList();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "查询装修返利方案参与返利商品列表", apiversion = R.ID20240722145503.v1.class)
|
|
|
+ @CACHEING
|
|
|
+ public String queryrebateunproductsList() throws YosException {
|
|
|
+
|
|
|
+ Long sa_rebateschemeid = content.getLong("sa_rebateschemeid");
|
|
|
+
|
|
|
+ StringBuffer where = new StringBuffer(" 1=1 ");
|
|
|
+ if (content.containsKey("where")) {
|
|
|
+ JSONObject whereObject = content.getJSONObject("where");
|
|
|
+ if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
|
|
|
+ where.append(" and(");
|
|
|
+ where.append("t2.itemno like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append("or t2.itemname like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append(")");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SQLFactory sqlFactory = new SQLFactory(this, "装修返利方案参与返利商品列表查询", pageSize, pageNumber, pageSorting);
|
|
|
+ sqlFactory.addParameter("siteid", siteid);
|
|
|
+ sqlFactory.addParameter("sa_rebateschemeid", sa_rebateschemeid);
|
|
|
+ sqlFactory.addParameter_SQL("where", where);
|
|
|
+ Rows rows = dbConnect.runSqlQuery(sqlFactory);
|
|
|
+
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "删除", apiversion = R.ID20240722145603.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiversions = {R.ID20230627111003.v1.class},apiClass = {rebateunjoinproducts.class})
|
|
|
+ public String delete() throws YosException {
|
|
|
+
|
|
|
+ JSONArray sa_rebateunjoinproductsids = content.getJSONArray("sa_rebateunjoinproductsids");
|
|
|
+ BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_rebateunjoinproductsids.size());
|
|
|
+ for (Object o : sa_rebateunjoinproductsids) {
|
|
|
+ long sa_rebateunjoinproductsid = Long.parseLong(o.toString());
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_rebateunjoinproducts where siteid='" + siteid + "' and sa_rebateunjoinproductsid="
|
|
|
+ + sa_rebateunjoinproductsid);
|
|
|
+ }
|
|
|
+ return batchDeleteErr.getReturnObject().toString();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "导入参与返利商品", apiversion = R.ID20240722145703.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {rebateunjoinproducts.class})
|
|
|
+ public String importItem() throws YosException {
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ jsonArray.add(content.getLong("attachmentid"));
|
|
|
+
|
|
|
+ content.put("ownertable", "sa_rebatescheme");
|
|
|
+ content.put("ownerid", content.getLongValue("sa_rebateschemeid"));
|
|
|
+ content.put("usetype", "default");
|
|
|
+ content.put("attachmentids", jsonArray);
|
|
|
+ Attachment attachment = new Attachment(content);
|
|
|
+ attachment.createFileLink();
|
|
|
+
|
|
|
+ ExcelFactory e;
|
|
|
+ try {
|
|
|
+
|
|
|
+ // 华为云
|
|
|
+ e = getPostExcelFactory(content.getLong("attachmentid"));
|
|
|
+ // 本地
|
|
|
+ //e = getPostExcelFactory();
|
|
|
+
|
|
|
+ ArrayList<String> keys = new ArrayList<>();
|
|
|
+ ArrayList<String> sqllist = new ArrayList<>();
|
|
|
+ keys.add("itemno");
|
|
|
+ HashMap<String, CellType> cellMap = new HashMap<>();
|
|
|
+ cellMap.put("itemno", CellType.STRING);
|
|
|
+ Rows rows = e.getSheetRows(0, keys, cellMap, 3);
|
|
|
+
|
|
|
+ ArrayList<String> itemnoList = rows.toArrayList("itemno",false);
|
|
|
+ itemnoList.add("-1");
|
|
|
+
|
|
|
+ boolean iserr = false;
|
|
|
+ Rows rowserr = new Rows();
|
|
|
+ Rows rowssuc = new Rows();
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemno", "marketprice");
|
|
|
+ querySQL.setSiteid(siteid);
|
|
|
+ querySQL.setWhere("itemno", itemnoList);
|
|
|
+ RowsMap itemnoRowsMap = querySQL.query().toRowsMap("itemno");
|
|
|
+ for (Row row : rows) {
|
|
|
+ if (StringUtils.isEmpty(row.getString("itemno"))) {
|
|
|
+ iserr = true;
|
|
|
+ row.put("msg", "错误信息:商品编号不能为空");
|
|
|
+ rowserr.add(row);
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ String itemno = row.getString("itemno");
|
|
|
+ System.out.println(itemno);
|
|
|
+ System.out.println(itemnoList.indexOf(itemno));
|
|
|
+ System.out.println( itemnoList.lastIndexOf(itemno));
|
|
|
+
|
|
|
+ if (itemnoList.indexOf(itemno) != itemnoList.lastIndexOf(itemno)) {
|
|
|
+ iserr = true;
|
|
|
+ row.put("msg", "错误信息:导入文件存在相同编码的商品");
|
|
|
+ rowserr.add(row);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (itemnoRowsMap.containsKey(itemno)) {
|
|
|
+ row.put("itemid", itemnoRowsMap.get(itemno).get(0).getLong("itemid"));
|
|
|
+ } else {
|
|
|
+ iserr = true;
|
|
|
+ row.put("msg", "错误信息:不存在商品编号为" + itemno + "的商品");
|
|
|
+ rowserr.add(row);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ rowssuc.add(row);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!rowssuc.isEmpty()) {
|
|
|
+ for (Row row : rowssuc) {
|
|
|
+ Long sa_rebateunjoinproductsid = createTableID("sa_rebateunjoinproducts");
|
|
|
+ SQLFactory sqlFactoryupload = new SQLFactory(this, "装修返利方案参与返利商品新增");
|
|
|
+ sqlFactoryupload.addParameter("sa_rebateunjoinproductsid", sa_rebateunjoinproductsid);
|
|
|
+ sqlFactoryupload.addParameter("sa_rebateschemeid", content.getLongValue("sa_rebateschemeid"));
|
|
|
+ sqlFactoryupload.addParameter("siteid", siteid);
|
|
|
+ sqlFactoryupload.addParameter("itemid", row.getString("itemid"));
|
|
|
+ sqllist.add(sqlFactoryupload.getSQL());
|
|
|
+ sqlList.add("delete from sa_rebateunproducts where sa_rebateschemeid="+content.getLongValue("sa_rebateschemeid")+" and itemid="+ row.getString("itemid")+" and siteid='"+siteid+"'");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!sqllist.isEmpty()) {
|
|
|
+ String sql = DataContrlLog.createLog(this, "sa_rebatescheme", content.getLongValue("sa_rebateschemeid"), "新增", "装修返利方案参与返利商品导入:" + content.getLongValue("sa_rebateschemeid")).getSQL();
|
|
|
+ sqlList.add(sql);
|
|
|
+ dbConnect.runSqlUpdate(sqllist);
|
|
|
+ } else {
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_rebateunjoinproducts where sa_rebateschemeid=" + content.getLongValue("sa_rebateschemeid"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (iserr) {
|
|
|
+ ExcelFactory excelFactory = new ExcelFactory("参与返利商品导入错误信息");
|
|
|
+ HashMap<String, String> map = new HashMap<String, String>();
|
|
|
+ map.put("itemno", "商品编号");
|
|
|
+ map.put("msg", "错误信息");
|
|
|
+ ArrayList<String> colNameList = new ArrayList<String>();
|
|
|
+ HashMap<String, Class> keytypemap = new HashMap<String, Class>();
|
|
|
+ colNameList.add("itemno");
|
|
|
+ colNameList.add("msg");
|
|
|
+ keytypemap.put("itemno", String.class);
|
|
|
+ keytypemap.put("msg", String.class);
|
|
|
+ rowserr.setFieldList(colNameList);
|
|
|
+ rowserr.setFieldTypeMap(keytypemap);
|
|
|
+ addSheet(excelFactory, "Sheet1", rowserr, map);
|
|
|
+
|
|
|
+ Rows aa = uploadExcelToObs(excelFactory);
|
|
|
+ String url = "";
|
|
|
+ if (!aa.isEmpty()) {
|
|
|
+ url = aa.get(0).getString("url");
|
|
|
+ }
|
|
|
+ return getErrReturnObject().setErrMsg(url).toString();
|
|
|
+ }
|
|
|
+ } catch (Exception e1) {
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_rebateunjoinproducts where sa_rebateschemeid=" + content.getLongValue("sa_rebateschemeid"));
|
|
|
+ e1.printStackTrace();
|
|
|
+ return getErrReturnObject().setErrMsg(e1.getMessage()).toString();
|
|
|
+ }
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ public XSSFSheet addSheet(ExcelFactory excelFactory, String sheetname, Rows datarows,
|
|
|
+ HashMap<String, String> titlemap) {
|
|
|
+ ArrayList<String> keylist = datarows.getFieldList();
|
|
|
+ XSSFSheet sheet = excelFactory.getXssfWorkbook().createSheet(sheetname);
|
|
|
+ XSSFWorkbook xssfFWorkbook = excelFactory.getXssfWorkbook();
|
|
|
+
|
|
|
+ XSSFCellStyle xssfCellStyle1 = xssfFWorkbook.createCellStyle();
|
|
|
+ XSSFFont font = xssfFWorkbook.createFont();
|
|
|
+
|
|
|
+ font.setColor((short) 0xa);
|
|
|
+ font.setFontHeightInPoints((short) 12);
|
|
|
+ font.setBold(true);
|
|
|
+ xssfCellStyle1.setFont(font);
|
|
|
+
|
|
|
+ ExportExcel.setBatchDetailSheetColumn2(sheet);// 设置工作薄列宽
|
|
|
+ XSSFCellStyle titleCellStyle1 = ExportExcel.createTitleCellStyle1(xssfFWorkbook);
|
|
|
+ XSSFCellStyle titleCellStyle2 = ExportExcel.createTitleCellStyle2(xssfFWorkbook);
|
|
|
+ XSSFCellStyle titleCellStyle3 = ExportExcel.createTitleCellStyle3(xssfFWorkbook);
|
|
|
+ ExportExcel.batchDetailErr(sheet, titleCellStyle1, titleCellStyle2, titleCellStyle3, xssfFWorkbook);// 写入标题
|
|
|
+
|
|
|
+ for (int n = 0; n < datarows.size(); n++) {
|
|
|
+ Row row = datarows.get(n);
|
|
|
+ XSSFRow datarow = sheet.createRow(n + 3);
|
|
|
+ for (int i1 = 0; i1 < keylist.size(); i1++) {
|
|
|
+ Class fieldclazztype = datarows.getFieldMeta(keylist.get(i1)).getFieldtype();
|
|
|
+ if (fieldclazztype == Integer.class) {
|
|
|
+ datarow.createCell(i1).setCellValue(row.getInteger((String) keylist.get(i1)).intValue());
|
|
|
+ } else if (fieldclazztype == Long.class) {
|
|
|
+ datarow.createCell(i1).setCellValue(row.getLong((String) keylist.get(i1)));
|
|
|
+ } else if (fieldclazztype == Float.class) {
|
|
|
+ datarow.createCell(i1).setCellValue(row.getFloat((String) keylist.get(i1)));
|
|
|
+ } else if (fieldclazztype == Double.class) {
|
|
|
+ datarow.createCell(i1).setCellValue(row.getDouble((String) keylist.get(i1)));
|
|
|
+ } else {
|
|
|
+ datarow.createCell(i1).setCellValue(row.getString((String) keylist.get(i1)));
|
|
|
+ }
|
|
|
+ if (i1 == 1) {
|
|
|
+ datarow.getCell(i1).setCellStyle(xssfCellStyle1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sheet;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|