|
|
@@ -12,22 +12,16 @@ import com.uas.platform.b2c.common.base.dao.CommonDao;
|
|
|
import com.uas.platform.b2c.common.search.rpc.service.SearchService;
|
|
|
import com.uas.platform.b2c.common.search.util.SPage;
|
|
|
import com.uas.platform.b2c.core.config.SysConf;
|
|
|
-import com.uas.platform.b2c.core.constant.IntegerConstant;
|
|
|
-import com.uas.platform.b2c.core.constant.ReleaseStatus;
|
|
|
-import com.uas.platform.b2c.core.constant.ShortConstant;
|
|
|
-import com.uas.platform.b2c.core.constant.SplitChar;
|
|
|
-import com.uas.platform.b2c.core.constant.Status;
|
|
|
+import com.uas.platform.b2c.core.constant.*;
|
|
|
import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
|
|
|
-import com.uas.platform.b2c.core.utils.FastjsonUtils;
|
|
|
-import com.uas.platform.b2c.core.utils.NumberUtil;
|
|
|
-import com.uas.platform.b2c.core.utils.RegexConstant;
|
|
|
-import com.uas.platform.b2c.core.utils.StringUtilB2C;
|
|
|
+import com.uas.platform.b2c.core.utils.*;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.PublicProductUrl;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
|
|
|
+import com.uas.platform.b2c.prod.commodity.controller.GoodsController;
|
|
|
import com.uas.platform.b2c.prod.commodity.dao.CommodityInOutboundDao;
|
|
|
import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
|
|
|
import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
|
|
|
@@ -112,6 +106,10 @@ import org.apache.commons.beanutils.ConvertUtils;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.apache.log4j.Logger;
|
|
|
+import org.apache.poi.ss.usermodel.Row;
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
@@ -120,6 +118,7 @@ import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageImpl;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.jdbc.core.ParameterizedPreparedStatementSetter;
|
|
|
import org.springframework.jdbc.core.StatementCallback;
|
|
|
@@ -134,6 +133,7 @@ import javax.persistence.criteria.CriteriaBuilder;
|
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import javax.persistence.criteria.Root;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.*;
|
|
|
import java.sql.PreparedStatement;
|
|
|
import java.sql.ResultSet;
|
|
|
@@ -167,7 +167,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
/**
|
|
|
* 系统操作日志
|
|
|
*/
|
|
|
- private static final UsageBufferedLogger LOGGER = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
|
|
|
+ private final Logger logger = LoggerFactory.getLogger(ProductServiceImpl.class);
|
|
|
|
|
|
/**
|
|
|
* 程序运行日志
|
|
|
@@ -2257,9 +2257,9 @@ public class ProductServiceImpl implements ProductService {
|
|
|
if (fromDate == null || toDate == null) {
|
|
|
//统计所有的未审核的品牌信息
|
|
|
Map<String, Integer> map = new HashedMap();
|
|
|
- Integer productAmout = jdbcTemplate.queryForInt("select count(1) from products p join product$private pp on p.pr_id = pp.pr_id where pp.pr_b2cenabled = 1;");
|
|
|
+ Integer productAmout = jdbcTemplate.queryForObject("select count(1) from products p join product$private pp on p.pr_id = pp.pr_id where pp.pr_b2cenabled = 1;", Integer.class);
|
|
|
map.put("productAmout", productAmout);
|
|
|
- Integer productUserAmout = jdbcTemplate.queryForInt("select count(DISTINCT pr_enuu) from products p join product$private pp on p.pr_id = pp.pr_id where pp.pr_b2cenabled = 1;");
|
|
|
+ Integer productUserAmout = jdbcTemplate.queryForObject("select count(DISTINCT pr_enuu) from products p join product$private pp on p.pr_id = pp.pr_id where pp.pr_b2cenabled = 1;", Integer.class);
|
|
|
map.put("productUserAmout", productUserAmout);
|
|
|
return ResultMap.success(map);
|
|
|
} else {
|
|
|
@@ -2267,9 +2267,9 @@ public class ProductServiceImpl implements ProductService {
|
|
|
Date toT = new Date(toDate);
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
Map<String, Integer> map = new HashedMap();
|
|
|
- Integer productAmout = jdbcTemplate.queryForInt("select count(1) from products p join product$private pp on p.pr_id = pp.pr_id where pr_create_time < '" + dateFormat.format(toT) + "' and pr_create_time > '" + dateFormat.format(fromT) + "' and pp.pr_b2cenabled = 1;");
|
|
|
+ Integer productAmout = jdbcTemplate.queryForObject("select count(1) from products p join product$private pp on p.pr_id = pp.pr_id where pr_create_time < '" + dateFormat.format(toT) + "' and pr_create_time > '" + dateFormat.format(fromT) + "' and pp.pr_b2cenabled = 1;", Integer.class);
|
|
|
map.put("productAmout", productAmout);
|
|
|
- Integer productUserAmout = jdbcTemplate.queryForInt("select count(DISTINCT pr_enuu) from products p join product$private pp on p.pr_id = pp.pr_id where pr_create_time < '" + dateFormat.format(toT) + "' and pr_create_time > '" + dateFormat.format(fromT) + "' and pp.pr_b2cenabled = 1;");
|
|
|
+ Integer productUserAmout = jdbcTemplate.queryForObject("select count(DISTINCT pr_enuu) from products p join product$private pp on p.pr_id = pp.pr_id where pr_create_time < '" + dateFormat.format(toT) + "' and pr_create_time > '" + dateFormat.format(fromT) + "' and pp.pr_b2cenabled = 1;", Integer.class);
|
|
|
map.put("productUserAmout", productUserAmout);
|
|
|
return ResultMap.success(map);
|
|
|
}
|
|
|
@@ -2579,7 +2579,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
detail.setCommodityInOutbound(inOutbound);
|
|
|
}
|
|
|
inOutbound = commodityInOutboundDao.save(inOutbound);
|
|
|
- LOGGER.log("出入库历史", "卖家中心单个物料上传进行入库操作", inOutbound.getType(), "", inOutbound.getId());
|
|
|
+ logger.info("出入库历史", "卖家中心单个物料上传进行入库操作", inOutbound.getType(), "", inOutbound.getId());
|
|
|
}
|
|
|
// 添加到个人物料库
|
|
|
bindToPerson(productInfo, userUU, enUU);
|
|
|
@@ -2643,7 +2643,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
goods.setReserve(productInfo.getErpReserve());
|
|
|
goodsService.setGoodsDefault(goods);
|
|
|
goods = goodsDao.save(goods);
|
|
|
- LOGGER.log("上架商品库存操作", "卖家中心单个物料上传进行入库操作", "增加库存: " + productInfo.getErpReserve(), goods.getCode(), goods.getId());
|
|
|
+ logger.info("上架商品库存操作", "卖家中心单个物料上传进行入库操作", "增加库存: " + productInfo.getErpReserve(), goods.getCode(), goods.getId());
|
|
|
CommodityInOutbound inOutbound = new CommodityInOutbound(InOutBoundType.OTHER_INBOUND);
|
|
|
String inOutboundId = createNumberService.generateOrderNumber(com.uas.platform.b2c.core.constant.EncodingRulesConstant.INOUTBOUND_NUM, "trade$commodity_in_outbound", 8);
|
|
|
inOutbound.setInOutId(inOutboundId);
|
|
|
@@ -2803,7 +2803,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
Double reserve = goods.getReserve() != null ? goods.getReserve() : 0D + addQty;
|
|
|
goods.setReserve(reserve);
|
|
|
goods = goodsDao.save(goods);
|
|
|
- LOGGER.log("上架商品库存操作", "卖家中心单个物料上传进行入库操作", "增加库存: " + addQty, goods.getCode(), goods.getId());
|
|
|
+ logger.info("上架商品库存操作", "卖家中心单个物料上传进行入库操作", "增加库存: " + addQty, goods.getCode(), goods.getId());
|
|
|
} else if (InOutBoundType.OTHER_OUTBOUND.equals(type)) {
|
|
|
// 出库
|
|
|
int index = goodsList.size() - 1;
|
|
|
@@ -2820,7 +2820,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
Double reserve = subQty >= 0 ? 0 : subQty;
|
|
|
goods.setReserve(Math.abs(reserve));
|
|
|
goods = goodsDao.save(goods);
|
|
|
- LOGGER.log("上架商品库存操作", "卖家中心单个物料上传进行出库操作", existQty + "->" + goods.getReserve(), goods.getCode(), goods.getId());
|
|
|
+ logger.info("上架商品库存操作", "卖家中心单个物料上传进行出库操作", existQty + "->" + goods.getReserve(), goods.getCode(), goods.getId());
|
|
|
if (reserve <= 0) {
|
|
|
break;
|
|
|
}
|
|
|
@@ -2863,7 +2863,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
if (CollectionUtils.isEmpty(productPersonList)) {
|
|
|
ProductPerson productPerson = new ProductPerson(enUU, userUU, productInfo.getId());
|
|
|
productPerson = productPersonDao.save(productPerson);
|
|
|
- LOGGER.log("个人物料", "新增个人物料", "通过卖家中心单个物料上传绑定个人物料", productInfo.getProdNum(), productPerson.getId());
|
|
|
+ logger.info("个人物料", "新增个人物料", "通过卖家中心单个物料上传绑定个人物料", productInfo.getProdNum(), productPerson.getId());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2939,9 +2939,162 @@ public class ProductServiceImpl implements ProductService {
|
|
|
goodsHistory = goodsHistoryService.converTGoodsHist(goods, type, false);
|
|
|
}
|
|
|
goodsHistory = goodsHistoryService.save(goodsHistory);
|
|
|
- LOGGER.log("库存操作", "单个物料上传更新库存操作", "操作方式-> " + type, goodsHistory.getCode(), goodsHistory.getId());
|
|
|
+ logger.info("库存操作", "单个物料上传更新库存操作", "操作方式-> " + type, goodsHistory.getCode(), goodsHistory.getId());
|
|
|
goods = goodsDao.save(goods);
|
|
|
- LOGGER.log("上架商品", "新增上架商品", "通过卖家中心单个物料上传新增上架商品", goods.getCode(), goods.getId());
|
|
|
+ logger.info("上架商品", "新增上架商品", "通过卖家中心单个物料上传新增上架商品", goods.getCode(), goods.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 企业的enuu
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<Product> getProductByEnuu() {
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ List<Product> products = productDao.findByEnUU(10049056L);//数量是10002条
|
|
|
+ long l1 = System.currentTimeMillis();
|
|
|
+ System.out.println("获取数据库数据的时间是:" + (l1 - l));
|
|
|
+ return products;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 测试通过jdbctemplate 获取制定对象
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<Product> getProductByEnuuByCommonDao() {
|
|
|
+ String sql = "select pr_code,pr_pcmpcode,pr_title,pr_cmpuuid,pr_pbranden,pr_packaging,pr_create_time,pr_reserve,pr_cmpimg,pr_enuu,pr_encapsulation,pr_kinden,pr_spec from products where pr_enuu = %d";
|
|
|
+ List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(String.format(sql, 10041559L)); // 68136条数据
|
|
|
+ List<Product> list = new ArrayList<>();
|
|
|
+ Product p = null;
|
|
|
+ for (Map<String, Object> objectMap : queryForList) {
|
|
|
+ p = new Product();
|
|
|
+ Object pr_code = objectMap.get("pr_code");
|
|
|
+ p.setProdNum(StringUtilB2C.getStr(pr_code));
|
|
|
+ Object prPcmpcode = objectMap.get("pr_pcmpcode");
|
|
|
+ p.setPcmpcode(StringUtilB2C.getStr(prPcmpcode));
|
|
|
+ Object pr_title = objectMap.get("pr_title");
|
|
|
+ p.setProdName(StringUtilB2C.getStr(pr_title));
|
|
|
+
|
|
|
+ Object pr_cmpuuid = objectMap.get("pr_cmpuuid");
|
|
|
+ p.setCmpUuId(StringUtilB2C.getStr(pr_cmpuuid));
|
|
|
+
|
|
|
+ Object pr_pbranden = objectMap.get("pr_pbranden");
|
|
|
+ p.setPbranden(StringUtilB2C.getStr(pr_pbranden));
|
|
|
+
|
|
|
+ Object pr_packaging = objectMap.get("pr_packaging");
|
|
|
+ p.setPackaging(StringUtilB2C.getStr(pr_packaging));
|
|
|
+
|
|
|
+ Object pr_create_time = objectMap.get("pr_create_time");
|
|
|
+// if (!StringUtilB2C.isEmpty(pr_create_time)) {
|
|
|
+// System.out.println(pr_create_time + "---" + pr_code);
|
|
|
+// p.setCreateTime(new Date(StringUtilB2C.getStr(pr_create_time).toString()));
|
|
|
+// }
|
|
|
+
|
|
|
+ Object pr_reserve = objectMap.get("pr_reserve");
|
|
|
+ String doul = StringUtilB2C.getStr(pr_reserve).equals("") ? "0" : StringUtilB2C.getStr(pr_reserve);
|
|
|
+ p.setErpReserve(Double.valueOf(doul));
|
|
|
+
|
|
|
+ Object pr_cmpimg = objectMap.get("pr_cmpimg");
|
|
|
+ p.setCmpImg(StringUtilB2C.getStr(pr_cmpimg));
|
|
|
+
|
|
|
+ Object pr_enuu = objectMap.get("pr_enuu");
|
|
|
+ p.setEnUU(Long.valueOf(StringUtilB2C.getStr(pr_enuu)));
|
|
|
+
|
|
|
+ Object pr_encapsulation = objectMap.get("pr_encapsulation");
|
|
|
+ p.setEncapsulation(StringUtilB2C.getStr(pr_encapsulation));
|
|
|
+
|
|
|
+ Object pr_kinden = objectMap.get("pr_kinden");
|
|
|
+ p.setKinden(StringUtilB2C.getStr(pr_kinden));
|
|
|
+
|
|
|
+ Object pr_spec = objectMap.get("pr_spec");
|
|
|
+ p.setSpec(StringUtilB2C.getStr(pr_spec));
|
|
|
+
|
|
|
+ list.add(p);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void exportToWebSite(HttpServletResponse response) throws Exception {
|
|
|
+ logger.info("批量导出", System.currentTimeMillis() + "开始时间");
|
|
|
+ String[] titles = {"物料编号", "型号", "物料名称", "uuid", "英文品牌", "包装方式", "创建时间", "库存", "图片地址", "enuu", "封装", "类目", "规格"};
|
|
|
+ String sql = "select count(pr_id) from products where pr_enuu = %d";
|
|
|
+ Integer totalRowCount = jdbcTemplate.queryForObject(String.format(sql, 10041559L), Integer.class);
|
|
|
+
|
|
|
+ String paramsSql = "select pr_code,pr_pcmpcode,pr_title,pr_cmpuuid,pr_pbranden,pr_packaging,pr_create_time,pr_reserve,pr_cmpimg,pr_enuu,pr_encapsulation,pr_kinden,pr_spec " +
|
|
|
+ "from products where pr_enuu = %d order by pr_id desc limit %d, %d";
|
|
|
+ PoiUtil.exportExcelToWebsite(response, totalRowCount, "测试export", titles, new WriteExcelDataDelegated() {
|
|
|
+ /**
|
|
|
+ * EXCEL写数据委托类 针对不同的情况自行实现
|
|
|
+ *
|
|
|
+ * @param eachSheet 指定SHEET
|
|
|
+ * @param startRowCount 开始行
|
|
|
+ * @param endRowCount 结束行
|
|
|
+ * @param currentPage 分批查询开始页
|
|
|
+ * @param pageSize 分批查询数据量
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void writeExcelData(Sheet eachSheet, Integer startRowCount, Integer endRowCount, Integer currentPage, Integer pageSize) throws Exception {
|
|
|
+ Integer startNumber = (currentPage - 1) * ExcelConstant.PER_WRITE_ROW_COUNT;
|
|
|
+ // 68136条数据
|
|
|
+ List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(String.format(paramsSql, 10041559L, startNumber, pageSize));
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(queryForList)) {
|
|
|
+
|
|
|
+ // -------------- 这一块变量照着抄就行 强迫症 后期也封装起来 ----------------------
|
|
|
+ for (int i = startRowCount; i <= endRowCount; i++) {
|
|
|
+ Row eachDataRow = eachSheet.createRow(i);
|
|
|
+ if ((i - startRowCount) < queryForList.size()) {
|
|
|
+ Map<String, Object> map = queryForList.get(i - startRowCount);
|
|
|
+
|
|
|
+
|
|
|
+ Object pr_code = map.get("pr_code");
|
|
|
+ eachDataRow.createCell(0).setCellValue(StringUtilB2C.getStr(pr_code));
|
|
|
+
|
|
|
+ Object prPcmpcode = map.get("pr_pcmpcode");
|
|
|
+ eachDataRow.createCell(1).setCellValue(StringUtilB2C.getStr(prPcmpcode));
|
|
|
+ Object pr_title = map.get("pr_title");
|
|
|
+ eachDataRow.createCell(2).setCellValue(StringUtilB2C.getStr(pr_title));
|
|
|
+
|
|
|
+ Object pr_cmpuuid = map.get("pr_cmpuuid");
|
|
|
+ eachDataRow.createCell(3).setCellValue(StringUtilB2C.getStr(pr_cmpuuid));
|
|
|
+
|
|
|
+ Object pr_pbranden = map.get("pr_pbranden");
|
|
|
+ eachDataRow.createCell(4).setCellValue(StringUtilB2C.getStr(pr_pbranden));
|
|
|
+
|
|
|
+ Object pr_packaging = map.get("pr_packaging");
|
|
|
+ eachDataRow.createCell(5).setCellValue(StringUtilB2C.getStr(pr_packaging));
|
|
|
+
|
|
|
+ //createTime
|
|
|
+
|
|
|
+ Object pr_reserve = map.get("pr_reserve");
|
|
|
+ String doul = StringUtilB2C.getStr(pr_reserve).equals("") ? "0" : StringUtilB2C.getStr(pr_reserve);
|
|
|
+ eachDataRow.createCell(7).setCellValue(Double.valueOf(doul));
|
|
|
+
|
|
|
+ Object pr_cmpimg = map.get("pr_cmpimg");
|
|
|
+ eachDataRow.createCell(8).setCellValue(StringUtilB2C.getStr(pr_cmpimg));
|
|
|
+
|
|
|
+ Object pr_enuu = map.get("pr_enuu");
|
|
|
+ eachDataRow.createCell(9).setCellValue(Long.valueOf(StringUtilB2C.getStr(pr_enuu)));
|
|
|
+
|
|
|
+ Object pr_encapsulation = map.get("pr_encapsulation");
|
|
|
+ eachDataRow.createCell(10).setCellValue(StringUtilB2C.getStr(pr_encapsulation));
|
|
|
+
|
|
|
+ Object pr_kinden = map.get("pr_kinden");
|
|
|
+ eachDataRow.createCell(11).setCellValue(StringUtilB2C.getStr(pr_kinden));
|
|
|
+
|
|
|
+ Object pr_spec = map.get("pr_spec");
|
|
|
+ eachDataRow.createCell(12).setCellValue(StringUtilB2C.getStr(pr_spec));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ logger.info("批量导出", System.currentTimeMillis() + "结束时间");
|
|
|
}
|
|
|
|
|
|
/**
|