package cn.com.goldenwater.dcproj.service.impl.importex;
import cn.com.goldenwater.core.service.AbstractCrudService;
import cn.com.goldenwater.dcproj.dao.*;
import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto;
import cn.com.goldenwater.dcproj.dto.BisInspSwhsRgstrPcDtoVo;
import cn.com.goldenwater.dcproj.model.*;
import cn.com.goldenwater.dcproj.param.*;
import cn.com.goldenwater.dcproj.service.BisInspSwhsRgstrService;
import cn.com.goldenwater.dcproj.service.ImpDcInfoService;
import cn.com.goldenwater.dcproj.utils.BeanUtil;
import cn.com.goldenwater.dcproj.utils.export.CreateExcelHelper;
import cn.com.goldenwater.dcproj.utils.impexcel.ExpAndImpUtil;
import cn.com.goldenwater.dcproj.utils.impexcel.ImportExcel;
import cn.com.goldenwater.dcproj.utils.impexcel.format.DcSydFieldFormatExp;
import cn.com.goldenwater.dcproj.utils.impexcel.format.DcSydFieldFormatImp;
import cn.com.goldenwater.id.util.UuidUtil;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
import static cn.com.goldenwater.dcproj.utils.export.FieldFormat.formatCheckNull;
import static cn.com.goldenwater.dcproj.utils.export.FieldFormat.formatState;
import static cn.com.goldenwater.dcproj.utils.impexcel.field.ExcelFieldLists.*;
/**
*
* 批量填报
*
*
* @author liyz
* @date 2019/8/14 13:34
**/
@Service
@Transactional(rollbackFor = Exception.class)
public class ImpDcInfoServiceImpl extends AbstractCrudService implements ImpDcInfoService {
@Value("${export.templatePath}")
private String templatePath;
@Autowired
private ImpDcInfoDao impDcInfoDao;
@Autowired
private BisInspAllDao bisInspAllDao;
@Autowired
private CreateExcelHelper createExcelHelper;
@Autowired
private BisInspSwhsRgstrDao bisInspSwhsRgstrDao;
@Autowired
private BisInspSwhsRgstrService bisInspSwhsRgstrService;
@Autowired
private AttSwhsBaseCrrctDao attSwhsBaseCrrctDao;
@Autowired
private BisInspSwhsRgstrSafetyDao bisInspSwhsRgstrSafetyDao;
@Autowired
private BisInspSwhsRgstrMeasuresDao bisInspSwhsRgstrMeasuresDao;
@Autowired
private AttSwhsBaseDao attSwhsBaseDao;
@Autowired
private RedisTemplate redisTemplate;
public ImpDcInfoServiceImpl(ImpDcInfoDao impDcInfoDao) {
super(impDcInfoDao);
this.impDcInfoDao = impDcInfoDao;
}
@Override
public void downloadTemplate(HttpServletResponse response, String userId, String orgType, String orgIds) throws Exception {
// 模板路径
String filePath = templatePath + File.separator + "tbSyd.xls";
// SHEET名称
String sheetName = "水源地填报表";
// 文件名称带后缀
String fileName = sheetName + ".xls";
// startRow
int startRow = 4;
List rgstrList = this.getRgstrList(userId,orgIds);
List dtoVoList = this.getBisDtoVo(rgstrList,userId);
List