diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataMapper.java index a7abf0fc..a98637bb 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataMapper.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataMapper.java @@ -62,4 +62,6 @@ public interface SalesDataMapper extends BaseMapper { @Select("select * from sales_data") List selectListVo(); + @Select("select * from sales_data where dataDate=#{dataDate} ") + List selectByDate(@Param("dataDate") String pc); } \ No newline at end of file diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataRest.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataRest.java index fe2521e9..4301d23d 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataRest.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataRest.java @@ -30,12 +30,11 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.util.List; import com.yxt.supervise.portal.api.salesdata.SalesData; import com.yxt.supervise.portal.api.salesdata.SalesDataQuery; @@ -129,4 +128,41 @@ public class SalesDataRest implements SalesDataFeign { salesDataService.readBrandPeriodSorXls1(in,""); return rb; } + @ApiOperation(" ") + @RequestMapping(value = "/analysisSalesData", method = RequestMethod.GET) + public ResultBean products(HttpServletRequest request, HttpServletResponse response){ + String date=request.getParameter("date"); + ResultBean rb = ResultBean.fireFail(); //excel标题 + //excel文件名 + String fileName = date+"销售数据"+System.currentTimeMillis()+".xls"; + HSSFWorkbook wb = salesDataService.analysisSalesData( date); + //响应到客户端 + try { + this.setResponseHeader(response, fileName); + OutputStream os = response.getOutputStream(); + wb.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return rb; + } + + public void setResponseHeader(HttpServletResponse response, String fileName) { + try { + try { + fileName = new String(fileName.getBytes(),"ISO8859-1"); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + response.setContentType("application/octet-stream;charset=ISO8859-1"); + response.setHeader("Content-Disposition", "attachment;filename="+ fileName); + response.addHeader("Pargam", "no-cache"); + response.addHeader("Cache-Control", "no-cache"); + } catch (Exception ex) { + ex.printStackTrace(); + } + } } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java index a8c364ae..b428d12f 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java @@ -32,8 +32,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.supervise.portal.api.productinformation.ProductInformationVo; import com.yxt.supervise.portal.api.productnum.ProductNum; +import com.yxt.supervise.portal.api.purchaserequisition.PurchaseRequisition; +import com.yxt.supervise.portal.api.purchaserequisitionpro.PurchaseRequisitionPro; import com.yxt.supervise.portal.api.restrictedcategory.RestrictedCategory; +import com.yxt.supervise.portal.api.storeinfo.StoreInfo; import com.yxt.supervise.portal.biz.inventoryinformation.InventoryInformationService; +import com.yxt.supervise.portal.biz.productinformation.ProductInformationService; +import com.yxt.supervise.portal.biz.restrictedcategory.RestrictedCategoryService; +import com.yxt.supervise.portal.biz.storeinfo.StoreInfoService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; @@ -48,20 +54,18 @@ import com.yxt.supervise.portal.api.salesdata.SalesDataDetailsVo; import com.yxt.supervise.portal.api.salesdata.SalesDataDto; import com.yxt.supervise.portal.api.salesdata.SalesDataFeign; -import org.apache.poi.hssf.usermodel.HSSFCell; -import org.apache.poi.hssf.usermodel.HSSFRow; -import org.apache.poi.hssf.usermodel.HSSFSheet; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.util.CellRangeAddress; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; +import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * Project: yxt-supervise(宇信通监管)
@@ -81,6 +85,12 @@ import java.util.List; public class SalesDataService extends MybatisBaseService { @Resource private InventoryInformationService inventoryInformationService; + @Resource + private RestrictedCategoryService restrictedCategoryService; + @Resource + private ProductInformationService productInformationService; + @Resource + private StoreInfoService storeInfoService; private QueryWrapper createQueryWrapper(SalesDataQuery query) { // todo: 这里根据具体业务调整查询条件 // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); @@ -256,4 +266,109 @@ public class SalesDataService extends MybatisBaseService list=baseMapper.selectByDate(pc); + //创建HSSFWorkbook + addProductNum(list); + // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 + HSSFWorkbook wb = new HSSFWorkbook(); + // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet + HSSFSheet sheet = wb.createSheet(sheetName); + // 合并单元格:参数:起始行, 终止行, 起始列, 终止列 + CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 15); + sheet.addMergedRegion(cra); + // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 + + HSSFRow row = sheet.createRow(0); + // 第四步,创建单元格,并设置值表头 设置表头居中 + HSSFCellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); // 创建一个居中格式 + HSSFCell titleRow = row.createCell(0); + titleRow.setCellValue(title); + titleRow.setCellStyle(style); + //列头 + createRow3(sheet, 1, col1, style); + BigDecimal bigDecimal = new BigDecimal("0"); + //创建内容 + for(int i=0;i addProductNum( List list) { + for(int i = 0; i < list.size(); i++){ + SalesData pr=list.get(i); + ProductInformationVo productInformation=productInformationService.selectByCode(pr.getProCode()); + log.info("pr:{}",JSONObject.toJSONString(pr)); + ProductInformationVo b=productInformationService.selectByCode(pr.getProCode()); + log.info("b:{}",JSONObject.toJSONString(b)); + String brandSid = b.getBrandSid(); + String categoryKey = b.getCategoryKey(); + List restrictedCategorys=restrictedCategoryService.limitJudgement(categoryKey,brandSid); + if("081101,081102,081103".indexOf(categoryKey)>=0||(restrictedCategorys!=null&&restrictedCategorys.size()>0)){ + pr.setState(1); + }else{ + pr.setState(0); + String remarks=""; + remarks=remarks+productInformation.getCategory()+"["+productInformation.getCategoryKey()+"]品类,"; + remarks=remarks+productInformation.getBrand()+"["+productInformation.getBrandSid()+"]品牌不符合;"; + pr.setRemarks(remarks); + } + } + return list; + } + + private void createRow3(HSSFSheet sheet, int rownum, String[] col1, HSSFCellStyle style) { + //声明列对象 + HSSFCell cell = null; + //创建标题 + HSSFRow row2 = sheet.createRow(rownum); + for(int i = 0; i< col1.length; i++){ + cell = row2.createCell(i); + cell.setCellValue(col1[i]); + cell.setCellStyle(style); + } + } } \ No newline at end of file diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoMapper.java index 067bb7cc..124593a2 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoMapper.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoMapper.java @@ -62,4 +62,6 @@ public interface StoreInfoMapper extends BaseMapper { @Select("select * from store_info") List selectListVo(); + @Select("select * from store_info where code =#{code}") + StoreInfo selectByCode(@Param("code")String storeCode); } \ No newline at end of file diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoService.java index 86d2d77f..c2ba02ac 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoService.java @@ -102,4 +102,8 @@ public class StoreInfoService extends MybatisBaseService