|
|
@ -26,11 +26,16 @@ |
|
|
|
package com.yxt.supervise.portal.biz.salesdata; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.io.resource.ResourceUtil; |
|
|
|
import cn.hutool.core.text.csv.CsvReader; |
|
|
|
import cn.hutool.core.text.csv.CsvUtil; |
|
|
|
import cn.hutool.core.util.CharsetUtil; |
|
|
|
import cn.hutool.poi.excel.ExcelUtil; |
|
|
|
import cn.hutool.poi.excel.sax.handler.RowHandler; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.portal.api.purchaserequisitiontobaccodetails.PurchaseRequisitionTobaccoDetails; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.core.result.FileUploadResult; |
|
|
|
import com.yxt.supervise.portal.api.brandinfo.BrandInfo; |
|
|
@ -71,6 +76,9 @@ import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.io.BufferedReader; |
|
|
|
import java.io.File; |
|
|
|
import java.io.IOException; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.*; |
|
|
@ -209,10 +217,10 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD |
|
|
|
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"销售数据导入第"+i+"出现异常"+e.getMessage()); |
|
|
|
System.err.println("i="+i+",value=null"); |
|
|
|
} |
|
|
|
lisss.add(rowNum+""); |
|
|
|
//lisss.add(rowNum+"");
|
|
|
|
//inventoryInformationService.reduceStock(sd.getProCode(),sd.getProName(),sd.getStoreCode(),sd.getSaleNum());
|
|
|
|
log.info("productInformation:{}", JSONObject.toJSONString(sd_map)); |
|
|
|
log.info("rowNum:{}", rowNum); |
|
|
|
//log.info("productInformation:{}", JSONObject.toJSONString(sd_map));
|
|
|
|
//log.info("rowNum:{}", rowNum);
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -291,6 +299,98 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|
public void readBrandPeriodSorXls1(MultipartFile file,String sid) { |
|
|
|
|
|
|
|
/*ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobaccoDetails"); |
|
|
|
String filePath = fub.getData().getFilePath(); |
|
|
|
String fp = fileUploadComponent.getUploadPath() + filePath; |
|
|
|
long millis = System.currentTimeMillis(); |
|
|
|
ExcelUtil.read07BySax(fp, -1, createRowHandler(sid));*/ |
|
|
|
log.info("readBrandPeriodSorXls1:{}",1); |
|
|
|
CsvReader csvReader = CsvUtil.getReader(); |
|
|
|
log.info("readBrandPeriodSorXls1:{}",2); |
|
|
|
File f = this.multiToFile(file); |
|
|
|
log.info("readBrandPeriodSorXls1:{}",3); |
|
|
|
BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK); |
|
|
|
log.info("readBrandPeriodSorXls1:{}",4); |
|
|
|
List<HashMap > rows = csvReader.read(reader, HashMap.class); |
|
|
|
log.info("readBrandPeriodSorXls1:{}",5); |
|
|
|
List<SalesData> ls=new ArrayList<>(); |
|
|
|
log.info("readBrandPeriodSorXls1:{}",6); |
|
|
|
int i = 0; |
|
|
|
log.info("readBrandPeriodSorXls1:{}",7); |
|
|
|
for(HashMap hm:rows){ |
|
|
|
try{ |
|
|
|
/*String sp = hm.get("商品").toString().trim(); |
|
|
|
String pfj = hm.get("批发价").toString().trim(); |
|
|
|
String jydm = hm.get("卷烟代码").toString().trim(); |
|
|
|
String ddl = hm.get("订单量").toString().trim(); |
|
|
|
String yhl = hm.get("要货量").toString().trim(); |
|
|
|
String lszdj = hm.get("零售指导价").toString().trim(); |
|
|
|
String je = hm.get("金额").toString().trim(); |
|
|
|
String cjmc = hm.get("厂家名称").toString().trim()` ;*/ |
|
|
|
/*SalesData sd=new SalesData(); |
|
|
|
sd.setType( hm.get("类型").toString().trim());//类型
|
|
|
|
sd.setCode(hm.get("销售订单号").toString().trim());//销售订单号
|
|
|
|
sd.setProCode(hm.get("商品编码").toString().trim());//商品代码
|
|
|
|
sd.setProBarCode(hm.get("商品条码").toString().trim());//商品条码
|
|
|
|
sd.setProName(hm.get("商品名称").toString().trim());//商品名称
|
|
|
|
sd.setBrandCode(hm.get("品牌代码").toString().trim());//品牌代码
|
|
|
|
String brandName=hm.get("品牌名称").toString().trim(); |
|
|
|
sd.setBrandName(brandName);//品牌名称
|
|
|
|
String dalei=hm.get("大类").toString().trim();//大类
|
|
|
|
sd.setCategoryb(dalei); |
|
|
|
String zhonglei=hm.get("中类").toString().trim();//中类
|
|
|
|
sd.setCategorym(zhonglei); |
|
|
|
String xiaolei=hm.get("小类").toString().trim();//小类
|
|
|
|
sd.setCategorys(xiaolei); |
|
|
|
sd.setCustomerCode(hm.get("客户代码").toString().trim());//客户代码
|
|
|
|
sd.setCustomerName(hm.get("客户名称").toString().trim());//客户名称
|
|
|
|
sd.setSaleNum(hm.get("销售数量").toString().trim());//销售数量
|
|
|
|
sd.setStoreCode(hm.get("销售渠道").toString().trim());//销售渠道
|
|
|
|
sd.setSalePrice(hm.get("销售价格").toString().trim());//销售价格
|
|
|
|
sd.setSaleCost(hm.get("销售成本").toString().trim());//销售成本
|
|
|
|
sd.setProfit(hm.get("利润").toString().trim());//利润
|
|
|
|
sd.setDataDate(hm.get("数据日期").toString().trim());//销售日期
|
|
|
|
ls.add(sd);*/ |
|
|
|
// log.info("iiiiiiiiiiiiiiiiiiiiiii:{}",i);
|
|
|
|
// log.info("p:{}",JSONObject.toJSONString(sd));
|
|
|
|
//i++;
|
|
|
|
}catch(Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage()); |
|
|
|
System.err.println("i="+i+",value=null"); |
|
|
|
} |
|
|
|
} |
|
|
|
/*log.info("readBrandPeriodSorXls1:{}",8); |
|
|
|
log.info("readBrandPeriodSorXls1-rows:{}",rows.size()); |
|
|
|
log.info("readBrandPeriodSorXls1-ls:{}",ls.size()); |
|
|
|
log.info("rows:{}",JSONObject.toJSONString(rows)); |
|
|
|
log.info("ls:{}",JSONObject.toJSONString(ls));*/ |
|
|
|
/*baseMapper.batchInsert(ls); |
|
|
|
purchaseRequisitionStoreService.updateDetailsPrice(sid,bigDecimal.toString());*/ |
|
|
|
} |
|
|
|
/** |
|
|
|
* MultipartFile转file |
|
|
|
* @param multipartFile |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private File multiToFile(MultipartFile multipartFile) { |
|
|
|
//选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
|
|
|
|
File file = null; |
|
|
|
try { |
|
|
|
String originalFilename = multipartFile.getOriginalFilename(); |
|
|
|
String[] filename = originalFilename.split("\\."); |
|
|
|
file=File.createTempFile(filename[0], filename[1]); |
|
|
|
multipartFile.transferTo(file); |
|
|
|
file.deleteOnExit(); |
|
|
|
} catch (IOException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error(e.getMessage()); |
|
|
|
} |
|
|
|
return file; |
|
|
|
} |
|
|
|
public void readBrandPeriodSorXls1(MultipartFile file) { |
|
|
|
|
|
|
|
ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "salesdata"); |
|
|
@ -423,7 +523,7 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD |
|
|
|
String[] split = colc2.split("]"); |
|
|
|
map.put("t2",split[1]); |
|
|
|
map.put("t3",gdInstorageGd.getColg6());//统配出
|
|
|
|
map.put("t4","无");// 销售订单编号
|
|
|
|
map.put("t4",gdInstorageGd.getColf5());// 销售订单编号
|
|
|
|
map.put("t5",gdInstorageGd.getColh7());//商品编码
|
|
|
|
map.put("t6",gdInstorageGd.getColi8());//商品名称
|
|
|
|
map.put("t7",gdInstorageGd.getColr17());//数量
|
|
|
|