wangjiang988 преди 3 години
родител
ревизия
3e464b7f6e

+ 44 - 0
doc/feat/简易流程修改.md

@@ -0,0 +1,44 @@
+~~1、简易流程审核组,把需要审核简易流程的人员添加进来。~~
+
+自己后台加
+
+wisdomeye配置
+
+(目前的“简易流程审核组”的功能是,在该组中的任意一个人员可以看到简易流程按钮并进行点击及审核操作。)
+
+2、点击简易流程后,弹出部门选择,点击所选的部门后,将单据分发至“简易流程审核组”中对应部门的对应人员中,项目状态:  变为“简易流程处理中”, 所有部门二级审核完成后(即填写审核意见后,同正常流程),项目状态变为:“简易流程审核汇总”,然后由领导小组,出具审核意见书(下载自动生成的模板),然后再上传,同时填写审核意见。 项目状态变为:“简易流程审核通过”(后续步骤不变)。
+
+现在流程:
+简易流程:  企业-街道-简易流程审核组中的人
+正常流程:  企业-街道-魏培培-分发部门-汇总到魏培培
+
+改造流程:
+
+简易流程:  企业-街道- 魏培培-分发部门-汇总到魏培培
+                           正常流程人员圈定
+
+类型:存量工业用地项目公司股权(结构)变更登记
+账号流程
+wisdom-eye -》 狮山街道(办事员账号,街道领导账号) -> wei.pp -> 简易流程审批组账号  -> wei.pp
+
+
+3、简易流程审核同样需有手机短信
+
+
+~~4、存量用地的文档上传格式限定在把rar去掉~~
+
+
+街道:   zhou.yun1, wu.dm(街道领导)
+
+分发部门:  生态环境局:li.xch, gu.yh(领导);人社局:zhou.yc, ren.l(领导)
+
+领导小组:wei.pp
+
+简易流程不显示“进入联合评议”
+
+5.  所有流程都加上审核材料意见书
+
+在进入到区审核界面后,的图示位置,自动生成个意见书  
+只有4出地方需要填充,  一个是申请企业, 一个是审核街道  一个是年月日 (默认下载时候的年月日)
+
+

+ 1 - 1
src/main/java/platform/common/util/AlibabaSMSUtil.java

@@ -78,7 +78,7 @@ public class AlibabaSMSUtil {
         ) {
             //phone = "18626210573";
             if (Constant.Environment.ALIYUN.equals(profiles) || Constant.Environment.TEST.equals(profiles)) {
-                phone = "18625008937";
+                phone = "18626210573";
             }
             SendSmsResponse response = sendSMSMessage(phone, templateCode, signName, templateParam);
             System.out.println("短信接口返回的数据----------------");

+ 16 - 0
src/main/java/platform/common/util/DateUtil.java

@@ -77,6 +77,22 @@ public class DateUtil {
         }
     }
 
+    /**
+     * 日期转字符串 yyyy年MM月dd日
+     *
+     * @param date
+     * @return
+     */
+    public static String getDayString(Date date, String pattern) {
+        if (null == date) {
+            return "";
+        } else {
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
+            return simpleDateFormat.format(date);
+        }
+    }
+
+
     /**
      * 字符串转时间转换日期格式
      *

+ 1 - 1
src/main/java/platform/modules/build/dao/CompanyDao.java

@@ -135,7 +135,7 @@ public interface CompanyDao extends BaseMapper<Company> {
 
     CompanyInfoDto findByUserId(@Param("userId") Integer userId);
 
-    List<Company> findByLetter(@Param("letter") String letter, @Param("searchName") String searchName);
+//    List<Company> findByLetter(@Param("letter") String letter, @Param("searchName") String searchName);
 
     List<Company> findListByUscc(String uscc);
 }

+ 36 - 3
src/main/java/platform/modules/company/service/StockLandApproveService.java

@@ -21,9 +21,7 @@ import platform.common.base.service.BaseService;
 import platform.common.base.service.DictionaryItemService;
 import platform.common.base.service.DictionaryTypeService;
 import platform.common.exception.BaseException;
-import platform.common.util.AlibabaSMSUtil;
-import platform.common.util.DateUtil;
-import platform.common.util.ShiroUtils;
+import platform.common.util.*;
 import platform.modules.api.dto.CompanyInfoDto;
 import platform.modules.build.entity.BuildFloor;
 import platform.modules.build.entity.Company;
@@ -65,6 +63,8 @@ import platform.modules.sys.service.UserGroupService;
 import platform.modules.sys.service.WaitToDoService;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -1225,4 +1225,37 @@ public class StockLandApproveService extends BaseService<StockLand> {
     }
 
 
+    /**
+     * 导出苏州高新区存量工业用地合规性审核意见书模版
+     *
+     * @author wangjiang
+     * @date 2023-01-16 20:49:28
+     **/
+    public void judgeAdviceDocExport(int applyId, HttpServletResponse response) throws Exception {
+        StockLand apply = stockLandService.findLandApplyById(applyId);
+        if (CommonUtils.isNotNull(apply)) {
+            String classesPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
+            String templateUrl = classesPath + "template/苏州高新区存量工业用地合规性审核意见书.docx";
+            //文件数据库存储路径
+//        String outputUrl = getFilePath(name, "docs") + ".docx";
+            String time = DateUtil.getTimeString(new Date()).split(" ")[0];
+
+            String dayString = DateUtil.getDayString(new Date(), "yyyy年MM月dd日");
+            String company_name = apply.getCompany_name().replace("有限公司", "");
+            String street_name = apply.getBuilding_street_name();
+
+            Map<String, String> dataMap = new HashMap<>();
+            dataMap.put("date", dayString);
+            dataMap.put("companyname", company_name == null?"" : company_name);
+            dataMap.put("streetname", street_name == null ? "" : street_name);
+
+            response.reset();
+            response.setContentType("application/octet-stream; charset=utf-8");
+            response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("苏州高新区存量工业用地合规性审核意见书" + "-" + time + ".docx", "UTF-8"));
+
+            BokeWordUtils.changWord(templateUrl, response, dataMap, null);
+
+        }
+
+    }
 }

+ 94 - 8
src/main/java/platform/modules/company/service/StockLandService.java

@@ -1086,14 +1086,100 @@ public class StockLandService extends BaseService<StockLand> {
         }else if(type == 13){
             //简易流程分发,状态改为简易流程会签。由简易流程会签用户组操作
             stockLand.setApprove_status(Constant.LandApproveStatus.JYLCHQ);
-            //下一审核人,工业用地简易流程审核组
-            String userIdInThisGroup = findUserIdByGroupName(Constant.JYLCSHXZ);
-			//保存审核记录,并更新附件
-			saveApprovalAndUpdateAttach(slad, id, comment,userIdInThisGroup,Constant.LandApproveStatus.JYLCHQ,Constant.OperType.APPROVED,approval_round);
-			//新增待办
-			String handler = userIdInThisGroup;
-			waitToDoService.newTODO("存量用地审核", "/areaManager/approval?id=" + stockLand.getId(), Constant.WaitToDo_OperType.AUDIT, stockLand.getId(),
-					Constant.DictionaryType.STOCKLAND,stockLand.getApply_no(), handler , Constant.WaitToDo_IsSerial.IS_SERIAL);
+            // 改为简易流程工作组审核,流程与常规审核流程基本保持一致
+			StringBuffer sb = new StringBuffer("");
+			if(StringUtils.isNotBlank(departmentIds)){
+
+				// 从上面部门中再筛选出在工业用地简易流程审核组中的人
+				Group group = groupService.findByName(Constant.JYLCSHXZ, null);
+//				如果不为空
+				List<Integer> groupUserIdList = new ArrayList<>();
+				if(null != group){
+					//				根据工作组id查出UserGroup
+					List<UserGroup> list = userGroupService.findByGroupId(group.getId());
+					//				构建一个StringBuffer 存放下一审核人id
+//					StringBuffer sb = new StringBuffer("");
+					for (UserGroup userGroup: list) {
+						Integer userId = userGroup.getUser_id();
+						groupUserIdList.add(userId);
+					}
+				}
+
+				List<User> nextChecker = new ArrayList<>();
+				String departmentIdArr [] = departmentIds.split(",");
+				String handler = "";//待办操作人,待办先发送经办人
+				for(String departId:departmentIdArr){
+					List<User> userList = userService.findUserBydepartmentId(departId);
+					if(null == userList || userList.size() == 0){
+						String departmentName = departmentService.findById(Integer.valueOf(departId)).getName();
+						return ResponseMessage.error(departmentName+"没有审核人!");
+					}else {
+						//是否有一级二级审批人
+						if(!checkAuditPerson(userList,Constant.LandApproveStatus.COMPLIANCE_AUDIT)) {
+							String departmentName = departmentService.findById(Integer.valueOf(departId)).getName();
+							return ResponseMessage.error(departmentName+"审核人不全,需要有一级二级审核人!");
+						}
+					}
+
+					// 去掉不在审批组中的人
+					List<User> userListTmp = new ArrayList<>();
+					for(User user:userList){
+						if (!groupUserIdList.contains(user.getId())) {
+							continue;
+						}
+						userListTmp.add(user);
+						sb.append(user.getId()+",");
+						nextChecker.add(user);
+					}
+					userList = userListTmp;
+
+					if(null == userList || userList.size() == 0){
+						String departmentName = departmentService.findById(Integer.valueOf(departId)).getName();
+						return ResponseMessage.error(departmentName+"在工业用地简易流程审核组中没有审核人!");
+					}
+					handler += getFirstLevelChecker(userList);
+				}
+
+				saveApprovalAndUpdateAttach(slad, id, comment, sb.toString(),Constant.LandApproveStatus.COMPLIANCE_AUDIT,Constant.OperType.APPROVED,approval_round);
+				// wangjiang@2022-10-09 20:31:40 添加发送人短信通知
+				if (!nextChecker.isEmpty() && isNeedNoticeAfterDispatch(stockLand.getApply_type())) {
+					String tempCode = Constant.SMS_TemplateCode.STOCKLAND_JUDGE_AFTER_DISPATCH;
+					Map<String, String> params = new HashMap<>();
+					params.put("applyno", stockLand.getApply_no());
+					for (User user : nextChecker) {
+						try {
+							AlibabaSMSUtil.sendSMS(
+									user.getPhone(),
+									tempCode,
+									Constant.SINGNAMW,
+									JSONObject.toJSONString(params)
+							);
+						} catch (ClientException e) {
+							e.printStackTrace();
+						} catch (InterruptedException e) {
+							e.printStackTrace();
+						}
+					}
+				}
+
+				//新增待办
+				//String handler = getFirstLevelChecker(userList);
+				waitToDoService.newTODO("存量用地审核", "/areaManager/approval?id=" + stockLand.getId(), Constant.WaitToDo_OperType.AUDIT, stockLand.getId(),
+						Constant.DictionaryType.STOCKLAND,stockLand.getApply_no(), handler , Constant.WaitToDo_IsSerial.IS_SERIAL);
+
+			}else{
+				return ResponseMessage.error("请选择部门!");
+			}
+
+
+//            //下一审核人,工业用地简易流程审核组
+//            String userIdInThisGroup = findUserIdByGroupName(Constant.JYLCSHXZ);
+//			//保存审核记录,并更新附件
+//			saveApprovalAndUpdateAttach(slad, id, comment,userIdInThisGroup,Constant.LandApproveStatus.JYLCHQ,Constant.OperType.APPROVED,approval_round);
+//			//新增待办
+//			String handler = userIdInThisGroup;
+//			waitToDoService.newTODO("存量用地审核", "/areaManager/approval?id=" + stockLand.getId(), Constant.WaitToDo_OperType.AUDIT, stockLand.getId(),
+//					Constant.DictionaryType.STOCKLAND,stockLand.getApply_no(), handler , Constant.WaitToDo_IsSerial.IS_SERIAL);
         }else if(type == 15||type == 14){
         	//简易流程会签
         	if(null != approval){

+ 14 - 0
src/main/java/platform/modules/company/web/StockLandApproveController.java

@@ -46,6 +46,8 @@ import platform.modules.sys.entity.Message;
 import platform.modules.sys.service.ApprovalService;
 import platform.modules.sys.web.ResponseMessage;
 
+import javax.servlet.http.HttpServletResponse;
+
 @Controller
 @RequestMapping(value = "/stockLand")
 public class StockLandApproveController extends BaseController {
@@ -700,4 +702,16 @@ public class StockLandApproveController extends BaseController {
 
     }
 
+    /**
+     * 导出苏州高新区存量工业用地合规性审核意见书模版
+     *
+     * @author wangjiang
+     * @date 2023-01-16 20:48:43
+     **/
+    @RequestMapping("/judgeAdviceDocExport/{applyId}")
+    public void judgeAdviceDocExport(@PathVariable("applyId") int applyId, HttpServletResponse response) throws Exception {
+        stockLandApproveService.judgeAdviceDocExport(applyId, response);
+//        industrialLandSupplyDetailService.exportCountersignWord2(id, response);
+    }
+
 }

+ 1 - 1
src/main/java/platform/modules/sys/service/DepartmentService.java

@@ -158,7 +158,7 @@ public class DepartmentService extends BaseService<Department> {
 
     public List<Department> findDepartListmentByGroupName(Integer pageNum, Integer pageSize, String keyWords, Integer type, Integer id) {
         List<Department> departments = new ArrayList<>();
-        if (type == 1) {
+        if (type == 1 || type == 13) {
             //PageHelper.startPage(pageNum, pageSize);
             departments = departmentDao.findDepartmentByGroupNamePageInfo(Constant.HGXSHXZ, keyWords, null);
         } else {

+ 2 - 1
src/main/java/platform/modules/sys/web/FileUploadController.java

@@ -51,8 +51,9 @@ public class FileUploadController extends BaseController {
     // 允许上传图片的格式
     private static final String[] IMAGE_TYPE = new String[]{".gif", ".jpeg", ".bmp", ".jpg", ".png"};
 
+    // 去掉rar文件的限制
     // 允许上传文件的格式
-    private static final String[] DOC_TYPE = new String[]{".doc", ".docx", ".ppt", ".pptx", ".pdf", ".xls", ".xlsx", ".gif", ".jpeg", ".bmp", ".jpg", ".png", ".txt", ".rar", ".zip", ".7z", ".flv", ".ofd"};
+    private static final String[] DOC_TYPE = new String[]{".doc", ".docx", ".ppt", ".pptx", ".pdf", ".xls", ".xlsx", ".gif", ".jpeg", ".bmp", ".jpg", ".png", ".txt", ".zip", ".7z", ".flv", ".ofd"};
 
     //private static final String FILE_SERVER_URL = "http://172.18.1.101:8080/file/upload/";
 

+ 1 - 1
src/main/resources/application-test.yml

@@ -161,7 +161,7 @@ password: UEcXQ3aeLYx487dvi4nvfO074GaTay9celB6/OwmtgyRzcVdOsJ2m15U8IZpat+aq9UPAn
 
 #上传文件配置信息
 #文件仓库地址
-repositoryPath:  /opt/xinqu_pic
+repositoryPath:  /Users/wangjiang/codeCache/xinqu_pic
 
 #新区接口地址
 api_url: http://snd.ideatob.com/mp/api/

+ 2 - 1
src/main/resources/mapper/build/CompanyDao.xml

@@ -779,7 +779,8 @@
             LEFT JOIN z_user u ON u.company_id = c.id
             LEFT JOIN y_company_contact cc ON cc.company_id = c.id
         WHERE
-            c.del_flag = 0 AND cc.del_flag = 0 AND u.id = #{userId}
+            c.del_flag = 0 AND cc.del_flag = 0  AND u.id = #{userId}
+        limit 1
     </select>
 
     <select id="findListByUscc" resultType="platform.modules.build.entity.Company">

+ 14 - 11
src/main/resources/static/js/government/areaManager/areaManager_list.js

@@ -20,7 +20,7 @@ $(function () {
         $("#lhpytj").css({ "display": "inline-block" });
         $("#sfzdtz").css({ "display": "inline-block" });
         $("#bh").css({ "display": "inline-block" });
-    }else if (status == 11){
+    }else if (status == 11){ // 合规性审查汇总
         /*if(buttonStatus == 0){
             $("#jrqzfsp").css({ "display": "inline" });
             $("#bh").css({ "display": "inline" });
@@ -29,7 +29,7 @@ $(function () {
             $("#jrlhpy").css({ "display": "inline" });
             $("#bh").css({ "display": "inline" });
         }*/
-
+        $("#judge_advice_doc").css({ "display": "inline-block" });
         $("#hgxscbf").css({ "display": "inline-block" });
         $("#jrqzfsp").css({ "display": "inline-block" });
         $("#jrlhpy").css({ "display": "inline-block" });
@@ -39,18 +39,21 @@ $(function () {
         $("#zftg").css({ "display": "inline-block" });
         $("#btg").css({ "display": "inline-block" });
     }else if(status == 14) {
-        //简易流程会签
+        // 简易流程会签
+        // 简易流程加上合规性审查
+        $("#jylcsh").css({ "display": "inline-block" });
         // $("#tyqyjylc").css({ "display": "inline-block" });
         // $("#jjqyjylc").css({ "display": "inline-block" });
-        $("#easy_process_approved").css({"display": "inline-block"});
-        $("#easy_process_deny").css({"display": "inline-block"});
+        // $("#easy_process_approved").css({"display": "inline-block"});
+        // $("#easy_process_deny").css({"display": "inline-block"});
+    }
+    else if(status == 15){
+        $("#judge_advice_doc").css({ "display": "inline-block" });
+        //简易流程汇总
+        $("#jylctg").css({ "display": "inline-block" });
+        $("#jrlhpy").css({ "display": "inline-block" });
+        $("#bh").css({ "display": "inline-block" });
     }
-    // }else if(status == 15){
-    // 	//简易流程汇总
-    //     $("#jylctg").css({ "display": "inline-block" });
-    //     $("#fsgbm").css({ "display": "inline-block" });
-    //     $("#bh").css({ "display": "inline-block" });
-    // }
 
 
 

+ 16 - 3
src/main/resources/templates/admin/government/areaManager/approval.html

@@ -277,7 +277,13 @@
                 <textarea class="textarea" id="approval_comment" name="approval_comment" placeholder="审核意见"></textarea>
             </div>
         </div>
-        <div class="line">审核材料上传</div>
+        <div class="line">审核材料上传
+            <span id="judge_advice_doc" style="display: none">
+                    <a
+                            th:href="@{'/stockLand/judgeAdviceDocExport/'+${landApply.id}}"
+                            style="color: #3bb4f2;font-size: 10px;">苏州高新区存量工业用地合规性审核意见书模版下载</a>
+                </span>
+        </div>
         <div class="row cl">
             <label class="form-label col-xs-4 col-sm-2">上传材料:</label>
             <div class="formControls col-xs-8 col-sm-9">
@@ -353,6 +359,7 @@
                 <a class="btn btn-primary radius" id="fsgbm1" onClick="audit(2);" style="display:none">&nbsp;&nbsp;常规流程分送各部门&nbsp;&nbsp;</a>
 
                 <a class="btn btn-primary radius" id="hgxsctg" onClick="audit(5);" style="display:none">&nbsp;&nbsp;提交审核意见&nbsp;&nbsp;</a>
+                <a class="btn btn-primary radius" id="jylcsh" onClick="audit(14);" style="display:none">&nbsp;&nbsp简易流程审核意见&nbsp;&nbsp;</a>
 
                 <a class="btn btn-primary radius" id="hgxscbh" onClick="audit(6);" style="display:none">&nbsp;&nbsp;合规性审查退回&nbsp;&nbsp;</a>
 
@@ -373,8 +380,14 @@
                 <a class="btn btn-primary radius" id="btg" onClick="audit(4);" style="display:none">&nbsp;&nbsp;不通过&nbsp;&nbsp;</a>
 
                 <!-- 简易流程新增会签 -->
-                <a class="btn btn-primary radius" id="jylcff" onClick="audit(13);" style="display:none">&nbsp;&nbsp;简易流程办理&nbsp;&nbsp;</a>
-
+<!--                <a class="btn btn-primary radius" id="jylcff" onClick="audit(13);" style="display:none">&nbsp;&nbsp;简易流程办理&nbsp;&nbsp;</a>-->
+
+                <a class="btn btn-primary radius" id="jylcff"
+                   onClick="select_department('简易流程办理','/admin/department/departmentList?type=13','600','450');"
+                   style="display:none">&nbsp;&nbsp;简易流程办理&nbsp;&nbsp;</a>
+                <a class="btn btn-primary radius" id="jylcff1"
+                   onClick="audit(13);"
+                   style="display:none">&nbsp;&nbsp;简易流程发送&nbsp;&nbsp;</a>
 <!--                <a class="btn btn-primary radius" id="tyqyjylc" onClick="audit(14);" style="display:none">&nbsp;&nbsp;同意启用简易流程&nbsp;&nbsp;</a>-->
 
 <!--                <a class="btn btn-primary radius" id="jjqyjylc" onClick="audit(15);" style="display:none">&nbsp;&nbsp;拒绝启用简易流程&nbsp;&nbsp;</a>-->

+ 11 - 2
src/main/resources/templates/admin/government/areaManager/department_list.html

@@ -50,6 +50,8 @@
 <script type="text/javascript" th:src="@{/js/common/page.js}"></script>
 <script th:inline="javascript">
 
+    var type = [[${type}]];
+
     /**
      * 取消
      */
@@ -72,8 +74,15 @@
         //获取父窗口 一个带Id 的元素。
         var departmentIds = parent.document.getElementById('departmentIds');
         departmentIds.value=departmentList.toString();
-        var fsgbm1 = parent.document.getElementById('fsgbm1');
-        fsgbm1.click();
+        if (type == 1) {
+            var fsgbm1 = parent.document.getElementById('fsgbm1');
+            fsgbm1.click();
+        }
+        if (type == 13) {
+            var jylcff1 = parent.document.getElementById('jylcff1');
+            jylcff1.click();
+        }
+
         //alert(departmentIds.val(arr.toString()));
         index = parent.layer.getFrameIndex(window.name);
         parent.layer.close(index);

+ 3 - 2
src/main/resources/templates/admin/government/areaManager/index.html

@@ -88,10 +88,11 @@
                    class="ml-5" style="text-decoration:none">分发</a>
                 </span>
             </span>
+<!--            //简易流程会签-->
             <span th:case="14">
                 <span th:if="*{isApproval}">
-                <a title="提交办理结果"  th:onclick="'javascript:area_approval(\'提交办理结果\',\'/areaManager/approval?id='+*{id}+'\',\'800\',\'500\');'"
-                   class="ml-5" style="text-decoration:none">提交办理结果</a>
+                <a title="简易流程会签"  th:onclick="'javascript:area_approval(\'简易流程会签\',\'/areaManager/approval?id='+*{id}+'\',\'800\',\'500\');'"
+                   class="ml-5" style="text-decoration:none">简易流程会签</a>
                 </span>
             </span>
             <span th:case="*">

+ 33 - 0
src/test/java/platform/modules/test/StockLandTest.java

@@ -0,0 +1,33 @@
+package platform.modules.test;
+
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import platform.RootApplication;
+import platform.modules.government.dto.GovIndustrialLandSupplyProjectNumDto;
+import platform.modules.government.entity.Street;
+import platform.modules.government.service.GovStatisticsService;
+import platform.modules.government.service.StreetService;
+import platform.modules.sys.entity.Group;
+import platform.modules.sys.service.GroupService;
+
+import java.util.List;
+
+@SpringBootTest(classes = {RootApplication.class})
+@RunWith(SpringRunner.class)
+@Slf4j
+public class StockLandTest {
+
+    @Autowired
+    private GroupService groupService;
+
+
+    @Test
+    public void getStreet() {
+        Group group = groupService.findByName("工业用地简易流程审核组", null);
+        System.out.println(group);
+    }
+}