package com.zbooksoft.gdmis.controller; import com.alibaba.fastjson.JSONObject; import com.ruili.wcp.common.CustomConfigUtil; import com.ruili.wcp.common.StringUtil; import com.ruili.wcp.common.excel.PoiUtil; import com.ruili.wcp.configsettting.SystemConfig; import com.ruili.wcp.data.entity.config.Module; import com.ruili.wcp.data.entity.management.User; import com.ruili.wcp.engine.form.IFormData; import com.ruili.wcp.service.config.ModuleService; import com.ruili.wcp.service.config.ViewService; import com.ruili.wcp.web.model.AjaxResponse; import com.ruili.wcp.web.model.ErrorInfo; import com.zbooksoft.gdmis.common.PdfUtil; import com.zbooksoft.gdmis.data.entity.CatYswjxx; import com.zbooksoft.gdmis.data.entity.PackingManage; import com.zbooksoft.gdmis.service.CatCheckService; import com.zbooksoft.gdmis.service.CatYswjxxService; import com.zbooksoft.gdmis.service.PackingManageService; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresUser; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Map; import static com.zbooksoft.gdmis.common.ZipUtil.copyFile; import static com.zbooksoft.gdmis.common.ZipUtil.zipFile; /** * @author 15280 */ @Controller @RequestMapping("/catYswjxx") public class CatYswjxxController { @Autowired ViewService viewService; @Autowired PackingManageService packingManageService; @Autowired JdbcTemplate jdbcTemplate; @Autowired CatYswjxxService catYswjxxService; @Autowired CustomConfigUtil customConfigUtil; @Autowired ModuleService moduleService; @Autowired IFormData iform; @Autowired CatCheckService catCheckService; private static final Logger logger = LoggerFactory.getLogger(CatYswjxxController.class); /** * 文件拆分 * * @return */ @RequestMapping({"/split"}) @ResponseBody @RequiresUser public Object split(Long moduleId, Long viewId, Long id, @RequestBody JSONObject jsonData) { try { //获取拆几份 String count = StringUtil.nullToEmpty(jsonData.getString("returnOpinion")).trim(); if (jsonData.containsKey("ids")) { ArrayList ids = (ArrayList) jsonData.get("ids"); for (String longId : ids) { Module module = moduleService.getByIdModule(moduleId); String mainTableName = module.getMainTableName(); String selectSql = "select * from " + mainTableName + " where ID = " + longId; Map map = jdbcTemplate.queryForMap(selectSql); addPacking(map, count); } } return new AjaxResponse(true); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } /** * 文件拆分 * * @return */ @RequestMapping({"/addCg"}) @ResponseBody @RequiresUser public Object addCg(Long moduleId, Long viewId, Long id, @RequestBody JSONObject jsonData) { try { //获取拆几份 String count = StringUtil.nullToEmpty(jsonData.getString("returnOpinion")).trim(); if (jsonData.containsKey("ids")) { ArrayList ids = (ArrayList) jsonData.get("ids"); String cgSql = "select NVL(max(BGBH), 0) BGBH FROM CAT_ITEM_CGWJXX"; Map stringMap = jdbcTemplate.queryForMap(cgSql); int maxDH = Integer.parseInt(stringMap.get("BGBH").toString()); for (int i = 0; i < ids.size(); i++) { int newDH = maxDH + 1 + i; String newDhString = String.format("%04d", newDH); String sql = "select * from CAT_ITEM_YSWJXX where id = " + ids.get(i); Map stringObjectMap = jdbcTemplate.queryForMap(sql); String sl = stringObjectMap.get("SL") == null ? "0" : stringObjectMap.get("SL").toString(); Integer slInt = Integer.parseInt(sl) - Integer.parseInt(count); if (slInt < 0) { slInt = 0; } stringObjectMap.put("BGBH", newDhString); LocalDateTime currentDate = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formattedDate = currentDate.format(formatter); stringObjectMap.put("CREATE_TIME", formattedDate); stringObjectMap.put("MODIFY_TIME", formattedDate); stringObjectMap.put("CDDZWJLJ", stringObjectMap.get("WJLJ")); stringObjectMap.put("SL", count); String jnxh = stringObjectMap.get("JNXH") == null ? "" : stringObjectMap.get("JNXH").toString(); String newDh = newDhString + "-" + jnxh; stringObjectMap.put("DH", newDh); iform.insert(1823017354756390913L, stringObjectMap); String updateSql = "update CAT_ITEM_YSWJXX set SL = '" + slInt + "' where ID = " + ids.get(i); jdbcTemplate.update(updateSql); } } return new AjaxResponse(true); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } /** * 添加临时位置 * * @return */ @RequestMapping({"/addTemp"}) @ResponseBody @RequiresUser public Object addTemp(Long moduleId, Long viewId, Long id, @RequestBody JSONObject jsonData) { try { //获取拆几份 String count = StringUtil.nullToEmpty(jsonData.getString("returnOpinion")).trim(); if (jsonData.containsKey("ids")) { ArrayList ids = (ArrayList) jsonData.get("ids"); for (String longId : ids) { Module module = moduleService.getByIdModule(moduleId); String mainTableName = module.getMainTableName(); String updateSql = "update " + mainTableName + " set HH = '" + count + "' where ID = " + longId; int update = jdbcTemplate.update(updateSql); } } return new AjaxResponse(true); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } /** * 文件装盒 * * @return */ @RequestMapping({"/packagingBox"}) @ResponseBody @RequiresUser public Object packagingBox(Long moduleId, Long viewId, Long id, @RequestBody JSONObject jsonData) { try { //获取拆几份 String count = StringUtil.nullToEmpty(jsonData.getString("returnOpinion")).trim(); if (jsonData.containsKey("ids")) { ArrayList ids = (ArrayList) jsonData.get("ids"); for (String longId : ids) { Module module = moduleService.getByIdModule(moduleId); String mainTableName = module.getMainTableName(); String selectSql = "select * from " + mainTableName + " where ID = " + longId; Map map = jdbcTemplate.queryForMap(selectSql); addPacking(map, count); } } return new AjaxResponse(true); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } private void addPacking(Map map, String count) { String num = ""; int i = Integer.parseInt(count); String id = StringUtil.nullToEmpty(map.get("ID")).trim(); String dh = StringUtil.nullToEmpty(map.get("DH")).trim(); packingManageService.removeByItemId(Long.parseLong(id)); if (dh != null && !dh.equals("")) { num = dh; } String ajId = StringUtil.nullToEmpty(map.get("AJ_ID")).trim(); for (int j = 0; j <= i; j++) { PackingManage packingManage = new PackingManage(); if (j == 0) { packingManage.setItemNum(num); } else { packingManage.setItemNum(num + "-" + j); } packingManage.setItemId(id); packingManage.setAjId(ajId); packingManage.setType(0); packingManage.setCreateTime(new java.util.Date()); packingManageService.saveOrUpdate(packingManage); } } /** * 全部打包 * * @return */ @RequestMapping("/extractFile") @RequiresUser public void extractFile(HttpServletRequest request, HttpServletResponse response, String ids) { try { String filePath = ""; String generatePath = ""; Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); User user = (User) session.getAttribute("user"); String userName = user.getUserName(); String timestamp = Long.toString(System.currentTimeMillis()); try { // 读取文件存放路径 SystemConfig config = SystemConfig.getInstance(); filePath = config.getAttachUploadPath() + "dataPack" + File.separator + userName + "_" + timestamp + File.separator; // for (int i = 0; i < idList.length; i++) { String wjljSql = "SELECT WJLJ FROM CAT_ITEM_YSWJXX WHERE ID = " + ids; List> wjljList = jdbcTemplate.queryForList(wjljSql); if (wjljList.size() > 0) { String newSavePath = filePath; if (wjljList.get(0).get("WJLJ") != null) { String cddzwjlj = wjljList.get(0).get("WJLJ").toString(); File file = new File(cddzwjlj); String name = file.getName(); if (name.contains(".pdf") || name.contains(".PDF")) { String parent = file.getParent(); String newName = "tmp_" + name; String newCddzwjlj = parent + File.separator + newName; PdfUtil.addBlankPageAtBeginning(cddzwjlj, newCddzwjlj); cddzwjlj = newCddzwjlj; } copyFile(cddzwjlj, newSavePath + File.separator + name); } } // } // 压缩文件 generatePath = zipFile(new File(filePath), "rar"); } catch (Exception ex) { logger.error(ex.getMessage(), ex); } File file = new File(generatePath); InputStream inStream; try { inStream = new FileInputStream(generatePath);// 文件的存放路径 response.reset(); // 设置输出的格式 String userAgent = request.getHeader("User-Agent"); // 根据获取的浏览器进行编码 String encodeFilename = PoiUtil.encodeDownloadFilename(file.getName(), userAgent); response.setHeader("content-disposition", "filename=" + encodeFilename); // 文件后缀 response.setContentType("application/vnd.ms-excel;charset=UTF-8"); // 循环取出流中的数据 byte[] b = new byte[100]; int len; while ((len = inStream.read(b)) > 0) response.getOutputStream().write(b, 0, len); inStream.close(); } catch (Exception e) { e.printStackTrace(); } finally { file.delete(); } } catch (Exception e) { logger.error(e.getMessage(), e); } } // /** // * 添加到成果资料 // * // * @return // */ // @RequestMapping({"/addCg"}) // @ResponseBody // @RequiresUser // public Object addCg(Long moduleId, Long viewId, Long id, @RequestBody JSONObject jsonData) { // try { // //获取拆几份 // String count = StringUtil.nullToEmpty(jsonData.getString("returnOpinion")).trim(); // if (jsonData.containsKey("ids")) { // ArrayList ids = (ArrayList) jsonData.get("ids"); // for (String longId : ids) { // Module module = moduleService.getByIdModule(moduleId); // String mainTableName = module.getMainTableName(); // String selectSql = "select * from " + mainTableName + " where ID = " + longId; // Map map = jdbcTemplate.queryForMap(selectSql); // addPacking(map, count); // } // } // return new AjaxResponse(true); // } catch (Exception e) { // logger.error(e.getMessage(), e); // return new AjaxResponse(new ErrorInfo(e.getMessage()), false); // } // } /** * 导入页面 * * @param type 0:从转孔基本信息进入 1:从钻孔图幅进入 * @return */ @RequestMapping({"/updateFileTypeIndex"}) @RequiresUser public ModelAndView importIndex(Integer type) { ModelAndView mv = new ModelAndView("gh/catAjjxx/updateFileTypeIndex"); return mv; } /** * 获取文件类型 * * @return */ @RequestMapping(value = "/getFileType") @ResponseBody @RequiresUser public List> getFileType() { String sql = "SELECT param_name , param_value FROM sys_keyword_param where keyword_id = 1830441538759495681"; List> mapList = jdbcTemplate.queryForList(sql); return mapList; } /** * 获取文件类型 * * @return */ @RequestMapping(value = "/updateFileType") @ResponseBody @RequiresUser public Object updateFileType(String fileType, @RequestBody ArrayList idList) { int newXh = 0; CatYswjxx yswjxx = catYswjxxService.getById(idList.get(0)); String maxFileType = catYswjxxService.getMaxFileType(yswjxx.getAjId(), fileType); if (maxFileType != null) { newXh = Integer.parseInt(maxFileType); } try { for (Long id : idList) { //JNXH CatYswjxx catYswjxx = catYswjxxService.getById(id); newXh = newXh + 1; catYswjxx.setXh(Integer.toString(newXh)); String substring = fileType.substring(fileType.indexOf("/") + 1); String newXhFormatted = String.format("%04d", newXh); String newJnxh = substring + newXhFormatted; catYswjxx.setJnxh(newJnxh); catYswjxx.setWjlx(fileType); catYswjxxService.updateById(catYswjxx); } return new AjaxResponse(true); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } public static void main(String[] args) { String fileType = "观/G"; String substring = fileType.substring(fileType.indexOf("/") + 1); System.out.println(substring); } }