Commit 2bf20e7f by guojuxing

Merge remote-tracking branch 'origin/developer' into developer

parents e5a40c23 8f2a6e88
......@@ -13,4 +13,10 @@ public interface ProvincesApiService {
ServiceResponse<List<CityDTO>> selectAllCity();
ServiceResponse<List<CountyDTO>> selectAllCounty();
ServiceResponse<List<ProvinceDTO>> queryProvinces(String search);
ServiceResponse<List<CityDTO>> queryCity(String search);
ServiceResponse<List<CountyDTO>> queryCounty(String search);
}
......@@ -49,4 +49,19 @@ public interface StoreDictApiService {
* @return
*/
ServiceResponse saveStoreStatus(Integer enterpriseId, String[] storeStatusArr);
}
/**
* 查询支持列表查询的自定义字段
* @param enterpriseId
* @return
*/
ServiceResponse<List<StoreDictDTO>> listStoreField(Integer enterpriseId);
/**
* 保存自定义字段关联查询
* @param enterpriseId
* @param value
* @return
*/
ServiceResponse saveStoreField(Integer enterpriseId, String value);
}
\ No newline at end of file
......@@ -37,5 +37,9 @@ public interface StoreImportApiService {
ServiceResponse<List<StoreTmpDTO>> listAllStoreTmp(Integer enterpriseId);
ServiceResponse<List<List<String>>> listError(Integer enterpriseId);
ServiceResponse<Page> pageError(Integer enterpriseId, Integer currentPage, Integer pageSize);
// List<StoreTmpDTO> listStoreTmp(Integer enterpriseId, Boolean isSuccess, Boolean isWait);
}
package com.gic.store.dao.mapper;
import com.gic.store.entity.TabCity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -58,4 +59,6 @@ public interface TabCityMapper {
* @return
*/
List<TabCity> selectAllCity();
List<TabCity> queryCity(@Param("search")String search);
}
\ No newline at end of file
package com.gic.store.dao.mapper;
import com.gic.store.entity.TabCity;
import com.gic.store.entity.TabCounty;
import com.gic.store.entity.TabProvince;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -54,4 +57,6 @@ public interface TabCountyMapper {
int updateByPrimaryKey(TabCounty record);
List<TabCounty> selectAllCounty();
List<TabCounty> queryCounty(@Param("search")String search);
}
\ No newline at end of file
package com.gic.store.dao.mapper;
import com.gic.store.entity.TabProvince;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -54,4 +55,6 @@ public interface TabProvinceMapper {
int updateByPrimaryKey(TabProvince record);
List<TabProvince> selectAllProvince();
List<TabProvince> queryProvinces(@Param("search") String search);
}
\ No newline at end of file
......@@ -61,4 +61,6 @@ public interface TabStoreDictMapper {
List<String> listStoreType(Integer enterpriseId);
List<String> listStoreStatus(Integer enterpriseId);
List<String> listStoreField(Integer enterpriseId);
}
\ No newline at end of file
......@@ -55,4 +55,8 @@ public interface TabStoreExtendMapper {
int updateByPrimaryKey(TabStoreExtend record);
List<TabStoreExtend> list(@Param("enterpriseId") Integer enterpriseId, @Param("storeId") Integer storeId);
TabStoreExtend getStoreExtendByStoreIdAndStoreFieldId(@Param("storeId") Integer storeId, @Param("storeFieldId") Integer storeFieldId);
int countStoreExtendStoreField(@Param("storeField") Integer storeField, @Param("storeFieldSelectId") Integer storeFieldSelectId);
}
\ No newline at end of file
......@@ -5,6 +5,8 @@ import com.gic.store.entity.TabStore;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TabStoreMapper {
/**
* 根据主键删除
......@@ -66,4 +68,6 @@ public interface TabStoreMapper {
Integer countByBrandId(@Param("brandId") Integer brandId);
Page listStore(StoreDTO storeDTO);
List<TabStore> listStoreByRegionAndStatus(@Param("regionIdList") List<Integer> regionIdList,@Param("statusList") List<Integer> statusList);
}
\ No newline at end of file
......@@ -12,4 +12,10 @@ public interface ProvincesService {
List<TabCity> selectAllCity();
List<TabCounty> selectAllCounty();
List<TabProvince> queryProvinces(String search);
List<TabCity> queryCity(String search);
List<TabCounty> queryCounty(String search);
}
......@@ -30,4 +30,11 @@ public interface StoreDictService {
* @param tabStoreDict
*/
void saveStoreStatus(TabStoreDict tabStoreDict);
/**
* 查询门店自定义字段配置支持查询
* @param enterpriseId
* @return
*/
List<String> listStoreField(Integer enterpriseId);
}
......@@ -15,4 +15,19 @@ public interface StoreExtendService {
List<TabStoreExtend> listByStoreId(Integer enterpriseId, Integer storeId);
List<StoreExtendDTO> convertStoreExtendToDTO(List<TabStoreExtend> extendList);
TabStoreExtend getStoreExtendByStoreIdAndFieldId(Integer storeId, Integer storeFieldId);
/**
* 判断自定义属性是否在使用
* @return true:在使用 false:不在使用
*/
boolean storeExtendHasStoreField(Integer storeField);
/**
* 判断自定义属性值是否在使用
* @return true:在使用 false:不在使用
*/
boolean storeExtendHasStoreFieldSelect(Integer storeField, Integer storeFieldSelectId);
}
......@@ -4,6 +4,8 @@ import com.gic.store.dto.StoreDTO;
import com.gic.store.entity.TabStore;
import com.github.pagehelper.Page;
import java.util.List;
/**
* @author zhiwj
* @date 2019/6/27
......@@ -54,4 +56,6 @@ public interface StoreService {
Page listStore(StoreDTO storeDTO, Integer pageNum, Integer pageSize);
Integer checkCompleteStatus(StoreDTO storeDTO);
List<TabStore> listStoreByRegionAndStatus(List<Integer> regionIdList, List<Integer> statusList);
}
......@@ -35,4 +35,19 @@ public class ProvincesServiceImpl implements ProvincesService {
public List<TabCounty> selectAllCounty() {
return this.tabCountyMapper.selectAllCounty();
}
@Override
public List<TabProvince> queryProvinces(String search) {
return this.tabProvinceMapper.queryProvinces(search);
}
@Override
public List<TabCity> queryCity(String search) {
return this.tabCityMapper.queryCity(search);
}
@Override
public List<TabCounty> queryCounty(String search) {
return this.tabCountyMapper.queryCounty(search);
}
}
......@@ -33,4 +33,9 @@ public class StoreDictServiceImpl implements StoreDictService {
tabStoreDict.setType("storeStatus");
this.tabStoreDictMapper.insert(tabStoreDict);
}
@Override
public List<String> listStoreField(Integer enterpriseId) {
return this.tabStoreDictMapper.listStoreField(enterpriseId);
}
}
......@@ -67,4 +67,19 @@ public class StoreExtendServiceImpl implements StoreExtendService {
return Collections.emptyList();
}
}
@Override
public TabStoreExtend getStoreExtendByStoreIdAndFieldId(Integer storeId, Integer storeFieldId) {
return tabStoreExtendMapper.getStoreExtendByStoreIdAndStoreFieldId(storeId, storeFieldId);
}
@Override
public boolean storeExtendHasStoreField(Integer storeField) {
return tabStoreExtendMapper.countStoreExtendStoreField(storeField, null) > 0;
}
@Override
public boolean storeExtendHasStoreFieldSelect(Integer storeField, Integer storeFieldSelectId) {
return tabStoreExtendMapper.countStoreExtendStoreField(storeField, storeFieldSelectId) > 0;
}
}
......@@ -12,7 +12,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* @author zhiwj
......@@ -140,4 +142,12 @@ public class StoreServiceImpl implements StoreService {
: GlobalInfo.DATA_STATUS_DELETE
;
}
@Override
public List<TabStore> listStoreByRegionAndStatus(List<Integer> regionIdList, List<Integer> statusList) {
if (CollectionUtils.isEmpty(regionIdList) || CollectionUtils.isEmpty(statusList)) {
return Collections.emptyList();
}
return tabStoreMapper.listStoreByRegionAndStatus(regionIdList, statusList);
}
}
......@@ -51,4 +51,19 @@ public class ProvincesApiServiceImpl implements ProvincesApiService {
}
return ServiceResponse.success(list);
}
@Override
public ServiceResponse<List<ProvinceDTO>> queryProvinces(String search) {
return ServiceResponse.success(EntityUtil.changeEntityListByJSON(ProvinceDTO.class, this.provincesService.queryProvinces(search)));
}
@Override
public ServiceResponse<List<CityDTO>> queryCity(String search) {
return ServiceResponse.success(EntityUtil.changeEntityListByJSON(CityDTO.class, this.provincesService.queryCity(search)));
}
@Override
public ServiceResponse<List<CountyDTO>> queryCounty(String search) {
return ServiceResponse.success(EntityUtil.changeEntityListByJSON(CountyDTO.class, this.provincesService.queryCounty(search)));
}
}
package com.gic.store.service.outer;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.bizdict.api.dto.BizdictDTO;
import com.gic.bizdict.api.service.BizdictService;
import com.gic.store.dto.StoreDictDTO;
import com.gic.store.entity.TabStoreDict;
import com.gic.store.entity.TabStoreField;
import com.gic.store.service.StoreDictApiService;
import com.gic.store.service.StoreDictService;
import com.gic.store.service.StoreFieldService;
import com.gic.store.utils.ErrorCode;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -22,6 +25,8 @@ public class StoreDictApiServiceImpl implements StoreDictApiService {
private StoreDictService storeDictService;
@Autowired
private BizdictService bizdictService;
@Autowired
private StoreFieldService storeFieldService;
@Override
public ServiceResponse<List<StoreDictDTO>> listAllStoreType(Integer enterpriseId) {
......@@ -91,6 +96,33 @@ public class StoreDictApiServiceImpl implements StoreDictApiService {
return ServiceResponse.success();
}
@Override
public ServiceResponse<List<StoreDictDTO>> listStoreField(Integer enterpriseId) {
List<StoreDictDTO> result = new ArrayList<>();
com.github.pagehelper.Page<TabStoreField> listStoreField = this.storeFieldService.listStoreField(enterpriseId, null, 1, 1000);
if(listStoreField != null){
List<TabStoreField> list = listStoreField.getResult();
List<String> listSelect = this.storeDictService.listStoreField(enterpriseId);
for(TabStoreField tabStoreField : list){
StoreDictDTO storeDictDTO = new StoreDictDTO();
storeDictDTO.setKey(tabStoreField.getStoreFieldName());
storeDictDTO.setValue(tabStoreField.getStoreFieldId()+"");
for(String s : listSelect){
if(tabStoreField.getStoreFieldId() == Integer.valueOf(s)){
storeDictDTO.setChecked(1);
}
}
result.add(storeDictDTO);
}
}
return ServiceResponse.success(result);
}
@Override
public ServiceResponse saveStoreField(Integer enterpriseId, String value) {
return null;
}
private List<StoreDictDTO> listAllStoreDict(Integer enterpriseId, String type){
List<StoreDictDTO> result = new ArrayList<>();
List<BizdictDTO> list = this.bizdictService.treeByCategoryCode(type);
......
......@@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -41,6 +42,9 @@ public class StoreImportApiServiceImpl implements StoreImportApiService {
private StoreService storeService;
@Autowired
private StoreApiService storeApiService;
@Autowired
private StoreImportService storeImportService;
@Autowired
......@@ -115,7 +119,13 @@ public class StoreImportApiServiceImpl implements StoreImportApiService {
@Override
public ServiceResponse<List<StoreTmpDTO>> listStoreTmp(Integer enterpriseId, Boolean isRight) {
return ServiceResponse.success(EntityUtil.changeEntityListByOrika(StoreTmpDTO.class, storeImportService.listStoreTmp(enterpriseId, isRight)));
List<StoreTmpDTO> result = EntityUtil.changeEntityListByOrika(StoreTmpDTO.class, storeImportService.listStoreTmp(enterpriseId, isRight));
for (StoreTmpDTO storeTmpDTO : result) {
String customField = storeTmpDTO.getCustomField();
List<StoreExtendDTO> extendList = storeExtendService.convertStoreExtendToDTO(JSON.parseArray(customField, TabStoreExtend.class));
storeTmpDTO.setExtendList(extendList);
}
return ServiceResponse.success(result);
}
@Override
......@@ -123,6 +133,66 @@ public class StoreImportApiServiceImpl implements StoreImportApiService {
return ServiceResponse.success(EntityUtil.changeEntityListByOrika(StoreTmpDTO.class, storeImportService.listAllStoreTmp(enterpriseId)));
}
@Override
public ServiceResponse<List<List<String>>> listError(Integer enterpriseId) {
List<List<String>> resultList = new LinkedList<>();
List<StoreTmpDTO> dataList = this.listStoreTmp(enterpriseId, Boolean.FALSE).getResult();
// title
// 系统title
// 自定义title
List<String> title = getTitle(enterpriseId, dataList.get(0).getRegionId());
resultList.add(title);
// 数据
// 普通数据
// 自定义数据
for (int i = 0; i < dataList.size(); i++) {
List<String> list = new LinkedList<>();
StoreTmpDTO storeTmpDTO = dataList.get(i);
//{"序号", "门店名称", "门店代码", "门店类型", "门店状态", "门店电话", "门店所属分组", "关联门店品牌", "省", "市", "区县", "门店地址(不包括省市区)", "经度", "纬度"};
list.add(i + 1 + "");
list.add(storeTmpDTO.getStoreName());
list.add(storeTmpDTO.getStoreCode());
list.add(storeTmpDTO.getStoreType());
list.add(storeTmpDTO.getErpStatus());
list.add(storeTmpDTO.getConactsPhone());
list.add(storeTmpDTO.getStoreGroupName());
list.add(storeTmpDTO.getBrands());
list.add(storeTmpDTO.getProvince());
list.add(storeTmpDTO.getCity());
list.add(storeTmpDTO.getCounty());
list.add(storeTmpDTO.getAddress());
list.add(storeTmpDTO.getLongitude());
list.add(storeTmpDTO.getLatitude());
List<StoreExtendDTO> extendList = storeTmpDTO.getExtendList();
if (CollectionUtils.isNotEmpty(extendList)) {
List<String> valueList = extendList.stream().map(StoreExtendDTO::getValue).collect(Collectors.toList());
list.addAll(valueList);
}
list.add(storeTmpDTO.getErrorMessage());
resultList.add(list);
}
return ServiceResponse.success(resultList);
}
private List<String> getTitle(Integer enterpriseId, Integer regionId) {
List<String> titleList = storeApiService.listImportTitle(enterpriseId, regionId).getResult().get(0);
titleList.add("错误信息");
return titleList;
}
@Override
public ServiceResponse<Page> pageError(Integer enterpriseId, Integer currentPage, Integer pageSize) {
List<List<String>> resultList = new LinkedList<>();
Page page = this.listStoreTmp(enterpriseId, Boolean.FALSE, currentPage, pageSize).getResult();
List<StoreTmpDTO> result = page.getResult();
return null;
}
@Override
public ServiceResponse<String> importDataToStore(Integer enterpriseId, String userId, String uuId) {
......@@ -134,13 +204,4 @@ public class StoreImportApiServiceImpl implements StoreImportApiService {
return ServiceResponse.failure(ErrorCode.ERR_3.getCode(), "队列错误");
}
// @Autowired
// TabStoreTmpMapper tabStoreTmpMapper;
//
// @Override
// public List<StoreTmpDTO> listStoreTmp(Integer enterpriseId, Boolean isSuccess, Boolean isWait) {
// return EntityUtil.changeEntityListByOrika(StoreTmpDTO.class, tabStoreTmpMapper.listStoreTmp(enterpriseId, isSuccess, isWait));
// }
}
......@@ -109,4 +109,12 @@
<include refid="Base_Column_List" />
from tab_city
</select>
<select id="queryCity" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_city where 1=1
<if test="search != null and search != ''">
and city_name like concat('%',#{search}, '%')
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -132,4 +132,13 @@
<include refid="Base_Column_List" />
from tab_county
</select>
<select id="queryCounty" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_county where 1=1
<if test="search != null and search != ''">
and county_name like concat('%',#{search}, '%')
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -96,4 +96,13 @@
<include refid="Base_Column_List" />
from tab_province
</select>
<select id="queryProvinces" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_province where 1=1
<if test="search != null and search != ''">
and province_name like concat('%',#{search}, '%')
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -115,4 +115,11 @@
from tab_store_dict
where enterprise_id = #{enterpriseId,jdbcType=INTEGER} and type='storeStatus'
</select>
<select id="listStoreField" parameterType="java.lang.Integer" resultType="java.lang.String">
select
value
from tab_store_dict
where enterprise_id = #{enterpriseId,jdbcType=INTEGER} and type='storeField'
</select>
</mapper>
\ No newline at end of file
......@@ -145,4 +145,19 @@
from tab_store_extend
where enterprise_id = #{enterpriseId} and store_id = #{storeId}
</select>
<select id="getStoreExtendByStoreIdAndStoreFieldId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_extend
where store_id = #{storeId} and store_field_id = #{storeFieldId}
</select>
<select id="countStoreExtendStoreField" resultType="java.lang.Integer">
select count(1)
from tab_store_extend
where store_field_id = #{storeField}
<if test="storeFieldSelectId != null">
and brand_ids REGEXP '^${storeFieldSelectId}$|^${storeFieldSelectId},.*$|^.*,${storeFieldSelectId},.*$|^.*,${storeFieldSelectId}$'
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -335,4 +335,18 @@
<include refid="Base_Column_List" />
from tab_store
</select>
<select id="listStoreByRegionAndStatus" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store
where
region_id in
<foreach collection="regionIdList" index="index" item="regionId" open="(" separator="," close=")">
#{regionId}
</foreach>
and status in
<foreach collection="statusList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</select>
</mapper>
\ No newline at end of file
......@@ -77,7 +77,9 @@ public class ExcelUtils {
XSSFRow row1 = sheet.createRow(0);
row1.setZeroHeight(true);
XSSFCell cell1 = row1.createCell(0);
cell1.setCellValue(regionIdStr);
if (StringUtils.isNotBlank(regionIdStr)) {
cell1.setCellValue(regionIdStr);
}
XSSFRow rowm = sheet.createRow(1); // 产生表格标题行
XSSFCell cellTiltle = rowm.createCell(0); //创建表格标题列
......@@ -98,20 +100,25 @@ public class ExcelUtils {
cellRowName.setCellValue(text); // 设置列头单元格的值
cellRowName.setCellStyle(columnTopStyle); // 设置列头单元格样式
}
int descriptionNum = description.size(); // 定义所需列数
XSSFRow descriptionRow = sheet.createRow(4); // 在索引2的位置创建行(最顶端的行开始的第二行)
for (int n = 0; n < descriptionNum; n++) {
XSSFCell cellRowName = descriptionRow.createCell(n); // 创建列头对应个数的单元格
cellRowName.setCellType(XSSFCell.CELL_TYPE_STRING); // 设置列头单元格的数据类型
XSSFRichTextString text = new XSSFRichTextString(description.get(n));
cellRowName.setCellValue(text); // 设置列头单元格的值
cellRowName.setCellStyle(columnTopStyle); // 设置列头单元格样式
// 定义数据开始的行数
int dataLine = 4;
if (CollectionUtils.isNotEmpty(description)) {
int descriptionNum = description.size(); // 定义所需列数
XSSFRow descriptionRow = sheet.createRow(dataLine); // 在索引2的位置创建行(最顶端的行开始的第二行)
dataLine++;
for (int n = 0; n < descriptionNum; n++) {
XSSFCell cellRowName = descriptionRow.createCell(n); // 创建列头对应个数的单元格
cellRowName.setCellType(XSSFCell.CELL_TYPE_STRING); // 设置列头单元格的数据类型
XSSFRichTextString text = new XSSFRichTextString(description.get(n));
cellRowName.setCellValue(text); // 设置列头单元格的值
cellRowName.setCellStyle(columnTopStyle); // 设置列头单元格样式
}
}
// 将查询出的数据设置到sheet对应的单元格中
for (int i = 0; i < dataList.size(); i++) {
List<String> obj = dataList.get(i); // 遍历每个对象
XSSFRow row = sheet.createRow(i + 5); // 创建所需的行数
XSSFRow row = sheet.createRow(i + dataLine); // 创建所需的行数
for (int j = 0; j < obj.size(); j++) {
XSSFCell cell = null; // 设置单元格的数据类型
if (j == 0) {
......
......@@ -83,5 +83,4 @@ public class StoreController {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
}
\ No newline at end of file
......@@ -68,34 +68,26 @@ public class StoreImportController {
List<List<String>> list = new ArrayList<>();
ServiceResponse<List<List<String>>> titleServiceResponse = storeApiService.listImportTitle(enterpriseId, Integer.parseInt(regionIdStr));
if (titleServiceResponse.isSuccess()) {
List<String> list3 = new ArrayList<>();
Collections.addAll(list3, "1", "杭州测试总店", "A001", "自营", "上线", "12345678912", "杭州门店", "品牌1、品牌2", "浙江省", "杭州市", "西湖区", "华星时代广场", "经度", "纬度");
Collections.addAll(list, list3);
int size = list3.size();
for (int i = 0; i < titleServiceResponse.getResult().get(0).size() - size; i++) {
list3.add(" ");
}
Workbook workbook = ExcelUtils.getWorkbook("门店导入模板", titleServiceResponse.getResult().get(0), titleServiceResponse.getResult().get(1), list, regionIdStr);
String fileName = "门店资料导入模板.xlsx";
byte[] bytesName = fileName.getBytes("UTF-8");
fileName = new String(bytesName, "ISO-8859-1");
response.setHeader("content-disposition", "attachment;fileName=" + fileName);
OutputStream out = response.getOutputStream();
workbook.write(out);
out.close();
return RestResponse.success();
} else {
//
return RestResponse.failure(ErrorCode.ERR_5.getCode(), "网络错误");
// 测试数据
List<String> list3 = new ArrayList<>();
Collections.addAll(list3, "1", "杭州测试总店", "A001", "自营", "上线", "12345678912", "杭州门店", "品牌1、品牌2", "浙江省", "杭州市", "西湖区", "华星时代广场", "经度", "纬度");
Collections.addAll(list, list3);
int size = list3.size();
for (int i = 0; i < titleServiceResponse.getResult().get(0).size() - size; i++) {
list3.add(" ");
}
Workbook workbook = ExcelUtils.getWorkbook("门店导入模板", titleServiceResponse.getResult().get(0), titleServiceResponse.getResult().get(1), list, regionIdStr);
String fileName = "门店资料导入模板.xlsx";
byte[] bytesName = fileName.getBytes("UTF-8");
fileName = new String(bytesName, "ISO-8859-1");
response.setHeader("content-disposition", "attachment;fileName=" + fileName);
OutputStream out = response.getOutputStream();
workbook.write(out);
out.close();
return RestResponse.success();
}
@RequestMapping("/store-tmp-file-upload")
......@@ -164,7 +156,7 @@ public class StoreImportController {
}
} catch (Exception e) {
logger.warn(e);
return RestResponse.failure(ErrorCode.ERR_5.getCode(), "excel验证不通过");
return RestResponse.failure(ErrorCode.ERR_5.getCode(), "异步队列调用失败");
}
} catch (Exception e) {
logger.warn(e);
......@@ -182,7 +174,7 @@ public class StoreImportController {
Integer enterpriseId = 1111;
Map<String, Object> result = new HashMap<String, Object>();
List<StoreTmpDTO> successList = storeImportApiService.listStoreTmp(enterpriseId, true).getResult();
ServiceResponse<Page> serviceResponse = storeImportApiService.listStoreTmp(enterpriseId, false, page.getCurrentPage(), page.getPageSize());
ServiceResponse<Page> serviceResponse = storeImportApiService.pageError(enterpriseId, page.getCurrentPage(), page.getPageSize());
List<StoreTmpDTO> totalList = storeImportApiService.listAllStoreTmp(enterpriseId).getResult();
Page pageResponse = serviceResponse.getResult();
result.put("errorData", pageResponse);
......@@ -192,18 +184,29 @@ public class StoreImportController {
return RestResponse.success(result);
}
@RequestMapping("export-error-data")
public void exportErrorData(HttpServletRequest request, HttpServletResponse response) throws IOException {
@RequestMapping("/export-error-data")
public RestResponse exportErrorData(HttpServletRequest request, HttpServletResponse response) throws IOException {
Integer enterpriseId = 1111;
String fileName = "门店导入错误记录.xlsx";
List<StoreTmpDTO> listErrorData = storeImportApiService.listStoreTmp(enterpriseId, false).getResult();
if (!listErrorData.isEmpty()) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
fileName = sdf.format(listErrorData.get(0).getUpdateTime()) + fileName;
List<List<String>> errorList = storeImportApiService.listError(enterpriseId).getResult();
List<String> titleList = errorList.get(0);
errorList.remove(0);
Workbook workbook = ExcelUtils.getWorkbook("门店导入模板", titleList, null, errorList, null);
byte[] bytesName = fileName.getBytes("UTF-8");
fileName = new String(bytesName, "ISO-8859-1");
response.setHeader("content-disposition", "attachment;fileName=" + fileName);
OutputStream out = response.getOutputStream();
workbook.write(out);
out.close();
return RestResponse.success();
} else {
return;
return RestResponse.failure(ErrorCode.ERR_3.getCode(), "没有错误日志");
}
// todo
}
private StoreTmpDTO validateData(Map<Integer, String> row, Integer enterpriseId, Integer regionId) {
......@@ -416,7 +419,7 @@ public class StoreImportController {
final String erpStatusTmp = erpStatus.replace("\\s+", "");
long count = list.stream().filter(e -> e.getKey().equals(erpStatusTmp)).count();
if (count > 0) {
return (int)count;
return (int) count;
}
}
return -1;
......@@ -429,7 +432,7 @@ public class StoreImportController {
final String storeTypeTmp = storeType.replace("\\s+", "");
long count = list.stream().filter(e -> e.getKey().equals(storeTypeTmp)).count();
if (count > 0) {
return (int)count;
return (int) count;
}
}
return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment