From 63211c7592b9c7b814de2756d338ffd33ac0c58f Mon Sep 17 00:00:00 2001
From: zhai <1528081232@qq.com>
Date: 星期一, 19 一月 2026 16:37:38 +0800
Subject: [PATCH] 1、提交验收按钮新增判断是否关联附件 2、借阅暂存添加不可外借新增提醒 3、成果表单借阅管理修改为借阅记录 4、合格资料模块,导出文件按钮需要添加日志 5、装盒按钮调整:需要一个确认按钮并且可以更改盒号,调整盒号时能同步展示盒号容量 6、对接斑马打印机 7、利用用户修改

---
 src/main/webapp/WEB-INF/view/gh/utilizationUser/register3.jsp                  |   32 -
 src/main/java/com/zbooksoft/gdmis/controller/ScanPrintController.java          |   52 ++
 src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.java               |    4 
 src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.xml                |   31 +
 src/main/webapp/WEB-INF/view/gh/catAjjxx/importXmlIndex.jsp                    |    8 
 src/main/java/com/zbooksoft/gdmis/common/operate/UtilizationUserOperate.java   |  158 ++++++++
 src/main/java/com/zbooksoft/gdmis/controller/CatYswjxxController.java          |  123 ++++++
 src/main/java/com/zbooksoft/gdmis/common/ZT411RFIDPrintService.java            |   40 --
 src/main/webapp/WEB-INF/view/gh/catAjjxx/checkIndex.jsp                        |    2 
 src/main/java/com/zbooksoft/gdmis/controller/UtilizationUserController.java    |   12 
 src/main/java/com/zbooksoft/gdmis/controller/UtlStatisticsController.java      |   19 
 src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByUser.jsp          |   57 +-
 src/main/java/com/zbooksoft/gdmis/service/UtilizationUserService.java          |    2 
 src/main/java/com/zbooksoft/gdmis/operate/TransferOperate.java                 |    5 
 src/main/java/com/zbooksoft/gdmis/service/impl/UtilizationUserServiceImpl.java |   11 
 src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByDept.jsp          |   28 
 src/main/java/com/zbooksoft/gdmis/data/entity/PackingManage.java               |    5 
 src/main/java/com/zbooksoft/gdmis/service/impl/PhysicalDetailServiceImpl.java  |    6 
 src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java           |   46 ++
 src/main/java/com/zbooksoft/gdmis/service/impl/XmlServiceImpl.java             |    2 
 src/main/webapp/WEB-INF/view/gh/borrow/index.jsp                               |    4 
 src/main/webapp/WEB-INF/view/gh/catAjjxx/boxIndex.jsp                          |  227 +++++++++++
 src/main/webapp/WEB-INF/view/scanPrint/scanInPrint.jsp                         |  132 +++++-
 src/main/java/com/zbooksoft/gdmis/common/ZipUtil.java                          |   71 +++
 src/main/java/com/zbooksoft/gdmis/controller/CommonController.java             |   36 +
 25 files changed, 937 insertions(+), 176 deletions(-)

diff --git a/src/main/java/com/zbooksoft/gdmis/common/ZT411RFIDPrintService.java b/src/main/java/com/zbooksoft/gdmis/common/ZT411RFIDPrintService.java
index 9b548a1..6272409 100644
--- a/src/main/java/com/zbooksoft/gdmis/common/ZT411RFIDPrintService.java
+++ b/src/main/java/com/zbooksoft/gdmis/common/ZT411RFIDPrintService.java
@@ -5,7 +5,7 @@
 import com.ruili.wcp.common.SpringContextUtil;
 import com.zbooksoft.gdmis.config.ArchivesCustomConfig;
 import com.zbooksoft.gdmis.data.entity.CatAjjxx;
-import com.zbooksoft.gdmis.data.entity.CatYswjxx;
+
 import com.zbooksoft.gdmis.data.entity.PackingManage;
 import com.zbooksoft.gdmis.service.CatAjjxxService;
 import com.zbooksoft.gdmis.service.CatYswjxxService;
@@ -68,6 +68,7 @@
         }
 
     }
+
     private String buildZPLForRFID(CatAjjxx catAjjxx, PackingManage packingManage, int num) {
 
         StringBuilder zpl = new StringBuilder();
@@ -104,43 +105,6 @@
 
         return zpl.toString();
     }
-
-//    private String buildZPLForRFID(CatAjjxx catAjjxx, PackingManage packingManage, int num) {
-//
-//        StringBuilder zpl = new StringBuilder();
-//
-//        String xmmc = catAjjxx.getXmkyqmc();
-//        List<String> wrappedLines = wrapText(xmmc, 40, 3); // 姣忚鏈�澶у搴�20
-//        String dh = catAjjxx.getDh();
-//        String boxNumber = packingManage.getBoxNumber();
-//        // 寮�濮嬫爣绛炬牸寮�
-//        zpl.append("^XA\n");
-//        // 璁剧疆鎵撳嵃閫熷害鍜屾祿搴�
-//        zpl.append("^PRB\n"); // 璁剧疆涓洪粯璁ら�熷害
-//        zpl.append("^MD50\n"); // 璁剧疆娴撳害
-//        zpl.append("^CW1,E:SIMSUN.TTF\n"); //璁剧疆瀛椾綋
-//        zpl.append("^CI28\n"); //璁剧疆缂栫爜
-//        // 鍐欏叆RFID鏁版嵁
-//        String newBarCode = "A" + boxNumber;
-//        String epcDataNew = String.format("%24s", newBarCode).replace(' ', '0');
-//        zpl.append("^RFW,H,2,12,1^FD").append(epcDataNew).append("^FS\n");
-//        zpl.append("^FO133,59^A1N,40,40^FD").append("妗e彿锛�").append(dh).append("^FS\n");
-//        zpl.append("^FO133,129^A1N,40,40^FD").append("绫诲埆锛氬湴1銆佹牱1").append("^FS\n");
-//        zpl.append("^FO133,200^A1N,40,40^FD").append("浠舵暟锛�").append(num).append("^FS\n");
-//        for (int i = 0; i < wrappedLines.size(); i++) {
-//            if (i == 0) {
-//                zpl.append("^FO133,279^A1N,40,40^FD").append("棰樺悕锛�").append(wrappedLines.get(i)).append("^FS\n");
-//            } else {
-//                zpl.append("^FO261,").append(80 * i).append("^A1N,40,40^FD").append(wrappedLines.get(i)).append("^FS\n");
-//            }
-//        }
-//        // 鏉″舰鐮�
-//        zpl.append("^FO500,550^BY2^BCN,200,Y,N,N^FD").append(boxNumber).append("^FS\n");
-//        // 缁撴潫鏍囩鏍煎紡
-//        zpl.append("^XZ\n");
-//
-//        return zpl.toString();
-//    }
 
     public static void main(String[] args) {
         String all = "鍗楁捣鐝犳睙鍙g泦鍦版捣娲嬪伐绋嬪湴璐ㄨ皟鏌�(鐝犱簲浜曞箙)(鐝犳睙鍙g泦鍦扮彔浜斿壇娴锋磱宸ョ▼鍦拌川璋冩煡鎶�)";
diff --git a/src/main/java/com/zbooksoft/gdmis/common/ZipUtil.java b/src/main/java/com/zbooksoft/gdmis/common/ZipUtil.java
index a792906..758159d 100644
--- a/src/main/java/com/zbooksoft/gdmis/common/ZipUtil.java
+++ b/src/main/java/com/zbooksoft/gdmis/common/ZipUtil.java
@@ -1,11 +1,18 @@
 package com.zbooksoft.gdmis.common;
 
+import com.ruili.wcp.configsettting.SystemConfig;
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Enumeration;
 import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 import java.util.zip.ZipOutputStream;
 
 /**
@@ -134,4 +141,68 @@
         boolean directory = path.isDirectory();
         System.out.println(directory);
     }
+
+    /**
+     * 瑙e帇zip鏂囦欢
+     *
+     * @param multipartFile
+     */
+    private String unzip(MultipartFile multipartFile, String dataSource) throws Exception {
+        try {
+            //metaBusActivity
+            String fileName = multipartFile.getOriginalFilename();
+            SystemConfig config = SystemConfig.getInstance();
+            Date date = new Date();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMM");
+            SimpleDateFormat formatterYear = new SimpleDateFormat("yyyy");
+            String strDate = formatter.format(date);
+            String formatYear = formatterYear.format(date);
+            // 寰呮帴鏀� /閮ㄩ棬缂栧彿/骞村害/骞村害鏈堜唤/
+            String destDir = config.getAttachUploadPath() + "寰呮帴鏀�" + File.separator + formatYear + File.separator + strDate + File.separator + dataSource;
+
+            String filePath = destDir + File.separator + fileName.substring(0, fileName.indexOf('.'));
+
+            File fileFolder = new File(destDir);
+            // 瀛樺叆鏂囦欢澶�
+            if (!fileFolder.exists() && !fileFolder.isDirectory()) {
+                fileFolder.mkdirs();
+            }
+
+            File targetFile = new File(fileFolder, fileName);
+            multipartFile.transferTo(targetFile);
+            ZipFile zp = null;
+
+            //鎸囧畾缂栫爜锛屽惁鍒欏帇缂╁寘閲岄潰涓嶈兘鏈変腑鏂囩洰褰�
+            zp = new ZipFile(targetFile, Charset.forName("gbk"));
+            //閬嶅巻閲岄潰鐨勬枃浠跺強鏂囦欢澶�
+            Enumeration entries = zp.entries();
+            while (entries.hasMoreElements()) {
+                ZipEntry entry = (ZipEntry) entries.nextElement();
+                String zipEntryName = entry.getName();
+                InputStream in = zp.getInputStream(entry);
+                String outpath = (filePath + File.separator + zipEntryName).replace("/", File.separator);
+                //鍒ゆ柇璺緞鏄惁瀛樺湪锛屼笉瀛樺湪鍒欏垱寤烘枃浠惰矾寰�
+                File file = new File(outpath.substring(0, outpath.lastIndexOf(File.separator)));
+                if (!file.exists()) {
+                    file.mkdirs();
+                }
+                //鍒ゆ柇鏂囦欢鍏ㄨ矾寰勬槸鍚︿负鏂囦欢澶�,濡傛灉鏄�,涓嶉渶瑕佽В鍘�
+                if (new File(outpath).isDirectory()) {
+                    continue;
+                }
+                OutputStream out = new FileOutputStream(outpath);
+                byte[] bf = new byte[2048];
+                int len;
+                while ((len = in.read(bf)) > 0) {
+                    out.write(bf, 0, len);
+                }
+                in.close();
+                out.close();
+            }
+            zp.close();
+            return filePath;
+        } catch (Exception e) {
+            throw new Exception("瑙e帇澶辫触");
+        }
+    }
 }
diff --git a/src/main/java/com/zbooksoft/gdmis/common/operate/UtilizationUserOperate.java b/src/main/java/com/zbooksoft/gdmis/common/operate/UtilizationUserOperate.java
new file mode 100644
index 0000000..e4b0c7b
--- /dev/null
+++ b/src/main/java/com/zbooksoft/gdmis/common/operate/UtilizationUserOperate.java
@@ -0,0 +1,158 @@
+package com.zbooksoft.gdmis.common.operate;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruili.wcp.common.EncryptUtil;
+import com.ruili.wcp.common.SpringContextUtil;
+import com.ruili.wcp.data.entity.management.Dept;
+import com.ruili.wcp.data.entity.management.Role;
+import com.ruili.wcp.data.entity.management.User;
+import com.ruili.wcp.engine.form.IFormData;
+import com.ruili.wcp.service.management.DeptService;
+import com.ruili.wcp.service.management.RoleService;
+import com.ruili.wcp.service.management.UserService;
+import com.ruili.wcp.web.model.AjaxResponse;
+import com.ruili.wcp.web.model.ErrorInfo;
+import com.zbooksoft.gdmis.data.entity.UtilizationUser;
+import com.zbooksoft.gdmis.service.UtilizationUserService;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.session.Session;
+import org.apache.shiro.subject.Subject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.lang.reflect.InvocationTargetException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @Description:鍒╃敤瀹℃壒鐢ㄦ埛鎿嶄綔
+ * @Author: zhai
+ * @Date: 2024/8/26
+ **/
+public class UtilizationUserOperate {
+    private static final Logger logger = LoggerFactory.getLogger(UtilizationUserOperate.class);
+    JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtil.getBean("jdbcTemplate");
+    UtilizationUserService utilizationUserService = (UtilizationUserService) SpringContextUtil.getBean("utilizationUserServiceImpl");
+    UserService userService = (UserService) SpringContextUtil.getBean("userServiceImpl");
+    DeptService deptService = (DeptService) SpringContextUtil.getBean("deptServiceImpl");
+    RoleService roleService = (RoleService) SpringContextUtil.getBean("roleServiceImpl");
+    IFormData iform = (IFormData) SpringContextUtil.getBean("iFormData");
+
+    /**
+     * 瀹℃壒閫氳繃
+     *
+     * @param viewId
+     * @param idList
+     * @return
+     * @throws InvocationTargetException
+     * @throws IllegalAccessException
+     */
+    public AjaxResponse registrationApproval(Long viewId, ArrayList<Long> idList) {
+        Subject currentUser = SecurityUtils.getSubject();
+        Session session = currentUser.getSession();
+        User user = (User) session.getAttribute("user");
+        try {
+            String approval = user.getTrueName();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            String approvalDate = sdf.format(new Date());
+            Long approvalId = user.getUserId();
+//            String updateSql = "UPDATE UTL_UTILIZATION_USER SET APPROVAL_DATE ='" + approvalDate + "',APPROVAL_ID =" + approvalId + " , APPROVAL = '" + approval + "' WHERE  ID IN (" + StringUtils.join(idList, ",") + ")";
+//            String strSql = "update " + view.getMainTableName() + " set fbzt = 1 , FBRQ = TO_DATE('" + formattedDate + "', 'YYYY-MM-DD')";
+            String updateSql = "UPDATE UTL_UTILIZATION_USER SET APPROVAL_DATE = TO_DATE('" + approvalDate + "', 'YYYY-MM-DD'),APPROVAL_ID =" + approvalId + " , APPROVAL = '" + approval + "' WHERE  ID IN (" + StringUtils.join(idList, ",") + ")";
+            jdbcTemplate.update(updateSql);
+            return new AjaxResponse(true);
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
+        }
+    }
+
+    /**
+     * 鍒犻櫎鍚庝簨浠�
+     *
+     * @param viewId
+     * @param idList
+     * @return
+     */
+    public AjaxResponse afterDelete(Long viewId, ArrayList<Long> idList) {
+        for (int i = 0; i < idList.size(); i++) {
+            try {
+                UtilizationUser utilizationUser = utilizationUserService.getById(idList.get(i));
+                Long userId = utilizationUser.getUserId();
+                userService.removeById(userId);
+            } catch (Exception e) {
+                logger.error(e.getMessage(), e);
+                return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
+            }
+        }
+        return new AjaxResponse(true);
+    }
+
+    /**
+     * 浜哄伐娣诲姞鍒╃敤鐢ㄦ埛淇濆瓨鍚庝簨浠�
+     *
+     * @param formId
+     * @param keyId
+     * @param formData
+     * @return
+     */
+    public AjaxResponse afterSave(Long formId, Long keyId, Map<String, Object> formData) {
+
+        String utilizationUserId = formData.get("USER_ID") == null ? "" : formData.get("USER_ID").toString();
+        String cardId = formData.get("ID_CARD").toString();
+        String mobile = formData.get("MOBILE").toString();
+        String userName = formData.get("USER_NAME").toString();
+
+        String pwd = cardId.substring(cardId.length() - 6, cardId.length());
+        String md5Pwd = EncryptUtil.getInstance().MD5(pwd);
+
+        User user = new User();
+        if (StringUtils.isNotEmpty(utilizationUserId)) {
+            user = userService.getUserById(Long.parseLong(utilizationUserId));
+            //鐧诲綍鍚嶄负韬唤璇佸彿锛屽敮涓�鎬�
+            user.setUserName(cardId);
+            //榛樿鍙栬韩浠借瘉鍚庡叚浣嶄綔涓哄瘑鐮�
+            user.setPassword(md5Pwd);
+            user.setTrueName(userName);
+            user.setMobilePhone(mobile);
+            userService.saveOrUpdate(user);
+        } else {
+            //鐧诲綍鍚嶄负韬唤璇佸彿锛屽敮涓�鎬�
+            user.setUserName(cardId);
+            //榛樿鍙栬韩浠借瘉鍚庡叚浣嶄綔涓哄瘑鐮�
+            user.setPassword(md5Pwd);
+            user.setTrueName(userName);
+
+            Byte enableLogin = 1;
+            user.setEnableLogin(enableLogin);
+            user.setUserType(1);
+            user.setMobilePhone(mobile);
+            user.setCreateTime(new Date());
+            //鐢ㄦ埛璁剧疆涓哄閮ㄧ敤鎴�
+            LambdaQueryWrapper<Dept> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(Dept::getDeptName, "澶栭儴鐢ㄦ埛");
+            Dept dept = deptService.getOne(wrapper);
+            user.setDeptId(dept.getDeptId());
+            user.setDeptName("澶栭儴鐢ㄦ埛");
+
+            //鎻掑叆绯荤粺鐢ㄦ埛琛�
+            userService.saveUser(user);
+            Long userId = user.getUserId();
+
+            HashMap<String, Object> insertMap = new HashMap<>();
+            insertMap.put("ENABLE_LOGIN", 1);
+            insertMap.put("PASSWORD", pwd);
+            insertMap.put("LOGIN_NAME", cardId);
+            insertMap.put("USER_ID", userId);
+            iform.update(1826177548856377345L, insertMap, keyId);
+            //鍒濆鍖栫敤鎴烽粯璁よ鑹�
+            List<Role> roles = roleService.addUserToDefaultRole(user.getUserId());
+
+        }
+
+
+        return new AjaxResponse(true);
+    }
+}
diff --git a/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java b/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java
index 1c1702d..555e5e0 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java
+++ b/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java
@@ -37,7 +37,9 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.zip.ZipFile;
 
+import static cn.hutool.core.util.ZipUtil.unzip;
 import static com.zbooksoft.gdmis.common.XmlUtil.getDocument;
 
 
@@ -101,10 +103,34 @@
     @RequiresUser
     public Object importXML(@RequestParam(value = "file", required = false) MultipartFile file, String startData, String endData) {
         try {
-            Document document = getDocument(file);
-            Element rootElement = document.getRootElement();
-            String rootName = rootElement.getName();
-            xmlService.readXml(document, startData, endData);
+            ArchivesCustomConfig archivesCustomConfig = customConfigUtil.getConfigObj(ArchivesCustomConfig.class);
+            String uploadPath = archivesCustomConfig.getOriginalPath();
+            //鍒ゆ柇浼犺繃鏉ョ殑鏂囦欢鏄笉鏄帇缂╁寘
+            if (file.getOriginalFilename().endsWith(".zip")) {
+                String tempDir = System.getProperty("java.io.tmpdir");
+                String extractPath = tempDir + File.separator + "temp_" + System.currentTimeMillis();
+                File extractDir = new File(extractPath);
+                extractDir.mkdirs();
+                String originalFilename = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
+                try {
+                    // 淇濆瓨涓婁紶鐨� ZIP 鏂囦欢鍒颁复鏃朵綅缃�
+                    File zipFile = new File(extractPath + File.separator + file.getOriginalFilename());
+                    file.transferTo(zipFile);
+                    // 瑙e帇 ZIP 鏂囦欢
+                    unzip(zipFile.getAbsolutePath(), uploadPath);
+
+                    String xmlPath = uploadPath + File.separator + originalFilename + File.separator + "绠$悊鎬ф枃浠�" + File.separator + "璧勬枡鏂囦欢鐩綍.xml";
+                    Document document = getDocument(xmlPath);
+                    xmlService.readXml(document, startData, endData);
+                } finally {
+                    // 娓呯悊涓存椂鏂囦欢
+                    deleteDir(extractDir);
+                }
+
+            } else {
+                Document document = getDocument(file);
+                xmlService.readXml(document, startData, endData);
+            }
             return new AjaxResponse(true);
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
@@ -603,5 +629,17 @@
         }
         return totalSize;
     }
+
+    private void deleteDir(File dir) {
+        if (dir.isDirectory()) {
+            File[] files = dir.listFiles();
+            if (files != null) {
+                for (File file : files) {
+                    deleteDir(file);
+                }
+            }
+        }
+        dir.delete();
+    }
 }
 
diff --git a/src/main/java/com/zbooksoft/gdmis/controller/CatYswjxxController.java b/src/main/java/com/zbooksoft/gdmis/controller/CatYswjxxController.java
index 4f83754..9d027d3 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/CatYswjxxController.java
+++ b/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;
@@ -12,7 +14,10 @@
 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.*;
+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,12 +42,12 @@
 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;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 
 import static com.zbooksoft.gdmis.common.ZipUtil.copyFile;
 import static com.zbooksoft.gdmis.common.ZipUtil.zipFile;
@@ -287,12 +292,14 @@
                                 cddzwjlj = newCddzwjlj;
                             }
                             copyFile(cddzwjlj, newSavePath + File.separator + name);
+                            //娣诲姞瀵煎嚭鏃ュ織
+                            LogUtils.insertLog("鍚堟牸璧勬枡", "瀵煎嚭", "瀵煎嚭鍚堟牸璧勬枡", "瀵煎嚭璧勬枡鍚嶇О锛�" + wjm, "", request);
                         }
-
                     }
                 }
                 // 鍘嬬缉鏂囦欢
                 generatePath = zipFile(new File(filePath), "rar");
+
             } catch (Exception ex) {
                 logger.error(ex.getMessage(), ex);
             }
@@ -359,11 +366,117 @@
      */
     @RequestMapping({"/updateFileTypeIndex"})
     @RequiresUser
-    public ModelAndView importIndex(Integer type,String moduleId) {
+    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);
+        }
     }
 
     /**
@@ -431,7 +544,7 @@
     @RequiresUser
     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){
+        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);
diff --git a/src/main/java/com/zbooksoft/gdmis/controller/CommonController.java b/src/main/java/com/zbooksoft/gdmis/controller/CommonController.java
index 4f49b31..78d6bc3 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/CommonController.java
+++ b/src/main/java/com/zbooksoft/gdmis/controller/CommonController.java
@@ -1,6 +1,9 @@
 package com.zbooksoft.gdmis.controller;
 
 import com.ruili.wcp.service.config.ModuleService;
+import com.ruili.wcp.web.model.AjaxResponse;
+import com.ruili.wcp.web.model.ErrorInfo;
+import com.zbooksoft.gdmis.data.vo.UserInfo;
 import com.zbooksoft.gdmis.service.*;
 import org.apache.shiro.authz.annotation.RequiresUser;
 import org.slf4j.Logger;
@@ -9,7 +12,12 @@
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 
 /**
@@ -20,7 +28,7 @@
 @Controller
 @RequestMapping("/common")
 public class CommonController {
-//    @Autowired
+    //    @Autowired
 //    JdbcTemplate jdbcTemplate;
 //    @Autowired
 //    ModuleService moduleService;
@@ -36,8 +44,8 @@
 //    @Autowired
 //    ProcessingDetailService processingDetailService;
 //
-//    @Autowired
-//    UtilizationUserService utilizationUserService;
+    @Autowired
+    UtilizationUserService utilizationUserService;
 
     private static final Logger logger = LoggerFactory.getLogger(CommonController.class);
 
@@ -77,4 +85,26 @@
         mav.addObject("ysFailed", ysFailed);
         return mav;
     }
+
+    @RequestMapping(value = "/getUserInfo", produces = "application/json; charset=utf-8", method = RequestMethod.POST)
+    @ResponseBody
+    @RequiresUser
+    public Object getUserInfo(String userId) {
+        try {
+            Date date = new Date();
+            // 鍒涘缓涓�涓� SimpleDateFormat 瀵硅薄锛屾寚瀹氭棩鏈熸牸寮�
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            // 灏� Date 瀵硅薄杞崲涓哄瓧绗︿覆
+            String dateString = dateFormat.format(date);
+            UserInfo userInfo = utilizationUserService.selectUtilizationUser(Long.parseLong(userId), dateString);
+            if (userInfo == null) {
+                return new AjaxResponse(new ErrorInfo("鏈煡璇㈠埌鐢ㄦ埛鐧昏淇℃伅"), false);
+            }
+            return new AjaxResponse(userInfo);
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
+        }
+    }
+
 }
diff --git a/src/main/java/com/zbooksoft/gdmis/controller/ScanPrintController.java b/src/main/java/com/zbooksoft/gdmis/controller/ScanPrintController.java
index 8d15158..d86a4a7 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/ScanPrintController.java
+++ b/src/main/java/com/zbooksoft/gdmis/controller/ScanPrintController.java
@@ -24,10 +24,7 @@
 import org.springframework.web.servlet.ModelAndView;
 
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @Description
@@ -105,15 +102,8 @@
     @RequiresUser
     @ResponseBody
     public Object saveScanPrintData(@RequestBody List<Map<String, Object>> data, int printType, Long viewId, String boxNum) {
-        Subject currentUser = SecurityUtils.getSubject();
-        Session session = currentUser.getSession();
-        User user = (User) session.getAttribute("user");
-
-
         try {
-            View view = viewService.getViewById(viewId);
-            String mainTableName = view.getMainTableName();
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
             if (data != null && data.size() > 0) {
                 if (printType == 0) { //鍏ュ簱鎵弿
                     updateWarehousing(data, boxNum);
@@ -140,6 +130,38 @@
             logger.error(e.getMessage());
         }
         return data;
+    }
+
+    /**
+     * @Description 淇濆瓨鎵弿鏋暟鎹�
+     * @Date 2020/12/12
+     * printType 鎵弿绫诲瀷 1.鍑� 0. 杩�
+     * operationType 鎿嶄綔绫诲瀷 1 鍑哄叆搴�  2 閿�姣�
+     **/
+    @RequestMapping(value = "/getBoxNum")
+    @RequiresUser
+    @ResponseBody
+    public Object getBoxNum(@RequestBody List<Map<String, Object>> data) {
+        ArrayList<String> boxNumList = new ArrayList<>();
+        try {
+            for (int i = 0; i < data.size(); i++) {
+                String archivalCode = (String) data.get(i).get("archival_code");
+                String sqlSelect = "select * from BUS_PACKING_MANAGE where ITEM_NUM = '" + archivalCode + "'";
+                Map<String, Object> packingMap = jdbcTemplate.queryForMap(sqlSelect);
+
+                long itemId = Long.parseLong(packingMap.get("ITEM_ID").toString());
+                String sql = "select * from BUS_WAREHOUSING where item_id =" + itemId + " and IN_STATUS_CODE =2";
+                List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
+                if (mapList.size() > 0) {
+                    String sqlUpdateBox = "SELECT BOX_NUMBER FROM  BUS_PACKING_MANAGE   WHERE ID=" + packingMap.get("ID");
+                    String boxNum = jdbcTemplate.queryForObject(sqlUpdateBox, String.class);
+                    boxNumList.add(boxNum);
+                }
+            }
+            return new AjaxResponse(boxNumList);
+        } catch (Exception e) {
+            return new AjaxResponse(false);
+        }
     }
 
     /**
@@ -180,6 +202,9 @@
      * @Date 2020/12/13
      **/
     private void returnWarehousing(List<Map<String, Object>> data) {
+        Subject currentUser = SecurityUtils.getSubject();
+        Session session = currentUser.getSession();
+        User user = (User) session.getAttribute("user");
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         //鏇存柊鍑哄簱鐘舵��
         for (int i = 0; i < data.size(); i++) {
@@ -194,9 +219,8 @@
                 Map<String, Object> map = mapList.get(0);
                 Date date = new Date();
                 String format = sdf.format(date);
-                String sqlUpdate = "update BUS_WAREHOUSING SET IN_STATUS_CODE=2, OUT_STATUS='寰呭叆搴�', IN_TIME='" + format + "' WHERE ID=" + map.get("ID");
+                String sqlUpdate = "update BUS_WAREHOUSING SET ACCEPT_USER = '" + user.getTrueName() + "', IN_STATUS_CODE=2, OUT_STATUS='寰呭叆搴�', IN_TIME='" + format + "' WHERE ID=" + map.get("ID");
                 jdbcTemplate.update(sqlUpdate);
-
                 String sqlUpdateBox = "update BUS_PACKING_MANAGE SET ITEM_STATE='宸插綊杩�'  WHERE ID=" + packingMap.get("ID");
                 jdbcTemplate.update(sqlUpdateBox);
             }
diff --git a/src/main/java/com/zbooksoft/gdmis/controller/UtilizationUserController.java b/src/main/java/com/zbooksoft/gdmis/controller/UtilizationUserController.java
index 90fdffe..3e1576b 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/UtilizationUserController.java
+++ b/src/main/java/com/zbooksoft/gdmis/controller/UtilizationUserController.java
@@ -137,10 +137,10 @@
             User user = new User();
             String userName = formData.get("USER_NAME").toString();
             String sex = formData.get("SEX").toString();
-            String province = formData.get("PROVINCE").toString();
-            String city = formData.get("CITY").toString();
+//            String province = formData.get("PROVINCE").toString();
+//            String city = formData.get("CITY").toString();
             String deptNames = formData.get("DEPT").toString();
-            String deptNature = formData.get("DEPT_NATURE").toString();
+//            String deptNature = formData.get("DEPT_NATURE").toString();
             String deptAddress = formData.get("DEPT_ADDRESS").toString();
             String postCode = formData.get("POST_CODE").toString();
             String certificateNumber = formData.get("CERTIFICATE_NUMBER").toString();
@@ -198,8 +198,8 @@
             mapData.put("USER_NAME", userName);
             mapData.put("SEX", sex);
             mapData.put("ID_CARD", cardId);
-            mapData.put("PROVINCE", province);
-            mapData.put("CITY", city);
+//            mapData.put("PROVINCE", province);
+//            mapData.put("CITY", city);
             mapData.put("DEPT", deptNames);
             mapData.put("POST_CODE", postCode);
             mapData.put("DEPT_ADDRESS", deptAddress);
@@ -212,7 +212,7 @@
             mapData.put("MATERIAL_PURPOSE", materialPurpose);
             mapData.put("JOB", job);
             mapData.put("PROJECT_NAME", projectName);
-            mapData.put("DEPT_NATURE", deptNature);
+//            mapData.put("DEPT_NATURE", deptNature);
             mapData.put("TRADE", trade);
             mapData.put("CERTIFICATE_NUMBER", certificateNumber);
             mapData.put("USER_ID", userId);
diff --git a/src/main/java/com/zbooksoft/gdmis/controller/UtlStatisticsController.java b/src/main/java/com/zbooksoft/gdmis/controller/UtlStatisticsController.java
index 9026470..9d62c41 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/UtlStatisticsController.java
+++ b/src/main/java/com/zbooksoft/gdmis/controller/UtlStatisticsController.java
@@ -148,18 +148,18 @@
         try {
             List<Map<String, Object>> mapList = new ArrayList<>();
             if (year == null || year.equals("")) {
-                String yearSQL = "SELECT DISTINCT YEAR(DATE_TIME) AS YEAR FROM  UTL_VIEW_FORM ";
+                String yearSQL = "SELECT DISTINCT EXTRACT(YEAR FROM DATE_TIME) AS YEAR FROM UTL_VIEW_FORM";
                 jdbcTemplate.queryForList(yearSQL).forEach(map -> {
                     String years = map.get("YEAR").toString().replace(".0", "");
-                    Map<String, Object> hashMap = getCount("YEAR(DATE_TIME)", years);
+                    Map<String, Object> hashMap = getCount(" EXTRACT(YEAR FROM DATE_TIME)", years);
                     hashMap.put("year", years);
                     mapList.add(hashMap);
                 });
             } else {
-                String yearSQL = "SELECT DISTINCT MONTH(DATE_TIME) AS MONTH FROM  UTL_VIEW_FORM where YEAR(DATE_TIME) = '" + year + "'";
+                String yearSQL = "SELECT DISTINCT EXTRACT(MONTH FROM DATE_TIME) AS MONTH FROM  UTL_VIEW_FORM where EXTRACT(YEAR FROM DATE_TIME) = '" + year + "'";
                 jdbcTemplate.queryForList(yearSQL).forEach(map -> {
                     String month = map.get("MONTH").toString().replace(".0", "");
-                    Map<String, Object> hashMap = getCount(" MONTH(DATE_TIME)", month);
+                    Map<String, Object> hashMap = getCount(" EXTRACT(MONTH FROM DATE_TIME)", month);
                     hashMap.put("year", year);
                     hashMap.put("month", month);
                     mapList.add(hashMap);
@@ -478,19 +478,22 @@
     public Object getCount() {
         try {
             HashMap<Object, Object> counMap = new HashMap<>();
-            String dzzlCountSql = "select count(1) from CAT_FILE_AJJXX where fbzt = 1";
+//            String dzzlCountSql = "select count(1) from CAT_FILE_AJJXX where fbzt = 1";
+            String dzzlCountSql = "select count(1) from CAT_FILE_AJJXX";
             Integer dzzlCount = jdbcTemplate.queryForObject(dzzlCountSql, Integer.class);
             counMap.put("dzzlCount", dzzlCount);
 
-            String yzCountSql = "select count(1) from CAT_ITEM_YSWJXX where AJ_ID IN (select ID from CAT_FILE_AJJXX where fbzt = 1)";
+            String yzCountSql = "select count(1) from CAT_ITEM_YSWJXX";
+//            String yzCountSql = "select count(1) from CAT_ITEM_YSWJXX where AJ_ID IN (select ID from CAT_FILE_AJJXX where fbzt = 1)";
             Integer yzCount = jdbcTemplate.queryForObject(yzCountSql, Integer.class);
             counMap.put("yzCount", yzCount);
 
-            String cgCountSql = "select count(1) from CAT_ITEM_CGWJXX where AJ_ID IN (select ID from CAT_FILE_AJJXX where fbzt = 1)";
+            String cgCountSql = "select count(1) from CAT_ITEM_CGWJXX ";
+//            String cgCountSql = "select count(1) from CAT_ITEM_CGWJXX where AJ_ID IN (select ID from CAT_FILE_AJJXX where fbzt = 1)";
             Integer cgCount = jdbcTemplate.queryForObject(cgCountSql, Integer.class);
             counMap.put("cgCount", cgCount);
 
-            String swCountSql = "select count(1) from CAT_FILE_SWAJXX ";
+            String swCountSql = "select count(1) from CAT_FILE_SWYP ";
             Integer swCount = jdbcTemplate.queryForObject(swCountSql, Integer.class);
             counMap.put("swCount", swCount);
 
diff --git a/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.java b/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.java
index 5f431c8..cbc0955 100644
--- a/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.java
+++ b/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.java
@@ -3,6 +3,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zbooksoft.gdmis.data.entity.UtilizationUser;
+import com.zbooksoft.gdmis.data.vo.UserInfo;
+
+import java.util.Map;
 
 
 /**
@@ -11,4 +14,5 @@
  * @Date 2024/7/31
  **/
 public interface UtilizationUserMapper extends BaseMapper<UtilizationUser> {
+    UserInfo selectUtilizationUser(Map<String, Object> params);
 }
diff --git a/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.xml b/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.xml
new file mode 100644
index 0000000..bd1f6b6
--- /dev/null
+++ b/src/main/java/com/zbooksoft/gdmis/dao/UtilizationUserMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zbooksoft.gdmis.dao.UtilizationUserMapper">
+    <select id="selectUtilizationUser" parameterType="map"  resultType="com.zbooksoft.gdmis.data.vo.UserInfo">
+    SELECT a.*,
+           b.CERTIFICATE_NUM,
+           b.PROJECT_TYPE as PROJECT_TYPES,
+           b.PROJECT_NAME AS PROJECT_NAMES,
+           b.PURPOSE
+    FROM UTL_UTILIZATION_USER a
+         INNER
+             JOIN UTL_USER_CHECK b ON
+                     a.id = b.utilization_user_id
+                 AND a.user_id = #{userId}
+                 AND b.VALID_END >= #{newData}
+    </select>
+
+    <select id="selectUtilizationUser" parameterType="map"  resultType="com.zbooksoft.gdmis.data.vo.UserInfo" databaseId="oracle">
+        SELECT a.*,
+               b.CERTIFICATE_NUM,
+               b.PROJECT_TYPE,
+               b.PROJECT_NAME,
+               b.PURPOSE
+        FROM UTL_UTILIZATION_USER a
+                 INNER
+                     JOIN UTL_USER_CHECK b ON
+                    a.id = b.utilization_user_id
+                AND a.user_id = #{userId}
+                AND b.VALID_END >= TO_DATE(#{newData}, 'YYYY-MM-DD HH24:MI:SS')
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/com/zbooksoft/gdmis/data/entity/PackingManage.java b/src/main/java/com/zbooksoft/gdmis/data/entity/PackingManage.java
index ad1bff0..629975a 100644
--- a/src/main/java/com/zbooksoft/gdmis/data/entity/PackingManage.java
+++ b/src/main/java/com/zbooksoft/gdmis/data/entity/PackingManage.java
@@ -64,4 +64,9 @@
      * 璧勬枡绫诲瀷 0锛氭垚鏋滆祫鏂欙紝1锛氬師濮嬭祫鏂�
      */
     private Integer type;
+
+    /**
+     * 鐩掑唴鏂囦欢椤垫暟
+     */
+    private Integer pageNmu;
 }
diff --git a/src/main/java/com/zbooksoft/gdmis/operate/TransferOperate.java b/src/main/java/com/zbooksoft/gdmis/operate/TransferOperate.java
index 8f63bf8..a68d623 100644
--- a/src/main/java/com/zbooksoft/gdmis/operate/TransferOperate.java
+++ b/src/main/java/com/zbooksoft/gdmis/operate/TransferOperate.java
@@ -41,6 +41,11 @@
         try {
             String strSql = "update " + view.getMainTableName() + " set yszt = " + state + " where id = " + idList.get(0);
             jdbcTemplate.execute(strSql);
+            String selectCountSql = "select count(*) from CAT_ITEM_YSWJXX where YJ_ID = " + idList.get(0) + " and (WJLJ = '' or  WJLJ is null)";
+            int count = jdbcTemplate.queryForObject(selectCountSql, Integer.class);
+            if (count > 0) {
+                return new AjaxResponse(new ErrorInfo("瀛樺湪鏈叧鑱旀枃浠讹紝璇峰厛鍏宠仈闄勪欢锛�"), false);
+            }
             String updateSql = "update CAT_ITEM_YSWJXX set yszt = " + state + " where  YJ_ID =" + idList.get(0);
             jdbcTemplate.execute(updateSql);
             return new AjaxResponse(true);
diff --git a/src/main/java/com/zbooksoft/gdmis/service/UtilizationUserService.java b/src/main/java/com/zbooksoft/gdmis/service/UtilizationUserService.java
index 9227147..7ff1520 100644
--- a/src/main/java/com/zbooksoft/gdmis/service/UtilizationUserService.java
+++ b/src/main/java/com/zbooksoft/gdmis/service/UtilizationUserService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zbooksoft.gdmis.data.entity.UtilizationUser;
+import com.zbooksoft.gdmis.data.vo.UserInfo;
 
 
 /**
@@ -10,4 +11,5 @@
  * @Date 2024/7/31
  **/
 public interface UtilizationUserService extends IService<UtilizationUser> {
+    UserInfo selectUtilizationUser(Long userId, String newData);
 }
diff --git a/src/main/java/com/zbooksoft/gdmis/service/impl/PhysicalDetailServiceImpl.java b/src/main/java/com/zbooksoft/gdmis/service/impl/PhysicalDetailServiceImpl.java
index b0b10a3..35d19d5 100644
--- a/src/main/java/com/zbooksoft/gdmis/service/impl/PhysicalDetailServiceImpl.java
+++ b/src/main/java/com/zbooksoft/gdmis/service/impl/PhysicalDetailServiceImpl.java
@@ -109,7 +109,11 @@
         for (Long id : idList) {
             CatSwyp catSwyp = catSwypService.getById(id);
             PhysicalDetail physicalDetail = new PhysicalDetail();
-            physicalDetail.setFileId(catSwyp.getAjId());
+            Long ajId = catSwyp.getAjId();
+            if (ajId == null) {
+                ajId = 0L;
+            }
+            physicalDetail.setFileId(ajId);
             physicalDetail.setItemId(catSwyp.getId());
 
             physicalDetail.setProjectName(catSwyp.getXmmc());
diff --git a/src/main/java/com/zbooksoft/gdmis/service/impl/UtilizationUserServiceImpl.java b/src/main/java/com/zbooksoft/gdmis/service/impl/UtilizationUserServiceImpl.java
index e9df532..caba572 100644
--- a/src/main/java/com/zbooksoft/gdmis/service/impl/UtilizationUserServiceImpl.java
+++ b/src/main/java/com/zbooksoft/gdmis/service/impl/UtilizationUserServiceImpl.java
@@ -3,8 +3,12 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zbooksoft.gdmis.dao.UtilizationUserMapper;
 import com.zbooksoft.gdmis.data.entity.UtilizationUser;
+import com.zbooksoft.gdmis.data.vo.UserInfo;
 import com.zbooksoft.gdmis.service.UtilizationUserService;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -14,4 +18,11 @@
  **/
 @Service
 public class UtilizationUserServiceImpl extends ServiceImpl<UtilizationUserMapper, UtilizationUser> implements UtilizationUserService {
+    @Override
+    public UserInfo selectUtilizationUser(Long userId, String newData) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("userId", userId);
+        params.put("newData", newData);
+        return this.baseMapper.selectUtilizationUser(params);
+    }
 }
diff --git a/src/main/java/com/zbooksoft/gdmis/service/impl/XmlServiceImpl.java b/src/main/java/com/zbooksoft/gdmis/service/impl/XmlServiceImpl.java
index 6b3e28c..d7ba784 100644
--- a/src/main/java/com/zbooksoft/gdmis/service/impl/XmlServiceImpl.java
+++ b/src/main/java/com/zbooksoft/gdmis/service/impl/XmlServiceImpl.java
@@ -234,7 +234,7 @@
             map.put("ZZYS", zzys);
             map.put("WJDX", wjdx);
             map.put("WJLX", wjlb);
-            map.put("WJLJ", wjlj);
+//            map.put("WJLJ", wjlj);
             map.put("GDZTXS", ztxs);
             map.put("QZY", qzy);
             map.put("FTHXBLC", hxblc);
diff --git a/src/main/webapp/WEB-INF/view/gh/borrow/index.jsp b/src/main/webapp/WEB-INF/view/gh/borrow/index.jsp
index 7a61a07..b34d370 100644
--- a/src/main/webapp/WEB-INF/view/gh/borrow/index.jsp
+++ b/src/main/webapp/WEB-INF/view/gh/borrow/index.jsp
@@ -63,7 +63,10 @@
             <li><a href="javascript:;"><span>3</span>鎴愬姛鎻愪氦鍒╃敤鍗�</a></li>
         </ul>
         <p><span>娉ㄦ剰锛�</span>濡傛灉鎮ㄨ繕闇�鍚屾椂鍊熼槄鍏朵粬妗堜欢锛岃鍏堝叧闂绐楀彛锛岀户缁湪鏌ヨ鐣岄潰灏嗘墍闇�瑕佺殑妗堝嵎娣诲姞鍒板�熼槄鍗曪紝鍐嶄竴骞舵彁浜ゃ��
+            濡傛灉鎮ㄦ棤娉曞嬀閫夛紝鍙兘杩欎唤妗f鏆備笉鎻愪緵澶栧�熸湇鍔°��
         </p>
+<%--        <p>濡傛灉鎮ㄦ棤娉曞嬀閫夛紝鍙兘杩欎唤妗f鏆備笉鎻愪緵澶栧�熸湇鍔★紝璇︽儏璇疯仈绯荤浉鍏充汉鍛樿繘琛屽挩璇€��--%>
+<%--        </p>--%>
     </div>
     <c:if test="${borrowInfoList.size()==0}">
         <div class="noadd">
@@ -141,6 +144,7 @@
                                                 <input type="checkbox" class="flat"
                                                        name="original_no_cg_${borrowInfo.parentBorrowInfo.fileId}"
                                                        id="original_no_${borrowDetail.detailId}" disabled/>璋冮槄鍘熶欢
+                                                <span class="not-borrowable-note" style="color: red">涓嶅鍊�</span>
                                             </c:if>
                                             <c:if test="${ borrowDetail.paperBorrow == 0|| borrowDetail.paperBorrow == null}">
                                                 <input type="checkbox" class="flat"
diff --git a/src/main/webapp/WEB-INF/view/gh/catAjjxx/boxIndex.jsp b/src/main/webapp/WEB-INF/view/gh/catAjjxx/boxIndex.jsp
new file mode 100644
index 0000000..4d1dbbe
--- /dev/null
+++ b/src/main/webapp/WEB-INF/view/gh/catAjjxx/boxIndex.jsp
@@ -0,0 +1,227 @@
+<%@ page language="java" pageEncoding="UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+            + path + "/";
+%>
+
+<!DOCTYPE HTML>
+<html>
+<head>
+    <base href="<%=basePath%>">
+    <meta name="viewport" charset="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>瑁呯洅绠$悊</title>
+    <!--[if !IE]><!-->
+    <link href="static/plugins/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css">
+    <!--<![endif]-->
+    <!--[if gt IE 8]>
+    <link href="static/plugins/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css">
+    <![endif]-->
+    <link href="static/plugins/jquery-easyui/themes/bootstrap/easyui.css" rel="stylesheet" type="text/css">
+    <link rel="stylesheet" href="static/styles/initialize.css" type="text/css">
+    <link rel="stylesheet" href="static/styles/common.css" type="text/css">
+    <link rel="stylesheet" href="static/plugins/layer/skin/default/layer.css" type="text/css">
+    <link rel="stylesheet" href="static/plugins/webuploader/webuploader.css" type="text/css">
+
+    <script type="text/javascript" src="static/plugins/jquery/jquery.min.js"></script>
+    <script type="text/javascript" src="static/plugins/jquery-easyui/jquery.easyui.min.js"></script>
+    <script type="text/javascript" src="static/plugins/jquery-easyui/locale/easyui-lang-zh_CN.js"></script>
+    <script type="text/javascript" src="static/scripts/easyuiExtend.js"></script>
+    <script type="text/javascript" src="static/scripts/jquery-extend.js"></script>
+    <script type="text/javascript" src="static/plugins/layer/layer.js"></script>
+    <script type="text/javascript" src="static/plugins/slimScroll/jquery.slimscroll.min.js"></script>
+    <script type="text/javascript" src="static/plugins/jquery-easyui-datagrid-dnd/datagrid-dnd.js"></script>
+    <script src="static/plugins/jquery.redirect.js" type="text/javascript"></script>
+    <script type="text/javascript" src="static/plugins/webuploader/webuploader.js"></script>
+
+    <!-- 寮圭獥鍔犺浇缁勪欢 -->
+    <script type="text/javascript" src="static/plugins/layer/layer.js"></script>
+    <script type="text/javascript" src="static/plugins/spinjs/spin.js"></script>
+    <script type="text/javascript" src="static/plugins/spinjs/jquery.spin.js"></script>
+    <script type="text/javascript" src="static/plugins/jquery.blockUI.js"></script>
+    <!-- wcp缁勪欢 -->
+    <script type="text/javascript" src="static/wcp/scripts/wcp.js"></script>
+    <script type="text/javascript" src="static/wcp/scripts/libs/wcp.layer.js"></script>
+    <script type="text/javascript" src="static/wcp/scripts/libs/wcp.blockUI.js"></script>
+    <script type="text/javascript" src="static/wcp/scripts/libs/wcp.spin.js"></script>
+    <script type="text/javascript" src="static/wcp/scripts/libs/wcp.jquery.js"></script>
+
+    <!--[if lt IE 9]>
+    <script type="text/javascript" src="static/plugins/json2.js"></script>
+    <![endif]-->
+    <script type="text/javascript" src="static/wcp/scripts/libs/wcp.infoPicker.js"></script>
+    <style>
+        .combobox-group {
+            clear: both;
+        }
+
+        .combobox-gitem {
+            float: left;
+            padding-right: 10px;
+        }
+
+        .progress {
+            border: 1px solid #1483d8;
+            width: 100%;
+            background: #fff;
+            height: 18px;
+            /*line-height: 20px;*/
+            display: inline-block;
+            text-align: center;
+            color: #6dbfff;
+            position: absolute;
+            margin-right: 10px;
+            top: 290px;
+        }
+
+        .progress span.percentage {
+            width: 0;
+            height: 100%;
+            left: 0;
+            top: 0;
+            background: #1483d8;
+            position: absolute;
+        }
+
+        .progress span.text {
+            position: relative;
+            z-index: 10;
+        }
+    </style>
+
+</head>
+<body>
+<div class="margin-lr">
+    <div class="pt-main-top clear">
+        <div class="pt-nav">
+				<span class="pt-title-icon"> <i class="fa fa-upload"></i>
+				</span>
+            <div class="pt-title">
+                <div>
+                    <h4>鎵撳嵃鏍囩</h4>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="pt-form">
+        <form id="formImportTemplate">
+            <div class="ptbody">
+                <table style="width: 100%;">
+                    <tr>
+                        <td class="tbtitle">鐩掑彿锛�</td>
+                        <td>
+                            <div>
+                                <input class="easyui-textbox" id="boxNum"
+                                       name="boxNum" type="text"
+                                       style="height:30px;text-align: left; width: 200px;"
+                                       value="${boxNum}"/>
+                                <a id="download_but" class="pt-btn pt-btn-primary">鏌ヨ</a>
+                            </div>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="tbtitle">鐩掑唴椤垫暟锛�</td>
+                        <td>
+                            <div>
+                                <input class="easyui-textbox" id="boxNumPage"
+                                       name="boxNumPage" type="text"
+                                       style="height:30px;text-align: left; width: 200px;" value=""/>
+
+                            </div>
+                        </td>
+                    </tr>
+
+                </table>
+                <div class="progress" style="display: none;">
+                    <span class="text">0%</span>
+                    <span class="percentage"></span>
+                </div>
+            </div>
+            <div class="pt-form-btn">
+                <div class="form-group">
+                    <a id="btnSave" class="pt-btn pt-btn-primary">纭畾</a>
+                    <a id="btnClose" class="pt-btn pt-btn-default">鍏抽棴</a>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>
+</body>
+<script type="text/javascript" src="static/scripts/ResizeScroll.js"></script>
+<script>
+    //绐楀彛鍙傛暟锛岀敤浜庡脊绐椾紶閫�
+    var params = {
+        callBack: null
+    };
+    var type = "${type}";
+    $(function () {
+        initSelectProject();
+        new ResizeScroll({
+            "id": ".ptbody",
+            fun: function () {
+                var wh = $(window).height();
+                $("body").height(wh);
+                return (wh - 69 - 62);
+            }
+        });
+        $("#download_but").click(function () {
+            var boxNum = $("#boxNum").textbox("getValue");
+            wcp.ui.setBusy("body", wcp.ajax({
+                url: "catYswjxx/getBoxPageNum?boxNum=" + boxNum
+            }).done(function (result) {
+                debugger;
+                $("#boxNumPage").textbox("setValue",result);
+            }));
+        });
+
+        $("#btnSave").click(function () {
+            var boxNum = $("#boxNum").textbox("getValue");
+            var idList = params.ids;
+            wcp.ui.setBusy("body", wcp.ajax({
+                url: "catYswjxx/packagingBoxYs?boxNum=" + boxNum ,
+                data: JSON.stringify(idList)
+            }).done(function (result) {
+                //鍒ゆ柇鏄惁闇�瑕佹墽琛屽洖璋冨嚱鏁�
+                if (params.callBack) {
+                    params.callBack();
+                }
+                //鍏抽棴绐楀彛
+                closeWindow();
+                top.wcp.notify.success("淇濆瓨鎴愬姛锛�");
+            }));
+        });
+
+        $("#btnClose").click(function () {
+            closeWindow();
+        });
+
+    });
+
+    function initSelectProject() {
+        var data = [
+            {
+                id: "鐩掑瓙",
+                name: "鐩掑瓙"
+            }, {
+                id: "鏂囦欢",
+                name: "鏂囦欢"
+            }
+        ];
+
+        $('#WJLX').combobox('loadData', data);
+        // 缁戝畾閫変腑浜嬩欢
+        $('#WJLX').combobox({
+            onSelect: function (record) {
+            }
+        });
+    }
+
+    function closeWindow() {
+        var index = top.layer.getFrameIndex(window.name); //鑾峰彇绐楀彛绱㈠紩
+        top.layer.close(index);
+    }
+
+</script>
+</html>
diff --git a/src/main/webapp/WEB-INF/view/gh/catAjjxx/checkIndex.jsp b/src/main/webapp/WEB-INF/view/gh/catAjjxx/checkIndex.jsp
index 2a630fa..0034197 100644
--- a/src/main/webapp/WEB-INF/view/gh/catAjjxx/checkIndex.jsp
+++ b/src/main/webapp/WEB-INF/view/gh/catAjjxx/checkIndex.jsp
@@ -232,7 +232,6 @@
             fixed: false,
             content: "gdMisManage/selectCheckQuestion",
             success: function (layero, index) {
-                console.log("layero", layero)
                 var body = window.top.layer.getChildFrame('body', index);
 
                 var iframeWin = window.top[layero.find('iframe')[0]['name']]; //寰楀埌iframe椤电殑绐楀彛瀵硅薄
@@ -247,6 +246,7 @@
     }
 
     window.selectQuestionCallBack = function (selectMineral) {
+        $("input[radiobuttonName='isOk'][value='-1']").radiobutton('check');
         checkQuestion = selectMineral;
     };
 
diff --git a/src/main/webapp/WEB-INF/view/gh/catAjjxx/importXmlIndex.jsp b/src/main/webapp/WEB-INF/view/gh/catAjjxx/importXmlIndex.jsp
index e7c94cd..dda257f 100644
--- a/src/main/webapp/WEB-INF/view/gh/catAjjxx/importXmlIndex.jsp
+++ b/src/main/webapp/WEB-INF/view/gh/catAjjxx/importXmlIndex.jsp
@@ -167,8 +167,8 @@
     var fileName;
     var uploader;
     var falg = false;
-    var _extensions = "xml";
-    var _mimeTypes = ".xml";
+    var _extensions = "xml,zip";
+    var _mimeTypes = ".xml,.zip";
     var _mountFileFlag = false;
     var _importLogId;
     $(function () {
@@ -220,8 +220,8 @@
             },
             accept: {
                 title: '閫夋嫨鏂囦欢',
-                extensions: "xml",
-                mimeTypes: '.xml'
+                extensions: "xml,zip",
+                mimeTypes: '.xml,.zip'
             },
             auto: false,
             duplicate: true
diff --git a/src/main/webapp/WEB-INF/view/gh/utilizationUser/register3.jsp b/src/main/webapp/WEB-INF/view/gh/utilizationUser/register3.jsp
index a888e8d..7297863 100644
--- a/src/main/webapp/WEB-INF/view/gh/utilizationUser/register3.jsp
+++ b/src/main/webapp/WEB-INF/view/gh/utilizationUser/register3.jsp
@@ -160,29 +160,12 @@
 													label: '1',
 													value: '濂�'
 												}]"/></p>
-                <p><span>鎵�灞炵渷浠斤細</span><input class="easyui-combobox" id="PROVINCE"
-                                                name="PROVINCE" type="text"
-                                                style="height:30px;text-align: left; width: 486px;"
-                                                value=""
-                                                data-options=" editable: false, panelHeight: '200',valueField:'id', textField:'name'"
-                /></p>
-                <p><span>鎵�灞炲煄甯傦細</span><input class="easyui-combobox" id="CITY"
-                                                name="CITY" type="text"
-                                                style="height:30px;text-align: left; width: 486px;"
-                                                value=""
-                                                data-options=" editable: false,panelHeight: '200',valueField:'id', textField:'name'"/>
-                </p>
+
                 <p><span>鍗曚綅锛�</span><input class="easyui-combobox" id="DEPT"
                                             name="DEPT" type="text"
                                             style="height:30px;text-align: left; width: 486px;"
                                             value=""
                                             data-options=" editable: true, required:true,panelHeight: '200',valueField:'id', textField:'name'"/>
-                </p>
-                <p><span>鍗曚綅鎬ц川锛�</span><input class="easyui-combobox" id="DEPT_NATURE"
-                                                name="DEPT_NATURE" type="text"
-                                                style="height:30px;text-align: left; width: 486px;"
-                                                value=""
-                                                data-options=" editable: false, panelHeight: '200',valueField:'id', textField:'name'"/>
                 </p>
                 <p><span>鍗曚綅鍦板潃锛�</span><input class="easyui-textbox" id="DEPT_ADDRESS"
                                                 name="DEPT_ADDRESS" type="text"
@@ -318,10 +301,10 @@
                 wcp.notify.warn("鎵嬫満鍙锋牸寮忎笉姝g‘锛�");
                 return;
             }
-            obj.PROVINCE = $("#PROVINCE").combobox("getText");
+            // obj.PROVINCE = $("#PROVINCE").combobox("getText");
             obj.DEPT = $("#DEPT").combobox("getText");
-            obj.CITY = $("#CITY").combobox("getText");
-            obj.DEPT_NATURE = $("#DEPT_NATURE").combobox("getText");
+            // obj.CITY = $("#CITY").combobox("getText");
+            // obj.DEPT_NATURE = $("#DEPT_NATURE").combobox("getText");
             obj.TRADE = $("#TRADE").combobox("getText");
             obj.SEX = $("#SEX").combobox("getText");
             obj.JOB = $("#JOB").combobox("getText");
@@ -336,7 +319,7 @@
                 }
                 //鍏抽棴绐楀彛
                 closeWindow();
-                top.wcp.notify.success("娉ㄥ唽鎴愬姛锛岀瓑寰呯鐞嗗憳瀹℃壒锛�");
+                top.wcp.notify.success("娉ㄥ唽鎴愬姛");
             }));
         });
 
@@ -345,14 +328,15 @@
         });
         addProvince();
         bindChangeEvent();
-        initDept();
-        initDeptType();
+        // initDept();
+        // initDeptType();
         initTrade()
     })
 
     setTimeout(function () {
 
     })
+
     function addProvince() {
         var data = [];
         $.ajax({
diff --git a/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByDept.jsp b/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByDept.jsp
index 92dc860..eb1d6ac 100644
--- a/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByDept.jsp
+++ b/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByDept.jsp
@@ -167,19 +167,21 @@
                     field: 'borrowItemCount',
                     title: '鍊熼槄浠舵暟',
                     width: 100,
-                }, {
-                    field: 'process',
-                    title: '鍔犲伐浜烘',
-                    width: 100,
-                }, {
-                    field: 'processFileCount',
-                    title: '鍔犲伐浠芥暟',
-                    width: 100,
-                }, {
-                    field: 'processItemCount',
-                    title: '鍔犲伐浠舵暟',
-                    width: 100,
-                }, {
+                },
+                // {
+                //     field: 'process',
+                //     title: '鍔犲伐浜烘',
+                //     width: 100,
+                // }, {
+                //     field: 'processFileCount',
+                //     title: '鍔犲伐浠芥暟',
+                //     width: 100,
+                // }, {
+                //     field: 'processItemCount',
+                //     title: '鍔犲伐浠舵暟',
+                //     width: 100,
+                // },
+                {
                     field: 'physical',
                     title: '瀹炵墿鍒╃敤浜烘',
                     width: 100,
diff --git a/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByUser.jsp b/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByUser.jsp
index b5360c1..3531dfa 100644
--- a/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByUser.jsp
+++ b/src/main/webapp/WEB-INF/view/gh/utlStatistics/utlStatisticsByUser.jsp
@@ -151,19 +151,21 @@
                         field: 'borrowItemCount',
                         title: '鍊熼槄浠舵暟',
                         width: 100,
-                    }, {
-                        field: 'process',
-                        title: '鍔犲伐浜烘',
-                        width: 100,
-                    }, {
-                        field: 'processFileCount',
-                        title: '鍔犲伐浠芥暟',
-                        width: 100,
-                    }, {
-                        field: 'processItemCount',
-                        title: '鍔犲伐浠舵暟',
-                        width: 100,
-                    }, {
+                    },
+                    // {
+                    //     field: 'process',
+                    //     title: '鍔犲伐浜烘',
+                    //     width: 100,
+                    // }, {
+                    //     field: 'processFileCount',
+                    //     title: '鍔犲伐浠芥暟',
+                    //     width: 100,
+                    // }, {
+                    //     field: 'processItemCount',
+                    //     title: '鍔犲伐浠舵暟',
+                    //     width: 100,
+                    // },
+                    {
                         field: 'physical',
                         title: '瀹炵墿鍒╃敤浜烘',
                         width: 100,
@@ -213,19 +215,22 @@
                         field: 'borrowItemCount',
                         title: '鍊熼槄浠舵暟',
                         width: 100,
-                    }, {
-                        field: 'process',
-                        title: '鍔犲伐浜烘',
-                        width: 100,
-                    }, {
-                        field: 'processFileCount',
-                        title: '鍔犲伐浠芥暟',
-                        width: 100,
-                    }, {
-                        field: 'processItemCount',
-                        title: '鍔犲伐浠舵暟',
-                        width: 100,
-                    }, {
+                    },
+                    // {
+                    //     field: 'process',
+                    //     title: '鍔犲伐浜烘',
+                    //     width: 100,
+                    // },
+                    // {
+                    //     field: 'processFileCount',
+                    //     title: '鍔犲伐浠芥暟',
+                    //     width: 100,
+                    // }, {
+                    //     field: 'processItemCount',
+                    //     title: '鍔犲伐浠舵暟',
+                    //     width: 100,
+                    // },
+                    {
                         field: 'physical',
                         title: '瀹炵墿鍒╃敤浜烘',
                         width: 100,
diff --git a/src/main/webapp/WEB-INF/view/scanPrint/scanInPrint.jsp b/src/main/webapp/WEB-INF/view/scanPrint/scanInPrint.jsp
index 473f707..77f918e 100644
--- a/src/main/webapp/WEB-INF/view/scanPrint/scanInPrint.jsp
+++ b/src/main/webapp/WEB-INF/view/scanPrint/scanInPrint.jsp
@@ -270,38 +270,114 @@
 
 
     //淇濆瓨鏁版嵁
-    function saveScanPrintData(rows) {
-        layer.confirm("宸叉壂鎻�" + rows.length + "鏉℃暟鎹紝纭鍏ュ簱锛�", {
-            icon: 3,
-            title: '鎻愮ず'
-        }, function (index) {
-            wcp.ui.setBusy("body", wcp.ajax({
-                url: 'scanPrintController/saveScanPrintData?printType=' + '${printType}' + '&viewId=' + '${viewId}',
-                data: JSON.stringify(rows),
-            }).done(function (result) {
-                params.callBack();
-                //鍏抽棴绐楀彛
-                closeWindow();
-            }));
-        })
-    }
+    <%--function saveScanPrintData(rows) {--%>
+    <%--    layer.confirm("宸叉壂鎻�" + rows.length + "鏉℃暟鎹紝纭鍏ュ簱锛�", {--%>
+    <%--        icon: 3,--%>
+    <%--        title: '鎻愮ず'--%>
+    <%--    }, function (index) {--%>
+    <%--        wcp.ui.setBusy("body", wcp.ajax({--%>
+    <%--            url: 'scanPrintController/saveScanPrintData?printType=' + '${printType}' + '&viewId=' + '${viewId}',--%>
+    <%--            data: JSON.stringify(rows),--%>
+    <%--        }).done(function (result) {--%>
+    <%--            params.callBack();--%>
+    <%--            //鍏抽棴绐楀彛--%>
+    <%--            closeWindow();--%>
+    <%--        }));--%>
+    <%--    })--%>
+    <%--}--%>
+
+    <%--//淇濆瓨鏁版嵁--%>
+    <%--function saveScanPrintData(rows) {--%>
+    <%--    // getBoxNum(rows);--%>
+    <%--    layer.prompt({--%>
+    <%--        formType: 2,--%>
+    <%--        value: '',--%>
+    <%--        title: '璇锋坊鍔犵洅鍙�'--%>
+    <%--    }, function (value, index, elem) {--%>
+    <%--        wcp.ui.setBusy("body", wcp.ajax({--%>
+    <%--            url: 'scanPrintController/saveScanPrintData?printType=' + '${printType}' + '&viewId=' + '${viewId}' + '&boxNum=' + value,--%>
+    <%--            data: JSON.stringify(rows),--%>
+    <%--        }).done(function (result) {--%>
+    <%--            params.callBack();--%>
+    <%--            //鍏抽棴绐楀彛--%>
+    <%--            closeWindow();--%>
+    <%--        }));--%>
+    <%--    });--%>
+    <%--}--%>
 
     //淇濆瓨鏁版嵁
     function saveScanPrintData(rows) {
-        layer.prompt({
-            formType: 2,
-            value: '',
-            title: '璇锋坊鍔犵洅鍙�'
-        }, function (value, index, elem) {
-            wcp.ui.setBusy("body", wcp.ajax({
-                url: 'scanPrintController/saveScanPrintData?printType=' + '${printType}' + '&viewId=' + '${viewId}' + '&boxNum=' + value,
-                data: JSON.stringify(rows),
-            }).done(function (result) {
-                params.callBack();
-                //鍏抽棴绐楀彛
-                closeWindow();
-            }));
+        // 棣栧厛鑾峰彇宸插瓨鍦ㄧ殑鐩掑彿
+        wcp.ui.setBusy("body", wcp.ajax({
+            url: 'scanPrintController/getBoxNum',
+            data: JSON.stringify(rows),
+        }).done(function (result) {
+            debugger;
+            var boxNumList = result || []; // 鍋囪AjaxResponse鐨刣ata瀛楁鍖呭惈瀹為檯鏁版嵁
+            var existingBoxNum = boxNumList.length > 0 ? boxNumList[0] : ''; // 鍙栫涓�涓洅鍙锋垨绌哄瓧绗︿覆
+
+
+            layer.prompt({
+                formType: 2,
+                title: '璇锋坊鍔犵洅鍙�'
+            }, function (inputBoxNum, index, elem) {
+                // 濡傛灉宸插瓨鍦ㄧ洅鍙蜂笖涓庤緭鍏ョ殑鐩掑彿涓嶅悓锛屽垯鎻愮ず鐢ㄦ埛纭
+                if (existingBoxNum && existingBoxNum !== inputBoxNum) {
+                    layer.confirm('褰撳墠妗f宸插瓨鍦ㄧ洅鍙� "' + existingBoxNum + '"锛屾偍杈撳叆鐨勬槸 "' + inputBoxNum + '"锛屾槸鍚﹁鏇存敼鐩掑彿锛�', {
+                        icon: 3,
+                        title: '纭鏇存敼鐩掑彿'
+                    }, function (confirmIndex) {
+                        // 纭鏇存敼锛屾墽琛屼繚瀛�
+                        performSave(inputBoxNum, rows);
+                        layer.close(confirmIndex);
+                    }, function () {
+                        // 鍙栨秷鏇存敼锛岄噸鏂版墦寮�杈撳叆妗�
+                        layer.close(index);
+                    });
+                } else {
+                    // 鐩掑彿鐩稿悓鎴栦笉瀛樺湪宸插瓨鍦ㄧ殑鐩掑彿锛岀洿鎺ヤ繚瀛�
+                    performSave(inputBoxNum, rows);
+                }
+            });
+        })).fail(function () {
+            // 鑾峰彇鐩掑彿澶辫触鏃讹紝鐩存帴璁╃敤鎴疯緭鍏�
+            layer.prompt({
+                formType: 2,
+                value: '',
+                title: '璇锋坊鍔犵洅鍙�'
+            }, function (value, index, elem) {
+                wcp.ui.setBusy("body", wcp.ajax({
+                    url: 'scanPrintController/saveScanPrintData?printType=' + '${printType}' + '&viewId=' + '${viewId}' + '&boxNum=' + value,
+                    data: JSON.stringify(rows),
+                }).done(function (result) {
+                    params.callBack();
+                    //鍏抽棴绐楀彛
+                    closeWindow();
+                }));
+            });
         });
     }
+
+
+    // 鎵ц淇濆瓨鎿嶄綔鐨勮緟鍔╁嚱鏁�
+    function performSave(boxNum, rows) {
+        wcp.ui.setBusy("body", wcp.ajax({
+            url: 'scanPrintController/saveScanPrintData?printType=' + '${printType}' + '&viewId=' + '${viewId}' + '&boxNum=' + boxNum,
+            data: JSON.stringify(rows),
+        }).done(function (result) {
+            params.callBack();
+            //鍏抽棴绐楀彛
+            closeWindow();
+        }));
+    }
+
+    function getBoxNum(rows) {
+        wcp.ui.setBusy("body", wcp.ajax({
+            url: 'scanPrintController/getBoxNum',
+            data: JSON.stringify(rows),
+        }).done(function (result) {
+            console.log(result);
+        }));
+    }
 </script>
 </html>

--
Gitblit v1.9.1