多单位版国产化地质资料管理系统
src/main/java/com/zbooksoft/gdmis/controller/CatYswjxxController.java
@@ -1,7 +1,9 @@
package com.zbooksoft.gdmis.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruili.wcp.common.CustomConfigUtil;
import com.ruili.wcp.common.LogUtils;
import com.ruili.wcp.common.StringUtil;
import com.ruili.wcp.common.excel.PoiUtil;
import com.ruili.wcp.configsettting.SystemConfig;
@@ -13,6 +15,9 @@
import com.ruili.wcp.web.model.AjaxResponse;
import com.ruili.wcp.web.model.ErrorInfo;
import com.zbooksoft.gdmis.common.PdfUtil;
import com.zbooksoft.gdmis.common.UsbSyncExampleWindows;
import com.zbooksoft.gdmis.common.UsbSyncExampleWindowsItem;
import com.zbooksoft.gdmis.common.UsbSyncExampleWindowsItemCg;
import com.zbooksoft.gdmis.data.entity.CatYswjxx;
import com.zbooksoft.gdmis.data.entity.PackingManage;
import com.zbooksoft.gdmis.service.CatCheckService;
@@ -37,6 +42,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -123,8 +129,8 @@
                String cgSql = "select NVL(max(BGBH), 0) BGBH FROM CAT_ITEM_CGWJXX";
                Map<String, Object> stringMap = jdbcTemplate.queryForMap(cgSql);
                int maxDH = Integer.parseInt(stringMap.get("BGBH").toString());
                int newDH = maxDH + 1;
                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<String, Object> stringObjectMap = jdbcTemplate.queryForMap(sql);
@@ -144,6 +150,7 @@
                    String jnxh = stringObjectMap.get("JNXH") == null ? "" : stringObjectMap.get("JNXH").toString();
                    String newDh = newDhString + "-" + jnxh;
                    stringObjectMap.put("DH", newDh);
                    stringObjectMap.put("WJLX", jsonData.get("wjlx"));
                    iform.insert(1823017354756390913L, stringObjectMap);
                    String updateSql = "update CAT_ITEM_YSWJXX set SL = '" + slInt + "' where ID = " + ids.get(i);
@@ -260,32 +267,39 @@
            String timestamp = Long.toString(System.currentTimeMillis());
            try {
                //1193266555786362880,1193266555916386304,1193266556004466688,1193266556105129984,1193266556193210368,1193266556277096448,1193266556377759744,1193266556474228736,1193266556545531904 变成list
                String[] idList = ids.split(",");
                // 读取文件存放路径
                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<Map<String, Object>> 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;
                for (int i = 0; i < idList.length; i++) {
                    String wjljSql = "SELECT WJLJ,WJTM FROM CAT_ITEM_YSWJXX WHERE  ID  = " + idList[i];
                    List<Map<String, Object>> 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();
                            String wjm = wjljList.get(0).get("WJTM").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, wjm);
                                cddzwjlj = newCddzwjlj;
                            }
                            copyFile(cddzwjlj, newSavePath + File.separator + name);
                            //添加导出日志
                            LogUtils.insertLog("合格资料", "导出", "导出合格资料", "导出资料名称:" + wjm, "", request);
                        }
                        copyFile(cddzwjlj, newSavePath + File.separator + name);
                    }
                }
//                }
                // 压缩文件
                generatePath = zipFile(new File(filePath), "rar");
            } catch (Exception ex) {
                logger.error(ex.getMessage(), ex);
            }
@@ -304,8 +318,7 @@
                // 循环取出流中的数据
                byte[] b = new byte[100];
                int len;
                while ((len = inStream.read(b)) > 0)
                    response.getOutputStream().write(b, 0, len);
                while ((len = inStream.read(b)) > 0) response.getOutputStream().write(b, 0, len);
                inStream.close();
            } catch (Exception e) {
                e.printStackTrace();
@@ -350,14 +363,176 @@
     * 导入页面
     *
     * @param type 0:从转孔基本信息进入 1:从钻孔图幅进入
     * @return
     */
    @RequestMapping({"/updateFileTypeIndex"})
    @RequiresUser
    public ModelAndView importIndex(Integer type) {
    public ModelAndView importIndex(Integer type, String moduleId) {
        ModelAndView mv = new ModelAndView("gh/catAjjxx/updateFileTypeIndex");
        mv.addObject("type", type);
        mv.addObject("moduleId", moduleId);
        return mv;
    }
    /**
     * 装盒管理
     *
     * @param type 0:从转孔基本信息进入 1:从钻孔图幅进入
     */
    @RequestMapping({"/boxIndex"})
    @RequiresUser
    public ModelAndView boxIndex() {
        String box = "0001";
        String maxBoxSql = "select max(box_number) from BUS_PACKING_MANAGE WHERE TYPE = 1";
        String boxNum = jdbcTemplate.queryForObject(maxBoxSql, String.class);
        if (boxNum != null || "".equals(boxNum)) {
            int num = Integer.parseInt(boxNum);
            num += 1;
            DecimalFormat df = new DecimalFormat("0000");
            box = df.format(num);
        }
        ModelAndView mv = new ModelAndView("gh/catAjjxx/boxIndex");
        mv.addObject("boxNum", box);
        return mv;
    }
    /**
     * 获取盒内文件数量
     *
     * @return
     */
    @RequestMapping(value = "/getBoxPageNum")
    @ResponseBody
    @RequiresUser
    public Object getBoxPageNum(String boxNum) {
        try {
            String pageNum = "0";
            String selectSql = "select  max(PAGE_NMU) as nmu from BUS_PACKING_MANAGE WHERE box_number = '" + boxNum + "'";
            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(selectSql);
            if (mapList.size() > 0) {
                pageNum = mapList.get(0).get("nmu") == null ? "0" : mapList.get(0).get("nmu").toString();
            }
            return new AjaxResponse(pageNum);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
        }
    }
    /**
     * 原始文件装盒
     *
     * @return
     */
    @RequestMapping(value = "/packagingBoxYs")
    @ResponseBody
    @RequiresUser
    public Object packagingBoxYs(String boxNum, @RequestBody ArrayList<Long> idList) {
        try {
            String box = boxNum;
            String pageNum = "0";
            String selectSqlPage = "select max(PAGE_NMU) as nmu from BUS_PACKING_MANAGE WHERE box_number = '" + boxNum + "'";
            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(selectSqlPage);
            if (mapList.size() > 0) {
                pageNum = mapList.get(0).get("nmu") == null ? "0" : mapList.get(0).get("nmu").toString();
            }
            int newPage = Integer.parseInt(pageNum);
            for (int i = 0; i < idList.size(); i++) {
                String selectSql = "select * from CAT_ITEM_YSWJXX  where id = " + idList.get(i);
                Map<String, Object> map = jdbcTemplate.queryForMap(selectSql);
                String itemNum = StringUtil.nullToEmpty(map.get("DH")).trim();
                String id = StringUtil.nullToEmpty(map.get("ID")).trim();
                String ajId = StringUtil.nullToEmpty(map.get("AJ_ID")).trim();
                QueryWrapper<PackingManage> packingManageQueryWrapper = new QueryWrapper<>();
                packingManageQueryWrapper.eq("item_id", idList.get(i));
                PackingManage packingManage = new PackingManage();
                List<PackingManage> packingManageList = packingManageService.list(packingManageQueryWrapper);
                if (packingManageList.size() > 0) {
                    packingManage = packingManageList.get(0);
                }
                packingManage.setItemId(id);
                packingManage.setAjId(ajId);
                packingManage.setCreateTime(new java.util.Date());
                packingManage.setType(1);
                String zzys = map.get("ZZYS") == null ? "0" : map.get("ZZYS").toString();
                if (newPage + Integer.parseInt(zzys) > 500) {
                    int num = Integer.parseInt(box);
                    num += 1;
                    DecimalFormat df = new DecimalFormat("0000");
                    String newBox = df.format(num);
                    box = newBox;
                    newPage = Integer.parseInt(zzys);
                } else {
                    newPage = newPage + Integer.parseInt(zzys);
                }
                packingManage.setPageNmu(newPage);
                packingManage.setItemNum(itemNum + "-" + box);
                packingManage.setBoxNumber(box);
                packingManageService.saveOrUpdate(packingManage);
                String updateSql = "update CAT_ITEM_YSWJXX set HH = '" + box + "' where id = " + idList.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);
        }
    }
    /**
     * @param type 0 是成果 1 是原始
     * @return
     */
    @RequestMapping({"/printLabelIndex"})
    @RequiresUser
    public ModelAndView printLabelIndex(Integer type) {
        ModelAndView mv = new ModelAndView("gh/catAjjxx/printLabelIndex");
        mv.addObject("type", type);
        return mv;
    }
    /**
     * @param fileType 打印类型 0是盒子 1是文件
     * @param type     资料类型 0成果报告 1原始资料
     * @param idList
     * @return
     */
    @RequestMapping(value = "/printLabel")
    @ResponseBody
    @RequiresUser
    public Object printLabel(String fileType, Integer type, @RequestBody List<Long> idList) {
        try {
            //打印盒子
            if ("盒子".equals(fileType)) {
                if (type == 0) {
                }
                if (type == 1) {
                    UsbSyncExampleWindows usbSyncExampleWindows = new UsbSyncExampleWindows();
                    usbSyncExampleWindows.printFileLabel(idList);
//                    ZT411RFIDPrintService zt411RFIDPrintService = new ZT411RFIDPrintService();
//                    zt411RFIDPrintService.printRFIDLabel(idList);
                }
            }
            //打印文件
            if ("文件".equals(fileType)) {
                if (type == 0) {
                    UsbSyncExampleWindowsItemCg usbSyncExampleWindowsItemCg = new UsbSyncExampleWindowsItemCg();
                    usbSyncExampleWindowsItemCg.printItemLabelCg(idList);
                }
                if (type == 1) {
                    UsbSyncExampleWindowsItem usbSyncExampleWindowsItem = new UsbSyncExampleWindowsItem();
                    usbSyncExampleWindowsItem.printItemLabel(idList);
                }
            }
            return new AjaxResponse(true);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
        }
    }
    /**
     * 获取文件类型
@@ -367,8 +542,11 @@
    @RequestMapping(value = "/getFileType")
    @ResponseBody
    @RequiresUser
    public List<Map<String, Object>> getFileType() {
    public List<Map<String, Object>> getFileType(Integer type) {
        String sql = "SELECT param_name , param_value  FROM sys_keyword_param where  keyword_id = 1830441538759495681";
        if (type == 1) {
            sql = "SELECT param_name , param_value  FROM sys_keyword_param where  keyword_id = 1830439705299193857";
        }
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
        return mapList;
    }
@@ -408,10 +586,6 @@
        }
    }
    public static void main(String[] args) {
        String fileType = "观/G";
        String substring = fileType.substring(fileType.indexOf("/") + 1);
        System.out.println(substring);
    }
}