Przeglądaj źródła

添加首页存量用地接口
产业供地添加同意不同意选项
活动二维码下载兼容ie

huZhiHao 5 lat temu
rodzic
commit
3b562a77b3

+ 3 - 0
sql/20200521.sql

@@ -0,0 +1,3 @@
+
+ALTER TABLE `industrial_land_supply_consultation`
+ADD COLUMN `is_agree` tinyint(1) DEFAULT NULL COMMENT '是否同意';

+ 3 - 0
src/main/java/platform/modules/government/entity/IndustrialLandSupplyConsultation.java

@@ -62,6 +62,9 @@ public class IndustrialLandSupplyConsultation extends BaseEntity {
     //是否默认
     private Boolean isDefault;
 
+    //是否默认
+    private Boolean isAgree;
+
 //    public String getRemain_time() {
 //        try {
 //            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+ 108 - 7
src/main/java/platform/modules/government/service/ContentService.java

@@ -21,8 +21,10 @@ import platform.modules.home.request.FindRequest;
 import platform.modules.home.response.FindResponse;
 import tk.mybatis.mapper.entity.Example;
 
-import java.util.ArrayList;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * 内容管理Service
@@ -36,12 +38,14 @@ public class ContentService extends BaseService<Content> {
 
     @Autowired
     private NavigationService navigationService;
+
     @Autowired
     private AttachmentService attachmentService;
-    @Autowired
+
+    @Resource
     private ContentDao contentDao;
 
-    @Autowired
+    @Resource
     private AttachmentDao attachmentDao;
 
     @Transactional(readOnly = true)
@@ -175,22 +179,119 @@ public class ContentService extends BaseService<Content> {
 
         return contentDao.findContentsByNavigationIdForIndex(id);
     }
-    
+
     public Integer findContentsCount(FindRequest request) {
         return contentDao.findContentsCount(request);
     }
 
     /**
      * 获取门户消息
-     *
+     *
      * @param request
      * @return
      */
     public List<Content> findContentList(FindRequest request) {
-       return contentDao.findContentList(request);
+        return contentDao.findContentList(request);
     }
 
     public List<SearchGlobalDto> searchGlobal(String keyword) {
         return contentDao.searchGlobal(keyword);
     }
+
+    public List<Map> randomPic(Integer num) {
+
+        List<Map> result = new ArrayList<>();
+
+        Content query = new Content();
+        query.setDel_flag(false);
+        List<Content> contentList = this.findListByWhere(query);
+        int count = 0;
+        List<String> businessIdList = new ArrayList<>();
+
+        long interval = 0;
+        Date startTime = new Date();
+
+        while (count < num && interval < 2) {
+
+            Date now = new Date();
+            interval = (now.getTime() - startTime.getTime()) / 1000;
+
+            //随机在list里选一个
+            int index = (int) (Math.random() * (contentList.size() - 1));
+            Content contentEntity = contentList.get(index);
+            //排除同一businessid
+            boolean idDuplicatedFlag = true;
+            for (String businessId : businessIdList) {
+                if (Objects.equals(businessId, contentEntity.getId())) {
+                    idDuplicatedFlag = false;
+                }
+            }
+            if (idDuplicatedFlag) {
+                String htmlStr = contentEntity.getContent();
+                //排除没有图片标签的
+                if (!htmlStr.contains("<img")) {
+                    continue;
+                }
+                //排除没有src内容的
+                if (!htmlStr.contains("src=")) {
+                    continue;
+                }
+
+                String img = "";
+                Pattern p_image;
+                Matcher m_image;
+                List<String> pics = new ArrayList<String>();
+                //String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址
+                String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";
+                p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
+                m_image = p_image.matcher(htmlStr);
+                while (m_image.find()) {
+                    img = img + "," + m_image.group();
+                    // Matcher m =
+                    // Pattern.compile("src=\"?(.*?)(\"|>|\\s+)").matcher(img); //匹配src
+                    Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
+                    while (m.find()) {
+                        pics.add(m.group(1));
+                    }
+                }
+
+                Map<String, String> map = new HashMap<>();
+                map.put("id", contentEntity.getId() + "");
+                map.put("title", contentEntity.getTitle());
+                map.put("create_time", contentEntity.getCreate_time());
+                map.put("url", pics.get(0));
+
+                /*String textStr = "";
+                Pattern p_script;
+                Matcher m_script;
+                Pattern p_style;
+                Matcher m_style;
+                Pattern p_html;
+                Matcher m_html;
+
+                String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> }
+                String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> }
+                String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式
+                p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
+                m_script = p_script.matcher(htmlStr);
+                htmlStr = m_script.replaceAll(""); //过滤script标签
+                p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
+                m_style = p_style.matcher(htmlStr);
+                htmlStr = m_style.replaceAll(""); //过滤style标签
+                p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
+                m_html = p_html.matcher(htmlStr);
+                htmlStr = m_html.replaceAll(""); //过滤html标签
+                textStr = htmlStr;
+
+                map.put("content", textStr);*/
+
+                result.add(map);
+
+                businessIdList.add(contentEntity.getId() + "");
+                count++;
+            }
+        }
+//        System.out.println("两个时间相差" + interval + "秒");
+        return result;
+    }
 }

+ 29 - 6
src/main/java/platform/modules/government/service/IndustrialLandSupplyDetailService.java

@@ -222,7 +222,7 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
                         || Objects.equals("a", entity.getApprove_status())) {
 
                     //分发待反馈剩余时间
-                    int days = Integer.parseInt(industrialLandSupplyConfigService.getValueByType(DISTRIBUTE_TIME));
+                    /*int days = Integer.parseInt(industrialLandSupplyConfigService.getValueByType(DISTRIBUTE_TIME));
                     IndustrialLandSupplyDistribution landSupplyDistribution = new IndustrialLandSupplyDistribution();
                     landSupplyDistribution.setIndustrial_land_supply_id(entity.getId());
                     Department department = departmentService.findRootById(ShiroUtils.getUserEntity().getDepartment_id());
@@ -257,7 +257,7 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
                                 days,
                                 sysConfigService.getValueByKey("year_" + DateUtil.getCurrentDateString("yyyy"))
                         ));
-                    }
+                    }*/
                 } else if (Objects.equals(Constant.LandSupplyApproveStatus.LAND_SUPPLY_PENDIND_SUMMARY, entity.getApprove_status())) {
 
                     //会审审批剩余时间
@@ -532,6 +532,17 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
             if (department != null) {
                 landSupplyConsultation.setDepartment_name(department.getName());
             }
+            //是否同意
+            if (landSupplyConsultation.getIsAgree() != null) {
+                String feedback = landSupplyConsultation.getFeedback();
+                String str = "";
+                if (landSupplyConsultation.getIsAgree()) {
+                    str = "同意。";
+                } else {
+                    str = "不同意。";
+                }
+                landSupplyConsultation.setFeedback(str + feedback);
+            }
             int days = Integer.parseInt(industrialLandSupplyConfigService.getValueByType(FEEDBACK_TIME));
 //            landSupplyConsultation.setRemain_time(DateUtil.getTimeDiffStr(landSupplyConsultation.getConsultation_time(), days));
             String dealTime = null;
@@ -594,7 +605,8 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
                     landSupplyDistribution.setDepartment_name(department.getName());
                 }
             }
-            if (!Objects.equals(landSupplyDistribution.getDepartment_id(), "0")) {
+            //分发反馈剩余时间
+            /*if (!Objects.equals(landSupplyDistribution.getDepartment_id(), "0")) {
                 int days = Integer.parseInt(industrialLandSupplyConfigService.getValueByType(DISTRIBUTE_TIME));
 //            landSupplyDistribution.setRemain_time(DateUtil.getTimeDiffStr(landSupplyDistribution.getDistribute_time(), days));
                 String dealTime = null;
@@ -621,7 +633,7 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
                         days,
                         sysConfigService.getValueByKey("year_" + DateUtil.getCurrentDateString("yyyy"))
                 ));
-            }
+            }*/
         }
         entity.setDistributionList(industrialLandSupplyDistributionList);
 
@@ -780,6 +792,17 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
             }
             Department depart = departmentService.selectById(Integer.valueOf(landSupplyConsultation.getDepartment_id()));
             landSupplyConsultation.setDepartment_name(depart.getName());
+            //是否同意
+            if (landSupplyConsultation.getIsAgree() != null) {
+                String feedback = landSupplyConsultation.getFeedback();
+                String str = "";
+                if (landSupplyConsultation.getIsAgree()) {
+                    str = "同意。";
+                } else {
+                    str = "不同意。";
+                }
+                landSupplyConsultation.setFeedback(str + feedback);
+            }
             //剩余时间
             landSupplyConsultation.setRemain_time(DateUtil.getTimeDiff(
                     landSupplyConsultation.getCreate_time(),
@@ -816,12 +839,12 @@ public class IndustrialLandSupplyDetailService extends BaseService<IndustrialLan
             Department depart = departmentService.selectById(Integer.valueOf(landSupplyDistribution.getDepartment_id()));
             landSupplyDistribution.setDepartment_name(depart.getName());
             //剩余时间
-            landSupplyDistribution.setRemain_time(DateUtil.getTimeDiff(
+            /*landSupplyDistribution.setRemain_time(DateUtil.getTimeDiff(
                     landSupplyDistribution.getCreate_time(),
                     landSupplyDistribution.getUpdate_time(),
                     days,
                     sysConfigService.getValueByKey("year_" + DateUtil.getCurrentDateString("yyyy"))
-            ));
+            ));*/
         }
         entity.setDistributionList(industrialLandSupplyDistributionList);
 

+ 14 - 4
src/main/java/platform/modules/government/web/ActivityController.java

@@ -48,10 +48,12 @@ import platform.modules.sys.report.ContractExport;
 import platform.modules.sys.service.*;
 import platform.modules.sys.web.ResponseMessage;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
@@ -794,9 +796,9 @@ public class ActivityController extends BaseController {
         try {
             activityService.deleteProject(id);
             return ResponseMessage.success("删除成功!");
-        }catch(BaseException e) {
+        } catch (BaseException e) {
             return ResponseMessage.success(e.getMessage());
-        }catch(Exception e) {
+        } catch (Exception e) {
             e.printStackTrace();
         }
         return ResponseMessage.error("删除失败!");
@@ -1089,7 +1091,7 @@ public class ActivityController extends BaseController {
      * @Return: void
      **/
     @GetMapping(value = "/download/qrcode/{activity_id}/{type}")
-    public void getDetailQRcode(@PathVariable("activity_id") String id, @PathVariable("type") String type, HttpServletResponse response) throws IOException {
+    public void getDetailQRcode(@PathVariable("activity_id") String id, @PathVariable("type") String type, HttpServletRequest request, HttpServletResponse response) throws IOException {
 
 //        try {
 //            URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token);
@@ -1139,7 +1141,15 @@ public class ActivityController extends BaseController {
             name = "签到二维码.jpg";
             is = activityService.getQRcode(type, "430", id);
         }
-        name = new String(name.getBytes(), "ISO-8859-1");
+        String userAgent = request.getHeader("user-agent").toLowerCase();
+        if (userAgent.contains("msie") || userAgent.contains("like gecko")) {
+            // win10 ie edge 浏览器 和其他系统的ie
+            name = URLEncoder.encode(name, "UTF-8");
+        } else {
+            // 其他
+            name = new String(name.getBytes("utf-8"), "iso-8859-1");
+        }
+//        name = new String(name.getBytes(), "ISO-8859-1");
         response.setHeader("Content-type", "application/octet-stream");
         response.setHeader("Content-disposition", "attachment;fileName=\"" + name + "\"");
         OutputStream os = response.getOutputStream();         //输出数据

+ 21 - 25
src/main/java/platform/modules/government/web/ContentController.java

@@ -4,16 +4,12 @@ package platform.modules.government.web;
 import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.util.HtmlUtils;
 import platform.common.Constant;
 import platform.common.annotation.OperationLog;
 import platform.common.base.controller.BaseController;
-import platform.modules.build.service.FloorService;
 import platform.modules.government.entity.Attachment;
 import platform.modules.government.entity.Content;
 import platform.modules.government.entity.FileDown;
@@ -22,11 +18,11 @@ import platform.modules.government.service.AttachmentService;
 import platform.modules.government.service.ContentService;
 import platform.modules.government.service.NavigationService;
 import platform.modules.sys.web.ResponseMessage;
-import tk.mybatis.mapper.entity.Example;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 内容管理Controller
@@ -50,7 +46,7 @@ public class ContentController extends BaseController {
     @GetMapping(value = "/list")
     public String list(
             @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
-            String queryStr, ModelMap modelMap,Content searchCondition,String item_selected) throws Exception {
+            String queryStr, ModelMap modelMap, Content searchCondition, String item_selected) throws Exception {
         try {
             log.debug("分页查询内容列表参数! pageNum = {}, contentname = {}", pageNum, queryStr);
             PageInfo<Content> pageInfo = contentService.findPage(pageNum, PAGESIZE, queryStr, searchCondition);
@@ -83,7 +79,7 @@ public class ContentController extends BaseController {
             log.info("批量删除内容不存在! ids = {}", ids);
             return ResponseMessage.error("批量删除内容不存在");
         }
-        List<Object> objects= Arrays.asList(ids);
+        List<Object> objects = Arrays.asList(ids);
         contentService.deleteByCondition(Content.class, "id", objects);
         log.info("批量删除内容成功! ids = {}", ids);
 
@@ -116,11 +112,11 @@ public class ContentController extends BaseController {
     @PostMapping(value = "/save")
     public ModelMap saveContent(Content content) throws Exception {
         ModelMap messagesMap = new ModelMap();
-        if(IsTooFrequently()) {
-    		messagesMap.put("status", FAILURE);
+        if (IsTooFrequently()) {
+            messagesMap.put("status", FAILURE);
             messagesMap.put("message", "操作过于频繁,请稍后再试!");
             return messagesMap;
-    	}
+        }
         log.debug("添加内容参数! content = {}", content);
         Boolean flag = contentService.saveContent(content);
         if (flag) {
@@ -144,7 +140,7 @@ public class ContentController extends BaseController {
         log.info("跳转到内容编辑页面!id = {}", id);
 
         Content content = contentService.findById(id);
-        if(null==content){
+        if (null == content) {
             modelMap.put("status", FAILURE);
             modelMap.put("message", "内容不存在!");
             return BASE_GOVERNMENT_PATH + "content_edit";
@@ -152,15 +148,15 @@ public class ContentController extends BaseController {
         }
         List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.CONTENT, content.getId(), null);
         if (null != attachments && attachments.size() > 0) {
-            FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(),attachments.get(0).getDownload_uri());
+            FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
             content.setFileDown(fileDown);
         }
         List<Attachment> files = attachmentService.selectByIdAndBusinessId(Constant.Attachment.CONTENT_FILE, content.getId(), null);
         if (null != files && files.size() > 0) {
-            FileDown fileDown = new FileDown(files.get(0).getId(), files.get(0).getFile_name(), files.get(0).getFile_url(),files.get(0).getDownload_uri());
+            FileDown fileDown = new FileDown(files.get(0).getId(), files.get(0).getFile_name(), files.get(0).getFile_url(), files.get(0).getDownload_uri());
             content.setAddFileDown(fileDown);
         }
-        content.setContent(StringEscapeUtils.unescapeHtml4(content.getContent()) );
+        content.setContent(StringEscapeUtils.unescapeHtml4(content.getContent()));
         modelMap.put("fileUrl", setFileUrl());
         modelMap.put("content", content);
         List<Navigation> navigations = new ArrayList<>();
@@ -174,27 +170,27 @@ public class ContentController extends BaseController {
      * 跳转到内容查看页面
      *
      * @return
-     * @throws Exception 
+     * @throws Exception
      */
     @OperationLog(value = "查看内容详情")
     @GetMapping(value = "/check/{id}")
     public String check(@PathVariable("id") int id, ModelMap modelMap) throws Exception {
         log.info("跳转到内容查看页面!id = {}", id);
         Content content = contentService.findById(id);
-        if(null==content){	
+        if (null == content) {
             modelMap.put("status", FAILURE);
             modelMap.put("message", "内容不存在!");
             return BASE_GOVERNMENT_PATH + "content_check";
         }
-        content.setContent(StringEscapeUtils.unescapeHtml4(content.getContent()) );
+        content.setContent(StringEscapeUtils.unescapeHtml4(content.getContent()));
         List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.CONTENT, content.getId(), null);
         if (null != attachments && attachments.size() > 0) {
-            FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(),attachments.get(0).getDownload_uri());
+            FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
             content.setFileDown(fileDown);
         }
         List<Attachment> files = attachmentService.selectByIdAndBusinessId(Constant.Attachment.CONTENT_FILE, content.getId(), null);
         if (null != files && files.size() > 0) {
-            FileDown fileDown = new FileDown(files.get(0).getId(), files.get(0).getFile_name(), files.get(0).getFile_url(),files.get(0).getDownload_uri());
+            FileDown fileDown = new FileDown(files.get(0).getId(), files.get(0).getFile_name(), files.get(0).getFile_url(), files.get(0).getDownload_uri());
             content.setAddFileDown(fileDown);
         }
         String navName = navigationService.getName(content.getNavigation_id());
@@ -217,11 +213,11 @@ public class ContentController extends BaseController {
     @PutMapping(value = "update/{id}")
     public ModelMap updateContent(@PathVariable("id") int id, Content content) throws Exception {
         ModelMap messagesMap = new ModelMap();
-        if(IsTooFrequently()) {
-    		messagesMap.put("status", FAILURE);
+        if (IsTooFrequently()) {
+            messagesMap.put("status", FAILURE);
             messagesMap.put("message", "操作过于频繁,请稍后再试!");
             return messagesMap;
-    	}
+        }
         log.debug("编辑内容参数! id= {}, content = {}", id, content);
         Content u = contentService.findById(id);
         if (null == u) {
@@ -333,11 +329,11 @@ public class ContentController extends BaseController {
         contentService.updateContent(content);
         return ResponseMessage.success("置顶成功");
     }
-    
+
     /**
      * 添加附件
      *
-     * @param template_id
+     * @param fileIdName
      * @param modelMap
      * @return
      */
@@ -348,5 +344,5 @@ public class ContentController extends BaseController {
         modelMap.put("fileUrl", setFileUrl());
         return BASE_GOVERNMENT_PATH + "file_add";
     }
-    
+
 }

+ 120 - 4
src/main/java/platform/modules/home/web/HomeRefactorController.java

@@ -4,20 +4,26 @@ import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.exceptions.ClientException;
 import com.github.pagehelper.PageInfo;
 import com.xiaoleilu.hutool.crypto.SecureUtil;
+import io.jsonwebtoken.Claims;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authc.*;
+import org.apache.shiro.authc.pam.UnsupportedTokenException;
 import org.apache.shiro.subject.Subject;
 import org.omg.CORBA.INTERNAL;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 import platform.common.Constant;
 import platform.common.annotation.OperationLog;
 import platform.common.base.controller.BaseController;
+import platform.common.base.model.CheckResult;
 import platform.common.base.model.DictionaryItem;
 import platform.common.base.service.DictionaryItemService;
 import platform.common.util.*;
+import platform.config.redis.RedisService;
 import platform.modules.api.dto.SyncUserDto;
 import platform.modules.api.service.SkyImageApiService;
 import platform.modules.build.entity.Company;
@@ -39,10 +45,7 @@ import platform.modules.home.dto.LoginDto;
 import platform.modules.home.request.FindRequest;
 import platform.modules.home.response.FindResponseProject;
 import platform.modules.home.service.HomeRefactorService;
-import platform.modules.sys.entity.ActivityDetail;
-import platform.modules.sys.entity.ActivityFeedback;
-import platform.modules.sys.entity.ActivityReview;
-import platform.modules.sys.entity.Approval;
+import platform.modules.sys.entity.*;
 import platform.modules.sys.service.*;
 import platform.modules.sys.shiro.UsernamePasswordToken;
 import platform.modules.sys.web.ResponseMessage;
@@ -137,6 +140,23 @@ public class HomeRefactorController extends BaseController {
     @Autowired
     private LogoService logoService;
 
+    @Autowired
+    private ContentService contentService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Autowired
+    private RedisService redisService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private MenuService menuService;
+
+    @Value("${carrier_hash_key}")
+    private String carrier_hash_key;
 
     /**
      * 门户首页
@@ -569,6 +589,19 @@ public class HomeRefactorController extends BaseController {
         return ResponseMessage.error(Constant.SYSTEM_ERRORS);
     }
 
+    /**
+     * 用户登出
+     * 20200514 新门户使用
+     */
+    @OperationLog(value = "用户登出")
+    @GetMapping(value = "/logout")
+    @ResponseBody
+    public ResponseMessage logout() {
+
+        ShiroUtils.logout();
+        return ResponseMessage.success("登出成功!");
+    }
+
     /**
      * 账号名是否存在
      */
@@ -639,4 +672,87 @@ public class HomeRefactorController extends BaseController {
             modelMap.put("navigations", navigations);
         }
     }
+
+    /**
+     * 随机获取n个有图片的通知
+     */
+    @OperationLog(value = "随机获取n个有图片的通知")
+    @GetMapping(value = "/content/random/{num}")
+    @ResponseBody
+    public ResponseMessage random(@PathVariable("num") Integer num) {
+
+        ModelMap modelMap = new ModelMap();
+        List<Map> list = contentService.randomPic(num);
+        modelMap.put("fileUrl", setFileUrl());
+        modelMap.put("contentList", list);
+        return ResponseMessage.success("success", modelMap);
+    }
+
+    /**
+     * 获取存量用地后台跳转链接
+     */
+    @OperationLog(value = "获取存量用地后台跳转链接")
+    @GetMapping(value = "/stockland/url")
+    @ResponseBody
+    public ResponseMessage stocklandUrl(HttpServletRequest request) {
+
+        String authorization = request.getHeader("Authorization");
+        if (StringUtils.isEmpty(authorization)) {
+            throw new NullPointerException("token不能为空");
+        }
+        if (!authorization.startsWith("Bearer")) {
+            throw new UnsupportedTokenException("token不合法");
+        }
+        String verifyToken = authorization.substring(7, authorization.length());
+        //验证JWT的签名,返回CheckResult对象
+        CheckResult checkResult = JWTUtil.validateJWT(verifyToken);
+        if (checkResult.getSuccess()) {
+            Claims claims = checkResult.getClaims();
+            String token_key = claims.getIssuer();
+            String usertId = claims.getId();
+            HashOperations<String, String, Object> hashOperations = redisTemplate.opsForHash();
+            String token = (String) hashOperations.get(carrier_hash_key, token_key);
+            if (token != null && !token.equals(authorization)) {
+                return ResponseMessage.error("无效的token");
+            }
+            //获取用户权限
+            //获取主身份信息
+            User user = userService.findById(Integer.parseInt(usertId));
+            if (user != null) {
+
+                List<Menu> menus;
+                if (user.getIs_admin()) {
+                    Menu menu = new Menu();
+                    menu.setUser_type(user.getUser_type());
+                    menus = menuService.findListByWhere(menu);
+                } else {
+                    menus = menuService.findListMenuByUserId(user.getId(), user.getUser_type());
+                }
+
+                //单独定一个集合对象
+                Map<String, String> map = new HashMap<>();
+                if (menus != null) {
+                    for (Menu permission : menus) {
+
+                        if (Objects.equals(permission.getPermission(), "C_STOCKLAND_MANAGE")) {
+                            map.put("moudle","C_SERVICE_MANAGE");
+                            map.put("menu",permission.getPermission());
+                        } else if (Objects.equals(permission.getPermission(), "S_AREA_APPROVE")) {
+                            map.put("moudle","S_SERVICE_MANAGE");
+                            map.put("menu",permission.getPermission());
+                        } else if (Objects.equals(permission.getPermission(), "G_APPROVAL_PENDING")) {
+                            map.put("moudle","G_SERVICE_MANAGE");
+                            map.put("menu",permission.getPermission());
+                        }
+
+                    }
+                }
+                return ResponseMessage.success("success", map);
+            } else {
+                return ResponseMessage.error(",用户不存在");
+            }
+        } else {
+            return ResponseMessage.error(checkResult.getErrCode() + ",token校验失败");
+        }
+    }
 }

+ 2 - 0
src/main/java/platform/modules/sys/web/UserController.java

@@ -51,6 +51,7 @@ public class UserController extends BaseController {
 
     @Autowired
     private UserService userService;
+
     @Value("${resetPassword}")
     private String resetPassword;
 
@@ -65,6 +66,7 @@ public class UserController extends BaseController {
 
     @Autowired
     private DepartmentService departmentService;
+
     @Autowired
     private RoleService roleService;
 

+ 6 - 6
src/main/resources/application.yml

@@ -16,12 +16,12 @@ spring:
   profiles:
 
 #    active: dev
-#      active: test
-      active: aliyun
-  #    active: vpn
-  #    active: prod_in
-  #    active: prod_out
-  #    active: prod_test
+#    active: test
+    active: aliyun
+#    active: vpn
+#    active: prod_in
+#    active: prod_out
+#    active: prod_test
 
   #数据源
   datasource:

+ 16 - 0
src/main/resources/templates/admin/government/industrial_land_supply/feedback.html

@@ -109,6 +109,15 @@
                     <p>[[${item.consultation}]]</p>
                 </div>
             </div>
+            <th:block th:if="${item.isDefault}">
+                <div class="row cl">
+                    <label class="form-label col-xs-4 col-sm-2"><span class="c-red">*</span>是否同意:</label>
+                    <div class="formControls col-xs-8 col-sm-9">
+                        <input type="radio" th:name="'consultationList['+${itemStat.index}+'].isAgree'" value="true">同意</input>
+                        <input type="radio" th:name="'consultationList['+${itemStat.index}+'].isAgree'" value="false">不同意</input>
+                    </div>
+                </div>
+            </th:block>
             <div class="row cl">
                 <label class="form-label col-xs-4 col-sm-2">剩余答复时间:</label>
                 <div class="formControls col-xs-8 col-sm-9">
@@ -178,6 +187,13 @@
     }
 
     function save() {
+
+        var isAgree = $("input[name='consultationList[0].isAgree']:checked").val();
+        if (isAgree == undefined || isAgree == null || isAgree == "") {
+            errorMessage("请选择是否同意!");
+            return;
+        }
+
         $("#form-add").ajaxSubmit({
             type: 'post',
             url: pagePath + "/land_supply/feedback",

+ 411 - 0
template/苏州高新区产业用地预审办文单.xml

@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml"
+                xmlns:w10="urn:schemas-microsoft-com:office:word"
+                xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
+                xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
+                xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
+                xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
+                w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"><o:DocumentProperties><o:Author>Apache POI</o:Author><o:LastAuthor>Spartan2000</o:LastAuthor><o:Revision>48</o:Revision><o:LastPrinted>2020-05-08T03:54:00Z</o:LastPrinted><o:Created>2020-05-08T02:54:00Z</o:Created><o:LastSaved>2020-05-09T04:35:50Z</o:LastSaved><o:TotalTime>4320</o:TotalTime><o:Pages>1</o:Pages><o:Words>78</o:Words><o:Characters>449</o:Characters><o:Company>微软中国</o:Company><o:Lines>3</o:Lines><o:Paragraphs>1</o:Paragraphs><o:CharactersWithSpaces>526</o:CharactersWithSpaces><o:Version>14</o:Version></o:DocumentProperties>
+    <o:CustomDocumentProperties><o:KSOProductBuildVer dt:dt="string">2052-11.1.0.9584</o:KSOProductBuildVer></o:CustomDocumentProperties>
+    <w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="宋体" w:h-ansi="Times New Roman" w:cs="Times New Roman"/>
+        <w:font w:name="Times New Roman"><w:panose-1 w:val="02020603050405020304"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/></w:font>
+        <w:font w:name="宋体"><w:panose-1 w:val="02010600030101010101"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001"
+                   w:csb-1="00000000"/></w:font>
+        <w:font w:name="Wingdings"><w:panose-1 w:val="05000000000000000000"/>
+            <w:charset w:val="02"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
+                   w:csb-1="00000000"/></w:font>
+        <w:font w:name="Arial"><w:panose-1 w:val="020B0604020202020204"/>
+            <w:charset w:val="01"/>
+            <w:family w:val="SWiss"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/></w:font>
+        <w:font w:name="黑体"><w:panose-1 w:val="02010609060101010101"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
+                   w:csb-1="00000000"/></w:font>
+        <w:font w:name="Courier New"><w:panose-1 w:val="02070309020205020404"/>
+            <w:charset w:val="01"/>
+            <w:family w:val="Modern"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/></w:font>
+        <w:font w:name="Symbol"><w:panose-1 w:val="05050102010706020507"/>
+            <w:charset w:val="02"/>
+            <w:family w:val="Roman"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
+                   w:csb-1="00000000"/></w:font>
+        <w:font w:name="Calibri"><w:panose-1 w:val="020F0502020204030204"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="SWiss"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E4002EFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF"
+                   w:csb-1="00000000"/></w:font>
+        <w:font w:name="小标宋"><w:altName w:val="微软雅黑"/>
+            <w:panose-1 w:val="03000509000000000000"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Script"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000010" w:usb-3="00000000" w:csb-0="00040000"
+                   w:csb-1="00000000"/></w:font>
+        <w:font w:name="微软雅黑"><w:panose-1 w:val="020B0503020204020204"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="80000287" w:usb-1="2ACF3C50" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="0004001F"
+                   w:csb-1="00000000"/></w:font></w:fonts>
+    <w:styles><w:latentStyles w:defLockedState="off" w:latentStyleCount="260"><w:lsdException w:name="Normal"/><w:lsdException
+            w:name="heading 1"/><w:lsdException w:name="heading 2"/><w:lsdException w:name="heading 3"/><w:lsdException
+            w:name="heading 4"/><w:lsdException w:name="heading 5"/><w:lsdException w:name="heading 6"/><w:lsdException
+            w:name="heading 7"/><w:lsdException w:name="heading 8"/><w:lsdException w:name="heading 9"/><w:lsdException
+            w:name="index 1"/><w:lsdException w:name="index 2"/><w:lsdException w:name="index 3"/><w:lsdException
+            w:name="index 4"/><w:lsdException w:name="index 5"/><w:lsdException w:name="index 6"/><w:lsdException
+            w:name="index 7"/><w:lsdException w:name="index 8"/><w:lsdException w:name="index 9"/><w:lsdException
+            w:name="toc 1"/><w:lsdException w:name="toc 2"/><w:lsdException w:name="toc 3"/><w:lsdException
+            w:name="toc 4"/><w:lsdException w:name="toc 5"/><w:lsdException w:name="toc 6"/><w:lsdException
+            w:name="toc 7"/><w:lsdException w:name="toc 8"/><w:lsdException w:name="toc 9"/><w:lsdException
+            w:name="Normal Indent"/><w:lsdException w:name="footnote text"/><w:lsdException w:name="annotation text"/><w:lsdException
+            w:name="header"/><w:lsdException w:name="footer"/><w:lsdException w:name="index heading"/><w:lsdException
+            w:name="caption"/><w:lsdException w:name="table of figures"/><w:lsdException w:name="envelope address"/><w:lsdException
+            w:name="envelope return"/><w:lsdException w:name="footnote reference"/><w:lsdException
+            w:name="annotation reference"/><w:lsdException w:name="line number"/><w:lsdException w:name="page number"/><w:lsdException
+            w:name="endnote reference"/><w:lsdException w:name="endnote text"/><w:lsdException
+            w:name="table of authorities"/><w:lsdException w:name="macro"/><w:lsdException w:name="toa heading"/><w:lsdException
+            w:name="List"/><w:lsdException w:name="List Bullet"/><w:lsdException w:name="List Number"/><w:lsdException
+            w:name="List 2"/><w:lsdException w:name="List 3"/><w:lsdException w:name="List 4"/><w:lsdException
+            w:name="List 5"/><w:lsdException w:name="List Bullet 2"/><w:lsdException w:name="List Bullet 3"/><w:lsdException
+            w:name="List Bullet 4"/><w:lsdException w:name="List Bullet 5"/><w:lsdException w:name="List Number 2"/><w:lsdException
+            w:name="List Number 3"/><w:lsdException w:name="List Number 4"/><w:lsdException w:name="List Number 5"/><w:lsdException
+            w:name="Title"/><w:lsdException w:name="Closing"/><w:lsdException w:name="Signature"/><w:lsdException
+            w:name="Default Paragraph Font"/><w:lsdException w:name="Body Text"/><w:lsdException
+            w:name="Body Text Indent"/><w:lsdException w:name="List Continue"/><w:lsdException
+            w:name="List Continue 2"/><w:lsdException w:name="List Continue 3"/><w:lsdException
+            w:name="List Continue 4"/><w:lsdException w:name="List Continue 5"/><w:lsdException
+            w:name="Message Header"/><w:lsdException w:name="Subtitle"/><w:lsdException w:name="Salutation"/><w:lsdException
+            w:name="Date"/><w:lsdException w:name="Body Text First Indent"/><w:lsdException
+            w:name="Body Text First Indent 2"/><w:lsdException w:name="Note Heading"/><w:lsdException
+            w:name="Body Text 2"/><w:lsdException w:name="Body Text 3"/><w:lsdException w:name="Body Text Indent 2"/><w:lsdException
+            w:name="Body Text Indent 3"/><w:lsdException w:name="Block Text"/><w:lsdException w:name="Hyperlink"/><w:lsdException
+            w:name="FollowedHyperlink"/><w:lsdException w:name="Strong"/><w:lsdException w:name="Emphasis"/><w:lsdException
+            w:name="Document Map"/><w:lsdException w:name="Plain Text"/><w:lsdException w:name="E-mail Signature"/><w:lsdException
+            w:name="Normal (Web)"/><w:lsdException w:name="HTML Acronym"/><w:lsdException w:name="HTML Address"/><w:lsdException
+            w:name="HTML Cite"/><w:lsdException w:name="HTML Code"/><w:lsdException w:name="HTML Definition"/><w:lsdException
+            w:name="HTML Keyboard"/><w:lsdException w:name="HTML Preformatted"/><w:lsdException w:name="HTML Sample"/><w:lsdException
+            w:name="HTML Typewriter"/><w:lsdException w:name="HTML Variable"/><w:lsdException w:name="Normal Table"/><w:lsdException
+            w:name="annotation subject"/><w:lsdException w:name="Table Simple 1"/><w:lsdException
+            w:name="Table Simple 2"/><w:lsdException w:name="Table Simple 3"/><w:lsdException w:name="Table Classic 1"/><w:lsdException
+            w:name="Table Classic 2"/><w:lsdException w:name="Table Classic 3"/><w:lsdException
+            w:name="Table Classic 4"/><w:lsdException w:name="Table Colorful 1"/><w:lsdException
+            w:name="Table Colorful 2"/><w:lsdException w:name="Table Colorful 3"/><w:lsdException
+            w:name="Table Columns 1"/><w:lsdException w:name="Table Columns 2"/><w:lsdException
+            w:name="Table Columns 3"/><w:lsdException w:name="Table Columns 4"/><w:lsdException
+            w:name="Table Columns 5"/><w:lsdException w:name="Table Grid 1"/><w:lsdException w:name="Table Grid 2"/><w:lsdException
+            w:name="Table Grid 3"/><w:lsdException w:name="Table Grid 4"/><w:lsdException w:name="Table Grid 5"/><w:lsdException
+            w:name="Table Grid 6"/><w:lsdException w:name="Table Grid 7"/><w:lsdException w:name="Table Grid 8"/><w:lsdException
+            w:name="Table List 1"/><w:lsdException w:name="Table List 2"/><w:lsdException w:name="Table List 3"/><w:lsdException
+            w:name="Table List 4"/><w:lsdException w:name="Table List 5"/><w:lsdException w:name="Table List 6"/><w:lsdException
+            w:name="Table List 7"/><w:lsdException w:name="Table List 8"/><w:lsdException w:name="Table 3D effects 1"/><w:lsdException
+            w:name="Table 3D effects 2"/><w:lsdException w:name="Table 3D effects 3"/><w:lsdException
+            w:name="Table Contemporary"/><w:lsdException w:name="Table Elegant"/><w:lsdException
+            w:name="Table Professional"/><w:lsdException w:name="Table Subtle 1"/><w:lsdException
+            w:name="Table Subtle 2"/><w:lsdException w:name="Table Web 1"/><w:lsdException w:name="Table Web 2"/><w:lsdException
+            w:name="Table Web 3"/><w:lsdException w:name="Balloon Text"/><w:lsdException w:name="Table Grid"/><w:lsdException
+            w:name="Table Theme"/><w:lsdException w:name="Light Shading"/><w:lsdException w:name="Light List"/><w:lsdException
+            w:name="Light Grid"/><w:lsdException w:name="Medium Shading 1"/><w:lsdException w:name="Medium Shading 2"/><w:lsdException
+            w:name="Medium List 1"/><w:lsdException w:name="Medium List 2"/><w:lsdException w:name="Medium Grid 1"/><w:lsdException
+            w:name="Medium Grid 2"/><w:lsdException w:name="Medium Grid 3"/><w:lsdException w:name="Dark List"/><w:lsdException
+            w:name="Colorful Shading"/><w:lsdException w:name="Colorful List"/><w:lsdException w:name="Colorful Grid"/><w:lsdException
+            w:name="Light Shading Accent 1"/><w:lsdException w:name="Light List Accent 1"/><w:lsdException
+            w:name="Light Grid Accent 1"/><w:lsdException w:name="Medium Shading 1 Accent 1"/><w:lsdException
+            w:name="Medium Shading 2 Accent 1"/><w:lsdException w:name="Medium List 1 Accent 1"/><w:lsdException
+            w:name="Medium List 2 Accent 1"/><w:lsdException w:name="Medium Grid 1 Accent 1"/><w:lsdException
+            w:name="Medium Grid 2 Accent 1"/><w:lsdException w:name="Medium Grid 3 Accent 1"/><w:lsdException
+            w:name="Dark List Accent 1"/><w:lsdException w:name="Colorful Shading Accent 1"/><w:lsdException
+            w:name="Colorful List Accent 1"/><w:lsdException w:name="Colorful Grid Accent 1"/><w:lsdException
+            w:name="Light Shading Accent 2"/><w:lsdException w:name="Light List Accent 2"/><w:lsdException
+            w:name="Light Grid Accent 2"/><w:lsdException w:name="Medium Shading 1 Accent 2"/><w:lsdException
+            w:name="Medium Shading 2 Accent 2"/><w:lsdException w:name="Medium List 1 Accent 2"/><w:lsdException
+            w:name="Medium List 2 Accent 2"/><w:lsdException w:name="Medium Grid 1 Accent 2"/><w:lsdException
+            w:name="Medium Grid 2 Accent 2"/><w:lsdException w:name="Medium Grid 3 Accent 2"/><w:lsdException
+            w:name="Dark List Accent 2"/><w:lsdException w:name="Colorful Shading Accent 2"/><w:lsdException
+            w:name="Colorful List Accent 2"/><w:lsdException w:name="Colorful Grid Accent 2"/><w:lsdException
+            w:name="Light Shading Accent 3"/><w:lsdException w:name="Light List Accent 3"/><w:lsdException
+            w:name="Light Grid Accent 3"/><w:lsdException w:name="Medium Shading 1 Accent 3"/><w:lsdException
+            w:name="Medium Shading 2 Accent 3"/><w:lsdException w:name="Medium List 1 Accent 3"/><w:lsdException
+            w:name="Medium List 2 Accent 3"/><w:lsdException w:name="Medium Grid 1 Accent 3"/><w:lsdException
+            w:name="Medium Grid 2 Accent 3"/><w:lsdException w:name="Medium Grid 3 Accent 3"/><w:lsdException
+            w:name="Dark List Accent 3"/><w:lsdException w:name="Colorful Shading Accent 3"/><w:lsdException
+            w:name="Colorful List Accent 3"/><w:lsdException w:name="Colorful Grid Accent 3"/><w:lsdException
+            w:name="Light Shading Accent 4"/><w:lsdException w:name="Light List Accent 4"/><w:lsdException
+            w:name="Light Grid Accent 4"/><w:lsdException w:name="Medium Shading 1 Accent 4"/><w:lsdException
+            w:name="Medium Shading 2 Accent 4"/><w:lsdException w:name="Medium List 1 Accent 4"/><w:lsdException
+            w:name="Medium List 2 Accent 4"/><w:lsdException w:name="Medium Grid 1 Accent 4"/><w:lsdException
+            w:name="Medium Grid 2 Accent 4"/><w:lsdException w:name="Medium Grid 3 Accent 4"/><w:lsdException
+            w:name="Dark List Accent 4"/><w:lsdException w:name="Colorful Shading Accent 4"/><w:lsdException
+            w:name="Colorful List Accent 4"/><w:lsdException w:name="Colorful Grid Accent 4"/><w:lsdException
+            w:name="Light Shading Accent 5"/><w:lsdException w:name="Light List Accent 5"/><w:lsdException
+            w:name="Light Grid Accent 5"/><w:lsdException w:name="Medium Shading 1 Accent 5"/><w:lsdException
+            w:name="Medium Shading 2 Accent 5"/><w:lsdException w:name="Medium List 1 Accent 5"/><w:lsdException
+            w:name="Medium List 2 Accent 5"/><w:lsdException w:name="Medium Grid 1 Accent 5"/><w:lsdException
+            w:name="Medium Grid 2 Accent 5"/><w:lsdException w:name="Medium Grid 3 Accent 5"/><w:lsdException
+            w:name="Dark List Accent 5"/><w:lsdException w:name="Colorful Shading Accent 5"/><w:lsdException
+            w:name="Colorful List Accent 5"/><w:lsdException w:name="Colorful Grid Accent 5"/><w:lsdException
+            w:name="Light Shading Accent 6"/><w:lsdException w:name="Light List Accent 6"/><w:lsdException
+            w:name="Light Grid Accent 6"/><w:lsdException w:name="Medium Shading 1 Accent 6"/><w:lsdException
+            w:name="Medium Shading 2 Accent 6"/><w:lsdException w:name="Medium List 1 Accent 6"/><w:lsdException
+            w:name="Medium List 2 Accent 6"/><w:lsdException w:name="Medium Grid 1 Accent 6"/><w:lsdException
+            w:name="Medium Grid 2 Accent 6"/><w:lsdException w:name="Medium Grid 3 Accent 6"/><w:lsdException
+            w:name="Dark List Accent 6"/><w:lsdException w:name="Colorful Shading Accent 6"/><w:lsdException
+            w:name="Colorful List Accent 6"/><w:lsdException w:name="Colorful Grid Accent 6"/></w:latentStyles>
+        <w:style w:type="paragraph" w:styleId="a1" w:default="on"><w:name w:val="Normal"/>
+            <w:pPr><w:widowControl w:val="off"/>
+                <w:jc w:val="both"/></w:pPr>
+            <w:rPr><w:rFonts w:ascii="Calibri" w:h-ansi="Calibri" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:kern w:val="2"/>
+                <w:sz w:val="21"/>
+                <w:sz-cs w:val="22"/>
+                <w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:style>
+        <w:style w:type="character" w:styleId="a5" w:default="on"><w:name w:val="Default Paragraph Font"/>
+            <w:semiHidden/></w:style>
+        <w:style w:type="table" w:styleId="a4" w:default="on"><w:name w:val="Normal Table"/>
+            <w:semiHidden/>
+            <w:tblPr><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0"
+                                                                                                          w:type="dxa"/><w:right
+                    w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style>
+        <w:style w:type="paragraph" w:styleId="a2"><w:name w:val="footer"/>
+            <w:basedOn w:val="a1"/>
+            <w:link w:val="a7"/>
+            <w:semiHidden/>
+            <w:pPr><w:tabs><w:tab w:val="center" w:pos="4153"/><w:tab w:val="right" w:pos="8306"/></w:tabs>
+                <w:snapToGrid w:val="off"/>
+                <w:jc w:val="left"/></w:pPr>
+            <w:rPr><w:sz w:val="18"/>
+                <w:sz-cs w:val="18"/></w:rPr></w:style>
+        <w:style w:type="paragraph" w:styleId="a3"><w:name w:val="header"/>
+            <w:basedOn w:val="a1"/>
+            <w:link w:val="a6"/>
+            <w:semiHidden/>
+            <w:pPr><w:pBdr><w:bottom w:val="single" w:sz="6" wx:bdrwidth="15" w:space="1" w:color="auto"/></w:pBdr>
+                <w:tabs><w:tab w:val="center" w:pos="4153"/>
+                    <w:tab w:val="right" w:pos="8306"/></w:tabs>
+                <w:snapToGrid w:val="off"/>
+                <w:jc w:val="center"/></w:pPr>
+            <w:rPr><w:sz w:val="18"/>
+                <w:sz-cs w:val="18"/></w:rPr></w:style>
+        <w:style w:type="character" w:styleId="a6"><w:name w:val="页眉 Char"/>
+            <w:basedOn w:val="a5"/>
+            <w:link w:val="a3"/>
+            <w:semiHidden/>
+            <w:rPr><w:sz w:val="18"/>
+                <w:sz-cs w:val="18"/></w:rPr></w:style>
+        <w:style w:type="character" w:styleId="a7"><w:name w:val="页脚 Char"/>
+            <w:basedOn w:val="a5"/>
+            <w:link w:val="a2"/>
+            <w:semiHidden/>
+            <w:rPr><w:sz w:val="18"/>
+                <w:sz-cs w:val="18"/></w:rPr></w:style></w:styles>
+    <w:bgPict><w:background/>
+        <v:background id="_x0000_s1025"><v:fill on="f" focussize="0,0"/></v:background></w:bgPict>
+    <w:docPr><w:view w:val="print"/>
+        <w:zoom w:percent="100"/>
+        <w:characterSpacingControl w:val="DontCompress"/>
+        <w:documentProtection w:enforcement="off"/>
+        <w:doNotEmbedSystemFonts/>
+        <w:defaultTabStop w:val="420"/>
+        <w:displayHorizontalDrawingGridEvery w:val="1"/>
+        <w:displayVerticalDrawingGridEvery w:val="1"/>
+        <w:compat><w:doNotExpandShiftReturn/>
+            <w:useFELayout/>
+            <w:wrapTextWithPunct/>
+            <w:breakWrappedTables/>
+            <w:useAsianBreakRules/>
+            <w:dontGrowAutofit/>
+            <w:useFELayout/></w:compat></w:docPr>
+    <w:body><wx:sect><w:p><w:pPr><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="小标宋" w:h-ansi="宋体" w:fareast="小标宋" w:hint="default"/>
+        <w:sz w:val="21"/>
+        <w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="小标宋" w:h-ansi="宋体" w:fareast="小标宋" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+            w:val="32"/></w:rPr>
+        <w:t>苏州高新区产业用地预审办文单</w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="小标宋" w:h-ansi="宋体" w:fareast="小标宋" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+            w:val="32"/></w:rPr>
+        <w:br w:type="text-wrapping"/></w:r><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:hint="fareast"/></w:rPr>
+        <w:t>                                                  </w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="小标宋" w:h-ansi="宋体" w:fareast="小标宋" w:hint="fareast"/></w:rPr>
+        <w:t>   日期:</w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="小标宋" w:h-ansi="宋体" w:fareast="小标宋" w:hint="fareast"/><w:lang
+            w:val="EN-US" w:fareast="ZH-CN"/></w:rPr>
+        <w:t>${time}</w:t></w:r></w:p><w:tbl><w:tblPr><w:tblW w:w="8500" w:type="dxa"/><w:jc w:val="center"/><w:tblInd
+            w:w="-87" w:type="dxa"/><w:tblBorders><w:top w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/>
+        <w:left w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/>
+        <w:bottom w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/>
+        <w:right w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/>
+        <w:insideH w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/>
+        <w:insideV w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/>
+        <w:left w:w="10" w:type="dxa"/>
+        <w:bottom w:w="0" w:type="dxa"/>
+        <w:right w:w="10" w:type="dxa"/></w:tblCellMar></w:tblPr>
+        <w:tblGrid><w:gridCol w:w="8500"/></w:tblGrid>
+        <w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:left
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="0"
+                                                                                              wx:bdrwidth="0"
+                                                                                              w:space="0"
+                                                                                              w:color="auto"/><w:right
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="0"
+                                                                                               wx:bdrwidth="0"
+                                                                                               w:space="0"
+                                                                                               w:color="auto"/><w:insideV
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/>
+            <w:left w:w="10" w:type="dxa"/>
+            <w:bottom w:w="0" w:type="dxa"/>
+            <w:right w:w="10" w:type="dxa"/></w:tblCellMar></w:tblPrEx>
+            <w:trPr><w:trHeight w:val="560" w:h-rule="atLeast"/>
+                <w:jc w:val="center"/></w:trPr>
+            <w:tc><w:tcPr><w:tcW w:w="8500" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:vAlign
+                    w:val="center"/></w:tcPr>
+                <w:p><w:pPr><w:ind w:left="50"/><w:jc w:val="left"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
+                    <w:sz w:val="24"/></w:rPr></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>项目标题</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>:</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t> </w:t></w:r></w:p>
+                <w:p><w:pPr><w:ind w:left="50" w:first-line="480" w:first-line-chars="200"/><w:jc w:val="left"/></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:sz
+                            w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr>
+                        <w:t>${title}</w:t></w:r></w:p></w:tc></w:tr>
+        <w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:left
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="0"
+                                                                                              wx:bdrwidth="0"
+                                                                                              w:space="0"
+                                                                                              w:color="auto"/><w:right
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="0"
+                                                                                               wx:bdrwidth="0"
+                                                                                               w:space="0"
+                                                                                               w:color="auto"/><w:insideV
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/>
+            <w:left w:w="10" w:type="dxa"/>
+            <w:bottom w:w="0" w:type="dxa"/>
+            <w:right w:w="10" w:type="dxa"/></w:tblCellMar></w:tblPrEx>
+            <w:trPr><w:trHeight w:val="560" w:h-rule="atLeast"/>
+                <w:jc w:val="center"/></w:trPr>
+            <w:tc><w:tcPr><w:tcW w:w="8500" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:vAlign
+                    w:val="center"/></w:tcPr>
+                <w:p><w:pPr><w:ind w:left="50"/><w:jc w:val="left"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
+                    <w:sz w:val="24"/></w:rPr></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>项目内容</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>:</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t> </w:t></w:r></w:p>
+                <w:p><w:pPr><w:ind w:left="50" w:first-line="480" w:first-line-chars="200"/><w:jc w:val="left"/></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:sz
+                            w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr>
+                        <w:t>${content}</w:t></w:r></w:p></w:tc></w:tr>
+        <w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:left
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="0"
+                                                                                              wx:bdrwidth="0"
+                                                                                              w:space="0"
+                                                                                              w:color="auto"/><w:right
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="0"
+                                                                                               wx:bdrwidth="0"
+                                                                                               w:space="0"
+                                                                                               w:color="auto"/><w:insideV
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/>
+            <w:left w:w="10" w:type="dxa"/>
+            <w:bottom w:w="0" w:type="dxa"/>
+            <w:right w:w="10" w:type="dxa"/></w:tblCellMar></w:tblPrEx>
+            <w:trPr><w:trHeight w:val="560" w:h-rule="atLeast"/>
+                <w:jc w:val="center"/></w:trPr>
+            <w:tc><w:tcPr><w:tcW w:w="8500" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:vAlign
+                    w:val="center"/></w:tcPr>
+                <w:p><w:pPr><w:ind w:left="50"/><w:jc w:val="left"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
+                    <w:b/>
+                    <w:sz w:val="24"/></w:rPr></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>用地信息</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>:</w:t></w:r></w:p>
+                <w:p><w:pPr><w:ind w:left="50" w:first-line="480" w:first-line-chars="200"/><w:jc w:val="left"/></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:sz
+                            w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr>
+                        <w:t>${location}</w:t></w:r></w:p></w:tc></w:tr>
+        <w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:left
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="0"
+                                                                                              wx:bdrwidth="0"
+                                                                                              w:space="0"
+                                                                                              w:color="auto"/><w:right
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="0"
+                                                                                               wx:bdrwidth="0"
+                                                                                               w:space="0"
+                                                                                               w:color="auto"/><w:insideV
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/>
+            <w:left w:w="10" w:type="dxa"/>
+            <w:bottom w:w="0" w:type="dxa"/>
+            <w:right w:w="10" w:type="dxa"/></w:tblCellMar></w:tblPrEx>
+            <w:trPr><w:trHeight w:val="3066" w:h-rule="atLeast"/>
+                <w:jc w:val="center"/></w:trPr>
+            <w:tc><w:tcPr><w:tcW w:w="8500" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr>
+                <w:p><w:pPr><w:ind w:left="50"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
+                    <w:b/>
+                    <w:sz w:val="24"/></w:rPr></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>部门意见汇总</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>:</w:t></w:r></w:p>
+                <w:p><w:pPr><w:ind w:left="50" w:first-line="480" w:first-line-chars="200"/></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:sz
+                            w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr>
+                        <w:t>${consultationSummary}</w:t></w:r></w:p></w:tc></w:tr>
+        <w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:left
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="0"
+                                                                                              wx:bdrwidth="0"
+                                                                                              w:space="0"
+                                                                                              w:color="auto"/><w:right
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/><w:insideH w:val="single" w:sz="0"
+                                                                                               wx:bdrwidth="0"
+                                                                                               w:space="0"
+                                                                                               w:color="auto"/><w:insideV
+                w:val="single" w:sz="0" wx:bdrwidth="0" w:space="0" w:color="auto"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/>
+            <w:left w:w="10" w:type="dxa"/>
+            <w:bottom w:w="0" w:type="dxa"/>
+            <w:right w:w="10" w:type="dxa"/></w:tblCellMar></w:tblPrEx>
+            <w:trPr><w:trHeight w:val="5529" w:h-rule="atLeast"/>
+                <w:jc w:val="center"/></w:trPr>
+            <w:tc><w:tcPr><w:tcW w:w="8500" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/></w:tcPr>
+                <w:p><w:pPr><w:ind w:left="50"/></w:pPr>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>领导批示和会签意见</w:t></w:r>
+                    <w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:b/><w:sz
+                            w:val="24"/></w:rPr>
+                        <w:t>:</w:t></w:r>
+                    <w:r><w:t> </w:t></w:r></w:p></w:tc></w:tr></w:tbl><w:p><w:pPr><w:spacing w:line="20" w:line-rule="exact"/><w:rPr><w:sz w:val="10"/>
+        <w:sz-cs w:val="10"/></w:rPr></w:pPr></w:p><w:sectPr><w:pgSz w:w="11906" w:h="16838"/>
+        <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
+        <w:cols w:space="425"/>
+        <w:docGrid w:type="lines" w:line-pitch="312"/></w:sectPr></wx:sect></w:body></w:wordDocument>