Commit 16ae4edab854df5c98fb5ace0b3cf76cf72a020e

Authored by 徐烜
1 parent 14eb383d

修改调度值勤日报修感班次的功能

1、修改车辆时,判定是否属于当前用户所属公司中,不属于提示错误
2、修改车辆时,判定是否属于当前用户所属分公司中,不属于显示警告信息
3、修改驾驶员、售票员同上
src/main/java/com/bsth/controller/schedule/core/CarConfigInfoController.java
1 package com.bsth.controller.schedule.core; 1 package com.bsth.controller.schedule.core;
2 2
  3 +import com.bsth.common.Constants;
3 import com.bsth.common.ResponseCode; 4 import com.bsth.common.ResponseCode;
4 import com.bsth.controller.schedule.BController; 5 import com.bsth.controller.schedule.BController;
5 import com.bsth.entity.schedule.CarConfigInfo; 6 import com.bsth.entity.schedule.CarConfigInfo;
  7 +import com.bsth.entity.sys.CompanyAuthority;
6 import com.bsth.repository.schedule.CarConfigInfoRepository; 8 import com.bsth.repository.schedule.CarConfigInfoRepository;
7 import com.bsth.service.schedule.CarConfigInfoService; 9 import com.bsth.service.schedule.CarConfigInfoService;
8 import com.bsth.service.schedule.exception.ScheduleException; 10 import com.bsth.service.schedule.exception.ScheduleException;
@@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMethod; @@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
12 import org.springframework.web.bind.annotation.RequestParam; 14 import org.springframework.web.bind.annotation.RequestParam;
13 import org.springframework.web.bind.annotation.RestController; 15 import org.springframework.web.bind.annotation.RestController;
14 16
  17 +import javax.servlet.http.HttpServletRequest;
  18 +import javax.servlet.http.HttpSession;
15 import java.util.HashMap; 19 import java.util.HashMap;
16 import java.util.List; 20 import java.util.List;
17 import java.util.Map; 21 import java.util.Map;
@@ -59,11 +63,56 @@ public class CarConfigInfoController extends BController<CarConfigInfo, Long> { @@ -59,11 +63,56 @@ public class CarConfigInfoController extends BController<CarConfigInfo, Long> {
59 return rtn; 63 return rtn;
60 } 64 }
61 65
  66 + @RequestMapping(value = "/validate_cars_gs", method = RequestMethod.GET)
  67 + public Map<String, Object> validate_cars_gs(HttpServletRequest request, @RequestParam Map<String, Object> param) {
  68 + HttpSession session = request.getSession();
  69 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) session.getAttribute(Constants.COMPANY_AUTHORITYS);
  70 +
  71 + Map<String, Object> rtn = new HashMap<>();
  72 + try {
  73 + CarConfigInfo carConfigInfo = new CarConfigInfo(
  74 + null,
  75 + param.get("xl.id_eq"),
  76 + param.get("xl.name_eq"),
  77 + param.get("cl.id_eq")
  78 + );
  79 + carConfigInfoService.validate_cars_gs(carConfigInfo, cmyAuths);
  80 + rtn.put("status", ResponseCode.SUCCESS);
  81 + } catch (ScheduleException exp) {
  82 + rtn.put("status", ResponseCode.ERROR);
  83 + rtn.put("msg", exp.getMessage());
  84 + }
  85 +
  86 + return rtn;
  87 + }
  88 +
  89 + @RequestMapping(value = "/validate_cars_fgs", method = RequestMethod.GET)
  90 + public Map<String, Object> validate_cars_fgs(HttpServletRequest request, @RequestParam Map<String, Object> param) {
  91 + HttpSession session = request.getSession();
  92 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) session.getAttribute(Constants.COMPANY_AUTHORITYS);
  93 +
  94 + Map<String, Object> rtn = new HashMap<>();
  95 + try {
  96 + CarConfigInfo carConfigInfo = new CarConfigInfo(
  97 + null,
  98 + param.get("xl.id_eq"),
  99 + param.get("xl.name_eq"),
  100 + param.get("cl.id_eq")
  101 + );
  102 + carConfigInfoService.validate_cars_fgs(carConfigInfo, cmyAuths);
  103 + rtn.put("status", ResponseCode.SUCCESS);
  104 + } catch (ScheduleException exp) {
  105 + rtn.put("status", ResponseCode.ERROR);
  106 + rtn.put("msg", exp.getMessage());
  107 + }
  108 +
  109 + return rtn;
  110 + }
  111 +
62 @RequestMapping(value = "/validate_cars_config", method = RequestMethod.GET) 112 @RequestMapping(value = "/validate_cars_config", method = RequestMethod.GET)
63 public Map<String, Object> validate_cars_config(@RequestParam Map<String, Object> param) { 113 public Map<String, Object> validate_cars_config(@RequestParam Map<String, Object> param) {
64 Map<String, Object> rtn = new HashMap<>(); 114 Map<String, Object> rtn = new HashMap<>();
65 try { 115 try {
66 - // 车辆重复配置验证  
67 CarConfigInfo carConfigInfo = new CarConfigInfo( 116 CarConfigInfo carConfigInfo = new CarConfigInfo(
68 null, 117 null,
69 param.get("xl.id_eq"), 118 param.get("xl.id_eq"),
src/main/java/com/bsth/controller/schedule/core/EmployeeConfigInfoController.java
1 package com.bsth.controller.schedule.core; 1 package com.bsth.controller.schedule.core;
2 2
  3 +import com.bsth.common.Constants;
3 import com.bsth.common.ResponseCode; 4 import com.bsth.common.ResponseCode;
4 import com.bsth.controller.schedule.BController; 5 import com.bsth.controller.schedule.BController;
5 import com.bsth.entity.schedule.EmployeeConfigInfo; 6 import com.bsth.entity.schedule.EmployeeConfigInfo;
  7 +import com.bsth.entity.sys.CompanyAuthority;
6 import com.bsth.repository.schedule.EmployeeConfigInfoRepository; 8 import com.bsth.repository.schedule.EmployeeConfigInfoRepository;
7 import com.bsth.service.schedule.EmployeeConfigInfoService; 9 import com.bsth.service.schedule.EmployeeConfigInfoService;
8 import com.bsth.service.schedule.exception.ScheduleException; 10 import com.bsth.service.schedule.exception.ScheduleException;
9 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.web.bind.annotation.*; 12 import org.springframework.web.bind.annotation.*;
11 13
  14 +import javax.servlet.http.HttpServletRequest;
  15 +import javax.servlet.http.HttpSession;
12 import java.util.HashMap; 16 import java.util.HashMap;
13 import java.util.List; 17 import java.util.List;
14 import java.util.Map; 18 import java.util.Map;
@@ -91,6 +95,54 @@ public class EmployeeConfigInfoController extends BController&lt;EmployeeConfigInfo @@ -91,6 +95,54 @@ public class EmployeeConfigInfoController extends BController&lt;EmployeeConfigInfo
91 return rtn; 95 return rtn;
92 } 96 }
93 97
  98 + @RequestMapping(value = "/validate_jsy_gs", method = RequestMethod.GET)
  99 + public Map<String, Object> validate_jsy_gs(HttpServletRequest request, @RequestParam Map<String, Object> param) {
  100 + HttpSession session = request.getSession();
  101 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) session.getAttribute(Constants.COMPANY_AUTHORITYS);
  102 +
  103 + Map<String, Object> rtn = new HashMap<>();
  104 + try {
  105 + EmployeeConfigInfo employeeConfigInfo = new EmployeeConfigInfo(
  106 + null,
  107 + param.get("xl.id_eq"),
  108 + param.get("xl.name_eq"),
  109 + param.get("jsy.id_eq"),
  110 + null
  111 + );
  112 + employeeConfigInfoService.validate_jsy_gs(employeeConfigInfo, cmyAuths);
  113 + rtn.put("status", ResponseCode.SUCCESS);
  114 + } catch (ScheduleException exp) {
  115 + rtn.put("status", ResponseCode.ERROR);
  116 + rtn.put("msg", exp.getMessage());
  117 + }
  118 +
  119 + return rtn;
  120 + }
  121 +
  122 + @RequestMapping(value = "/validate_jsy_fgs", method = RequestMethod.GET)
  123 + public Map<String, Object> validate_jsy_fgs(HttpServletRequest request, @RequestParam Map<String, Object> param) {
  124 + HttpSession session = request.getSession();
  125 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) session.getAttribute(Constants.COMPANY_AUTHORITYS);
  126 +
  127 + Map<String, Object> rtn = new HashMap<>();
  128 + try {
  129 + EmployeeConfigInfo employeeConfigInfo = new EmployeeConfigInfo(
  130 + null,
  131 + param.get("xl.id_eq"),
  132 + param.get("xl.name_eq"),
  133 + param.get("jsy.id_eq"),
  134 + null
  135 + );
  136 + employeeConfigInfoService.validate_jsy_fgs(employeeConfigInfo, cmyAuths);
  137 + rtn.put("status", ResponseCode.SUCCESS);
  138 + } catch (ScheduleException exp) {
  139 + rtn.put("status", ResponseCode.ERROR);
  140 + rtn.put("msg", exp.getMessage());
  141 + }
  142 +
  143 + return rtn;
  144 + }
  145 +
94 @RequestMapping(value = "/validate_spy", method = RequestMethod.GET) 146 @RequestMapping(value = "/validate_spy", method = RequestMethod.GET)
95 public Map<String, Object> validate_spy(@RequestParam Map<String, Object> param) { 147 public Map<String, Object> validate_spy(@RequestParam Map<String, Object> param) {
96 Map<String, Object> rtn = new HashMap<>(); 148 Map<String, Object> rtn = new HashMap<>();
@@ -130,4 +182,50 @@ public class EmployeeConfigInfoController extends BController&lt;EmployeeConfigInfo @@ -130,4 +182,50 @@ public class EmployeeConfigInfoController extends BController&lt;EmployeeConfigInfo
130 } 182 }
131 return rtn; 183 return rtn;
132 } 184 }
  185 +
  186 + @RequestMapping(value = "/validate_spy_gs", method = RequestMethod.GET)
  187 + public Map<String, Object> validate_spy_gs(HttpServletRequest request, @RequestParam Map<String, Object> param) {
  188 + HttpSession session = request.getSession();
  189 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) session.getAttribute(Constants.COMPANY_AUTHORITYS);
  190 +
  191 + Map<String, Object> rtn = new HashMap<>();
  192 + try {
  193 + EmployeeConfigInfo employeeConfigInfo = new EmployeeConfigInfo(
  194 + null,
  195 + param.get("xl.id_eq"),
  196 + param.get("xl.name_eq"),
  197 + null,
  198 + param.get("spy.id_eq")
  199 + );
  200 + employeeConfigInfoService.validate_spy_gs(employeeConfigInfo, cmyAuths);
  201 + rtn.put("status", ResponseCode.SUCCESS);
  202 + } catch (ScheduleException exp) {
  203 + rtn.put("status", ResponseCode.ERROR);
  204 + rtn.put("msg", exp.getMessage());
  205 + }
  206 + return rtn;
  207 + }
  208 +
  209 + @RequestMapping(value = "/validate_spy_fgs", method = RequestMethod.GET)
  210 + public Map<String, Object> validate_spy_fgs(HttpServletRequest request, @RequestParam Map<String, Object> param) {
  211 + HttpSession session = request.getSession();
  212 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) session.getAttribute(Constants.COMPANY_AUTHORITYS);
  213 +
  214 + Map<String, Object> rtn = new HashMap<>();
  215 + try {
  216 + EmployeeConfigInfo employeeConfigInfo = new EmployeeConfigInfo(
  217 + null,
  218 + param.get("xl.id_eq"),
  219 + param.get("xl.name_eq"),
  220 + null,
  221 + param.get("spy.id_eq")
  222 + );
  223 + employeeConfigInfoService.validate_spy_fgs(employeeConfigInfo, cmyAuths);
  224 + rtn.put("status", ResponseCode.SUCCESS);
  225 + } catch (ScheduleException exp) {
  226 + rtn.put("status", ResponseCode.ERROR);
  227 + rtn.put("msg", exp.getMessage());
  228 + }
  229 + return rtn;
  230 + }
133 } 231 }
src/main/java/com/bsth/service/schedule/CarConfigInfoService.java
1 package com.bsth.service.schedule; 1 package com.bsth.service.schedule;
2 2
3 import com.bsth.entity.schedule.CarConfigInfo; 3 import com.bsth.entity.schedule.CarConfigInfo;
  4 +import com.bsth.entity.sys.CompanyAuthority;
4 import com.bsth.service.schedule.exception.ScheduleException; 5 import com.bsth.service.schedule.exception.ScheduleException;
5 6
  7 +import java.util.List;
  8 +
6 /** 9 /**
7 * Created by xu on 16/5/9. 10 * Created by xu on 16/5/9.
8 */ 11 */
9 public interface CarConfigInfoService extends BService<CarConfigInfo, Long> { 12 public interface CarConfigInfoService extends BService<CarConfigInfo, Long> {
10 void validate_cars(CarConfigInfo carConfigInfo) throws ScheduleException; 13 void validate_cars(CarConfigInfo carConfigInfo) throws ScheduleException;
  14 + // 判定车辆是否配置在当前线路中
11 void validate_cars_config(CarConfigInfo carConfigInfo) throws ScheduleException; 15 void validate_cars_config(CarConfigInfo carConfigInfo) throws ScheduleException;
  16 + // 判定车辆所属公司和当前用户的所属公司
  17 + void validate_cars_gs(CarConfigInfo carConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException;
  18 + // 判定车辆所属分公司和当前用户的所属分公司
  19 + void validate_cars_fgs(CarConfigInfo carConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException;
12 void toggleCancel(Long id) throws ScheduleException; 20 void toggleCancel(Long id) throws ScheduleException;
  21 +
  22 +
13 } 23 }
src/main/java/com/bsth/service/schedule/EmployeeConfigInfoService.java
1 package com.bsth.service.schedule; 1 package com.bsth.service.schedule;
2 2
3 import com.bsth.entity.schedule.EmployeeConfigInfo; 3 import com.bsth.entity.schedule.EmployeeConfigInfo;
  4 +import com.bsth.entity.sys.CompanyAuthority;
4 import com.bsth.service.schedule.exception.ScheduleException; 5 import com.bsth.service.schedule.exception.ScheduleException;
5 6
  7 +import java.util.List;
  8 +
6 /** 9 /**
7 * Created by xu on 16/5/10. 10 * Created by xu on 16/5/10.
8 */ 11 */
@@ -13,8 +16,17 @@ public interface EmployeeConfigInfoService extends BService&lt;EmployeeConfigInfo, @@ -13,8 +16,17 @@ public interface EmployeeConfigInfoService extends BService&lt;EmployeeConfigInfo,
13 void validate_spy(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException; 16 void validate_spy(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException;
14 // 验证驾驶员是否配置在指定线路 17 // 验证驾驶员是否配置在指定线路
15 void validate_jsy_config(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException; 18 void validate_jsy_config(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException;
  19 + // 判定驾驶员所属公司和当前用户的所属公司
  20 + void validate_jsy_gs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException;
  21 + // 判定驾驶员所属分公司和当前用户的所属分公司
  22 + void validate_jsy_fgs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException;
16 // 验证售票员是否配置在指定线路 23 // 验证售票员是否配置在指定线路
17 void validate_spy_config(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException; 24 void validate_spy_config(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException;
  25 + // 判定驾驶员所属公司和当前用户的所属公司
  26 + void validate_spy_gs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException;
  27 + // 判定驾驶员所属分公司和当前用户的所属分公司
  28 + void validate_spy_fgs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException;
  29 +
18 void toggleCancel(Long id) throws ScheduleException; 30 void toggleCancel(Long id) throws ScheduleException;
19 Long getMaxDbbm(Integer xlId); 31 Long getMaxDbbm(Integer xlId);
20 } 32 }
src/main/java/com/bsth/service/schedule/impl/CarConfigInfoServiceImpl.java
1 package com.bsth.service.schedule.impl; 1 package com.bsth.service.schedule.impl;
2 2
  3 +import com.bsth.entity.Cars;
3 import com.bsth.entity.schedule.CarConfigInfo; 4 import com.bsth.entity.schedule.CarConfigInfo;
4 import com.bsth.entity.schedule.rule.ScheduleRule1Flat; 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  6 +import com.bsth.entity.sys.CompanyAuthority;
5 import com.bsth.service.schedule.CarConfigInfoService; 7 import com.bsth.service.schedule.CarConfigInfoService;
  8 +import com.bsth.service.schedule.CarsService;
6 import com.bsth.service.schedule.ScheduleRule1FlatService; 9 import com.bsth.service.schedule.ScheduleRule1FlatService;
7 import com.bsth.service.schedule.exception.ScheduleException; 10 import com.bsth.service.schedule.exception.ScheduleException;
8 import com.bsth.service.schedule.utils.DataToolsFile; 11 import com.bsth.service.schedule.utils.DataToolsFile;
@@ -25,6 +28,8 @@ import java.util.Map; @@ -25,6 +28,8 @@ import java.util.Map;
25 public class CarConfigInfoServiceImpl extends BServiceImpl<CarConfigInfo, Long> implements CarConfigInfoService { 28 public class CarConfigInfoServiceImpl extends BServiceImpl<CarConfigInfo, Long> implements CarConfigInfoService {
26 @Autowired 29 @Autowired
27 private ScheduleRule1FlatService scheduleRule1FlatService; 30 private ScheduleRule1FlatService scheduleRule1FlatService;
  31 + @Autowired
  32 + private CarsService carsService;
28 33
29 @Autowired 34 @Autowired
30 @Qualifier(value = "carConfig_dataTool") 35 @Qualifier(value = "carConfig_dataTool")
@@ -45,6 +50,57 @@ public class CarConfigInfoServiceImpl extends BServiceImpl&lt;CarConfigInfo, Long&gt; @@ -45,6 +50,57 @@ public class CarConfigInfoServiceImpl extends BServiceImpl&lt;CarConfigInfo, Long&gt;
45 return dataToolsService.exportData(params); 50 return dataToolsService.exportData(params);
46 } 51 }
47 52
  53 + @Override
  54 + public void validate_cars_gs(CarConfigInfo carConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException {
  55 + if (CollectionUtils.isEmpty(companyAuthorityList)) {
  56 + throw new ScheduleException("当前用户没有公司权限!");
  57 + }
  58 +
  59 + boolean isFind = false;
  60 + Cars cars = carsService.findById(carConfigInfo.getCl().getId());
  61 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  62 + if (companyAuthority.getCompanyCode().equals(cars.getBusinessCode())) {
  63 + isFind = true;
  64 + break;
  65 + }
  66 + }
  67 + if (!isFind) {
  68 + throw new ScheduleException("当前车辆不在用户所属公司中!");
  69 + }
  70 + }
  71 +
  72 + @Override
  73 + public void validate_cars_fgs(CarConfigInfo carConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException {
  74 + if (CollectionUtils.isEmpty(companyAuthorityList)) {
  75 + throw new ScheduleException("当前用户没有分公司权限!");
  76 + }
  77 +
  78 + boolean isFind = false;
  79 + Cars cars = carsService.findById(carConfigInfo.getCl().getId());
  80 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  81 + if (companyAuthority.getCompanyCode().equals(cars.getBusinessCode())) {
  82 + isFind = true;
  83 + break;
  84 + }
  85 + }
  86 + if (!isFind) {
  87 + // 如果没有公司权限,验证通过
  88 + return;
  89 + }
  90 +
  91 + isFind = false;
  92 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  93 + if (companyAuthority.getCompanyCode().equals(cars.getBusinessCode()) &&
  94 + companyAuthority.getSubCompanyCode().equals(cars.getBrancheCompanyCode())) {
  95 + isFind = true;
  96 + break;
  97 + }
  98 + }
  99 + if (!isFind) {
  100 + throw new ScheduleException("当前车辆不在用户所属分公司中!");
  101 + }
  102 + }
  103 +
48 @Transactional 104 @Transactional
49 public void validate_cars(CarConfigInfo carConfigInfo) throws ScheduleException { 105 public void validate_cars(CarConfigInfo carConfigInfo) throws ScheduleException {
50 // 相同车辆不能同时配置 106 // 相同车辆不能同时配置
src/main/java/com/bsth/service/schedule/impl/EmployeeConfigInfoServiceImpl.java
1 package com.bsth.service.schedule.impl; 1 package com.bsth.service.schedule.impl;
2 2
  3 +import com.bsth.entity.Personnel;
3 import com.bsth.entity.schedule.EmployeeConfigInfo; 4 import com.bsth.entity.schedule.EmployeeConfigInfo;
4 import com.bsth.entity.schedule.rule.ScheduleRule1Flat; 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  6 +import com.bsth.entity.sys.CompanyAuthority;
5 import com.bsth.service.schedule.EmployeeConfigInfoService; 7 import com.bsth.service.schedule.EmployeeConfigInfoService;
  8 +import com.bsth.service.schedule.EmployeeService;
6 import com.bsth.service.schedule.ScheduleRule1FlatService; 9 import com.bsth.service.schedule.ScheduleRule1FlatService;
7 import com.bsth.service.schedule.exception.ScheduleException; 10 import com.bsth.service.schedule.exception.ScheduleException;
8 import com.bsth.service.schedule.utils.DataToolsFile; 11 import com.bsth.service.schedule.utils.DataToolsFile;
@@ -28,6 +31,8 @@ import java.util.*; @@ -28,6 +31,8 @@ import java.util.*;
28 public class EmployeeConfigInfoServiceImpl extends BServiceImpl<EmployeeConfigInfo, Long> implements EmployeeConfigInfoService { 31 public class EmployeeConfigInfoServiceImpl extends BServiceImpl<EmployeeConfigInfo, Long> implements EmployeeConfigInfoService {
29 @Autowired 32 @Autowired
30 private ScheduleRule1FlatService scheduleRule1FlatService; 33 private ScheduleRule1FlatService scheduleRule1FlatService;
  34 + @Autowired
  35 + private EmployeeService employeeService;
31 36
32 @Autowired 37 @Autowired
33 @Qualifier(value = "employeeConfig_dataTool") 38 @Qualifier(value = "employeeConfig_dataTool")
@@ -110,6 +115,57 @@ public class EmployeeConfigInfoServiceImpl extends BServiceImpl&lt;EmployeeConfigIn @@ -110,6 +115,57 @@ public class EmployeeConfigInfoServiceImpl extends BServiceImpl&lt;EmployeeConfigIn
110 } 115 }
111 } 116 }
112 117
  118 + @Override
  119 + public void validate_jsy_gs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException {
  120 + if (CollectionUtils.isEmpty(companyAuthorityList)) {
  121 + throw new ScheduleException("当前用户没有公司权限!");
  122 + }
  123 +
  124 + boolean isFind = false;
  125 + Personnel personnel = employeeService.findById(employeeConfigInfo.getJsy().getId());
  126 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  127 + if (companyAuthority.getCompanyCode().equals(personnel.getCompanyCode())) {
  128 + isFind = true;
  129 + break;
  130 + }
  131 + }
  132 + if (!isFind) {
  133 + throw new ScheduleException("当前驾驶员不在用户所属公司中!");
  134 + }
  135 + }
  136 +
  137 + @Override
  138 + public void validate_jsy_fgs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException {
  139 + if (CollectionUtils.isEmpty(companyAuthorityList)) {
  140 + throw new ScheduleException("当前用户没有分公司权限!");
  141 + }
  142 +
  143 + boolean isFind = false;
  144 + Personnel personnel = employeeService.findById(employeeConfigInfo.getJsy().getId());
  145 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  146 + if (companyAuthority.getCompanyCode().equals(personnel.getCompanyCode())) {
  147 + isFind = true;
  148 + break;
  149 + }
  150 + }
  151 + if (!isFind) {
  152 + // 如果没有公司权限,验证通过
  153 + return;
  154 + }
  155 +
  156 + isFind = false;
  157 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  158 + if (companyAuthority.getCompanyCode().equals(personnel.getCompanyCode()) &&
  159 + companyAuthority.getSubCompanyCode().equals(personnel.getBrancheCompanyCode())) {
  160 + isFind = true;
  161 + break;
  162 + }
  163 + }
  164 + if (!isFind) {
  165 + throw new ScheduleException("当前驾驶员不在用户所属分公司中!");
  166 + }
  167 + }
  168 +
113 @Transactional 169 @Transactional
114 @Override 170 @Override
115 public void validate_spy(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException { 171 public void validate_spy(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException {
@@ -137,6 +193,57 @@ public class EmployeeConfigInfoServiceImpl extends BServiceImpl&lt;EmployeeConfigIn @@ -137,6 +193,57 @@ public class EmployeeConfigInfoServiceImpl extends BServiceImpl&lt;EmployeeConfigIn
137 } 193 }
138 } 194 }
139 195
  196 + @Override
  197 + public void validate_spy_gs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException {
  198 + if (CollectionUtils.isEmpty(companyAuthorityList)) {
  199 + throw new ScheduleException("当前用户没有公司权限!");
  200 + }
  201 +
  202 + boolean isFind = false;
  203 + Personnel personnel = employeeService.findById(employeeConfigInfo.getSpy().getId());
  204 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  205 + if (companyAuthority.getCompanyCode().equals(personnel.getCompanyCode())) {
  206 + isFind = true;
  207 + break;
  208 + }
  209 + }
  210 + if (!isFind) {
  211 + throw new ScheduleException("当前售票员不在用户所属公司中!");
  212 + }
  213 + }
  214 +
  215 + @Override
  216 + public void validate_spy_fgs(EmployeeConfigInfo employeeConfigInfo, List<CompanyAuthority> companyAuthorityList) throws ScheduleException {
  217 + if (CollectionUtils.isEmpty(companyAuthorityList)) {
  218 + throw new ScheduleException("当前用户没有分公司权限!");
  219 + }
  220 +
  221 + boolean isFind = false;
  222 + Personnel personnel = employeeService.findById(employeeConfigInfo.getSpy().getId());
  223 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  224 + if (companyAuthority.getCompanyCode().equals(personnel.getCompanyCode())) {
  225 + isFind = true;
  226 + break;
  227 + }
  228 + }
  229 + if (!isFind) {
  230 + // 如果没有公司权限,验证通过
  231 + return;
  232 + }
  233 +
  234 + isFind = false;
  235 + for (CompanyAuthority companyAuthority : companyAuthorityList) {
  236 + if (companyAuthority.getCompanyCode().equals(personnel.getCompanyCode()) &&
  237 + companyAuthority.getSubCompanyCode().equals(personnel.getBrancheCompanyCode())) {
  238 + isFind = true;
  239 + break;
  240 + }
  241 + }
  242 + if (!isFind) {
  243 + throw new ScheduleException("当前售票员不在用户所属分公司中!");
  244 + }
  245 + }
  246 +
140 @Transactional 247 @Transactional
141 @Override 248 @Override
142 public void validate_spy_config(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException { 249 public void validate_spy_config(EmployeeConfigInfo employeeConfigInfo) throws ScheduleException {
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice-legacy.js
@@ -441,6 +441,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun @@ -441,6 +441,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun
441 } 441 }
442 ) 442 )
443 }, 443 },
  444 + cc_cars_gs: { // 车辆是否属于当前用户所属公司
  445 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
  446 + remote: $resource( // $resource封装对象
  447 + '/cci/validate_cars_gs',
  448 + {},
  449 + {
  450 + do: {
  451 + method: 'GET'
  452 + }
  453 + }
  454 + )
  455 + },
  456 + cc_cars_fgs: { // 车辆是否属于当前用户所属分公司
  457 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
  458 + remote: $resource( // $resource封装对象
  459 + '/cci/validate_cars_fgs',
  460 + {},
  461 + {
  462 + do: {
  463 + method: 'GET'
  464 + }
  465 + }
  466 + )
  467 + },
444 cc_cars_config: { // 车辆是否配置在指定线路中 468 cc_cars_config: { // 车辆是否配置在指定线路中
445 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版 469 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
446 remote: $resource( // $resource封装对象 470 remote: $resource( // $resource封装对象
@@ -477,6 +501,31 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun @@ -477,6 +501,31 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun
477 } 501 }
478 ) 502 )
479 }, 503 },
  504 + ec_jsy_gs: { // 驾驶员是否属于当前用户所属公司
  505 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'jsy.id_eq': -1}, // 查询参数模版
  506 + remote: $resource( // $resource封装对象
  507 + '/eci/validate_jsy_gs',
  508 + {},
  509 + {
  510 + do: {
  511 + method: 'GET'
  512 + }
  513 + }
  514 + )
  515 + },
  516 + ec_jsy_fgs: { // 驾驶员是否属于当前用户所属分公司
  517 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'jsy.id_eq': -1}, // 查询参数模版
  518 + remote: $resource( // $resource封装对象
  519 + '/eci/validate_jsy_fgs',
  520 + {},
  521 + {
  522 + do: {
  523 + method: 'GET'
  524 + }
  525 + }
  526 + )
  527 + },
  528 +
480 ec_spy: { // 售票员不能重复配置 529 ec_spy: { // 售票员不能重复配置
481 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版 530 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
482 remote: $resource( // $resource封装对象 531 remote: $resource( // $resource封装对象
@@ -501,6 +550,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun @@ -501,6 +550,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun
501 } 550 }
502 ) 551 )
503 }, 552 },
  553 + ec_spy_gs: { // 售票员是否属于当前用户所属公司
  554 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
  555 + remote: $resource( // $resource封装对象
  556 + '/eci/validate_spy_gs',
  557 + {},
  558 + {
  559 + do: {
  560 + method: 'GET'
  561 + }
  562 + }
  563 + )
  564 + },
  565 + ec_spy_fgs: { // 售票员是否属于当前用户所属分公司
  566 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
  567 + remote: $resource( // $resource封装对象
  568 + '/eci/validate_spy_fgs',
  569 + {},
  570 + {
  571 + do: {
  572 + method: 'GET'
  573 + }
  574 + }
  575 + )
  576 + },
504 577
505 cde1: { // 车辆设备启用日期验证 578 cde1: { // 车辆设备启用日期验证
506 template: {'xl_eq': -1, 'cl_eq': -1, 'qyrq_eq': 1}, // 日期毫秒 579 template: {'xl_eq': -1, 'cl_eq': -1, 'qyrq_eq': 1}, // 日期毫秒
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
@@ -1319,6 +1319,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun @@ -1319,6 +1319,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun
1319 } 1319 }
1320 ) 1320 )
1321 }, 1321 },
  1322 + cc_cars_gs: { // 车辆是否属于当前用户所属公司
  1323 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
  1324 + remote: $resource( // $resource封装对象
  1325 + '/cci/validate_cars_gs',
  1326 + {},
  1327 + {
  1328 + do: {
  1329 + method: 'GET'
  1330 + }
  1331 + }
  1332 + )
  1333 + },
  1334 + cc_cars_fgs: { // 车辆是否属于当前用户所属分公司
  1335 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
  1336 + remote: $resource( // $resource封装对象
  1337 + '/cci/validate_cars_fgs',
  1338 + {},
  1339 + {
  1340 + do: {
  1341 + method: 'GET'
  1342 + }
  1343 + }
  1344 + )
  1345 + },
1322 cc_cars_config: { // 车辆是否配置在指定线路中 1346 cc_cars_config: { // 车辆是否配置在指定线路中
1323 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版 1347 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
1324 remote: $resource( // $resource封装对象 1348 remote: $resource( // $resource封装对象
@@ -1355,6 +1379,31 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun @@ -1355,6 +1379,31 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun
1355 } 1379 }
1356 ) 1380 )
1357 }, 1381 },
  1382 + ec_jsy_gs: { // 驾驶员是否属于当前用户所属公司
  1383 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'jsy.id_eq': -1}, // 查询参数模版
  1384 + remote: $resource( // $resource封装对象
  1385 + '/eci/validate_jsy_gs',
  1386 + {},
  1387 + {
  1388 + do: {
  1389 + method: 'GET'
  1390 + }
  1391 + }
  1392 + )
  1393 + },
  1394 + ec_jsy_fgs: { // 驾驶员是否属于当前用户所属分公司
  1395 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'jsy.id_eq': -1}, // 查询参数模版
  1396 + remote: $resource( // $resource封装对象
  1397 + '/eci/validate_jsy_fgs',
  1398 + {},
  1399 + {
  1400 + do: {
  1401 + method: 'GET'
  1402 + }
  1403 + }
  1404 + )
  1405 + },
  1406 +
1358 ec_spy: { // 售票员不能重复配置 1407 ec_spy: { // 售票员不能重复配置
1359 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版 1408 template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
1360 remote: $resource( // $resource封装对象 1409 remote: $resource( // $resource封装对象
@@ -1379,6 +1428,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun @@ -1379,6 +1428,30 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;$$SearchInfoService_g&#39;, [&#39;$resource&#39;, fun
1379 } 1428 }
1380 ) 1429 )
1381 }, 1430 },
  1431 + ec_spy_gs: { // 售票员是否属于当前用户所属公司
  1432 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
  1433 + remote: $resource( // $resource封装对象
  1434 + '/eci/validate_spy_gs',
  1435 + {},
  1436 + {
  1437 + do: {
  1438 + method: 'GET'
  1439 + }
  1440 + }
  1441 + )
  1442 + },
  1443 + ec_spy_fgs: { // 售票员是否属于当前用户所属分公司
  1444 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
  1445 + remote: $resource( // $resource封装对象
  1446 + '/eci/validate_spy_fgs',
  1447 + {},
  1448 + {
  1449 + do: {
  1450 + method: 'GET'
  1451 + }
  1452 + }
  1453 + )
  1454 + },
1382 1455
1383 cde1: { // 车辆设备启用日期验证 1456 cde1: { // 车辆设备启用日期验证
1384 template: {'xl_eq': -1, 'cl_eq': -1, 'qyrq_eq': 1}, // 日期毫秒 1457 template: {'xl_eq': -1, 'cl_eq': -1, 'qyrq_eq': 1}, // 日期毫秒
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/edit.html
@@ -90,13 +90,25 @@ @@ -90,13 +90,25 @@
90 车辆1必须选择 90 车辆1必须选择
91 </div> 91 </div>
92 92
93 - <input type="hidden" name="cl1_h" ng-model="ctrl.formData.cl1.id" 93 + <!-- 公司权限 -->
  94 + <input type="hidden" name="cl1_h_gs" ng-model="ctrl.formData.cl1.id"
94 remote-Validation 95 remote-Validation
95 - remotevtype="cc_cars_config" 96 + remotevtype="cc_cars_gs"
96 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'cl.id_eq': ctrl.formData.cl1.id} | json}}" /> 97 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'cl.id_eq': ctrl.formData.cl1.id} | json}}" />
97 - <div class="alert alert-danger well-sm" ng-show="myForm.cl1_h.$error.remote"> 98 + <div class="alert alert-danger well-sm" ng-show="myForm.cl1_h_gs.$error.remote">
98 {{$remote_msg}} 99 {{$remote_msg}}
99 </div> 100 </div>
  101 + <!-- 分公司权限 -->
  102 + <input type="hidden" name="cl1_h_fgs" ng-model="ctrl.formData.cl1.id"
  103 + remote-Warn
  104 + remotewtype="cc_cars_fgs"
  105 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'cl.id_eq': ctrl.formData.cl1.id} | json}}"
  106 + remotewmsgprop="cl1_h_fgs_warn"
  107 + />
  108 + <div class="alert alert-warning well-sm" ng-show="ctrl.cl1_h_fgs_warn">
  109 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  110 + {{ctrl.cl1_h_fgs_warn}}
  111 + </div>
100 </div> 112 </div>
101 <div class="form-group"> 113 <div class="form-group">
102 <label class="col-md-5 control-label">车辆2:</label> 114 <label class="col-md-5 control-label">车辆2:</label>
@@ -115,13 +127,26 @@ @@ -115,13 +127,26 @@
115 </sa-Select5> 127 </sa-Select5>
116 </div> 128 </div>
117 129
118 - <input type="hidden" name="cl2_h" ng-model="ctrl.formData.cl1.id" 130 + <!-- 公司权限 -->
  131 + <input type="hidden" name="cl2_h_gs" ng-model="ctrl.formData.cl2.id"
119 remote-Validation 132 remote-Validation
120 - remotevtype="cc_cars_config" 133 + remotevtype="cc_cars_gs"
121 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'cl.id_eq': ctrl.formData.cl2.id} | json}}" /> 134 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'cl.id_eq': ctrl.formData.cl2.id} | json}}" />
122 - <div class="alert alert-danger well-sm" ng-show="myForm.cl2_h.$error.remote"> 135 + <div class="alert alert-danger well-sm" ng-show="myForm.cl2_h_gs.$error.remote">
123 {{$remote_msg}} 136 {{$remote_msg}}
124 </div> 137 </div>
  138 + <!-- 分公司权限 -->
  139 + <input type="hidden" name="cl2_h_fgs" ng-model="ctrl.formData.cl2.id"
  140 + remote-Warn
  141 + remotewtype="cc_cars_fgs"
  142 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'cl.id_eq': ctrl.formData.cl2.id} | json}}"
  143 + remotewmsgprop="cl2_h_fgs_warn"
  144 + />
  145 + <div class="alert alert-warning well-sm" ng-show="ctrl.cl2_h_fgs_warn">
  146 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  147 + {{ctrl.cl2_h_fgs_warn}}
  148 + </div>
  149 +
125 </div> 150 </div>
126 151
127 <div class="form-group has-success has-feedback"> 152 <div class="form-group has-success has-feedback">
@@ -146,13 +171,26 @@ @@ -146,13 +171,26 @@
146 驾驶员必须选择 171 驾驶员必须选择
147 </div> 172 </div>
148 173
149 - <input type="hidden" name="j1_h" ng-model="ctrl.formData.j1.id" 174 + <!-- 公司权限 -->
  175 + <input type="hidden" name="j1_h_gs" ng-model="ctrl.formData.j1.id"
150 remote-Validation 176 remote-Validation
151 - remotevtype="ec_jsy_config" 177 + remotevtype="ec_jsy_gs"
152 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j1.id} | json}}" /> 178 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j1.id} | json}}" />
153 - <div class="alert alert-danger well-sm" ng-show="myForm.j1_h.$error.remote"> 179 + <div class="alert alert-danger well-sm" ng-show="myForm.j1_h_gs.$error.remote">
154 {{$remote_msg}} 180 {{$remote_msg}}
155 </div> 181 </div>
  182 + <!-- 分公司权限 -->
  183 + <input type="hidden" name="j1_h_fgs" ng-model="ctrl.formData.j1.id"
  184 + remote-Warn
  185 + remotewtype="ec_jsy_fgs"
  186 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j1.id} | json}}"
  187 + remotewmsgprop="ec_jsy1_fgs_warn"
  188 + />
  189 + <div class="alert alert-warning well-sm" ng-show="ctrl.ec_jsy1_fgs_warn">
  190 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  191 + {{ctrl.ec_jsy1_fgs_warn}}
  192 + </div>
  193 +
156 </div> 194 </div>
157 195
158 <div class="form-group"> 196 <div class="form-group">
@@ -172,13 +210,25 @@ @@ -172,13 +210,25 @@
172 </sa-Select5> 210 </sa-Select5>
173 </div> 211 </div>
174 212
175 - <input type="hidden" name="s1_h" ng-model="ctrl.formData.s1.id" 213 + <!-- 公司权限 -->
  214 + <input type="hidden" name="s1_h_gs" ng-model="ctrl.formData.s1.id"
176 remote-Validation 215 remote-Validation
177 - remotevtype="ec_spy_config" 216 + remotevtype="ec_spy_gs"
178 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}" /> 217 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}" />
179 - <div class="alert alert-danger well-sm" ng-show="myForm.s1_h.$error.remote"> 218 + <div class="alert alert-danger well-sm" ng-show="myForm.s1_h_gs.$error.remote">
180 {{$remote_msg}} 219 {{$remote_msg}}
181 </div> 220 </div>
  221 + <!-- 分公司权限 -->
  222 + <input type="hidden" name="s1_h_fgs" ng-model="ctrl.formData.s1.id"
  223 + remote-Warn
  224 + remotewtype="ec_spy_fgs"
  225 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}"
  226 + remotewmsgprop="ec_spy1_fgs_warn"
  227 + />
  228 + <div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy1_fgs_warn">
  229 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  230 + {{ctrl.ec_spy1_fgs_warn}}
  231 + </div>
182 </div> 232 </div>
183 233
184 <div class="form-group"> 234 <div class="form-group">
@@ -198,13 +248,26 @@ @@ -198,13 +248,26 @@
198 </sa-Select5> 248 </sa-Select5>
199 </div> 249 </div>
200 250
201 - <input type="hidden" name="j2_h" ng-model="ctrl.formData.j2.id" 251 + <!-- 公司权限 -->
  252 + <input type="hidden" name="j2_h_gs" ng-model="ctrl.formData.j2.id"
202 remote-Validation 253 remote-Validation
203 - remotevtype="ec_jsy_config" 254 + remotevtype="ec_jsy_gs"
204 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j2.id} | json}}" /> 255 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j2.id} | json}}" />
205 - <div class="alert alert-danger well-sm" ng-show="myForm.j2_h.$error.remote"> 256 + <div class="alert alert-danger well-sm" ng-show="myForm.j2_h_gs.$error.remote">
206 {{$remote_msg}} 257 {{$remote_msg}}
207 </div> 258 </div>
  259 + <!-- 分公司权限 -->
  260 + <input type="hidden" name="j2_h_fgs" ng-model="ctrl.formData.j2.id"
  261 + remote-Warn
  262 + remotewtype="ec_jsy_fgs"
  263 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j2.id} | json}}"
  264 + remotewmsgprop="ec_jsy2_fgs_warn"
  265 + />
  266 + <div class="alert alert-warning well-sm" ng-show="ctrl.ec_jsy2_fgs_warn">
  267 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  268 + {{ctrl.ec_jsy2_fgs_warn}}
  269 + </div>
  270 +
208 </div> 271 </div>
209 272
210 <div class="form-group"> 273 <div class="form-group">
@@ -224,13 +287,26 @@ @@ -224,13 +287,26 @@
224 </sa-Select5> 287 </sa-Select5>
225 </div> 288 </div>
226 289
227 - <input type="hidden" name="s2_h" ng-model="ctrl.formData.s2.id" 290 + <!-- 公司权限 -->
  291 + <input type="hidden" name="s2_h_gs" ng-model="ctrl.formData.s2.id"
228 remote-Validation 292 remote-Validation
229 - remotevtype="ec_spy_config" 293 + remotevtype="ec_spy_gs"
230 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}" /> 294 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}" />
231 - <div class="alert alert-danger well-sm" ng-show="myForm.s2_h.$error.remote"> 295 + <div class="alert alert-danger well-sm" ng-show="myForm.s2_h_gs.$error.remote">
232 {{$remote_msg}} 296 {{$remote_msg}}
233 </div> 297 </div>
  298 + <!-- 分公司权限 -->
  299 + <input type="hidden" name="s2_h_fgs" ng-model="ctrl.formData.s2.id"
  300 + remote-Warn
  301 + remotewtype="ec_spy_fgs"
  302 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}"
  303 + remotewmsgprop="ec_spy2_fgs_warn"
  304 + />
  305 + <div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy2_fgs_warn">
  306 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  307 + {{ctrl.ec_spy2_fgs_warn}}
  308 + </div>
  309 +
234 </div> 310 </div>
235 311
236 <div class="form-group"> 312 <div class="form-group">
@@ -250,13 +326,26 @@ @@ -250,13 +326,26 @@
250 </sa-Select5> 326 </sa-Select5>
251 </div> 327 </div>
252 328
253 - <input type="hidden" name="j3_h" ng-model="ctrl.formData.j3.id" 329 + <!-- 公司权限 -->
  330 + <input type="hidden" name="j3_h_gs" ng-model="ctrl.formData.j3.id"
254 remote-Validation 331 remote-Validation
255 - remotevtype="ec_jsy_config" 332 + remotevtype="ec_jsy_gs"
256 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j3.id} | json}}" /> 333 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j3.id} | json}}" />
257 - <div class="alert alert-danger well-sm" ng-show="myForm.j3_h.$error.remote"> 334 + <div class="alert alert-danger well-sm" ng-show="myForm.j3_h_gs.$error.remote">
258 {{$remote_msg}} 335 {{$remote_msg}}
259 </div> 336 </div>
  337 + <!-- 分公司权限 -->
  338 + <input type="hidden" name="j3_h_fgs" ng-model="ctrl.formData.j3.id"
  339 + remote-Warn
  340 + remotewtype="ec_jsy_fgs"
  341 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'jsy.id_eq': ctrl.formData.j3.id} | json}}"
  342 + remotewmsgprop="ec_jsy3_fgs_warn"
  343 + />
  344 + <div class="alert alert-warning well-sm" ng-show="ctrl.ec_jsy3_fgs_warn">
  345 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  346 + {{ctrl.ec_jsy3_fgs_warn}}
  347 + </div>
  348 +
260 </div> 349 </div>
261 350
262 <div class="form-group"> 351 <div class="form-group">
@@ -276,13 +365,26 @@ @@ -276,13 +365,26 @@
276 </sa-Select5> 365 </sa-Select5>
277 </div> 366 </div>
278 367
279 - <input type="hidden" name="s3_h" ng-model="ctrl.formData.s3.id" 368 + <!-- 公司权限 -->
  369 + <input type="hidden" name="s3_h_gs" ng-model="ctrl.formData.s3.id"
280 remote-Validation 370 remote-Validation
281 - remotevtype="ec_spy_config" 371 + remotevtype="ec_spy_gs"
282 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}" /> 372 remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}" />
283 - <div class="alert alert-danger well-sm" ng-show="myForm.s3_h.$error.remote"> 373 + <div class="alert alert-danger well-sm" ng-show="myForm.s3_h_gs.$error.remote">
284 {{$remote_msg}} 374 {{$remote_msg}}
285 </div> 375 </div>
  376 + <!-- 分公司权限 -->
  377 + <input type="hidden" name="s3_h_fgs" ng-model="ctrl.formData.s3.id"
  378 + remote-Warn
  379 + remotewtype="ec_spy_fgs"
  380 + remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}"
  381 + remotewmsgprop="ec_spy3_fgs_warn"
  382 + />
  383 + <div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy3_fgs_warn">
  384 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
  385 + {{ctrl.ec_spy3_fgs_warn}}
  386 + </div>
  387 +
286 </div> 388 </div>
287 389
288 <div class="form-group"> 390 <div class="form-group">