| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687 |
- package cn.com.goldenwater.dcproj.service.impl.tac;
- import cn.com.goldenwater.core.model.BaseBean;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.annotation.NotExport;
- import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.dao.BisInspPblmPlistDao;
- import cn.com.goldenwater.dcproj.dao.TacProvincePblmMendInfoDao;
- import cn.com.goldenwater.dcproj.dto.TacProvincePblmInfoFromDto;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.BisInspLocalConfigParam;
- import cn.com.goldenwater.dcproj.param.TacProvincePblmMendInfoParam;
- import cn.com.goldenwater.dcproj.service.*;
- import cn.com.goldenwater.dcproj.util.BisInspPblmPlistConventUtil;
- import cn.com.goldenwater.dcproj.util.CheckUtil;
- import cn.com.goldenwater.dcproj.util.FileUtil;
- import cn.com.goldenwater.dcproj.utils.DateUtils;
- import cn.com.goldenwater.dcproj.utils.InspPblmUtils;
- import cn.com.goldenwater.dcproj.utils.expExcel.ExcelExport;
- import cn.com.goldenwater.dcproj.utils.expExcel.ExportAbstract;
- import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
- import cn.com.goldenwater.id.util.UuidUtil;
- import cn.com.goldenwater.target.CheckException;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.workflow.bpm.api.bpmservices.ActionConstant;
- import com.workflow.bpm.api.bpmservices.BpmProcessInstService;
- import com.workflow.bpm.api.bpmservices.BpmTaskService;
- import com.workflow.bpm.api.bpmservices.co.processinstance.ProcessStartCO;
- import com.workflow.bpm.api.bpmservices.co.taskinst.QueryTaskActionCO;
- import com.workflow.common.struct.res.impl.APIResult;
- import io.swagger.annotations.ApiModelProperty;
- import org.apache.commons.collections.CollectionUtils;
- import org.apache.commons.collections.MapUtils;
- import org.apache.commons.lang3.ArrayUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.servlet.http.HttpServletResponse;
- import java.io.*;
- import java.lang.reflect.Field;
- import java.nio.charset.StandardCharsets;
- import java.util.*;
- import static cn.com.goldenwater.dcproj.utils.BeanUtil.transBean2Map;
- import static cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil.COMMONLIST_AND_OPEN_ANNOTATION;
- /**
- * @author lhc
- * @date 2021-6-2
- */
- @Service
- @Transactional
- public class TacProvincePblmMendInfoServiceImpl extends AbstractCrudService<TacProvincePblmMendInfo, TacProvincePblmMendInfoParam> implements TacProvincePblmMendInfoService {
- @Autowired
- private TacProvincePblmMendInfoDao tacProvincePblmMendInfoDao;
- @Autowired
- private BisInspBpmOrgService bisInspBpmOrgService;
- @Autowired
- private BpmProcessInstService bpmProcessInstService;
- @Autowired
- private BpmTaskService bpmTaskService;
- @Autowired
- private TacProvincePblmInfoService tacProvincePblmInfoService;
- @Autowired
- private TacPawpRgstrService tacPawpRgstrService;
- @Autowired
- private AttAdBaseService attAdBaseService;
- @Autowired
- private BisInspPblmPlistDao bisInspPblmPlistDao;
- @Autowired
- private BisInspLocalConfigService bisInspLocalConfigService;
- @Autowired
- private GwComFileService gwComFileService;
- @Value("${export.templatePath}")
- private String templatePath;
- @Value("${web.upload-path}")
- private String uploadPath;
- private Logger logger = LoggerFactory.getLogger(TacProvincePblmMendInfoServiceImpl.class);
- public TacProvincePblmMendInfoServiceImpl(TacProvincePblmMendInfoDao tacProvincePblmMendInfoDao) {
- super(tacProvincePblmMendInfoDao);
- this.tacProvincePblmMendInfoDao = tacProvincePblmMendInfoDao;
- }
- @Override
- public int insert(TacProvincePblmMendInfo tacProvincePblmMendInfo) {
- tacProvincePblmMendInfo.setSetpPblmId(tacProvincePblmMendInfo.getPblmId());
- String uuid = UuidUtil.uuid(); // 生成uuid
- tacProvincePblmMendInfo.setId(uuid);
- tacProvincePblmMendInfo.setIntm(new Date());
- tacProvincePblmMendInfo.setUptm(new Date());
- tacProvincePblmMendInfo.setDataStat("0");
- tacProvincePblmMendInfo.setIsStart("0");
- tacProvincePblmMendInfo.setPblmOut("0");
- tacProvincePblmMendInfo.setCrtState("0");
- tacProvincePblmMendInfo.setIsRect("0");
- //根据 问题id补充工程行政区代码及工程名称
- String rgstrId = tacProvincePblmMendInfo.getRgstrId();
- TacPawpRgstr tacPawpRgstr = tacPawpRgstrService.get(rgstrId);
- tacProvincePblmMendInfo.setAdCode(tacPawpRgstr.getAdCode());
- tacProvincePblmMendInfo.setPrjName(tacPawpRgstr.getName());
- tacProvincePblmMendInfo.setPrjtId(tacPawpRgstr.getObjId());
- tacProvincePblmMendInfo.setGroupId(tacPawpRgstr.getGroupId());
- tacProvincePblmMendInfo.setLocation(attAdBaseService.getByAdcode(tacPawpRgstr.getAdCode()).getAdFullName());
- return this.tacProvincePblmMendInfoDao.insert(tacProvincePblmMendInfo);
- }
- @Override
- public int update(TacProvincePblmMendInfo tacProvincePblmMendInfo) {
- tacProvincePblmMendInfo.setUptm(new Date());
- return this.tacProvincePblmMendInfoDao.update(tacProvincePblmMendInfo);
- }
- @Override
- public int delete(String id) {
- return this.tacProvincePblmMendInfoDao.delete(id);
- }
- @Override
- public PageInfo<TacProvincePblmMendInfo> getList(TacProvincePblmMendInfoParam tacProvincePblmMendInfoParam) {
- if (StringUtils.isNotBlank(tacProvincePblmMendInfoParam.getArea())) {
- //截取行政区划
- }
- PageHelper.startPage(tacProvincePblmMendInfoParam);
- List<TacProvincePblmMendInfo> list = this.tacProvincePblmMendInfoDao.getList(tacProvincePblmMendInfoParam);
- PageInfo<TacProvincePblmMendInfo> pageInfo = new PageInfo<>(list);
- for (TacProvincePblmMendInfo tacProvincePblmMendInfo : pageInfo.getList()) {
- //补充省市县
- if (tacProvincePblmMendInfo.getLocation() != null) {
- if (tacProvincePblmMendInfo.getLocation().contains(SplitValue.HENG_SPLIT)) {
- String[] split = tacProvincePblmMendInfo.getLocation().split(SplitValue.HENG_SPLIT);
- if (split.length == 3) {
- tacProvincePblmMendInfo.setProvince(split[0]);
- tacProvincePblmMendInfo.setCity(split[1]);
- tacProvincePblmMendInfo.setCounty(split[2]);
- }
- if (split.length == 2) {
- tacProvincePblmMendInfo.setProvince(split[0]);
- tacProvincePblmMendInfo.setCity(split[1]);
- tacProvincePblmMendInfo.setCounty("");
- }
- } else {
- tacProvincePblmMendInfo.setProvince(tacProvincePblmMendInfo.getLocation());
- }
- }
- // 查询
- List<Map<String, String>> bpmDataIdList = bisInspPblmPlistDao.getBpmDataId(tacProvincePblmMendInfo.getId(), tacProvincePblmMendInfoParam.getOrgId(), tacProvincePblmMendInfoParam.getProvince());
- if (CollectionUtils.isNotEmpty(bpmDataIdList)) {
- Map<String, String> bpmData = bpmDataIdList.get(0);
- tacProvincePblmMendInfo.setTaskInstId(bpmData.get("taskInstId"));
- tacProvincePblmMendInfo.setProcInstId(bpmData.get("procInstId"));
- tacProvincePblmMendInfo.setProcTypeName("稽察-" + bpmData.get("procTypeName"));
- }
- }
- return pageInfo;
- }
- /**
- * 是否直管县
- *
- * @param objAdCode
- * @return
- */
- public Boolean isLocalAd(String objAdCode) {
- BisInspLocalConfigParam bisInspLocalConfigParam = new BisInspLocalConfigParam();
- bisInspLocalConfigParam.setAdCode(objAdCode);
- List<BisInspLocalConfig> bisInspLocalConfigs = bisInspLocalConfigService.findList(bisInspLocalConfigParam);
- if (bisInspLocalConfigs != null && bisInspLocalConfigs.size() > 0) {
- return true;
- } else {
- return false;
- }
- }
- @Override
- public boolean saveFormsAndStartFlow(TacProvincePblmInfoFromDto form, String userId, String orgId, String province) {
- TacProvincePblmMendInfo tacProvincePblmMendInfo = tacProvincePblmMendInfoDao.get(form.getPblmPlist().getId());
- CheckUtil.notNull(tacProvincePblmMendInfo, "数据异常!");
- CheckUtil.check(!"1".equals(tacProvincePblmMendInfo.getIsStart()), "工作流已经启动,请勿重复启动!");
- CheckUtil.check(!"1".equals(tacProvincePblmMendInfo.getPblmOut()), "整改问题已销号!");
- form.getPblmPlist().setIsStart("1");
- update(form.getPblmPlist());
- ProcessStartCO processStartCO = new ProcessStartCO();
- processStartCO.setBizKey(form.getPblmPlist().getId());
- processStartCO.setFormUrl("pdcApi/tac/province/pblm/mendInfo/" + form.getPblmPlist().getId());
- processStartCO.setProcessName("稽察整改-" + getBpmName(form));
- processStartCO.setProcessTypeCode(getBpmCode(province, "稽察整改").getBpmCode());// 根据当前用户所属省份和督查类型 取出对应工作流 id
- processStartCO.setTenantId("1");
- processStartCO.setUserId(userId);
- processStartCO.setProvince(province);
- processStartCO.setCompleteFirstTaskFlag(true);
- Map<String, Object> sendVar = new HashMap<>();
- if (isLocalAd(form.getPblmPlist().getObjAdCode())) {
- //直管县
- sendVar.put("sendLocal", "zg");
- } else {
- //非直管县
- sendVar.put("sendLocal", "fzg");
- }
- sendVar.put("sendVar", "city");
- sendVar.put("sendSpc", "spc");// 山东省 --监督处是否专家审核
- sendVar.put("sendBsnm", "九龙江流域");// 福建流域
- if (form.getPblmPlist().getBsnm() == null) {
- if (null == tacProvincePblmMendInfoDao.get(form.getPblmPlist().getId()).getBsnm()) {
- form.getPblmPlist().setBsnm("九龙江流域");
- } else {
- form.getPblmPlist().setBsnm(tacProvincePblmMendInfoDao.get(form.getPblmPlist().getId()).getBsnm());
- }
- }
- if (form.getPblmPlist().getBsnm().equals("九龙江流域")) {
- sendVar.put("sendBsnm", "九龙江流域");// 福建流域
- } else if (form.getPblmPlist().getBsnm().equals("闽江流域")) {
- sendVar.put("sendBsnm", "闽江流域");// 福建流域
- } else {
- sendVar.put("sendBsnm", "九龙江流域");// 福建流域
- }
- processStartCO.setVariables(sendVar);
- APIResult apiResult = bpmProcessInstService.startProcInst(processStartCO, userId, orgId);
- if (apiResult.isRetStatus()) {
- return true;
- } else {
- throw new CheckException("发起流程失败!");
- }
- }
- public BisInspBpmOrg getBpmCode(String province, String ptype) {
- BisInspBpmOrg bisInspBpmOrg = bisInspBpmOrgService.getBpmCodeBypp(province, ptype);
- return bisInspBpmOrg;
- }
- public String getBpmName(TacProvincePblmInfoFromDto form) {
- String nameString = "";
- //获取对象所属行政区代码
- String objAdCode = form.getPblmPlist().getAdCode();
- //查询此行政是否是直辖县
- if (isLocalAd(objAdCode)) {
- nameString = form.getPblmPlist().getProvince();
- if (form.getPblmPlist().getCounty() != null) {
- nameString = nameString + "-" + form.getPblmPlist().getCounty();
- }
- nameString = nameString + "-" + form.getPblmPlist().getPrjName() + ":" + form.getPblmPlist().getPblmNm();
- } else {
- nameString = form.getPblmPlist().getProvince();
- if (null != form.getPblmPlist().getCity()) {
- nameString = nameString + "-" + form.getPblmPlist().getCity();
- }
- if (null != form.getPblmPlist().getCounty()) {
- nameString = nameString + "-" + form.getPblmPlist().getCounty();
- }
- nameString = nameString + "-" + form.getPblmPlist().getPrjName() + ":" + form.getPblmPlist().getPblmNm();
- }
- return nameString;
- }
- @Override
- public void allStartup(TacProvincePblmMendInfoParam tacProvincePblmMendInfoParam) {
- String persId = tacProvincePblmMendInfoParam.getPersId();
- String orgId = tacProvincePblmMendInfoParam.getOrgId();
- String province = tacProvincePblmMendInfoParam.getProvince();
- tacProvincePblmMendInfoParam.setPersId(null);
- tacProvincePblmMendInfoParam.setOrgId(null);
- tacProvincePblmMendInfoParam.setProvince(null);
- // 查询
- List<TacProvincePblmInfoFromDto> tacProvincePblmInfoFromDtos = new ArrayList<>();
- List<TacProvincePblmMendInfo> list = this.tacProvincePblmMendInfoDao.getList(tacProvincePblmMendInfoParam);
- if (list != null && list.size() > 0) {
- for (TacProvincePblmMendInfo tacProvincePblmMendInfo : list) {
- if ("1".equals(tacProvincePblmMendInfo.getIsStart())) {
- continue;
- }
- if (tacProvincePblmMendInfo.getLocation() != null) {
- if (tacProvincePblmMendInfo.getLocation().contains(SplitValue.HENG_SPLIT)) {
- String[] split = tacProvincePblmMendInfo.getLocation().split(SplitValue.HENG_SPLIT);
- if (split.length == 3) {
- tacProvincePblmMendInfo.setProvince(split[0]);
- tacProvincePblmMendInfo.setCity(split[1]);
- tacProvincePblmMendInfo.setCounty(split[2]);
- }
- if (split.length == 2) {
- tacProvincePblmMendInfo.setProvince(split[0]);
- tacProvincePblmMendInfo.setCity(split[1]);
- tacProvincePblmMendInfo.setCounty("");
- }
- } else {
- tacProvincePblmMendInfo.setProvince(tacProvincePblmMendInfo.getLocation());
- }
- }
- TacProvincePblmInfoFromDto dto = new TacProvincePblmInfoFromDto();
- dto.setPblmPlist(tacProvincePblmMendInfo);
- tacProvincePblmInfoFromDtos.add(dto);
- }
- }
- for (TacProvincePblmInfoFromDto tacProvincePblmInfoFromDto : tacProvincePblmInfoFromDtos) {
- saveFormsAndStartFlow(tacProvincePblmInfoFromDto, persId, orgId, province);
- }
- }
- @Override
- public boolean submitForm(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean backwardForm(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_BACK);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean feedbackForm(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- form.getPblmPlist().setIsRect("1");//是否反馈
- update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean feedbackCityForm(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendVar", "city");
- task.setVariables(sendVar);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendCountyForm(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendVar", "county");
- task.setVariables(sendVar);
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean complete(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- form.getPblmPlist().setPblmOut("1");//已销号
- update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendVar", "county");
- task.setVariables(sendVar);
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendProvinceForm(TacProvincePblmInfoFromDto form, String userId, String orgId) {
- update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendLocal", "province");
- task.setVariables(sendVar);
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public void export(TacProvincePblmMendInfoParam tacProvincePblmMendInfoParam, HttpServletResponse response) throws Exception {
- if (StringUtils.isNotBlank(tacProvincePblmMendInfoParam.getArea())) {
- //截取行政区划
- }
- List<TacProvincePblmMendInfo> list = this.tacProvincePblmMendInfoDao.getList(tacProvincePblmMendInfoParam);
- PageInfo<TacProvincePblmMendInfo> pageInfo = new PageInfo<>(list);
- for (TacProvincePblmMendInfo tacProvincePblmMendInfo : pageInfo.getList()) {
- //补充省市县
- if (tacProvincePblmMendInfo.getLocation() != null) {
- if (tacProvincePblmMendInfo.getLocation().contains(SplitValue.HENG_SPLIT)) {
- String[] split = tacProvincePblmMendInfo.getLocation().split(SplitValue.HENG_SPLIT);
- if (split.length == 3) {
- tacProvincePblmMendInfo.setProvince(split[0]);
- tacProvincePblmMendInfo.setCity(split[1]);
- tacProvincePblmMendInfo.setCounty(split[2]);
- }
- if (split.length == 2) {
- tacProvincePblmMendInfo.setProvince(split[0]);
- tacProvincePblmMendInfo.setCity(split[1]);
- tacProvincePblmMendInfo.setCounty("");
- }
- } else {
- tacProvincePblmMendInfo.setProvince(tacProvincePblmMendInfo.getLocation());
- }
- }
- }
- String mkdirName = templatePath + File.separator + "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss");
- File file = new File(mkdirName);
- if (!file.exists()) {
- file.mkdirs();
- }
- try {
- exportExcel(list, response, "整改问题列表", mkdirName, COMMONLIST_AND_OPEN_ANNOTATION, TacProvincePblmMendInfo.class);
- } catch (Exception e) {
- logger.error("导出excel出错");
- }
- if (list != null && list.size() > 0) {
- for (int i = 1; i <= list.size(); i++) {
- // 添加文件夹
- addMkdir(list.get(i - 1), i, mkdirName);
- }
- }
- /* 4. 导出 */
- String zipFileName = "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss") + ".zip";
- FileUtil.compressToZip(mkdirName, templatePath, zipFileName);
- logger.info("--------------------------------------exp pblm mend zip -----------------------------------------------");
- /* 5.压缩包导出 */
- File zipFile = new File(templatePath + File.separator + zipFileName);
- response.setCharacterEncoding("UTF-8");
- response.setHeader("Content-Disposition",
- "attachment; filename=" + new String(zipFileName.getBytes(StandardCharsets.UTF_8), "ISO8859-1"));
- response.setContentLength((int) zipFile.length());
- response.setContentType("application/zip");// 定义输出类型
- FileInputStream fis = new FileInputStream(zipFile);
- BufferedInputStream buff = new BufferedInputStream(fis);
- byte[] b = new byte[1024];// 相当于我们的缓存
- long k = 0;// 该值用于计算当前实际下载了多少字节
- OutputStream myout = response.getOutputStream();// 从response对象中得到输出流,准备下载
- // 开始循环下载
- while (k < zipFile.length()) {
- int j = buff.read(b, 0, 1024);
- k += j;
- myout.write(b, 0, j);
- }
- myout.flush();
- buff.close();
- zipFile.delete();
- }
- @Override
- public int updateAddvcd(TacProvincePblmMendInfo tacProvincePblmMendInfo) {
- return this.tacProvincePblmMendInfoDao.updateAddvcd(tacProvincePblmMendInfo);
- }
- private File createFile(String fileName) {
- File file = new File(fileName);
- // 如果文件夹不存在
- if (!file.exists()) {
- // 创建文件夹
- file.mkdirs();
- }
- return file;
- }
- void addMkdir(TacProvincePblmMendInfo tacProvincePblmMendInfo, int number, String filePath) {
- /* 1. 获取附件信息 */
- List<GwComFile> gwComFileList = gwComFileService.findFileByBiz(tacProvincePblmMendInfo.getId());
- // 问题没附件,退出
- if (gwComFileList == null || gwComFileList.size() == 0) {
- return;
- }
- // 创建附件文件夹
- String fujianFilePath = filePath + File.separator + number;
- createFile(fujianFilePath);
- gwComFileList.forEach(file -> {
- // 获取要复制的文件
- File oldfile = new File(uploadPath.replace("upload/", "") + file.getFilePath().replaceAll("\\\\", "/").replaceAll("//", "/"));
- //要生成的新文件(指定路径如果没有则创建)
- File newfile = new File(fujianFilePath + File.separator + file.getFileName());
- try {
- newfile.createNewFile();
- } catch (IOException e) {
- logger.error("整改问题导出-创建新文件失败!");
- e.printStackTrace();
- }
- try (//文件输入流,用于读取要复制的文件
- FileInputStream fileInputStream = new FileInputStream(oldfile);
- //新文件输出流
- FileOutputStream fileOutputStream = new FileOutputStream(newfile);) {
- byte[] buffer = new byte[1024];
- int len;
- // 将文件流信息读取文件缓存区,如果读取结果不为-1就代表文件没有读取完毕,反之已经读取完毕
- while ((len = fileInputStream.read(buffer)) != -1) {
- fileOutputStream.write(buffer, 0, len);
- fileOutputStream.flush();
- }
- } catch (IOException e) {
- logger.error("整改问题导出-复制文件失败!");
- e.printStackTrace();
- }
- });
- }
- void conventPblmPlist(Map<String, Object> map) {
- map.put("isStart", BisInspPblmPlistConventUtil.isRect(MapUtils.getString(map, "isStart", "")));
- map.put("pblmPasi", InspPblmUtils.plbmCateDesc(MapUtils.getString(map, "pblmPasi", "")));
- map.put("ifCasePblm", BisInspPblmPlistConventUtil.isRect(MapUtils.getString(map, "ifCasePblm", "")));
- map.put("crtState", BisInspPblmPlistConventUtil.crtState(MapUtils.getString(map, "crtState", "")));
- map.put("pblmCrtm", map.get("pblmCrtm") != null ? DateUtils.Date2Str((Date) map.get("pblmCrtm")) : "");
- map.put("isRect", BisInspPblmPlistConventUtil.isRect(MapUtils.getString(map, "isRect", "")));
- map.put("pblmOut", BisInspPblmPlistConventUtil.isRect(MapUtils.getString(map, "pblmOut", "")));
- }
- void exportExcel(List<?> result, HttpServletResponse response, String fileName, String filePath, List<String> list, Class cla) throws NoSuchFieldException {
- if (list == null || list.size() == 0) {
- exportExcel(result, response, fileName);
- return;
- }
- List<Map<String, Object>> mapList = new ArrayList<>();
- result.forEach(worker -> mapList.add(transBean2Map(worker)));
- mapList.forEach(worker -> conventPblmPlist(worker));
- ExportAbstract export = new ExcelExport();
- if (StringUtils.isBlank(fileName)) {
- fileName = "结果列表";
- }
- export.setFileName(fileName);
- export.setExport_ps_export(true);
- export.setExport_ps_type(ExportAbstract.XLS);
- export.setExport_bzip(false);
- export.setTitle(fileName);
- ArrayList<Object> cols = new ArrayList<Object>();
- Field[] fields;
- if (cla == TacProvincePblmMendInfo.class) {
- Class superClass = BaseBean.class;
- fields = new Field[18];
- fields[0] = superClass.getDeclaredField("province"); // 省
- fields[1] = cla.getDeclaredField("city"); // 市
- fields[2] = cla.getDeclaredField("county"); // 县
- fields[3] = cla.getDeclaredField("pblmNub"); // 印发文号
- fields[4] = cla.getDeclaredField("pblmNubName"); // 印发文件名
- fields[5] = cla.getDeclaredField("prjName"); // 工程名称
- fields[6] = cla.getDeclaredField("subjectNames"); // 责任单位
- fields[7] = cla.getDeclaredField("pblmNm"); // 问题名称
- fields[8] = cla.getDeclaredField("pblmDesc"); // 问题阐述
- fields[9] = cla.getDeclaredField("pblmTypeDesc"); // 问题定性描述
- fields[10] = cla.getDeclaredField("pblmPasi");// 严重程度
- fields[11] = cla.getDeclaredField("ifCasePblm");// 是否典型
- fields[12] = cla.getDeclaredField("crtState");// 整改状态
- fields[13] = cla.getDeclaredField("pblmCrtm");// 整改时限
- fields[14] = cla.getDeclaredField("pblmReason");// 整改建议
- fields[15] = cla.getDeclaredField("isRect");// 是否反馈
- fields[16] = cla.getDeclaredField("crtInfo");// 整改措施
- fields[17] = cla.getDeclaredField("pblmOut");// 是否销号
- } else {
- fields = cla.getDeclaredFields();
- Class clazz = cla.getSuperclass();
- if (clazz != null && clazz != Objects.class) {
- fields = ArrayUtils.addAll(fields, clazz.getDeclaredFields());
- }
- }
- for (int j = 0; j <= fields.length - 1; j++) {
- //设置可访问
- Field field = fields[j];
- if (list.contains(field.getName())) {
- continue;
- }
- field.setAccessible(true);
- if (field.getAnnotation(ApiModelProperty.class) != null && field.getAnnotation(NotExport.class) == null) {
- cols.add(field.getName() + "[" + ExportUtil.fileFormat(field.getAnnotation(ApiModelProperty.class).value()) + "]");
- }
- }
- if (cols.size() < 1) {
- cols.add("name[名称]");
- cols.add("code[编码]");
- }
- export.setCols(cols);
- export.setGroupable(false);
- // 设置视图指标
- export.setLevel(1);
- export.setLocksize(0);
- try {
- export.Export(response);
- // 导出表头
- export.ExportHeadForCustom(response);
- export.ContinueExport(mapList);
- FileOutputStream output = new FileOutputStream(filePath + File.separator + fileName + ".xls");
- // 写入磁盘
- export.getWb().write(output);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- void exportExcel(List<?> result, HttpServletResponse response, String fileName) {
- List<Map<String, Object>> mapList = new ArrayList<>();
- ExportAbstract export = new ExcelExport();
- if (StringUtils.isBlank(fileName)) {
- fileName = "结果列表";
- }
- export.setFileName(fileName);
- export.setExport_ps_export(true);
- export.setExport_ps_type(ExportAbstract.XLS);
- export.setExport_bzip(false);
- export.setTitle(fileName);
- ArrayList<Object> cols = new ArrayList<Object>();
- boolean flag = true;
- for (Object o : result) {
- mapList.add(transBean2Map(o));
- if (flag) {
- Field[] fields = o.getClass().getDeclaredFields();
- for (int j = 0; j <= fields.length - 1; j++) {
- //设置可访问
- Field field = fields[j];
- // if (list.contains(field.getName())) {
- // continue;
- // }
- field.setAccessible(true);
- if (field.getAnnotation(ApiModelProperty.class) != null) {
- cols.add(field.getName() + "[" + field.getAnnotation(ApiModelProperty.class).value() + "]");
- }
- }
- flag = false;
- }
- }
- if (cols.size() < 1) {
- cols.add("name[名称]");
- cols.add("code[编码]");
- cols.add("location[地址]");
- cols.add("adCode[行政区划编码]");
- }
- export.setCols(cols);
- export.setGroupable(false);
- // 设置视图指标
- export.setLevel(1);
- export.setLocksize(0);
- try {
- export.Export(response);
- //导出表头
- export.ExportHeadForCustom(response);
- export.ContinueExport(mapList);
- FileOutputStream output = new FileOutputStream(templatePath + File.separator + "整改问题_" + File.separator + fileName + ".xls");
- // 写入磁盘
- export.getWb().write(output);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public TacProvincePblmMendInfo getProblemListInfo(String plistId) {
- return tacProvincePblmMendInfoDao.get(plistId);
- }
- @Override
- public int updateByPblmId(TacProvincePblmMendInfo tacProvincePblmMendInfo) {
- return tacProvincePblmMendInfoDao.updateByPblmId(tacProvincePblmMendInfo);
- }
- }
|