Browse Source

Merge branch 'prod' into test

anderx 3 years ago
parent
commit
9fc89e8d66
91 changed files with 2482 additions and 1193 deletions
  1. 12 12
      src/main/java/com/goafanti/admin/controller/AdminApiController.java
  2. 0 14
      src/main/java/com/goafanti/admin/controller/AdminDepartmentApiController.java
  3. 1 1
      src/main/java/com/goafanti/admin/service/AdminService.java
  4. 24 9
      src/main/java/com/goafanti/admin/service/DepartmentService.java
  5. 5 3
      src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java
  6. 60 62
      src/main/java/com/goafanti/admin/service/impl/DepartmentServiceImpl.java
  7. 40 1
      src/main/java/com/goafanti/common/controller/BaseController.java
  8. 15 3
      src/main/java/com/goafanti/common/dao/DepartmentMapper.java
  9. 10 8
      src/main/java/com/goafanti/common/dao/TChangeTaskMapper.java
  10. 3 1
      src/main/java/com/goafanti/common/dao/TOrderNewMapper.java
  11. 15 3
      src/main/java/com/goafanti/common/dao/TOrderTaskMapper.java
  12. 8 0
      src/main/java/com/goafanti/common/dao/TTaskMemberMapper.java
  13. 2 2
      src/main/java/com/goafanti/common/dao/UserMapper.java
  14. 10 4
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  15. 27 14
      src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml
  16. 4 4
      src/main/java/com/goafanti/common/mapper/NewOrderChangeMapper.xml
  17. 14 8
      src/main/java/com/goafanti/common/mapper/PatentNewMapper.xml
  18. 6 12
      src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml
  19. 122 33
      src/main/java/com/goafanti/common/mapper/TChangeTaskMapper.xml
  20. 11 5
      src/main/java/com/goafanti/common/mapper/TOrderBillNewMapper.xml
  21. 46 31
      src/main/java/com/goafanti/common/mapper/TOrderBonusMapper.xml
  22. 5 10
      src/main/java/com/goafanti/common/mapper/TOrderInvoiceMapper.xml
  23. 10 16
      src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml
  24. 49 39
      src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml
  25. 51 23
      src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml
  26. 57 17
      src/main/java/com/goafanti/common/mapper/TTaskMemberMapper.xml
  27. 89 65
      src/main/java/com/goafanti/common/mapper/TemporaryReceivablesMapper.xml
  28. 4 4
      src/main/java/com/goafanti/common/mapper/ThirdPartyCompanyMapper.xml
  29. 4 4
      src/main/java/com/goafanti/common/mapper/UserFollowMapper.xml
  30. 10 4
      src/main/java/com/goafanti/common/mapper/UserMapperExt.xml
  31. 4 4
      src/main/java/com/goafanti/common/mapper/UserMidMapper.xml
  32. 9 2
      src/main/java/com/goafanti/common/model/Department.java
  33. 52 0
      src/main/java/com/goafanti/common/model/TChangeTask.java
  34. 22 22
      src/main/java/com/goafanti/common/model/TOrderBillNew.java
  35. 13 0
      src/main/java/com/goafanti/common/model/TTaskMember.java
  36. 2 1
      src/main/java/com/goafanti/common/task/PatentTask.java
  37. 11 0
      src/main/java/com/goafanti/common/utils/AsyncUtils.java
  38. 9 0
      src/main/java/com/goafanti/order/bo/InputAddTask.java
  39. 15 11
      src/main/java/com/goafanti/order/bo/InputArrearsDunListBo.java
  40. 7 5
      src/main/java/com/goafanti/order/bo/InputMemberList.java
  41. 9 5
      src/main/java/com/goafanti/order/bo/InputOrderInvoiceBo.java
  42. 5 5
      src/main/java/com/goafanti/order/bo/InputOrderListBo.java
  43. 188 0
      src/main/java/com/goafanti/order/bo/InputOrderNewListBo.java
  44. 23 0
      src/main/java/com/goafanti/order/bo/InputOrderSalesSource.java
  45. 11 9
      src/main/java/com/goafanti/order/bo/InputProjectCheck.java
  46. 7 5
      src/main/java/com/goafanti/order/bo/InputSignStatistics.java
  47. 11 7
      src/main/java/com/goafanti/order/bo/OrderListBo.java
  48. 20 2
      src/main/java/com/goafanti/order/bo/TChangeTaskOut.java
  49. 29 29
      src/main/java/com/goafanti/order/bo/TOrderBonusBo.java
  50. 20 0
      src/main/java/com/goafanti/order/bo/TOrderTaskBo.java
  51. 103 0
      src/main/java/com/goafanti/order/bo/TOrderTaskListBo.java
  52. 24 46
      src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java
  53. 8 6
      src/main/java/com/goafanti/order/controller/AdminOrderReceivablesApiController.java
  54. 41 41
      src/main/java/com/goafanti/order/controller/OrderBonusStatisticsApiController.java
  55. 57 11
      src/main/java/com/goafanti/order/controller/OrderChangeApiController.java
  56. 53 3
      src/main/java/com/goafanti/order/controller/OrderProjectApiController.java
  57. 9 4
      src/main/java/com/goafanti/order/service/OrderChangeService.java
  58. 8 21
      src/main/java/com/goafanti/order/service/OrderNewService.java
  59. 39 2
      src/main/java/com/goafanti/order/service/OrderProjectService.java
  60. 3 3
      src/main/java/com/goafanti/order/service/OrderReceivablesService.java
  61. 6 3
      src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java
  62. 14 2
      src/main/java/com/goafanti/order/service/impl/LegalAffairsServiceImpl.java
  63. 9 3
      src/main/java/com/goafanti/order/service/impl/OrderBillServiceImpl.java
  64. 32 13
      src/main/java/com/goafanti/order/service/impl/OrderBonusServiceImpl.java
  65. 206 84
      src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java
  66. 22 11
      src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java
  67. 121 219
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  68. 202 16
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  69. 23 20
      src/main/java/com/goafanti/order/service/impl/OrderReceivablesServiceImpl.java
  70. 4 2
      src/main/java/com/goafanti/order/service/impl/OrderServiceImpl.java
  71. 5 0
      src/main/java/com/goafanti/order/service/impl/OrderStatisticsServiceImpl.java
  72. 2 7
      src/main/java/com/goafanti/order/service/impl/UserStatisticsServiceImpl.java
  73. 56 0
      src/main/java/com/goafanti/organization/bo/DepOut.java
  74. 22 14
      src/main/java/com/goafanti/organization/bo/InputPaymentList.java
  75. 11 0
      src/main/java/com/goafanti/organization/bo/OrganizationListOut.java
  76. 28 10
      src/main/java/com/goafanti/organization/controller/AdminOrganizationController.java
  77. 9 3
      src/main/java/com/goafanti/organization/service/OrganizationService.java
  78. 60 23
      src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java
  79. 3 3
      src/main/java/com/goafanti/organization/service/impl/ThirdPartyCompanyServiceImpl.java
  80. 12 10
      src/main/java/com/goafanti/patent/bo/PatentNewBo.java
  81. 3 3
      src/main/java/com/goafanti/patent/service/impl/PatentNewServiceImpl.java
  82. 14 14
      src/main/java/com/goafanti/report/controller/ReportApiController.java
  83. 22 15
      src/main/java/com/goafanti/report/service/SalesReportServiceImpl.java
  84. 7 5
      src/main/java/com/goafanti/user/bo/InputUserFollowList.java
  85. 9 8
      src/main/java/com/goafanti/user/controller/ExpertPublishController.java
  86. 26 28
      src/main/java/com/goafanti/user/controller/UserChannelApiController.java
  87. 4 7
      src/main/java/com/goafanti/user/controller/UserLoginController.java
  88. 2 2
      src/main/java/com/goafanti/user/service/impl/UserFollowServiceImpl.java
  89. 5 5
      src/main/java/com/goafanti/weChat/bo/InputPublicDtails.java
  90. 11 2
      src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java
  91. 6 5
      src/main/webapp/WEB-INF/views/common.html

+ 12 - 12
src/main/java/com/goafanti/admin/controller/AdminApiController.java

@@ -183,9 +183,9 @@ public class AdminApiController extends CertifyApiController {
 	private CopyrightInfoService			copyrightInfoService;
 	@Resource
 	private OrgCognizanceProportionService	orgCognizanceProportionService;
-	
-	
-	
+
+
+
 	@Value(value = "${wx.appId}")
 	private String appId;
 	@Value(value = "${wx.appSecret}")
@@ -343,7 +343,7 @@ public class AdminApiController extends CertifyApiController {
 		return res;
 	}
 
-	
+
 
 	/**
 	 * 新增用户
@@ -726,7 +726,7 @@ public class AdminApiController extends CertifyApiController {
 
 	/**
 	 * 删除团体人力资源
-	 * 
+	 *
 	 * @return
 	 */
 	@RequestMapping(value = "/deleteHumanResource", method = RequestMethod.POST)
@@ -1568,7 +1568,7 @@ public class AdminApiController extends CertifyApiController {
 
 	/**
 	 * 删除企业年度研究开发费用结构明细记录
-	 * 
+	 *
 	 * @param ids
 	 * @return
 	 */
@@ -2619,8 +2619,8 @@ public class AdminApiController extends CertifyApiController {
 		res.setData(disposeCognizanceStatus());
 		return res;
 	}
-	
-	
+
+
 	/**
 	 * 高企认定流转状态
 	 */
@@ -2991,7 +2991,7 @@ public class AdminApiController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	/**
 	 * 角色列表
 	 */
@@ -3032,9 +3032,9 @@ public class AdminApiController extends CertifyApiController {
 	 * 常用联系人列表
 	 */
 	@RequestMapping(value = "/frequentContactsList", method = RequestMethod.GET)
-	public Result frequentContactsList(String departmentId,String name,String roleName,Integer pageSize,Integer pageNo) {
+	public Result frequentContactsList(String deps,String name,String roleName,Integer pageSize,Integer pageNo) {
 		Result res = new Result();
-		res.setData(adminService.frequentContactsList(departmentId, name,roleName, pageSize, pageNo));
+		res.setData(adminService.frequentContactsList(deps, name,roleName, pageSize, pageNo));
 		return res;
 	}
 	/**
@@ -3069,5 +3069,5 @@ public class AdminApiController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 }

+ 0 - 14
src/main/java/com/goafanti/admin/controller/AdminDepartmentApiController.java

@@ -85,18 +85,4 @@ public class AdminDepartmentApiController extends CertifyApiController {
 		res.setData(departmentService.getWorkingHours(depId));
 		return res;
 	}
-
-
-	/**
-	 * 工作时间列表
-	 */
-	@RequestMapping(value = "/selectAllDep", method = RequestMethod.GET)
-	public Result selectAllDep() {
-		Result res = new Result();
-
-		res.setData(departmentService.selectAllDep());
-		return res;
-	}
-
-
 }

+ 1 - 1
src/main/java/com/goafanti/admin/service/AdminService.java

@@ -76,7 +76,7 @@ public interface AdminService {
 
 	int addFrequentContacts(String id);
 
-	Pagination<AdminListBo>  frequentContactsList(String depId, String name, String roleName, Integer pageSize, Integer pageNo);
+	Pagination<AdminListBo>  frequentContactsList(String deps, String name, String roleName, Integer pageSize, Integer pageNo);
 
 	int deleteFrequentContacts(String id);
 

+ 24 - 9
src/main/java/com/goafanti/admin/service/DepartmentService.java

@@ -25,7 +25,7 @@ public interface DepartmentService {
 	 * 查询分管部门、查询管理部门
 	 * @return
 	 */
-	List<Department> selectMyDeps();
+	List<String> selectMyDeps();
 
 
 
@@ -33,15 +33,30 @@ public interface DepartmentService {
 
 	/**
 	 * 查出部门,及下级部门
-	 * @param subId 部门编号
-	 * @param type	 0=包含本部门,1不包含本部门
-	 * @param myShiro 0=正常,1=只看我相关部门
+	 * @param deps 部门集合
+
 	 */
-	List<Department> selectSubDeps(String subId,Integer type,Integer myShiro);
-	List<Department> selectSubDeps(String subId,Integer type);
-	List<Department> selectSubDeps(String subId);
+	List<String> selectSubDeps(String  deps);
+	List<String> selectSubDeps(List<String>  deps);
+
+
+
+	List<Department> selectSubordinateDeps(String depId);
+
+	List<String>  parseArray(String deps);
 
-	List<Department> getLowerDep(String depIds);
+	/**
+	 *
+	 * @param aDep 权限获取到部门
+	 * @param deps 筛选部门
+	 * @return 返回权限部门中的筛选部门
+	 */
+	List<String> comparePermissions(List<String> aDep, String deps);
 
-	List<DepartmentComboBox> selectAllDep();
+	/**
+	 * 获取财务管理部门
+	 * @param adminId
+	 * @return
+	 */
+	List<String> getFinanceDep(String aid);
 }

+ 5 - 3
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -331,11 +331,13 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<AdminListBo> frequentContactsList(String depId, String name,String roleName, Integer pageSize, Integer pageNo) {
+	public Pagination<AdminListBo> frequentContactsList(String deps, String name,String roleName, Integer pageSize, Integer pageNo) {
 		Map<String, Object> params = new HashMap<String, Object>();
 		if(pageSize==null||pageSize<0)pageSize=10;
 		if(pageNo==null||pageNo<0)pageNo=1;
-		if (StringUtils.isNotBlank(depId)) params.put("depId", depId);
+		if (StringUtils.isNotBlank(deps)){
+			params.put("depId", departmentService.parseArray(deps));
+		}
 		if (StringUtils.isNotBlank(name)) params.put("name", name);
 		if (StringUtils.isNotBlank(roleName)) params.put("roleName", roleName);
 		params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
@@ -379,7 +381,7 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 			acb.setName(oo.getName());
 			acb.setId(depId);
 			deps=departmentMapper.selectBysuperId(oo.getId());
-			depIds =departmentService.selectSubDeps(depId);
+			depIds =departmentService.selectSubordinateDeps(depId);
 		}
 		List<AdminCustomerBo> list =departmentMapper.AlldepCount(depIds,startTime,  endTime);
 		for (AdminCustomerBo ad : list) {

+ 60 - 62
src/main/java/com/goafanti/admin/service/impl/DepartmentServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import com.alibaba.fastjson.JSON;
 import com.goafanti.admin.bo.DepartmentComboBox;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.DepartmentMapper;
@@ -66,89 +67,86 @@ public class DepartmentServiceImpl extends BaseMybatisDao<WorkingHoursMapper> im
 	}
 
 	@Override
-	public List<Department> selectMyDeps() {
-		if(TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))
-			return departmentMapper.selectAllDeps();
-		else
-			return selectCurrentDep(TokenManager.getAdminId());
+	public List<String> selectMyDeps() {
+		return selectCurrentDep(TokenManager.getAdminId());
 	}
-	public List<Department> selectSubDeps(String subId) {
-		return selectSubDeps(subId,0);
+	private List<String> selectCurrentDep(String managerId){
+		List<String> alldep = new ArrayList<>();
+		List<String> superData = departmentMapper.selectCurrentDeps(managerId);
+		if (!superData.isEmpty()){
+			iterationDep(alldep,superData);
+		}
+		return alldep;
 	}
 
-	@Override
-	public List<Department> selectSubDeps(String subId,Integer type) {
-		return selectSubDeps(subId,type,0);
+	private void iterationDep(List<String> alldep, List<String> superData) {
+		for (String dep : superData) {
+			if (!alldep.contains(dep)){
+				alldep.add(dep);
+				List<String> deps2 = departmentMapper.selectSubDeps(dep);
+				if (!deps2.isEmpty())iterationDep(alldep,deps2);
+			}
+
+		}
 	}
 
+
 	@Override
-	public List<Department> selectSubDeps(String subId,Integer type,Integer myShiro) {
-		List<Department>  list =departmentMapper.selectSubDeps(subId);
-		List<Department>  all=new ArrayList<>();
-		if (type==0)all.add(departmentMapper.selectByPrimaryKey(subId));
-		if (!list.isEmpty()){
-			all.addAll(list);
-			for (Department dep : list) {
-				List<Department> l2=selectSubDeps(dep.getId(),1);
-				if(!l2.isEmpty()){
-					all.addAll(l2);
+	public List<String> selectSubDeps(String  deps) {
+		List<String>ls= JSON.parseArray(deps,String.class);
+			List<String> myAll=new ArrayList<>();
+			List<String> my=selectMyDeps();
+			if (ls!=null&&!my.isEmpty()){
+				for (String dep : ls) {
+					for (String dep2 : my) {
+						if (dep.equals(dep2))myAll.add(dep);
+					}
 				}
 			}
-		}
-		if (myShiro==1){
-			List<Department>myAll=new ArrayList<>();
-			List<Department> my=selectMyDeps();
-			for (Department dep : all) {
-				for (Department department : my) {
-					if (dep.getId().equals(department.getId()))myAll.add(dep);
-				}
+		return myAll;
+	}
+	public List<String> selectSubDeps(List<String>  deps) {
+		return comparePermissions(selectMyDeps(),deps);
+	}
+	@Override
+	public List<String> comparePermissions(List<String> aDep, String deps) {
+		List<String> myAll=new ArrayList<>();
+		List<String> input=parseArray(deps);
+		for (String s : aDep) {
+			for (String in : input) {
+				if (s.equals(in))myAll.add(s);
 			}
-			all=myAll;
 		}
-		return all;
+		return myAll;
 	}
 
-	@Override
-	public List<Department> getLowerDep(String depIds) {
-		String[] ss=depIds.split(",");
-		List<Department> ls=new ArrayList<>();
-		Arrays.stream(ss).forEach(e ->{
-			ls.addAll(selectSubDeps(e));
-		});
-		return ls;
-	}
 
 
-	private List<Department> selectCurrentDep(String managerId){
-		List<Department> allData = new ArrayList<Department>();
-		List<Department> superData = departmentMapper.selectCurrentDeps(managerId);
-		if(superData != null && superData.size()>0){
-			allData.addAll(superData);
+	public List<String> comparePermissions(List<String> aDep, List<String> input) {
+		List<String> myAll=new ArrayList<>();
+		for (String s : aDep) {
+			for (String in : input) {
+				if (s.equals(in))myAll.add(s);
+			}
 		}
-		selectSubDeps(allData,superData);
-		return allData;
+		return myAll;
 	}
 
-	private List<Department> selectSubDeps(List<Department> allData,List<Department> superData){
-		List<Department> subData = new ArrayList<>();
-		String superIds = "";
-		for(Department om : superData){
-			if(!om.getId().equals(om.getSuperId())){
-				superIds += om.getId() + ",";
-			}
-		}
-		if(StringUtils.isNotBlank(superIds)) subData = departmentMapper.selectSubDeps(superIds.substring(0, superIds.length()-1));
-		if(subData != null && subData.size()>0) {
-			allData.addAll(subData);
-			selectSubDeps(allData,subData);
-		}
-		return allData;
+	@Override
+	public 	List<Department> selectSubordinateDeps(String depId){
+		return departmentMapper.selectSubDepsList(depId);
+	}
+
+	@Override
+	public List<String> parseArray(String deps) {
+		return JSON.parseArray(deps,String.class);
 	}
 
 
 	@Override
-	public List<DepartmentComboBox> selectAllDep() {
-		return null;
+	public List<String> getFinanceDep(String aid) {
+
+		return departmentMapper.getFinanceDep(aid);
 	}
 
 }

+ 40 - 1
src/main/java/com/goafanti/common/controller/BaseController.java

@@ -3,13 +3,17 @@ package com.goafanti.common.controller;
 import java.text.DateFormat;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.goafanti.common.utils.RedisUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.propertyeditors.CustomDateEditor;
 import org.springframework.core.io.support.ResourcePropertySource;
@@ -53,6 +57,8 @@ public class BaseController {
 
 	@Value(value = "${avatar.upload.host}")
 	private String					avatarUploadHost	= null;
+	@Autowired
+	private RedisUtil redisUtil;
 
 	protected Error buildError(String key) {
 		return buildError(key, null);
@@ -71,7 +77,7 @@ public class BaseController {
 
 	/**
 	 * 带参数的error message
-	 * 
+	 *
 	 * @param key
 	 * @param message
 	 * @param object
@@ -130,8 +136,41 @@ public class BaseController {
 			model.addAttribute("userName", TokenManager.getAdminToken().getName());
 			model.addAttribute("departmentId", TokenManager.getAdminToken().getDepartmentId());
 			model.addAttribute("isAdmin", true);
+			model.addAttribute("shiroList", getshiroList());
+
+		}
+	}
+
+	private String getshiroList() {
+		String shiroList = redisUtil.getString("shiroList");
+		if (StringUtils.isBlank(shiroList)){
+			shiroList=shiroAddRedis();
 		}
+		return shiroList;
 	}
 
+	/**
+	 *	获取权利列表
+	 * @return String  返回权限列表 逗号隔开 1=营销员,2=营销经理,3=营销管理员,4=营销总监,5=财务专员,6=财务经理,7=财务管理员,
+	 * 					8=技术员,9=技术经理,10=技术管理员
+	 */
+	public String shiroAddRedis() {
+		redisUtil.deleteString("shiroList");
+		StringBuffer str=new StringBuffer();
+		if (TokenManager.hasRole(AFTConstants.SALESMAN))str=str.append(1).append(",");
+		if (TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER))str=str.append(2).append(",");
+		if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN))str=str.append(3).append(",");
+		if (TokenManager.hasRole(AFTConstants.SALESMAN_DIRECTOR))str=str.append(4).append(",");
+		if (TokenManager.hasRole(AFTConstants.FINANCE))str=str.append(5).append(",");
+		if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER))str=str.append(6).append(",");
+		if (TokenManager.hasRole(AFTConstants.FINANCE_ADMIN))str=str.append(7).append(",");
+		if (TokenManager.hasRole(AFTConstants.TECH))str=str.append(8).append(",");
+		if (TokenManager.hasRole(AFTConstants.TECH_MANAGER))str=str.append(9).append(",");
+		if (TokenManager.hasRole(AFTConstants.TECH_ADMIN))str=str.append(10).append(",");
+		if (str.length()<1)return "";
+		String shiroList=str.substring(0,str.length()-1);
+		redisUtil.setString("shiroList",shiroList);
+		return shiroList;
+	}
 
 }

+ 15 - 3
src/main/java/com/goafanti/common/dao/DepartmentMapper.java

@@ -4,6 +4,7 @@ import com.goafanti.admin.bo.AdminCustomerBo;
 import com.goafanti.admin.bo.AdminListBo;
 import com.goafanti.admin.bo.depCountBo;
 import com.goafanti.common.model.Department;
+import com.goafanti.organization.bo.DepOut;
 import com.goafanti.organization.bo.OrganizationListOut;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,7 +23,15 @@ public interface DepartmentMapper {
 
     int updateByPrimaryKey(Department record);
 
-    List<OrganizationListOut> selectSuperId(@Param("hideSign")Integer hideSign);
+
+    /**
+     *
+     * @param hideSign 0不显示 1显示
+     * @param lvl 层级
+     * @param id 上级编号
+     * @return
+     */
+    List<DepOut> selectSuperId(@Param("hideSign")Integer hideSign, @Param("lvl")Integer lvl, @Param("id")String id);
     /**
      * 根据组织名称查组织编号
      */
@@ -75,7 +84,8 @@ public interface DepartmentMapper {
      * @param superIds
      * @return
      */
-    List<Department> selectSubDeps(@Param("superIds")String superIds);
+    List<String> selectSubDeps(@Param("superIds")String superIds);
+    List<Department> selectSubDepsList(@Param("superIds")String superIds);
 
     List<depCountBo> selectBysuperId(String id);
 
@@ -84,7 +94,7 @@ public interface DepartmentMapper {
      * 查询当前集合
      * @return
      */
-    List<Department> selectCurrentDeps(@Param("aid")String aid);
+    List<String> selectCurrentDeps(@Param("aid")String aid);
 
     /**
      * 查询所有部门
@@ -105,4 +115,6 @@ public interface DepartmentMapper {
     List<AdminCustomerBo> AlldepCount(@Param("depIds")List<Department> depIds ,@Param("startTime")String startTime, @Param("endTime")String endTime);
 
     Department selectByDepNo(String superId);
+
+    List<String> getFinanceDep(String aid);
 }

+ 10 - 8
src/main/java/com/goafanti/common/dao/TChangeTaskMapper.java

@@ -36,14 +36,16 @@ public interface TChangeTaskMapper {
 
     int deleteByTid(Integer tid);
 
-    /**
-     *   获取变更子项�???
-     * @param splitSuper
-     * @param cid
-     * @return
-     */
-    List<TChangeTask> selectBySuper(@Param("splitSuper")Integer splitSuper, @Param("cid")Integer cid);
-
 
     TChangeTask selectBytid(Integer id);
+
+    void updateMemberByTid( @Param("sid")Integer sid,@Param("cid")Integer cid, @Param("type")Integer type, @Param("serviceLife")String serviceLife,
+                            @Param("serviceYear")String serviceYear, @Param("yearSum")Integer yearSum, @Param("contractTerm")String contractTerm);
+
+    List<TChangeTask> selectBySuper(@Param("splitSuper") Integer splitSuper, @Param("changeSplitSuper") Integer changeSplitSuper, @Param("cid") Integer cid);
+
+    void updateTypeBatch(@Param("type") Integer type, @Param("list") List<Integer> list);
+
+
+    void selectByServiceYear(@Param("serviceYear") String serviceYear, @Param("sliptSuper")Integer sliptSuper, @Param("changeSplitSuper")Integer changeSplitSuper);
 }

+ 3 - 1
src/main/java/com/goafanti/common/dao/TOrderNewMapper.java

@@ -40,7 +40,7 @@ public interface TOrderNewMapper {
 
     int updateFinance(@Param("aid")String aid, @Param("orderNos") List<String> orderNos, @Param("newFinance")String newFinance);
     int checkContractNo(String sno);
-    Map<String, Object> countTotalAndActually(@Param("o") OrderListBo o, @Param("fids")List<String> fids);
+    Map<String, Object> countTotalAndActually(@Param("o") OrderListBo o, @Param("fids") List<String> fids, @Param("deps")List<String> listDep);
     TOrderBillNew getLastPayment(String orderNo);
     int updateSalesmanId(@Param("aid")String aid, @Param("transferId")String transferId);
     List<TOrderNewBo> selectUsedOrderByOrder(String orderNo);
@@ -55,4 +55,6 @@ public interface TOrderNewMapper {
     List<Map<String, Object>> selectOrderByuid(String uid);
 
     List<OutOrderSalesSource> orderSalesSource(InputOrderSalesSource in);
+
+    TOrderNew  checkOrderProcessStatus(Integer tid);
 }

+ 15 - 3
src/main/java/com/goafanti/common/dao/TOrderTaskMapper.java

@@ -26,7 +26,7 @@ public interface TOrderTaskMapper {
 
     List<TOrderTaskBo> selectOrderTask(@Param("orderNo") String orderNo,@Param("type") Integer type);
 
-    TOrderTaskDetailBo getOrderTaskDetail(String id);
+    TOrderTaskDetailBo getOrderTaskDetail(Integer id);
 
     TOrderTask selectBySuperId(String superId);
 
@@ -38,9 +38,19 @@ public interface TOrderTaskMapper {
 
     List<String> listNameByDepAndName(@Param("orderNo")String orderNo, @Param("type")Integer type);
 
-    List<TOrderTaskListBo> splitProjectList(Integer tid);
+    List<TOrderTaskListBo> splitProjectList( @Param("tid")Integer tid, @Param("type")Integer type);
+
+
+
+    /**
+     *
+     * @param orderNo 订单编号
+     * @param splitStatus null 所有 1主项目 2子项目 3所有项目
+     * @return
+     */
+    List<TOrderTaskBo> selectOrderTaskAll(@Param("orderNo") String orderNo,@Param("splitStatus")Integer splitStatus);
+
 
-    List<TOrderTaskBo> selectOrderTaskAll(String orderNo);
 
     String selectByidGetCname(String pid);
 
@@ -68,4 +78,6 @@ public interface TOrderTaskMapper {
 
 
     List<TChangeTask> selectByAid(String aid);
+
+    Integer getSplitCount(Integer tid);
 }

+ 8 - 0
src/main/java/com/goafanti/common/dao/TTaskMemberMapper.java

@@ -1,6 +1,8 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.TTaskMember;
+import org.apache.ibatis.annotations.Param;
+
 
 public interface TTaskMemberMapper {
     int deleteByPrimaryKey(Integer id);
@@ -16,4 +18,10 @@ public interface TTaskMemberMapper {
     int updateByPrimaryKey(TTaskMember record);
 
     int updateByTid(TTaskMember ttm);
+
+    TTaskMember selectByTid(int tid);
+
+    void updateSplitSuper(@Param("id") Integer id, @Param("serviceLife") String serviceLife,
+                          @Param("serviceYear") String serviceYear, @Param("yearSum") Integer yearSum,
+                          @Param("contractTerm") String contractTerm);
 }

+ 2 - 2
src/main/java/com/goafanti/common/dao/UserMapper.java

@@ -187,9 +187,9 @@ public interface UserMapper {
 
     void updateDimissionTransfer(@Param("aid")String aid, @Param("transferId")String transferId);
 
-    List<userDataListBo> userDataStatistics(@Param("depId")String depId);
+    List<userDataListBo> userDataStatistics(@Param("deps")List<String> deps);
 
-    userDataListBo userDataStatisticsCount(@Param("depId")String depId);
+    userDataListBo userDataStatisticsCount(@Param("deps")List<String> deps);
 
     int UserReceiveCount( @Param("aid")String aid);
 

+ 10 - 4
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -802,8 +802,11 @@
     <if test="name != null">
       and b.name like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
     </if>
-    <if test="depId != null">
-      and b.department_id= #{depId,jdbcType=VARCHAR}
+    <if test="deps != null">
+      and b.department_id in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
     </if>
     <if test="page_sql!=null">
       ${page_sql}
@@ -826,8 +829,11 @@
     <if test="name != null">
       and b.name like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
     </if>
-    <if test="depId != null">
-      and b.department_id= #{depId,jdbcType=VARCHAR}
+    <if test="deps != null">
+      and b.department_id in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
     </if>
   </select>
 

+ 27 - 14
src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml

@@ -300,17 +300,21 @@
       AND om.dep_no=#{depNo,jdbcType=VARCHAR}
     </if>
   </select>
-  <select id="selectSuperId"  resultType="com.goafanti.organization.bo.OrganizationListOut">
+  <select id="selectSuperId"  resultType="com.goafanti.organization.bo.DepOut">
     select
-    id,name,dep_no as depNo
+    id,name,dep_no as depNo,lvl
     from department
-    where
-    status ='0'
+    where status ='0'
+    <if test="lvl != null ">
+        and lvl= #{lvl}
+    </if>
       <if test="hideSign != null ">
     and hide_sign= #{hideSign}
       </if>
-    order by CONVERT (name USING gbk)
-
+    <if test="id != null ">
+      and super_id= #{id}
+    </if>
+    order by depNo
   </select>
   <insert id="insert1" parameterType="com.goafanti.organization.bo.OrganizationListOut">
     insert into department(
@@ -439,14 +443,19 @@
       department_id=#{id,jdbcType=VARCHAR}
   </select>
   <!-- 查询当前层级 -->
-  <select id="selectCurrentDeps" parameterType="java.lang.String" resultMap="BaseResultMap">
-    select id,name,dep_no,super_id from department where manager_id = #{aid,jdbcType=VARCHAR}
-    union all
-    select id,name,dep_no,super_id from department where id = (select department_id from admin where id = #{aid,jdbcType=VARCHAR})
+  <select id="selectCurrentDeps" parameterType="java.lang.String" resultType="string">
+    select id from department where manager_id = #{aid,jdbcType=VARCHAR}
+    union
+    select id from department where id = (select department_id from admin where id = #{aid,jdbcType=VARCHAR})
   </select>
   <!-- 查询下一层级  -->
-  <select id="selectSubDeps"  parameterType="java.lang.String" resultMap="BaseResultMap">
-    select id,name,dep_no from department where super_id in (#{superIds,jdbcType=VARCHAR})
+  <select id="selectSubDeps"  parameterType="java.lang.String" resultType="string">
+    select id from department where super_id in (#{superIds,jdbcType=VARCHAR})
+  </select>
+
+  <!-- 查询下一层级  -->
+  <select id="selectSubDepsList"  parameterType="java.lang.String" resultType="com.goafanti.common.model.Department">
+    select id from department where super_id in (#{superIds,jdbcType=VARCHAR})
   </select>
 
   <select id="selectBysuperId"  resultType="com.goafanti.admin.bo.depCountBo">
@@ -460,8 +469,8 @@
   </select>
 
   <!-- 查询所有 -->
-  <select id="selectAllDeps" resultMap="BaseResultMap">
-    select id,name,dep_no from department
+  <select id="selectAllDeps" resultType="string">
+    select id from department
   </select>
   <select id="getMaxAbbreviation"  parameterType="java.lang.String" resultType="java.lang.String">
     select max(contract_no) as maxNo from t_order_new
@@ -539,5 +548,9 @@
     from department where super_id=  #{superId}
     order by dep_no desc limit 1
   </select>
+    <select id="getFinanceDep" resultType="java.lang.String">
+      select id from department
+      where finance_id = #{aid};
+    </select>
 
 </mapper>

+ 4 - 4
src/main/java/com/goafanti/common/mapper/NewOrderChangeMapper.xml

@@ -514,8 +514,8 @@ select
 	</if>
 	<if test="deps !=null">
 	and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
       </foreach>
 	</if>
 	<if test="salesmanName !=null">
@@ -624,8 +624,8 @@ select
 	</if>
     <if test="deps !=null">
       and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
       </foreach>
     </if>
 	<if test="salesmanName !=null">

+ 14 - 8
src/main/java/com/goafanti/common/mapper/PatentNewMapper.xml

@@ -475,18 +475,21 @@
 			and b.name like concat('%',#{aname},'%')
 		</if>
 		<if test="depName != null">
-			and tm.dep_name  = #{depName}
+			and tm.dep_name  in
+			<foreach close=")" collection="depName" item="deps" open="(" separator=",">
+				#{deps}
+			</foreach>
 		</if>
 		<if test="inputDep != null">
 			and ia.department_id in
 			<foreach close=")" collection="inputDep" item="deps" open="(" separator=",">
-				#{deps.id}
+				#{deps}
 			</foreach>
 		</if>
 		<if test="followDep != null">
 			and b.department_id  in
-			<foreach close=")" collection="followDep" item="f" open="(" separator=",">
-				#{f.id}
+			<foreach close=")" collection="followDep" item="deps" open="(" separator=",">
+				#{deps}
 			</foreach>
 		</if>
 		<if test="salesmanRemind !=null">
@@ -546,18 +549,21 @@
 			and b.name like concat('%',#{aname},'%')
 		</if>
 		<if test="depName != null">
-			and tm.dep_name  = #{depName}
+			and tm.dep_name  in
+			<foreach close=")" collection="depName" item="deps" open="(" separator=",">
+				#{deps}
+			</foreach>
 		</if>
 		<if test="inputDep != null">
 			and ia.department_id in
 			<foreach close=")" collection="inputDep" item="deps" open="(" separator=",">
-				#{deps.id}
+				#{deps}
 			</foreach>
 		</if>
 		<if test="followDep != null">
 			and b.department_id  in
-			<foreach close=")" collection="followDep" item="f" open="(" separator=",">
-				#{f.id}
+			<foreach close=")" collection="followDep" item="deps" open="(" separator=",">
+				#{deps}
 			</foreach>
 		</if>
 		<if test="salesmanRemind !=null">

+ 6 - 12
src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml

@@ -738,13 +738,10 @@
     <if test="sid != null">
       and d.id= #{sid}
     </if>
-    <if test="depId != null">
-      and c.department_id = #{depId}
-    </if>
-    <if test="type==1 and deps !=null">
+    <if test="deps !=null">
        and c.department_id in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
       </foreach>
     </if>
 	<if test="uid != null">
@@ -782,13 +779,10 @@
     <if test="sid != null">
       and d.id= #{sid}
     </if>
-    <if test="depId != null">
-      and c.department_id = #{depId}
-    </if>
-    <if test="type==1 and deps !=null">
+    <if test=" deps !=null">
       and c.department_id in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
       </foreach>
     </if>
     <if test="uid != null">

+ 122 - 33
src/main/java/com/goafanti/common/mapper/TChangeTaskMapper.xml

@@ -22,11 +22,16 @@
     <result column="service_life" jdbcType="VARCHAR" property="serviceLife" />
     <result column="service_year" jdbcType="VARCHAR" property="serviceYear" />
     <result column="year_sum" jdbcType="INTEGER" property="yearSum" />
+    <result column="contract_term" jdbcType="VARCHAR" property="contractTerm" />
+    <result column="declaration_batch" jdbcType="INTEGER" property="declarationBatch" />
+    <result column="patent_type" jdbcType="INTEGER" property="patentType" />
+    <result column="change_split_super" jdbcType="INTEGER" property="changeSplitSuper" />
   </resultMap>
   <sql id="Base_Column_List">
     id, tid, cid, order_no, main, commodity_id, commodity_name, commodity_quantity, commodity_price,
     task_comment, `type`, create_time, split_status, split_super, receiver_name, official_cost,
-    cost_reduction, service_life, service_year, year_sum
+    cost_reduction, service_life, service_year, year_sum, contract_term, declaration_batch,
+    patent_type, change_split_super
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
     select
@@ -38,28 +43,27 @@
     delete from t_change_task
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="com.goafanti.common.model.TChangeTask">
-    insert into t_change_task (id, tid, cid,
-      order_no, main, commodity_id,
-      commodity_name, commodity_quantity, commodity_price,
-      task_comment, `type`, create_time,
-      split_status, split_super, receiver_name,
-      official_cost, cost_reduction, service_life,
-      service_year, year_sum)
-    values (#{id,jdbcType=INTEGER}, #{tid,jdbcType=INTEGER}, #{cid,jdbcType=INTEGER},
-      #{orderNo,jdbcType=VARCHAR}, #{main,jdbcType=INTEGER}, #{commodityId,jdbcType=VARCHAR},
-      #{commodityName,jdbcType=VARCHAR}, #{commodityQuantity,jdbcType=INTEGER}, #{commodityPrice,jdbcType=DECIMAL},
-      #{taskComment,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
-      #{splitStatus,jdbcType=INTEGER}, #{splitSuper,jdbcType=INTEGER}, #{receiverName,jdbcType=VARCHAR},
-      #{officialCost,jdbcType=INTEGER}, #{costReduction,jdbcType=INTEGER}, #{serviceLife,jdbcType=VARCHAR},
-      #{serviceYear,jdbcType=VARCHAR}, #{yearSum,jdbcType=INTEGER})
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TChangeTask" useGeneratedKeys="true">
+    insert into t_change_task (tid, cid, order_no,
+      main, commodity_id, commodity_name,
+      commodity_quantity, commodity_price, task_comment,
+      `type`, create_time, split_status,
+      split_super, receiver_name, official_cost,
+      cost_reduction, service_life, service_year,
+      year_sum, contract_term, declaration_batch,
+      patent_type, change_split_super)
+    values (#{tid,jdbcType=INTEGER}, #{cid,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR},
+      #{main,jdbcType=INTEGER}, #{commodityId,jdbcType=VARCHAR}, #{commodityName,jdbcType=VARCHAR},
+      #{commodityQuantity,jdbcType=INTEGER}, #{commodityPrice,jdbcType=DECIMAL}, #{taskComment,jdbcType=VARCHAR},
+      #{type,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{splitStatus,jdbcType=INTEGER},
+      #{splitSuper,jdbcType=INTEGER}, #{receiverName,jdbcType=VARCHAR}, #{officialCost,jdbcType=INTEGER},
+      #{costReduction,jdbcType=INTEGER}, #{serviceLife,jdbcType=VARCHAR}, #{serviceYear,jdbcType=VARCHAR},
+      #{yearSum,jdbcType=INTEGER}, #{contractTerm,jdbcType=VARCHAR}, #{declarationBatch,jdbcType=INTEGER},
+      #{patentType,jdbcType=INTEGER}, #{changeSplitSuper,jdbcType=INTEGER})
   </insert>
-  <insert id="insertSelective" parameterType="com.goafanti.common.model.TChangeTask">
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TChangeTask" useGeneratedKeys="true">
     insert into t_change_task
     <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
       <if test="tid != null">
         tid,
       </if>
@@ -117,11 +121,20 @@
       <if test="yearSum != null">
         year_sum,
       </if>
+      <if test="contractTerm != null">
+        contract_term,
+      </if>
+      <if test="declarationBatch != null">
+        declaration_batch,
+      </if>
+      <if test="patentType != null">
+        patent_type,
+      </if>
+      <if test="changeSplitSuper != null">
+        change_split_super,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=INTEGER},
-      </if>
       <if test="tid != null">
         #{tid,jdbcType=INTEGER},
       </if>
@@ -179,6 +192,18 @@
       <if test="yearSum != null">
         #{yearSum,jdbcType=INTEGER},
       </if>
+      <if test="contractTerm != null">
+        #{contractTerm,jdbcType=VARCHAR},
+      </if>
+      <if test="declarationBatch != null">
+        #{declarationBatch,jdbcType=INTEGER},
+      </if>
+      <if test="patentType != null">
+        #{patentType,jdbcType=INTEGER},
+      </if>
+      <if test="changeSplitSuper != null">
+        #{changeSplitSuper,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TChangeTask">
@@ -241,6 +266,18 @@
       <if test="yearSum != null">
         year_sum = #{yearSum,jdbcType=INTEGER},
       </if>
+      <if test="contractTerm != null">
+        contract_term = #{contractTerm,jdbcType=VARCHAR},
+      </if>
+      <if test="declarationBatch != null">
+        declaration_batch = #{declarationBatch,jdbcType=INTEGER},
+      </if>
+      <if test="patentType != null">
+        patent_type = #{patentType,jdbcType=INTEGER},
+      </if>
+      <if test="changeSplitSuper != null">
+        change_split_super = #{changeSplitSuper,jdbcType=INTEGER},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -264,7 +301,11 @@
       cost_reduction = #{costReduction,jdbcType=INTEGER},
       service_life = #{serviceLife,jdbcType=VARCHAR},
       service_year = #{serviceYear,jdbcType=VARCHAR},
-      year_sum = #{yearSum,jdbcType=INTEGER}
+      year_sum = #{yearSum,jdbcType=INTEGER},
+      contract_term = #{contractTerm,jdbcType=VARCHAR},
+      declaration_batch = #{declarationBatch,jdbcType=INTEGER},
+      patent_type = #{patentType,jdbcType=INTEGER},
+      change_split_super = #{changeSplitSuper,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
 
@@ -273,21 +314,24 @@
       order_no, commodity_id, commodity_name,
       commodity_quantity, commodity_price, task_comment,
         split_super , receiver_name, create_time,service_life,
-    service_year, year_sum, picture_url)
+    service_year, year_sum, contract_term,declaration_batch,patent_type)
     values
     <foreach collection="list" index="index" item="item" separator=",">
       ( #{item.tid,jdbcType=INTEGER}, #{item.cid,jdbcType=INTEGER}, #{item.splitStatus,jdbcType=INTEGER},
       #{item.orderNo,jdbcType=VARCHAR}, #{item.commodityId,jdbcType=VARCHAR}, #{item.commodityName,jdbcType=VARCHAR},
       #{item.commodityQuantity,jdbcType=INTEGER}, #{item.commodityPrice,jdbcType=DECIMAL}, #{item.taskComment,jdbcType=VARCHAR},
        #{item.splitSuper,jdbcType=INTEGER}, #{item.receiverName,jdbcType=VARCHAR}, now(), #{item.serviceLife,jdbcType=VARCHAR},
-      #{item.serviceYear,jdbcType=VARCHAR}, #{item.yearSum,jdbcType=INTEGER}, #{item.pictureUrl,jdbcType=VARCHAR})
+      #{item.serviceYear,jdbcType=VARCHAR}, #{item.yearSum,jdbcType=INTEGER},#{item.contractTerm,jdbcType=VARCHAR},
+      #{item.declarationBatch,jdbcType=INTEGER},#{item.patentType,jdbcType=INTEGER})
     </foreach>
   </insert>
   <select id="selectByCid" resultType="com.goafanti.order.bo.TChangeTaskOut">
     select a.id,a.order_no as orderNo,a.main, c.cname,c.sort cSort,a.commodity_name as commodityName,a.official_cost officialCost,
 	a.official_cost officialCost, a.commodity_quantity as commodityQuantity,i.price,a.commodity_id as commodityId,a.type,a.tid,
 	a.receiver_name receiverName, a.task_comment as taskComment ,a.commodity_price as commodityPrice,a.split_status splitStatus,
-	a.split_super splitSuper,a.picture_url pictureUrl, a.service_life serviceLife ,a.service_year serviceYear,a.year_sum yearSum
+	a.split_super splitSuper, a.service_life serviceLife ,a.service_year serviceYear,a.year_sum yearSum,i.patent_transfer patentTransfer,
+    i.type taskType, a.declaration_batch declarationBatch,a.patent_type patentType,a.contract_term contractTerm,
+    a.change_split_super changeSplitSuper
     from t_change_task a left join business_project i on a.commodity_id=i.id
   	left join business_category c on i.cid=c.id
   	where 1=1
@@ -295,12 +339,12 @@
   	and a.split_status= #{splitStatus}
   	</if>
   	<if test="splitStatus ==3">
-  	and a.split_status !=2
+  	and a.split_status in (0,1)
   	</if>
   	 and a.cid= #{id} order by a.id
   </select>
     <update id="updateByTid">
-  		update t_change_task set type= #{type}
+  		update t_change_task set type= #{type},service_life=null,year_sum=null
   		where 1=1
   		<if test="tid !=null">
   		and tid= #{tid}
@@ -316,16 +360,58 @@
    <update id="deleteByTid">
   		delete from t_change_task where tid= #{tid};
   </update>
+  <update id="updateMemberByTid">
+    update t_change_task
+    <set>
+      <if test="type != null">
+        type= #{type},
+      </if>
+      <if test="serviceLife != null">
+        service_life= #{serviceLife},
+      </if>
+      <if test="serviceYear != null">
+        service_year= #{serviceYear},
+      </if>
+      <if test="yearSum != null">
+        year_sum= #{yearSum},
+      </if>
+      <if test="contractTerm != null">
+        contract_term= #{contractTerm},
+      </if>
+    </set>
+    where 1=1
+    <if test="cid !=null">
+      and cid= #{cid}
+    </if>
+    <if test="sid !=null">
+      and split_super= #{sid}
+    </if>
+  </update>
+  <update id="updateTypeBatch">
+    update t_change_task set type= #{type}
+    where id in
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
+      #{id}
+    </foreach>
+  </update>
 
 
-
-    <select id="selectBySuper" resultType="com.goafanti.order.bo.TChangeTaskOut">
+  <select id="selectBySuper" resultType="com.goafanti.order.bo.TChangeTaskOut">
 	select a.id,a.order_no as orderNo,a.main, c.cname,c.sort cSort,a.commodity_name as commodityName,
   	a.commodity_quantity as commodityQuantity,i.price,a.commodity_id as commodityId,a.type,a.tid,a.receiver_name receiverName,
-	a.task_comment as taskComment ,a.commodity_price as commodityPrice,a.split_status splitStatus,a.split_super splitSuper
+	a.task_comment as taskComment ,a.commodity_price as commodityPrice,a.split_status splitStatus,a.split_super splitSuper,
+    a.service_life serviceLife ,a.service_year serviceYear,a.year_sum yearSum, a.declaration_batch declarationBatch,
+	a.patent_type patentType,a.contract_term contractTerm,a.change_split_super changeSplitSuper
     from t_change_task a left join business_project i on a.commodity_id=i.id
   	left join business_category c on i.cid=c.id
-  	where a.split_status=2 and a.split_super= #{splitSuper} and a.cid= #{cid} order by a.id
+  	where a.split_status=2 and a.cid= #{cid}
+  	  <if test="splitSuper !=null">
+  	    and a.split_super= #{splitSuper}
+      </if>
+	<if test="changeSplitSuper !=null" >
+    and a.change_split_super= #{changeSplitSuper}
+    </if>
+	order by a.id
   </select>
 
 
@@ -336,4 +422,7 @@
     where noc.process_state &lt; 4 and noc.status in (0,1,2)
       and tct.tid= #{tid}
   </select>
+  <select id="selectByServiceYear">
+
+  </select>
 </mapper>

+ 11 - 5
src/main/java/com/goafanti/common/mapper/TOrderBillNewMapper.xml

@@ -546,8 +546,11 @@
   	<if test="b.orderNo != null and b.orderNo != &quot;&quot;">
   	and b.order_no = #{b.orderNo,jdbcType=VARCHAR}
   	</if>
-  	<if test="b.departmentId != null and b.departmentId != &quot;&quot;">
-	and  o.order_dep = #{b.departmentId,jdbcType=VARCHAR}
+  	<if test="deps !=null">
+	and  o.order_dep in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
 	</if>
   	<if test="b.creater != null and b.creater != &quot;&quot;">
   	and b.creater = #{b.creater,jdbcType=VARCHAR}
@@ -591,9 +594,12 @@
   	<if test="b.creater != null and b.creater != &quot;&quot;">
   	and b.creater = #{b.creater,jdbcType=VARCHAR}
   	</if>
-  	<if test="b.departmentId != null and b.departmentId != &quot;&quot;">
-	and  o.order_dep = #{b.departmentId,jdbcType=VARCHAR}
-	</if>
+    <if test="deps !=null">
+      and  o.order_dep in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
+    </if>
   	<if test="b.payerName != null and b.payerName != &quot;&quot;">
   	<bind name="nn" value="'%' + b.payerName + '%'" />
   	and tm.buyer_name like #{nn,jdbcType=VARCHAR}

+ 46 - 31
src/main/java/com/goafanti/common/mapper/TOrderBonusMapper.xml

@@ -92,7 +92,7 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
-    id, create_time, order_no, bonus_subject, grant_status, grant_target, grant_by, grant_time, 
+    id, create_time, order_no, bonus_subject, grant_status, grant_target, grant_by, grant_time,
     grant_type, task_id
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.TOrderBonusExample" resultMap="BaseResultMap">
@@ -120,7 +120,7 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
-    select 
+    select
     <include refid="Base_Column_List" />
     from t_order_bonus
     where id = #{id,jdbcType=VARCHAR}
@@ -151,12 +151,12 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
-    insert into t_order_bonus (id, create_time, order_no, 
-      bonus_subject, grant_status, grant_target, 
+    insert into t_order_bonus (id, create_time, order_no,
+      bonus_subject, grant_status, grant_target,
       grant_by, grant_time, grant_type, task_id
       )
-    values (#{id,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{orderNo,jdbcType=VARCHAR}, 
-      #{bonusSubject,jdbcType=INTEGER}, #{grantStatus,jdbcType=INTEGER}, #{grantTarget,jdbcType=VARCHAR}, 
+    values (#{id,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{orderNo,jdbcType=VARCHAR},
+      #{bonusSubject,jdbcType=INTEGER}, #{grantStatus,jdbcType=INTEGER}, #{grantTarget,jdbcType=VARCHAR},
       #{grantBy,jdbcType=VARCHAR}, #{grantTime,jdbcType=DATE}, #{grantType,jdbcType=INTEGER}, #{taskId,jdbcType=INTEGER}
       )
   </insert>
@@ -365,7 +365,7 @@
   </update>
   <!-- 财务专员统计技术员的奖金 -->
   <select id="technicianBonusList" parameterType="Map" resultType="com.goafanti.order.bo.TOrderBonusBo">
-   select b.id, t.id as tid, b.order_no as orderNo, t.task_receiver as taskReceiver, t.task_status as taskStatus,  
+   select b.id, t.id as tid, b.order_no as orderNo, t.task_receiver as taskReceiver, t.task_status as taskStatus,
   		t.commodity_quantity as commodityQuantity, t.project_status as projectStatus, t.commodity_name as commodityName,
   		accept_time as acceptTime, review_time as reviewTime, licence_time as licenceTime,
   		o.liquidation_status as liquidationStatus, ga.name as byName,
@@ -374,9 +374,9 @@
   		from t_order_bonus b
   		left join t_order_task t on b.task_id = t.id
   		left join t_order_new o on o.order_no = t.order_no
-  		left join admin a on a.id = t.task_receiver 
+  		left join admin a on a.id = t.task_receiver
   		left join admin oa on oa.id = o.salesman_id
-  		left join admin ga on ga.id = b.grant_by 
+  		left join admin ga on ga.id = b.grant_by
   		where  b.grant_type = 1
   		<if test="fids != null and fids.size > 0">
   		and b.grant_by in
@@ -411,7 +411,7 @@
   		<bind name="e1" value="b.endTime1 +' 23:59:59'"/>
   		and b.create_time between #{a1,jdbcType=VARCHAR} and #{e1,jdbcType=VARCHAR}
   		</if>
-  		order by b.grant_status ,b.create_time 
+  		order by b.grant_status ,b.create_time
   		<if test="page_sql != null">
 			${page_sql}
 		</if>
@@ -421,7 +421,7 @@
   from t_order_bonus b
   		left join t_order_task t on b.task_id = t.id
   		left join t_order_new o on o.order_no = t.order_no
-  		left join admin a on a.id = t.task_receiver 
+  		left join admin a on a.id = t.task_receiver
   		left join admin oa on oa.id = o.salesman_id
   		where b.grant_type = 1
   		<if test="fids != null">
@@ -447,7 +447,7 @@
   		<if test='b.orderNo != null and b.orderNo !=""'>
 		and b.order_no = #{b.orderNo,jdbcType=VARCHAR}
 		</if>
-		
+
   		<if test='b.startTime != null and b.startTime != "" and b.endTime != null and b.endTime != ""'>
   		<bind name="a" value="b.startTime +'-01'"/>
   		<bind name="e" value="b.endTime +'-31'"/>
@@ -462,7 +462,7 @@
   <!-- 财务专员统计营销员奖金 -->
   <select id="saleBonusList" parameterType="Map" resultType="com.goafanti.order.bo.TOrderBonusBo">
   select b.id, o.order_no as orderNo, o.salesman_id as salesmanId, o.sign_time as signTime,
-	o.buyer_id as buyerId, u.nickname as buyName, o.total_amount as totalAmount, 
+	o.buyer_id as buyerId, u.nickname as buyName, o.total_amount as totalAmount,
 	o.first_amount as firstAmount, o.settlement_amount as settlementAmount, o.refund_amount as refundAmount,
 	o.order_status as orderStatus, o.project_status as projectStatus, b.bonus_subject as bonusSubject,
 	o.proof_count as proofCount, b.grant_status as grantStatus, a.name as salesName, o.proof_status as proofStatus,
@@ -486,8 +486,11 @@
 	<bind name="sn" value="'%' + b.salesName + '%'" />
 	and a.name like #{sn,jdbcType=VARCHAR}
 	</if>
-	<if test='b.departmentId != null and b.departmentId !=""'>
-	and a.department_id = #{b.departmentId,jdbcType=VARCHAR}
+	<if test='deps !=null'>
+	and a.department_id in
+        <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+            #{depId}
+        </foreach>
 	</if>
 	<if test="b.grantStatus != null">
 	and b.grant_status = #{b.grantStatus,jdbcType=INTEGER}
@@ -512,7 +515,7 @@
   </select>
   <select id="saleBonusCount" parameterType="Map" resultType="java.lang.Integer">
   select count(*)
-	
+
 	from t_order_bonus b
 	left join t_order_new o on o.order_no = b.order_no
 	left join admin a on o.salesman_id = a.id
@@ -525,9 +528,12 @@
 	<bind name="sn" value="'%' + b.salesName + '%'" />
 	and a.name like #{sn,jdbcType=VARCHAR}
 	</if>
-	<if test='b.departmentId != null and b.departmentId !=""'>
-	and a.department_id = #{b.departmentId,jdbcType=VARCHAR}
-	</if>
+      <if test='deps !=null'>
+          and a.department_id in
+          <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+              #{depId}
+          </foreach>
+      </if>
 	<if test="b.grantStatus != null">
 	and b.grant_status = #{b.grantStatus,jdbcType=INTEGER}
 	</if>
@@ -562,9 +568,12 @@
 	<bind name="sn" value="'%' + salesName + '%'" />
 	and a.name like #{sn,jdbcType=VARCHAR}
 	</if>
-	<if test='departmentId != null and departmentId != ""'>
-	and a.department_id = #{departmentId,jdbcType=VARCHAR}
-	</if>
+	<if test='deps !=null '>
+	and a.department_id in
+    <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+    </foreach>
+    </if>
 	<if test="grantStatus != null">
 	and b.grant_status = #{grantStatus,jdbcType=INTEGER}
 	</if>
@@ -581,7 +590,7 @@
   </select>
   <!-- 获得及技术员奖金数据 -->
   <select id="getBonusData" parameterType="com.goafanti.order.bo.TOrderBonusBo" resultType="com.goafanti.order.bo.TOrderBonusBo">
-  select b.id, t.id as tid, b.order_no as orderNo, t.task_receiver as taskReceiver, t.task_status as taskStatus,  
+  select b.id, t.id as tid, b.order_no as orderNo, t.task_receiver as taskReceiver, t.task_status as taskStatus,
   		t.commodity_quantity as commodityQuantity, t.project_status as projectStatus, t.commodity_name as commodityName,
   		accept_time as acceptTime, review_time as reviewTime, licence_time as licenceTime,
   		o.liquidation_status as liquidationStatus, ga.name as byName,
@@ -590,9 +599,9 @@
   		from t_order_bonus b
   		left join t_order_task t on b.task_id = t.id
   		left join t_order_new o on o.order_no = t.order_no
-  		left join admin a on a.id = t.task_receiver 
+  		left join admin a on a.id = t.task_receiver
   		left join admin oa on oa.id = o.salesman_id
-  		left join admin ga on ga.id = b.grant_by 
+  		left join admin ga on ga.id = b.grant_by
   		where b.grant_type = 1
   		<if test="grantBy != null">
   		and b.grant_by = #{grantBy,jdbcType=VARCHAR}
@@ -626,7 +635,7 @@
   <!-- 查看营销员的奖金数据 -->
   <select id="getSaleBounsList" parameterType="com.goafanti.order.bo.TOrderBonusBo" resultType="com.goafanti.order.bo.TOrderBonusBo">
   select b.id, o.order_no as orderNo, o.salesman_id as salesmanId, o.sign_time as signTime,
-	o.buyer_id as buyerId, u.nickname as buyName, o.total_amount as totalAmount, 
+	o.buyer_id as buyerId, u.nickname as buyName, o.total_amount as totalAmount,
 	o.first_amount as firstAmount, o.settlement_amount as settlementAmount, o.refund_amount as refundAmount,
 	o.order_status as orderStatus, o.project_status as projectStatus, b.bonus_subject as bonusSubject,
 	o.proof_count as proofCount, b.grant_status as grantStatus, a.name as salesName
@@ -643,8 +652,14 @@
 	<bind name="sn" value="'%' + salesName + '%'" />
 	and a.name like #{sn,jdbcType=VARCHAR}
 	</if>
-	<if test='departmentId != null and departmentId !=""'>
-	and a.department_id = #{departmentId,jdbcType=VARCHAR}
+	<if test='deps !=null'>
+	and a.department_id in
+        <if test='deps !=null '>
+            and a.department_id in
+            <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+                #{depId}
+            </foreach>
+        </if>
 	</if>
 	<if test="grantStatus != null">
 	and b.grant_status = #{grantStatus,jdbcType=INTEGER}
@@ -662,7 +677,7 @@
   </select>
   <!-- 根据订单编号和科目和奖金发放人检查这个奖金是否存在 -->
   <select id="checkByOnoAndSub" parameterType="com.goafanti.common.model.TOrderBonus" resultType="java.lang.Integer">
-  	select count(*) from t_order_bonus where order_no = #{orderNo,jdbcType=VARCHAR} and bonus_subject = #{bonusSubject,jdbcType=INTEGER} 
+  	select count(*) from t_order_bonus where order_no = #{orderNo,jdbcType=VARCHAR} and bonus_subject = #{bonusSubject,jdbcType=INTEGER}
   	and grant_target = #{grantTarget,jdbcType=VARCHAR} and grant_type = #{grantType,jdbcType=INTEGER}
   	<if test="taskId != null">
   	and task_id = #{taskId,jdbcType=INTEGER}
@@ -672,8 +687,8 @@
   <select id="checkNoPay" parameterType="com.goafanti.order.bo.TOrderBonusBo" resultType="java.lang.Integer">
   	select bonus_subject from t_order_bonus
 	where id = #{id,jdbcType=VARCHAR} and bonus_subject > (
-	select min(bonus_subject) from t_order_bonus 
+	select min(bonus_subject) from t_order_bonus
 	where order_no = #{orderNo,jdbcType=VARCHAR} and grant_status = 0 and grant_type = 0)
   </select>
-  
+
 </mapper>

+ 5 - 10
src/main/java/com/goafanti/common/mapper/TOrderInvoiceMapper.xml

@@ -657,9 +657,7 @@
 	<if test="type !=null">
 	and a.`type`= #{type,jdbcType=INTEGER}
 	</if>
-	<if test="financeId !=null">
-	and e.finance_id= #{financeId,jdbcType=VARCHAR}
-	</if>
+
 	<if test="orderNo !=null">
 	and a.order_no = #{orderNo,jdbcType=VARCHAR}
 	</if>
@@ -668,8 +666,8 @@
 	</if>
 	<if test="deps !=null">
 	and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
       </foreach>
 	</if>
 	<if test="status !=null">
@@ -706,9 +704,6 @@
 	<if test="type !=null">
 	and a.`type`= #{type,jdbcType=INTEGER}
 	</if>
-	<if test="financeId !=null">
-	and e.finance_id= #{financeId,jdbcType=VARCHAR}
-	</if>
 	<if test="orderNo !=null">
 	and a.order_no = #{orderNo,jdbcType=VARCHAR}
 	</if>
@@ -717,8 +712,8 @@
 	</if>
     <if test="deps !=null">
       and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
       </foreach>
     </if>
 	<if test="status !=null">

+ 10 - 16
src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml

@@ -440,12 +440,6 @@
     <if test="status != null">
       and b.legal_affairs_status = #{status}
     </if>
-    <if test="shiro==1">
-      and a.order_type in
-      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
-        #{dep}
-      </foreach>
-    </if>
     <if test="shiro ==2">
       and  c.superior_id = #{sid}
     </if>
@@ -461,8 +455,11 @@
     <if test="aid != null">
       and b.salesman_id = #{aid}
     </if>
-    <if test="depId != null">
-      and a.order_dep = #{depId}
+    <if test="deps != null">
+      and a.order_dep in
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
+      </foreach>
     </if>
     <if test="type==0">
       <if test="startTime != null and endTime != null">
@@ -496,12 +493,6 @@
     <if test="status != null">
       and b.legal_affairs_status = #{status}
     </if>
-    <if test="shiro==1">
-      and a.order_type in
-      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
-        #{dep}
-      </foreach>
-    </if>
     <if test="shiro ==2">
       and  c.superior_id = #{sid}
     </if>
@@ -517,8 +508,11 @@
     <if test="aid != null">
       and b.salesman_id = #{aid}
     </if>
-    <if test="depId != null">
-      and a.order_dep = #{depId}
+    <if test="deps != null">
+      and a.order_dep in
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
+      </foreach>
     </if>
     <if test="type==0">
       <if test="startTime != null and endTime != null">

+ 49 - 39
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -767,8 +767,8 @@
 	  	</if>
   		<if test="deps !=null">
 	  	and o.order_dep in
-          <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-            #{deps.id}
+          <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+            #{depId}
           </foreach>
 	  	</if>
 	  	<if test="o.contractNo != null and o.contractNo != &quot;&quot;">
@@ -847,8 +847,8 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
 	  	</if>
         <if test="deps !=null">
           and o.order_dep in
-          <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-            #{deps.id}
+          <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+            #{depId}
           </foreach>
         </if>
 	  	<if test="o.contractNo != null and o.contractNo != &quot;&quot;">
@@ -965,10 +965,6 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   	</if>
   	<if test="specially == 1">
   	and a.process_status = 1  and a.order_status = 1
-  	and a.order_dep in
-  	<foreach close=")" collection="deps" item="deps" open="(" separator=",">
-	 #{deps.id}
-  	</foreach>
   	</if>
   	<if test="specially == 2">
   	and a.order_status in(3,5)
@@ -1004,6 +1000,12 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   	<if test="specially == 4">
   	and a.process_status in (4,5,6,99)
   	and a.order_status  in(1,2,3,4,6)
+  	</if>
+    <if test="deps!=null">
+      and a.order_dep in
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
+      </foreach>
     </if>
   	<if test="distribution == 0">
   	and a.process_status &lt; 5
@@ -1047,13 +1049,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   	<if test="amountStatus == 4">
   	and a.total_amount  &gt; 40
   	</if>
-    <if test="deps!=null">
-      and a.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
-      </foreach>
-    </if>
-    <if test="starTime !=null and endTime !=null">
+  	<if test="starTime !=null and endTime !=null">
       and a.create_time between #{starTime,jdbcType=VARCHAR} and #{endTime,jdbcType=VARCHAR}
     </if>
     <if test="contractStart !=null and contractEnd !=null">
@@ -1115,11 +1111,6 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     </if>
   	<if test="specially == 1">
   	and a.process_status = 1  and a.order_status = 1
-  	<!-- and c.department_id in (#{deps,jdbcType=VARCHAR}) -->
-  	and a.order_dep in
-  	<foreach close=")" collection="deps" item="deps" open="(" separator=",">
-	 #{deps.id}
-  	</foreach>
   	</if>
   	<if test="specially == 2">
   	and a.order_status in(3,5)
@@ -1156,6 +1147,12 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   	and a.process_status in (4,5,6,99)
   	and a.order_status  in(1,2,3,4,6)
   	</if>
+     <if test="deps!=null">
+       and a.order_dep in
+       <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+         #{dep}
+       </foreach>
+     </if>
   	<if test="distribution == 0">
   	and a.process_status &lt; 5
   	</if>
@@ -1198,12 +1195,6 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   	<if test="amountStatus == 4">
   	and a.total_amount  &gt; 40
   	</if>
-     <if test="deps!=null">
-       and a.order_dep in
-       <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-         #{deps.id}
-       </foreach>
-     </if>
   	<if test="starTime !=null and endTime !=null">
   	and a.create_time between #{starTime,jdbcType=VARCHAR} and #{endTime,jdbcType=VARCHAR}
   	</if>
@@ -1272,8 +1263,11 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     <if test="contractNo != null">
       and b.contract_no like CONCAT('%',#{contractNo,jdbcType=VARCHAR},'%')
     </if>
-  	<if test="depId != null">
-  	and b.order_dep= #{depId,jdbcType=VARCHAR}
+  	<if test="deps != null">
+  	and b.order_dep in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
   	</if>
 	<if test="dunStatus != null">
     and  a.status= #{dunStatus}
@@ -1344,9 +1338,12 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
      <if test="contractNo != null">
        and b.contract_no like CONCAT('%',#{contractNo,jdbcType=VARCHAR},'%')
      </if>
-  	<if test="depId != null">
-  	and b.order_dep= #{depId,jdbcType=VARCHAR}
-  	</if>
+     <if test="deps != null">
+       and b.order_dep in
+       <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+         #{depId}
+       </foreach>
+     </if>
      <if test="dunStatus != null">
        and  a.status= #{dunStatus}
      </if>
@@ -1481,8 +1478,11 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     <if test="o.orderStatus != null and o.orderStatus != &quot;&quot;">
       and (o.order_status >=  #{o.orderStatus,jdbcType=INTEGER} or o.back_status=3)
     </if>
-    <if test="o.departmentId != null and o.departmentId != &quot;&quot;">
-      and o.order_dep = #{o.departmentId,jdbcType=INTEGER}
+    <if test="deps !=null">
+      and o.order_dep in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
     </if>
     <if test="o.contractNo != null and o.contractNo != &quot;&quot;">
       and o.contract_no like CONCAT('%',#{o.contractNo,jdbcType=VARCHAR},'%')
@@ -1599,8 +1599,8 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     </if>
     <if test="deps != null">
       and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
       </foreach>
     </if>
     <if test="shiroType !=3 and aid != null">
@@ -1642,8 +1642,8 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     </if>
     <if test="deps != null">
       and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
       </foreach>
     </if>
     <if test="shiroType !=3 and aid != null">
@@ -1755,8 +1755,11 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     <if test=" startDate !=null and endDate != null">
       and a.create_time between #{startDate} and #{endDate}
     </if>
-    <if test=" depId !=null">
-      and a.order_dep= #{depId}
+    <if test=" deps !=null">
+      and a.order_dep in
+      <foreach close=")" collection="listDep" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
     </if>
     <if test=" province !=null">
       and b.province = #{province}
@@ -1883,4 +1886,11 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
 
   </select>
 
+  <select id="checkOrderProcessStatus"  resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from t_order_new
+    where order_no = (select t_order_task.order_no from t_order_task where id=#{tid})
+  </select>
+
 </mapper>

+ 51 - 23
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -788,7 +788,7 @@
     e.order_status orderStatus,d.name as contacts,d.contact_mobile as contactsMobile,a.main, c.cname,
     c.sort cSort,a.commodity_name as commodityName,a.commodity_quantity as commodityQuantity,b.patent_transfer patentTransfer ,
     i.price,a.certificate_number as certificateNumber, a.commodity_id as commodityId,a.manager_id managerId,
-    a.consultant_id consultantId,a.project_status as projectStatus,a.set_up_amount setUpAmount,
+    a.consultant_id consultantId,a.project_status as projectStatus,a.set_up_amount setUpAmount,j.contract_term contractTerm,
     a.task_comment as taskComment ,a.commodity_price as commodityPrice, a.task_status as taskStatus,
     a.task_receiver as taskReceiver ,a.if_certification_fee ifCertificationFee , a.split_status splitStatus,
     a.cost_reduction costReduction,a.official_cost officialCost,i.`type` ,d.name ,a.declaration_batch declarationBatch,
@@ -813,13 +813,25 @@
            c.sort cSort,a.commodity_name as commodityName,a.commodity_quantity as commodityQuantity,i.price,a.certificate_number as certificateNumber,a.receiver_name receiverName,
            a.commodity_id as commodityId,a.manager_id managerId,a.consultant_id consultantId,a.project_status as projectStatus,a.set_up_amount setUpAmount,
            a.task_comment as taskComment ,a.commodity_price as commodityPrice, a.task_status as taskStatus,  a.task_receiver as taskReceiver ,
-           a.split_status splitStatus,a.split_super splitSuper,a.split_aid splitAid,a.split_time splitTime,a.patent_type patentType,
+           a.split_status splitStatus,a.split_super splitSuper,a.split_aid splitAid,a.split_time splitTime,a.patent_type patentType,ttm.contract_term contractTerm,
            a.picture_url pictureUrl, ttm.service_life serviceLife ,ttm.service_year serviceYear,ttm.year_sum yearSum
     from t_order_task a left join business_project b on a.commodity_id=b.id left join t_order_new e on a.order_no=e.order_no
     left join admin f on e.salesman_id=f.id left join department g on e.order_dep=g.id left join user h on e.buyer_id=h.id
     left join business_project i on a.commodity_id=i.id left join business_category c on b.cid=c.id left join admin d on a.task_receiver=d.id
     left join t_task_member ttm on a.id=ttm.tid
-    where a.super_id is null  and  a.order_no= #{orderNo,jdbcType=VARCHAR} order by a.id
+    where a.super_id is null   and  a.order_no= #{orderNo,jdbcType=VARCHAR}
+    <if test="splitStatus !=null">
+      <if test="splitStatus  &lt; 3">
+        and a.split_status= #{splitStatus}
+      </if>
+      <if test="splitStatus ==3">
+        and a.split_status in(0,1)
+      </if>
+      <if test="splitStatus ==4">
+        and a.split_status in(0,2)
+      </if>
+    </if>
+    order by a.id
   </select>
 
 
@@ -1193,17 +1205,24 @@
   </select>
 
   <select id="splitProjectList" resultType="com.goafanti.order.bo.TOrderTaskListBo">
-    select  a.id,a.commodity_name as taskName,a.order_no as orderNo,c.cname,d.name as receiverName,a.project_status as projectStatus,e.contract_no contractNo,a.task_receiver taskReceiver,
-            a.task_status as taskStatus,date_format(a.task_distribution_time,'%Y-%m-%d') as taskDate, a.commodity_quantity as commodityQuantity,e.approval,l.refund_status outsourceStatus,
-            ifnull(i.alreadyNumber,0) as alreadyNumber,f.nickname as userName,h.name as depName, j.name as outsourceName ,ifnull(k.hours,0) hours,a.split_status splitStatus,
-            a.split_super splitSuper,date_format(a.split_time,'%Y-%m-%d %H:%i:%S') splitTimes,ad.name splitAname,a.split_id splitId,a.patent_type  patentType
+    select  a.id,a.commodity_name as taskName,a.order_no as orderNo,c.cname,d.name as receiverName,a.project_status as projectStatus,d.contact_mobile receiverMobile,
+            e.contract_no contractNo,a.task_receiver taskReceiver, a.task_status as taskStatus,date_format(a.task_distribution_time,'%Y-%m-%d') as taskDate,
+            a.commodity_quantity as commodityQuantity,e.approval,l.refund_status outsourceStatus, ifnull(i.alreadyNumber,0) as alreadyNumber,a.task_comment taskComment ,
+            f.nickname as userName,h.name as depName, j.name as outsourceName ,ifnull(k.hours,0) hours,a.split_status splitStatus,a.split_super splitSuper,a.member_type memberType,
+            date_format(a.split_time,'%Y-%m-%d %H:%i:%S') splitTimes,ad.name splitAname,a.split_id splitId,a.patent_type  patentType,a.picture_url pictureUrl,
+            ttm.service_life serviceLife,ttm.service_year serviceYear ,ttm.year_sum yearSum ,ttm.contract_term contractTerm,a.process_status processStatus
     from t_order_task a left join business_project b on a.commodity_id=b.id left join business_category c on b.cid=c.id
-                        left join admin d on a.task_receiver=d.id left join t_order_new e on a.order_no=e.order_no left join user f on e.buyer_id=f.id
-                        left join department h on e.order_dep=h.id left join (select task_id , sum(already_number) as alreadyNumber from task_progress
-                                                                              group by task_id) i on a.id=i.task_id  left join (select order_no,max(name)as name from outsource_organization group by order_no) j
-                                                                                                                               on a.order_no=j.order_no left join task_hours_count k on a.id=k.tid and a.task_receiver=k.aid left join t_order_outsource l
-                                                                                                                                                                                                                                       on a.id=l.tid left join admin ad on ad.id=a.split_aid where  e.order_status not in (5,7)
-                                                                                                                                                                                                                                                                                               and split_status =2 and a.split_super= #{tid} order by split_id
+    left join admin d on a.task_receiver=d.id left join t_order_new e on a.order_no=e.order_no left join user f on e.buyer_id=f.id
+    left join department h on e.order_dep=h.id left join (select task_id , sum(already_number) as alreadyNumber
+        from task_progress group by task_id) i on a.id=i.task_id  left join (select order_no,max(name)as name
+        from outsource_organization group by order_no) j on a.order_no=j.order_no left join task_hours_count k on a.id=k.tid and a.task_receiver=k.aid
+    left join t_order_outsource l on a.id=l.tid left join admin ad on ad.id=a.split_aid left join t_task_member ttm on a.id=ttm.tid
+    where  e.order_status  in (0,1,2,3,4,5)
+    and split_status =2 and a.split_super= #{tid}
+    <if test="type == 1">
+      and a.process_status in(0,3)
+    </if>
+    order by split_id
   </select>
   <select id="selectByidGetCname" resultType="java.lang.String">
     select b.cname from business_project a left join business_category b on a.cid =b.id
@@ -1214,8 +1233,7 @@
   </update>
   <select id="getLockId" resultType="java.lang.String">
     select id from user_lock_release a left join (select commodity_id  from t_order_task
-                                                  where order_no = #{orderNo} GROUP by commodity_id )
-      b on a.business_project_id =b.commodity_id
+        where order_no = #{orderNo} GROUP by commodity_id ) b on a.business_project_id =b.commodity_id
     where a.`type` =1 and a.aid = #{aid} and a.uid = #{uid}
   </select>
 
@@ -1644,8 +1662,11 @@
     <if test="pname !=null">
       and a.commodity_name like concat('%',#{pname},'%')
     </if>
-    <if test="depId !=null">
-      and b.order_dep = #{depId}
+    <if test="deps !=null">
+      and b.order_dep in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
     </if>
     <if test="page_sql!=null">
       ${page_sql}
@@ -1675,8 +1696,11 @@
     <if test="pname !=null">
       and a.commodity_name like concat('%',#{pname},'%')
     </if>
-    <if test="depId !=null">
-      and b.order_dep = #{depId}
+    <if test="deps !=null">
+      and b.order_dep in
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
+      </foreach>
     </if>
   </select>
   <update id="resstPayment">
@@ -1789,8 +1813,8 @@
       </if>
     <if test="deps != null">
       and b.order_dep in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+        #{dep}
       </foreach>
     </if>
     <if test="contractNo != null">
@@ -1856,8 +1880,8 @@
       </if>
       <if test="deps != null">
         and b.order_dep in
-        <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-          #{deps.id}
+        <foreach close=")" collection="deps" item="dep" open="(" separator=",">
+          #{dep}
         </foreach>
       </if>
       <if test="contractNo != null">
@@ -1898,6 +1922,10 @@
     where b.id is not null and  noc.process_state &lt; 4 and noc.status in (0,1,2)
     and a.task_receiver = #{aid}
   </select>
+  <select id="getSplitCount" resultType="java.lang.Integer">
+    select count(*) from t_order_task
+    where split_super = #{tid}
+  </select>
 
 
 </mapper>

+ 57 - 17
src/main/java/com/goafanti/common/mapper/TTaskMemberMapper.xml

@@ -8,9 +8,10 @@
     <result column="service_year" jdbcType="VARCHAR" property="serviceYear" />
     <result column="year_sum" jdbcType="INTEGER" property="yearSum" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="contract_term" jdbcType="VARCHAR" property="contractTerm" />
   </resultMap>
   <sql id="Base_Column_List">
-    id, tid, service_life, service_year, year_sum, create_time
+    id, tid, service_life, service_year, year_sum, create_time, contract_term
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
     select
@@ -18,17 +19,17 @@
     from t_task_member
     where id = #{id,jdbcType=INTEGER}
   </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
     delete from t_task_member
     where id = #{id,jdbcType=INTEGER}
   </delete>
   <insert id="insert" parameterType="com.goafanti.common.model.TTaskMember">
     insert into t_task_member (id, tid, service_life,
-      service_year, year_sum, create_time
-      )
+      service_year, year_sum, create_time,
+      contract_term)
     values (#{id,jdbcType=INTEGER}, #{tid,jdbcType=INTEGER}, #{serviceLife,jdbcType=VARCHAR},
-      #{serviceYear,jdbcType=VARCHAR}, #{yearSum,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}
-      )
+      #{serviceYear,jdbcType=VARCHAR}, #{yearSum,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
+      #{contractTerm,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.TTaskMember">
     insert into t_task_member
@@ -51,6 +52,9 @@
       <if test="createTime != null">
         create_time,
       </if>
+      <if test="contractTerm != null">
+        contract_term,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -71,6 +75,9 @@
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="contractTerm != null">
+        #{contractTerm,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TTaskMember">
@@ -91,6 +98,9 @@
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="contractTerm != null">
+        contract_term = #{contractTerm,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -100,26 +110,56 @@
       service_life = #{serviceLife,jdbcType=VARCHAR},
       service_year = #{serviceYear,jdbcType=VARCHAR},
       year_sum = #{yearSum,jdbcType=INTEGER},
-      create_time = #{createTime,jdbcType=TIMESTAMP}
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      contract_term = #{contractTerm,jdbcType=VARCHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
 
-    <update id="updateByTid">
-      update t_task_member
+  <update id="updateByTid">
+    update t_task_member
+    <set>
+      <if test="serviceLife != null">
+        service_life = #{serviceLife,jdbcType=VARCHAR},
+      </if>
+      <if test="serviceYear != null">
+        service_year = #{serviceYear,jdbcType=VARCHAR},
+      </if>
+      <if test="yearSum != null">
+        year_sum = #{yearSum,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="contractTerm != null">
+      contract_term = #{contractTerm,jdbcType=VARCHAR}
+      </if>
+    </set>
+    where tid = #{tid,jdbcType=INTEGER}
+  </update>
+    <update id="updateSplitSuper">
+      update  t_order_task a ,t_task_member b
       <set>
-        <if test="serviceLife != null">
-          service_life = #{serviceLife,jdbcType=VARCHAR},
-        </if>
+      <if test="serviceLife != null">
+       b.service_life= #{serviceLife} ,
+      </if>
         <if test="serviceYear != null">
-          service_year = #{serviceYear,jdbcType=VARCHAR},
+          b.service_year= #{serviceYear} ,
         </if>
         <if test="yearSum != null">
-          year_sum = #{yearSum,jdbcType=INTEGER},
+          b.year_sum= #{yearSum} ,
         </if>
-        <if test="createTime != null">
-          create_time = #{createTime,jdbcType=TIMESTAMP},
+        <if test="contractTerm != null">
+          b.contract_term= #{contractTerm},
         </if>
       </set>
-      where tid = #{tid,jdbcType=INTEGER}
+      where a.id=b.tid and a.split_super = #{id}
     </update>
+
+    <select id="selectByTid" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from t_task_member
+    where tid = #{id,jdbcType=INTEGER}
+  </select>
+
 </mapper>

+ 89 - 65
src/main/java/com/goafanti/common/mapper/TemporaryReceivablesMapper.xml

@@ -92,7 +92,7 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Mon Oct 14 11:33:48 CST 2019.
     -->
-    id, order_no, corporate_name, amount, receivables_time, aid, remarks, status, create_time, 
+    id, order_no, corporate_name, amount, receivables_time, aid, remarks, status, create_time,
     financial_pay_no
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.TemporaryReceivablesExample" resultMap="BaseResultMap">
@@ -120,7 +120,7 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Mon Oct 14 11:33:48 CST 2019.
     -->
-    select 
+    select
     <include refid="Base_Column_List" />
     from temporary_receivables
     where id = #{id,jdbcType=INTEGER}
@@ -151,13 +151,13 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Mon Oct 14 11:33:48 CST 2019.
     -->
-    insert into temporary_receivables (id, order_no, corporate_name, 
-      amount, receivables_time, aid, 
-      remarks, status, create_time, 
+    insert into temporary_receivables (id, order_no, corporate_name,
+      amount, receivables_time, aid,
+      remarks, status, create_time,
       financial_pay_no)
-    values (#{id,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{corporateName,jdbcType=VARCHAR}, 
-      #{amount,jdbcType=DECIMAL}, #{receivablesTime,jdbcType=TIMESTAMP}, #{aid,jdbcType=VARCHAR}, 
-      #{remarks,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, 
+    values (#{id,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{corporateName,jdbcType=VARCHAR},
+      #{amount,jdbcType=DECIMAL}, #{receivablesTime,jdbcType=TIMESTAMP}, #{aid,jdbcType=VARCHAR},
+      #{remarks,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
       #{financialPayNo,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.TemporaryReceivables">
@@ -363,25 +363,25 @@
       financial_pay_no = #{financialPayNo,jdbcType=VARCHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  
+
    <delete id="deleteByids" parameterType="java.util.List">
     delete from temporary_receivables
-    where id in 
-	 <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">   
-            #{item}   
+    where id in
+	 <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
+            #{item}
          </foreach>
   </delete>
    <delete id="deleteByaid" parameterType="java.lang.String">
     delete from temporary_receivables
-    where aid = #{aid} 
+    where aid = #{aid}
   </delete>
   <delete id="deleteNormalByaid">
   delete from temporary_receivables
     where aid = #{aid} and status &lt; 2
   </delete>
   <select id="selectByaid" resultMap="BaseResultMap">
-  
-    select 
+
+    select
     <include refid="Base_Column_List" />
     from temporary_receivables
     where aid = #{aid,jdbcType=INTEGER}
@@ -391,15 +391,15 @@
     b.total_amount totalAmount,d.name depName,a.status ,b.settlement_amount settlementAmount,
 	a.financial_pay_no financialPayNo,a.amount,date_format(a.receivables_time, '%Y-%m-%d')receivablesTimes,
 	date_format(a.create_time, '%Y-%m-%d %H:%i:%S')createTimes,a.remarks,c.username
-	from temporary_receivables a left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id 
-	left join department d on b.order_dep=d.id left join admin e on b.salesman_id=e.id 
+	from temporary_receivables a left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id
+	left join department d on b.order_dep=d.id left join admin e on b.salesman_id=e.id
 	where 1=1
 	<if test="aid != null">
 	and  a.aid= #{aid}
 	</if>
 	<if test="contractNo != null">
 	b.contract_no like concat('%',#{contractNo},'%')
-	</if> 
+	</if>
 	<if test="orderNo != null">
 	and a.order_no = #{orderNo}
 	</if>
@@ -412,11 +412,17 @@
 	<if test="corporateName != null">
 	and a.corporate_name like concat('%',#{corporateName},'%')
 	</if>
-	<if test="orderDepId != null">
-	and b.order_dep= #{orderDepId}
+	<if test="orderDeps != null">
+	and b.order_dep in
+        <foreach close=")" collection="orderDeps" item="depId" open="(" separator=",">
+            #{depId}
+        </foreach>
 	</if>
-	<if test="adminDepId != null">
-	and  e.department_id= #{adminDepId}
+	<if test="adminDeps != null">
+	and  e.department_id in
+        <foreach close=")" collection="adminDeps" item="depId" open="(" separator=",">
+            #{depId}
+        </foreach>
 	</if>
 	<if test="status != null">
 	and a.status= #{status}
@@ -428,14 +434,14 @@
   </select>
   <select id="selectReceivablesCount"  resultType="java.lang.Integer">
   	select count(*) from temporary_receivables a left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id left join department d on b.order_dep=d.id
-	left join admin e on b.salesman_id=e.id 
+	left join admin e on b.salesman_id=e.id
 	where 1=1
 	<if test="aid != null">
 	and  a.aid= #{aid}
 	</if>
 	<if test="contractNo != null">
 	b.contract_no like concat('%',#{contractNo},'%')
-	</if> 
+	</if>
 	<if test="orderNo != null">
 	and a.order_no = #{orderNo}
 	</if>
@@ -448,26 +454,32 @@
 	<if test="corporateName != null">
 	and a.corporate_name like concat('%',#{corporateName},'%')
 	</if>
-	<if test="orderDepId != null">
-	and b.order_dep= #{orderDepId}
-	</if>
-	<if test="adminDepId != null">
-	and  e.department_id= #{adminDepId}
-	</if>
+      <if test="orderDeps != null">
+          and b.order_dep in
+          <foreach close=")" collection="orderDeps" item="depId" open="(" separator=",">
+              #{depId}
+          </foreach>
+      </if>
+      <if test="adminDeps != null">
+          and  e.department_id in
+          <foreach close=")" collection="adminDeps" item="depId" open="(" separator=",">
+              #{depId}
+          </foreach>
+      </if>
 	<if test="status != null">
 	and a.status= #{status}
 	</if>
   </select>
   <select id="getCountlistReceivablesAmount" parameterType="Map" resultType="java.lang.String">
-  select  ifnull(sum(a.amount),0) amount from temporary_receivables a left join t_order_new b on a.order_no=b.order_no 
-	left join user c on b.buyer_id=c.id left join department d on b.order_dep=d.id left join admin e on b.salesman_id=e.id 
+  select  ifnull(sum(a.amount),0) amount from temporary_receivables a left join t_order_new b on a.order_no=b.order_no
+	left join user c on b.buyer_id=c.id left join department d on b.order_dep=d.id left join admin e on b.salesman_id=e.id
 	where 1=1
 	<if test="aid != null">
 	and  a.aid= #{aid}
 	</if>
 	<if test="contractNo != null">
 	and b.contract_no like concat('%',#{contractNo},'%')
-	</if> 
+	</if>
 	<if test="orderNo != null">
 	and a.order_no = #{orderNo}
 	</if>
@@ -480,28 +492,34 @@
 	<if test="corporateName != null">
 	and a.corporate_name like concat('%',#{corporateName},'%')
 	</if>
-	<if test="orderDepId != null">
-	and b.order_dep= #{orderDepId}
-	</if>
-	<if test="adminDepId != null">
-	and  e.department_id= #{adminDepId}
-	</if>
+      <if test="orderDeps != null">
+          and b.order_dep in
+          <foreach close=")" collection="orderDeps" item="depId" open="(" separator=",">
+              #{depId}
+          </foreach>
+      </if>
+      <if test="adminDeps != null">
+          and  e.department_id in
+          <foreach close=")" collection="adminDeps" item="depId" open="(" separator=",">
+              #{depId}
+          </foreach>
+      </if>
 	<if test="status != null">
 	and a.status= #{status}
 	</if>
 	</select>
-	
+
 	<select id="getCountlistReceivablesTotalAmount" parameterType="Map" resultType="java.lang.String">
-  select ifnull(sum(x.total_amount),0) from (select  b.order_no,b.total_amount  from temporary_receivables a 
-  left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id left join department d on b.order_dep=d.id 
-	left join admin e on b.salesman_id=e.id 
+  select ifnull(sum(x.total_amount),0) from (select  b.order_no,b.total_amount  from temporary_receivables a
+  left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id left join department d on b.order_dep=d.id
+	left join admin e on b.salesman_id=e.id
 	where 1=1
 	<if test="aid != null">
 	and  a.aid= #{aid}
 	</if>
 	<if test="contractNo != null">
 	and b.contract_no like concat('%',#{contractNo},'%')
-	</if> 
+	</if>
 	<if test="orderNo != null">
 	and a.order_no = #{orderNo}
 	</if>
@@ -514,43 +532,49 @@
 	<if test="corporateName != null">
 	and a.corporate_name like concat('%',#{corporateName},'%')
 	</if>
-	<if test="orderDepId != null">
-	and b.order_dep= #{orderDepId}
-	</if>
-	<if test="adminDepId != null">
-	and  e.department_id= #{adminDepId}
-	</if>
+        <if test="orderDeps != null">
+            and b.order_dep in
+            <foreach close=")" collection="orderDeps" item="depId" open="(" separator=",">
+                #{depId}
+            </foreach>
+        </if>
+        <if test="adminDeps != null">
+            and  e.department_id in
+            <foreach close=")" collection="adminDeps" item="depId" open="(" separator=",">
+                #{depId}
+            </foreach>
+        </if>
 	<if test="status != null">
-	and a.status= #{status} 
+	and a.status= #{status}
 	</if>
 	group by b.order_no)x
 	</select>
-  
+
     <insert id="insertBatch" parameterType="com.goafanti.common.model.TemporaryReceivables">
     insert into temporary_receivables (id, order_no, corporate_name, amount, receivables_time,
      aid, remarks, status, create_time, financial_pay_no) values
       <foreach item="item" index="index" collection="list" separator=",">
-      (#{item.id,jdbcType=INTEGER}, #{item.orderNo,jdbcType=VARCHAR}, #{item.corporateName,jdbcType=VARCHAR}, 
-      #{item.amount,jdbcType=DECIMAL}, #{item.receivablesTime,jdbcType=TIMESTAMP}, #{item.aid,jdbcType=VARCHAR}, 
-      #{item.remarks,jdbcType=VARCHAR}, #{item.status,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, 
+      (#{item.id,jdbcType=INTEGER}, #{item.orderNo,jdbcType=VARCHAR}, #{item.corporateName,jdbcType=VARCHAR},
+      #{item.amount,jdbcType=DECIMAL}, #{item.receivablesTime,jdbcType=TIMESTAMP}, #{item.aid,jdbcType=VARCHAR},
+      #{item.remarks,jdbcType=VARCHAR}, #{item.status,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP},
       #{item.financialPayNo,jdbcType=VARCHAR})
     </foreach>
   </insert>
-  
+
   <update id="updateRepeatOrderNo" >
-	update temporary_receivables x ,(select a.order_no,a.amount,a.receivables_time,a.nickname 
-	from (select a.order_no,a.corporate_name,a.amount,a.receivables_time,b.nickname,count(1) counts 
-	from temporary_receivables a left join (select x1.order_no,y1.nickname from t_order_new x1 
-	left join user y1 on x1.buyer_id=y1.id )b on a.order_no=b.order_no where a.corporate_name=b.nickname 
-	group by a.order_no,a.corporate_name,a.amount,a.receivables_time)a where a.counts>1 )y set x.status=1 
-	where x.order_no=y.order_no and x.amount=y.amount and x.receivables_time=y.receivables_time 
+	update temporary_receivables x ,(select a.order_no,a.amount,a.receivables_time,a.nickname
+	from (select a.order_no,a.corporate_name,a.amount,a.receivables_time,b.nickname,count(1) counts
+	from temporary_receivables a left join (select x1.order_no,y1.nickname from t_order_new x1
+	left join user y1 on x1.buyer_id=y1.id )b on a.order_no=b.order_no where a.corporate_name=b.nickname
+	group by a.order_no,a.corporate_name,a.amount,a.receivables_time)a where a.counts>1 )y set x.status=1
+	where x.order_no=y.order_no and x.amount=y.amount and x.receivables_time=y.receivables_time
 	and x.corporate_name=y.nickname and x.aid= #{aid}
   </update>
   <select id="selectReceivablesNumberRepeats"  parameterType="com.goafanti.common.model.TemporaryReceivables" resultType="java.lang.Integer">
    select  count(*) from t_order_bill_new a left join user b on a.payer_id=b.id
-	where a.order_no= #{orderNo} 
+	where a.order_no= #{orderNo}
 	and b.nickname= #{corporateName}
-	and a.transaction_amount= #{amount} 
+	and a.transaction_amount= #{amount}
 	and a.financial_pay_time= #{receivablesTime}
   </select>
-</mapper>
+</mapper>

+ 4 - 4
src/main/java/com/goafanti/common/mapper/ThirdPartyCompanyMapper.xml

@@ -574,8 +574,8 @@ where x.id=  #{tid}
 		</if>
 		<if test="deps !=null">
 		and c.order_dep in
-          <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-            #{deps.id}
+          <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+            #{depId}
           </foreach>
 		</if>
 		<if test="aname !=null">
@@ -630,8 +630,8 @@ where x.id=  #{tid}
 		</if>
 		<if test="deps !=null">
 		and c.order_dep in
-          <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-            #{deps.id}
+          <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+            #{depId}
           </foreach>
 		</if>
 		<if test="aname !=null">

+ 4 - 4
src/main/java/com/goafanti/common/mapper/UserFollowMapper.xml

@@ -318,8 +318,8 @@
 		</if>
         <if test="deps != null">
           and d.department_id in
-          <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-            #{deps.id}
+          <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+            #{depId}
           </foreach>
         </if>
 		order by  a.create_time desc
@@ -372,8 +372,8 @@
       </if>
       <if test="deps != null">
         and d.department_id in
-        <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-          #{deps.id}
+        <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+          #{depId}
         </foreach>
       </if>
 	</select>

+ 10 - 4
src/main/java/com/goafanti/common/mapper/UserMapperExt.xml

@@ -1848,8 +1848,11 @@ inner join(
 				left join user y on x1.uid=y.id where x1.type=1
 				and x1.status=0 and y.integrity=1 group by aid,uid)x group by aid) i on a.id=i.aid
 	where a.status='正常'
-	<if test="depId!=null and depId!=''">
-	and a.department_id=	#{depId,jdbcType=VARCHAR}
+	<if test="deps!=null  and deps.size()>0">
+	and a.department_id in
+		<foreach close=")" collection="deps" item="depId" open="(" separator=",">
+			#{depId}
+		</foreach>
 	</if>
 	</select>
 	<select id="userDataStatisticsCount" resultType="com.goafanti.report.bo.userDataListBo">
@@ -1873,8 +1876,11 @@ inner join(
 				left join user y on x1.uid=y.id where x1.type=1
 				and x1.status=0 and y.integrity=1 group by aid,uid)x group by aid) i on a.id=i.aid
 	where a.status='正常'
-	<if test="depId!=null and depId!=''">
-	and a.department_id=	#{depId,jdbcType=VARCHAR}
+	<if test="deps!=null and deps.size()>0">
+	and a.department_id in
+		<foreach close=")" collection="deps" item="depId" open="(" separator=",">
+			#{depId}
+		</foreach>
 	</if>
 	)z
 	</select>

+ 4 - 4
src/main/java/com/goafanti/common/mapper/UserMidMapper.xml

@@ -576,8 +576,8 @@
     </if>
     <if test="deps != null">
       and a.department_id in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
       </foreach>
     </if>
     <if test="amountType != null">
@@ -612,8 +612,8 @@
     </if>
     <if test="deps != null">
       and a.department_id in
-      <foreach close=")" collection="deps" item="deps" open="(" separator=",">
-        #{deps.id}
+      <foreach close=")" collection="deps" item="depId" open="(" separator=",">
+        #{depId}
       </foreach>
     </if>
     <if test="amountType != null">

+ 9 - 2
src/main/java/com/goafanti/common/model/Department.java

@@ -5,7 +5,7 @@ import java.util.Date;
 
 /**
  * department
- * @author 
+ * @author
  */
 public class Department implements Serializable {
     /**
@@ -243,4 +243,11 @@ public class Department implements Serializable {
     public void setLvl(Integer lvl) {
         this.lvl = lvl;
     }
-}
+
+    public Department() {}
+    public Department(String id) {
+        this.id = id;
+    }
+
+
+}

+ 52 - 0
src/main/java/com/goafanti/common/model/TChangeTask.java

@@ -109,6 +109,26 @@ public class TChangeTask implements Serializable {
      */
     private Integer yearSum;
 
+    /**
+     * 合同期限
+     */
+    private String contractTerm;
+
+    /**
+     * 申报批次
+     */
+    private Integer declarationBatch;
+
+    /**
+     * 专利分类 0申请 1变更 2复审 3优先权 4恢复请求权 5无效宣告请求费 6强制许可请求费 7 强制许可使用裁决请求费 8登录、印刷费、印花税
+     */
+    private Integer patentType;
+
+    /**
+     * 变更拆分父id
+     */
+    private Integer changeSplitSuper;
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {
@@ -270,4 +290,36 @@ public class TChangeTask implements Serializable {
     public void setYearSum(Integer yearSum) {
         this.yearSum = yearSum;
     }
+
+    public String getContractTerm() {
+        return contractTerm;
+    }
+
+    public void setContractTerm(String contractTerm) {
+        this.contractTerm = contractTerm;
+    }
+
+    public Integer getDeclarationBatch() {
+        return declarationBatch;
+    }
+
+    public void setDeclarationBatch(Integer declarationBatch) {
+        this.declarationBatch = declarationBatch;
+    }
+
+    public Integer getPatentType() {
+        return patentType;
+    }
+
+    public void setPatentType(Integer patentType) {
+        this.patentType = patentType;
+    }
+
+    public Integer getChangeSplitSuper() {
+        return changeSplitSuper;
+    }
+
+    public void setChangeSplitSuper(Integer changeSplitSuper) {
+        this.changeSplitSuper = changeSplitSuper;
+    }
 }

+ 22 - 22
src/main/java/com/goafanti/common/model/TOrderBillNew.java

@@ -9,7 +9,7 @@ import com.goafanti.common.utils.excel.Excel;
 
 
 public class TOrderBillNew {
-    
+
 	@Excel(name = "订单编号")
 	private String orderNo;
 	@Excel(name = "合同编号")
@@ -63,16 +63,16 @@ public class TOrderBillNew {
 	 * @mbg.generated  Wed Feb 19 08:54:03 CST 2020
 	 */
 	private String payerId;
-	
-	
-	
-	
+
+
+
+
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bill_new.transaction_channel
 	 * @mbg.generated  Wed Feb 19 08:54:03 CST 2020
 	 */
 	private Integer transactionChannel;
-	
+
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bill_new.confirm_sign
 	 * @mbg.generated  Wed Feb 19 08:54:03 CST 2020
@@ -83,15 +83,15 @@ public class TOrderBillNew {
 	 * @mbg.generated  Wed Feb 19 08:54:03 CST 2020
 	 */
 	private Byte deleteSign;
-	
-	
+
+
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bill_new.financial_pay_time
 	 * @mbg.generated  Wed Feb 19 08:54:03 CST 2020
 	 */
 	private Date financialPayTime;
-	
-	
+
+
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bill_new.delete_time
 	 * @mbg.generated  Wed Feb 19 08:54:03 CST 2020
@@ -427,20 +427,20 @@ public class TOrderBillNew {
 		this.refundTime = refundTime;
 	}
 
-	
-    
+
+
     private String createrName;
     private String startTime;
     private String endTime;
-    private String departmentId;
+    private String deps;
     private String saleId;
     private String saleName;
     private String departmentName;
-	
+
 	private String deleteTimes;
 	private String refundTimes;
-	
-    
+
+
     public String getFinancialPayTimes() {
 		return this.financialPayTimes;
 	}
@@ -489,12 +489,12 @@ public class TOrderBillNew {
 		this.endTime = endTime;
 	}
 
-	public String getDepartmentId() {
-		return departmentId;
+	public String getDeps() {
+		return deps;
 	}
 
-	public void setDepartmentId(String departmentId) {
-		this.departmentId = departmentId;
+	public void setDeps(String deps) {
+		this.deps = deps;
 	}
 
 	public String getSaleId() {
@@ -522,7 +522,7 @@ public class TOrderBillNew {
 	}
 
 	public String getCreateTimes() {
-		return this.createTimes; 
+		return this.createTimes;
 	}
 
 	public void setCreateTimes(String createTimes) {
@@ -552,4 +552,4 @@ public class TOrderBillNew {
 	public void setRefundTimes(String refundTimes) {
 		this.refundTimes = refundTimes;
 	}
-}
+}

+ 13 - 0
src/main/java/com/goafanti/common/model/TTaskMember.java

@@ -38,6 +38,11 @@ public class TTaskMember implements Serializable {
      */
     private Date createTime;
 
+    /**
+     * 合同期限
+     */
+    private String contractTerm;
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {
@@ -87,4 +92,12 @@ public class TTaskMember implements Serializable {
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
+
+    public String getContractTerm() {
+        return contractTerm;
+    }
+
+    public void setContractTerm(String contractTerm) {
+        this.contractTerm = contractTerm;
+    }
 }

+ 2 - 1
src/main/java/com/goafanti/common/task/PatentTask.java

@@ -35,6 +35,7 @@ import com.goafanti.patent.service.PatentNewService;
 
 
 @Component
+//@RestController
 public class PatentTask {
 	@Resource
 	private PatentNewService patentNewService;
@@ -116,7 +117,7 @@ public class PatentTask {
 					n.setNoticeType(NoticeStatus.TASK_PATENT_ERROR.getCode());
 					Admin a = adminService.selectByPrimaryKey(p.getAid());
 					StringBuffer str2 = new StringBuffer();
-
+					str2.append("专利编号=").append(p.getPatentNo()).append("名称=").append(p.getName());
 					if (a == null) {
 						str2.append(",aid=").append(p.getAid()).append(",找不到管理员。");
 						n.setAid("1");

+ 11 - 0
src/main/java/com/goafanti/common/utils/AsyncUtils.java

@@ -4,6 +4,7 @@ import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import javax.mail.MessagingException;
 
@@ -64,6 +65,16 @@ public class AsyncUtils {
 		noticeMapper.insertSelective(n);
 	}
 
+	public void addNotic(Integer type, String  aid,String str) {
+		Notice n =new Notice();
+		n.setId(UUID.randomUUID().toString());
+		n.setAid(aid);
+		n.setNoticeType(type);
+		n.setContent(str);
+		n.setReaded(0);//未读
+		addNotice(n);
+	}
+
 	public void addNoticAndEmail(Notice n) {
 		n.setType(NoticeTypes.getType(n.getNoticeType()));
 		AdminListBo a = adminMapper.getDeptNameByAid(n.getAid());

+ 9 - 0
src/main/java/com/goafanti/order/bo/InputAddTask.java

@@ -6,6 +6,15 @@ public class InputAddTask  extends TOrderTask {
     private String serviceLife;
     private String serviceYear;
     private Integer yearSum;
+    private String contractTerm;
+
+    public String getContractTerm() {
+        return contractTerm;
+    }
+
+    public void setContractTerm(String contractTerm) {
+        this.contractTerm = contractTerm;
+    }
 
     public String getServiceLife() {
         return serviceLife;

+ 15 - 11
src/main/java/com/goafanti/order/bo/InputArrearsDunListBo.java

@@ -1,5 +1,7 @@
 package com.goafanti.order.bo;
 
+import java.util.List;
+
 public class InputArrearsDunListBo {
 	private String name;
 	private String  orderNo;
@@ -9,10 +11,18 @@ public class InputArrearsDunListBo {
 	private String  tStarTime;
 	private String  tEndTime;
 	private String  adminName;
-	private String  depId;
+	private String deps;
 	private Integer pageNo;
 	private Integer pageSize;
 
+	public String getDeps() {
+		return deps;
+	}
+
+	public void setDeps(String deps) {
+		this.deps = deps;
+	}
+
 	public String getContractNo() {
 		return contractNo;
 	}
@@ -45,20 +55,14 @@ public class InputArrearsDunListBo {
 	public void setEndTime(String endTime) {
 		this.endTime = endTime;
 	}
-	
+
 	public String getAdminName() {
 		return adminName;
 	}
 	public void setAdminName(String adminName) {
 		this.adminName = adminName;
 	}
-	public String getDepId() {
-		return depId;
-	}
-	public void setDepId(String depId) {
-		this.depId = depId;
-	}
-	
+
 	public Integer getPageNo() {
 		return pageNo;
 	}
@@ -83,7 +87,7 @@ public class InputArrearsDunListBo {
 	public void settEndTime(String tEndTime) {
 		this.tEndTime = tEndTime;
 	}
-	
-	
+
+
 
 }

+ 7 - 5
src/main/java/com/goafanti/order/bo/InputMemberList.java

@@ -1,9 +1,11 @@
 package com.goafanti.order.bo;
 
+import java.util.List;
+
 public class InputMemberList {
     private String orderNo;
     private String userName;
-    private String depId;
+    private String deps;
     private String contractNo;
     private String salesmanId;
     private String projectName;
@@ -44,12 +46,12 @@ public class InputMemberList {
         this.userName = userName;
     }
 
-    public String getDepId() {
-        return depId;
+    public String getDeps() {
+        return deps;
     }
 
-    public void setDepId(String depId) {
-        this.depId = depId;
+    public void setDeps(String deps) {
+        this.deps = deps;
     }
 
     public String getContractNo() {

+ 9 - 5
src/main/java/com/goafanti/order/bo/InputOrderInvoiceBo.java

@@ -1,7 +1,9 @@
 package com.goafanti.order.bo;
 
+import java.util.List;
+
 public class InputOrderInvoiceBo {
-	private String orderDep;
+	private String deps;
 	private String orderNo;
 	private String name;
 	private Integer type;
@@ -17,12 +19,14 @@ public class InputOrderInvoiceBo {
 		this.all = all;
 	}
 
-	public String getOrderDep() {
-		return orderDep;
+	public String getDeps() {
+		return deps;
 	}
-	public void setOrderDep(String orderDep) {
-		this.orderDep = orderDep;
+
+	public void setDeps(String deps) {
+		this.deps = deps;
 	}
+
 	public String getOrderNo() {
 		return orderNo;
 	}

+ 5 - 5
src/main/java/com/goafanti/order/bo/InputOrderListBo.java

@@ -5,7 +5,7 @@ public class InputOrderListBo {
     private Integer legalAffairs;
     private String contractNo;
     private String aid;
-    private String depId;
+    private String deps;
     private String depName;
     private String aName;
     private String startTime;
@@ -98,12 +98,12 @@ public class InputOrderListBo {
         this.aid = aid;
     }
 
-    public String getDepId() {
-        return depId;
+    public String getDeps() {
+        return deps;
     }
 
-    public void setDepId(String depId) {
-        this.depId = depId;
+    public void setDeps(String deps) {
+        this.deps = deps;
     }
 
     public Integer getPageSize() {

+ 188 - 0
src/main/java/com/goafanti/order/bo/InputOrderNewListBo.java

@@ -0,0 +1,188 @@
+package com.goafanti.order.bo;
+
+import java.util.List;
+
+public class InputOrderNewListBo {
+    private String aid;
+    private  String name;
+    private String orderNo;
+    private String starTime;
+    private String endTime;
+    private Integer specially;
+    private Integer approval;
+    private Integer distribution;
+    private String deps;
+    private String contractNo;
+    private Integer outsource;
+    private Integer liquidationStatus;
+    private Integer amountStatus;
+    private String contractStart;
+    private String contractEnd;
+    private String uid;
+    private Integer projectType;
+    private Integer processStatus;
+    private  Integer pageNo;
+    private Integer pageSize;
+
+    public String getDeps() {
+        return deps;
+    }
+
+    public void setDeps(String deps) {
+        this.deps = deps;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public String getStarTime() {
+        return starTime;
+    }
+
+    public void setStarTime(String starTime) {
+        this.starTime = starTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getSpecially() {
+        return specially;
+    }
+
+    public void setSpecially(Integer specially) {
+        this.specially = specially;
+    }
+
+    public Integer getApproval() {
+        return approval;
+    }
+
+    public void setApproval(Integer approval) {
+        this.approval = approval;
+    }
+
+    public Integer getDistribution() {
+        return distribution;
+    }
+
+    public void setDistribution(Integer distribution) {
+        this.distribution = distribution;
+    }
+
+
+
+    public String getContractNo() {
+        return contractNo;
+    }
+
+    public void setContractNo(String contractNo) {
+        this.contractNo = contractNo;
+    }
+
+    public Integer getOutsource() {
+        return outsource;
+    }
+
+    public void setOutsource(Integer outsource) {
+        this.outsource = outsource;
+    }
+
+    public Integer getLiquidationStatus() {
+        return liquidationStatus;
+    }
+
+    public void setLiquidationStatus(Integer liquidationStatus) {
+        this.liquidationStatus = liquidationStatus;
+    }
+
+    public Integer getAmountStatus() {
+        return amountStatus;
+    }
+
+    public void setAmountStatus(Integer amountStatus) {
+        this.amountStatus = amountStatus;
+    }
+
+    public String getContractStart() {
+        return contractStart;
+    }
+
+    public void setContractStart(String contractStart) {
+        this.contractStart = contractStart;
+    }
+
+    public String getContractEnd() {
+        return contractEnd;
+    }
+
+    public void setContractEnd(String contractEnd) {
+        this.contractEnd = contractEnd;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public Integer getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(Integer projectType) {
+        this.projectType = projectType;
+    }
+
+    public Integer getProcessStatus() {
+        return processStatus;
+    }
+
+    public void setProcessStatus(Integer processStatus) {
+        this.processStatus = processStatus;
+    }
+
+    public Integer getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Integer pageNo) {
+        this.pageNo = pageNo;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+}

+ 23 - 0
src/main/java/com/goafanti/order/bo/InputOrderSalesSource.java

@@ -1,5 +1,7 @@
 package com.goafanti.order.bo;
 
+import java.util.List;
+
 public class InputOrderSalesSource {
 
     private String startDate;
@@ -13,6 +15,27 @@ public class InputOrderSalesSource {
      */
     private Integer sort;
 
+
+    private String deps ;
+
+    private List<String> listDep;
+
+    public List<String> getListDep() {
+        return listDep;
+    }
+
+    public void setListDep(List<String> listDep) {
+        this.listDep = listDep;
+    }
+
+    public String getDeps() {
+        return deps;
+    }
+
+    public void setDeps(String deps) {
+        this.deps = deps;
+    }
+
     public String getDepName() {
         return depName;
     }

+ 11 - 9
src/main/java/com/goafanti/order/bo/InputProjectCheck.java

@@ -5,7 +5,7 @@ public class InputProjectCheck {
 	private String orderNo;
 	private String contractNo;
 	private String pname;
-	private String depId;
+	private String deps;
 	private Integer pageSize;
 	private Integer pageNo;
 	public String getName() {
@@ -27,12 +27,14 @@ public class InputProjectCheck {
 		this.contractNo = contractNo;
 	}
 
-	public String getDepId() {
-		return depId;
+	public String getDeps() {
+		return deps;
 	}
-	public void setDepId(String depId) {
-		this.depId = depId;
+
+	public void setDeps(String deps) {
+		this.deps = deps;
 	}
+
 	public Integer getPageSize() {
 		return pageSize;
 	}
@@ -51,8 +53,8 @@ public class InputProjectCheck {
 	public void setPname(String pname) {
 		this.pname = pname;
 	}
-	
-	
-	
-	
+
+
+
+
 }

+ 7 - 5
src/main/java/com/goafanti/order/bo/InputSignStatistics.java

@@ -1,8 +1,10 @@
 package com.goafanti.order.bo;
 
+import java.util.List;
+
 public class InputSignStatistics {
 
-    private String depId;
+    private List<String> deps;
     private String aid;
     private String uid;
     private Integer amountType;
@@ -29,12 +31,12 @@ public class InputSignStatistics {
         this.orderType = orderType;
     }
 
-    public String getDepId() {
-        return depId;
+    public List<String> getDeps() {
+        return deps;
     }
 
-    public void setDepId(String depId) {
-        this.depId = depId;
+    public void setDeps(List<String> deps) {
+        this.deps = deps;
     }
 
     public String getAid() {

+ 11 - 7
src/main/java/com/goafanti/order/bo/OrderListBo.java

@@ -1,6 +1,7 @@
 package com.goafanti.order.bo;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 import com.goafanti.common.utils.excel.Excel;
 
@@ -97,7 +98,7 @@ public class OrderListBo {
 	/** 收款公司名称 **/
 	private String companyName;
 	/** 部门编号*/
-	private String departmentId;
+	private String deps;
 	/** 外包*/
 	private Integer outsource;
 	/** 外包名称*/
@@ -121,6 +122,14 @@ public class OrderListBo {
 	@Excel(name="销售说明")
 	private String other;
 
+	public String getDeps() {
+		return deps;
+	}
+
+	public void setDeps(String deps) {
+		this.deps = deps;
+	}
+
 	public Integer getSalesType() {
 		return salesType;
 	}
@@ -350,12 +359,7 @@ public class OrderListBo {
 	public void setContractNo(String contractNo) {
 		this.contractNo = contractNo;
 	}
-	public String getDepartmentId() {
-		return departmentId;
-	}
-	public void setDepartmentId(String departmentId) {
-		this.departmentId = departmentId;
-	}
+
 	public Integer getOutsource() {
 		return outsource;
 	}

+ 20 - 2
src/main/java/com/goafanti/order/bo/TChangeTaskOut.java

@@ -9,7 +9,25 @@ public class TChangeTaskOut extends TChangeTask{
 	private String cname;
 	private String receiverName;
 	private Integer cSort;
+	private Integer patentTransfer;
+	private Integer taskType;
 	private List<?> list;
+
+	public Integer getTaskType() {
+		return taskType;
+	}
+
+	public void setTaskType(Integer taskType) {
+		this.taskType = taskType;
+	}
+
+	public Integer getPatentTransfer() {
+		return patentTransfer;
+	}
+
+	public void setPatentTransfer(Integer patentTransfer) {
+		this.patentTransfer = patentTransfer;
+	}
 	public Integer getcSort() {
 		return cSort;
 	}
@@ -34,6 +52,6 @@ public class TChangeTaskOut extends TChangeTask{
 	public void setReceiverName(String receiverName) {
 		this.receiverName = receiverName;
 	}
-	
-	
+
+
 }

+ 29 - 29
src/main/java/com/goafanti/order/bo/TOrderBonusBo.java

@@ -5,48 +5,48 @@ import java.math.BigDecimal;
 import com.goafanti.common.model.TOrderBonus;
 
 public class TOrderBonusBo extends TOrderBonus{
-	
+
 	private String targetName; //发放目标(可以是技术员和营销员)
-	
+
 	private String byName; //发放人
-	
+
 	private String salesName;//订单负责人
-	
+
 	private String commodityName;
-	
+
 	private Integer tid; //任务数量
-	
+
 	private Integer commodityQuantity; //任务数量
-	
+
 	private BigDecimal commodityPrice; //价格
-	
+
 	private Integer taskStatus; //任务状态
-	
+
 	private Integer liquidationStatus; //订单结算状态
-	
+
 	private String taskAllocator; //任务分配人
-	
+
 	private String taskReceiver; //任务负责人
-	
+
 	private Integer projectStatus; //项目状态
-	
+
 	private String acceptTime; //受理时间
-	
+
 	private String reviewTime; //评审日期
-	
+
 	private String publicityTime; //公示日期
-	
+
 	private String licenceTime; // 发证日期
-	
+
 	private String signTime; // 签单日期
-	
-	private String departmentId; // 部门id
+
+	private String deps; // 部门id
 	private String departmentName; // 部门名称
 	private String startTime;
 	private String endTime;
 	private String startTime1;
 	private String endTime1;
-	
+
 	private String buyId;
 	private String saleId;
 	private String buyName;
@@ -54,17 +54,17 @@ public class TOrderBonusBo extends TOrderBonus{
 	private BigDecimal firstAmount; //首付
 	private BigDecimal settlementAmount; //已收
 	private BigDecimal refundAmount; //已付
-	
+
 	private Integer orderStatus; //订单状态
 	private Float proofCount; //校对量
 	private Integer proofStatus; //校对状态
-	
-	
+
+
 	private String kejim;
 	private String renzm;
 	private String kejiy;
 	private String renzy;
-	
+
 	private Integer main;
 
 	public String getTargetName() {
@@ -219,12 +219,12 @@ public class TOrderBonusBo extends TOrderBonus{
 		this.salesName = salesName;
 	}
 
-	public String getDepartmentId() {
-		return departmentId;
+	public String getDeps() {
+		return deps;
 	}
 
-	public void setDepartmentId(String departmentId) {
-		this.departmentId = departmentId;
+	public void setDeps(String deps) {
+		this.deps = deps;
 	}
 
 	public String getSignTime() {
@@ -370,5 +370,5 @@ public class TOrderBonusBo extends TOrderBonus{
 	public void setEndTime1(String endTime1) {
 		this.endTime1 = endTime1;
 	}
-	
+
 }

+ 20 - 0
src/main/java/com/goafanti/order/bo/TOrderTaskBo.java

@@ -1,6 +1,7 @@
 package com.goafanti.order.bo;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.common.utils.excel.Excel;
@@ -46,8 +47,27 @@ public class TOrderTaskBo extends TOrderTask{
 
 	private String	serviceLife;
 	private String	serviceYear;
+	private String contractTerm;
 	private Integer	yearSum;
 
+	private List<TOrderTaskListBo> splitList;
+
+
+	public List<TOrderTaskListBo> getSplitList() {
+		return splitList;
+	}
+
+	public void setSplitList(List<TOrderTaskListBo> splitList) {
+		this.splitList = splitList;
+	}
+
+	public String getContractTerm() {
+		return contractTerm;
+	}
+
+	public void setContractTerm(String contractTerm) {
+		this.contractTerm = contractTerm;
+	}
 
 	public String getServiceLife() {
 		return serviceLife;

+ 103 - 0
src/main/java/com/goafanti/order/bo/TOrderTaskListBo.java

@@ -1,6 +1,7 @@
 package com.goafanti.order.bo;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 
@@ -73,6 +74,108 @@ public class TOrderTaskListBo {
 	@Excel(name = "专利分类",readConverterExp = "0=申请,1=变更,2=复审,3=优先权,4=恢复请求权,5=无效宣告请求费,6=强制许可请求费,7=强制许可使用裁决请求费,8=登录、印刷费、印花税")
 	private Integer patentType;
 
+	/**
+	 * 服务年限
+	 */
+	private String serviceLife;
+
+	/**
+	 * 本次年份
+	 */
+	private String serviceYear;
+
+	/**
+	 * 服务年限计数
+	 */
+	private Integer yearSum;
+
+	/**
+	 * 合同期限
+	 */
+	private String contractTerm;
+
+	private String taskComment;
+
+	private String pictureUrl;
+
+	private Integer processStatus;
+
+	private Integer memberType;
+
+	private String receiverMobile;
+
+	public String getReceiverMobile() {
+		return receiverMobile;
+	}
+
+	public void setReceiverMobile(String receiverMobile) {
+		this.receiverMobile = receiverMobile;
+	}
+
+	public Integer getMemberType() {
+		return memberType;
+	}
+
+	public void setMemberType(Integer memberType) {
+		this.memberType = memberType;
+	}
+
+	public String getPictureUrl() {
+		return pictureUrl;
+	}
+
+	public void setPictureUrl(String pictureUrl) {
+		this.pictureUrl = pictureUrl;
+	}
+
+	public Integer getProcessStatus() {
+		return processStatus;
+	}
+
+	public void setProcessStatus(Integer processStatus) {
+		this.processStatus = processStatus;
+	}
+
+	public String getTaskComment() {
+		return taskComment;
+	}
+
+	public void setTaskComment(String taskComment) {
+		this.taskComment = taskComment;
+	}
+
+	public String getServiceLife() {
+		return serviceLife;
+	}
+
+	public void setServiceLife(String serviceLife) {
+		this.serviceLife = serviceLife;
+	}
+
+	public String getServiceYear() {
+		return serviceYear;
+	}
+
+	public void setServiceYear(String serviceYear) {
+		this.serviceYear = serviceYear;
+	}
+
+	public Integer getYearSum() {
+		return yearSum;
+	}
+
+	public void setYearSum(Integer yearSum) {
+		this.yearSum = yearSum;
+	}
+
+	public String getContractTerm() {
+		return contractTerm;
+	}
+
+	public void setContractTerm(String contractTerm) {
+		this.contractTerm = contractTerm;
+	}
+
 	public Integer getPatentType() {
 		return patentType;
 	}

+ 24 - 46
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -3,8 +3,6 @@ package com.goafanti.order.controller;
 
 
 import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
@@ -127,10 +125,6 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return res.data(orderNewService.updateOrderTask(t));
 	}
 
-
-
-
-
 	/**
 	 * 删除订单项目
 	 */
@@ -143,6 +137,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		}
 		return res.data(orderNewService.delectOrderTask(id));
 	}
+
 	/**
 	 * 删除订单
 	 */
@@ -176,6 +171,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		res.setData(orderNewService.selectOrderTask(orderNo,type));
 		return res;
 	}
+
 	/**
 	 * 提交订单、发起订单
 	 */
@@ -189,7 +185,6 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return updateServiceOrder( t, 1, signDate);
 	}
 
-
 	/**
 	 * 修改订单
 	 */
@@ -217,8 +212,8 @@ public class AdminNewOrderApiController extends CertifyApiController {
 				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "主项目"));
 				return res;
 			}
-			if (orderNewService.checkORderDun(t.getOrderNo())) {
-				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "催款信息"));
+			if (orderNewService.checkOrderAmount(t)) {
+				res.getError().add(buildError( "总金额、项目金额总计、催款金额总计必须一致"));
 				return res;
 			}
 		}
@@ -271,6 +266,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return res;
 
 	}
+
 	/**
 	 * 收款截点编辑
 	 */
@@ -284,6 +280,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		res.setData(orderNewService.createOrderDun(orderDun,orderNo));
 		return res;
 	}
+
 	/**
 	 * 查看订单收款截点
 	 */
@@ -300,35 +297,15 @@ public class AdminNewOrderApiController extends CertifyApiController {
 
 	/**
 	 * 		订单列表
-	 * @param aid
-	 * @param name
-	 * @param orderNo
-	 * @param starTime
-	 * @param endTime
-	 * @param specially 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9 复审订单
-	 * @param approval
-	 * @param distribution (咨询师管理列表 0 未分配 1部分 2全部
-	 * @param depId
-	 * @param contractNo
-	 * @param outsource
-	 * @param liquidationStatus
-	 * @param amountStatus  0 10万元以下 1 10万~20万 2 20万~30万 3 30万~40万  4 40万以上
-	 * @param contractStart
-	 * @param contractEnd
-	 * @param uid
-	 * @param projectType
-	 * @param processStatus
-	 * @param pageNo
-	 * @param pageSize
+	 *  specially 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9 复审订单
+	 *  distribution (咨询师管理列表 0 未分配 1部分 2全部
+	 *  amountStatus  0 10万元以下 1 10万~20万 2 20万~30万 3 30万~40万  4 40万以上
 	 * @return
 	 */
 	@RequestMapping(value="/orderNewList", method = RequestMethod.GET)
-	public Result orderNewList(String aid,String name,String orderNo,String starTime,String endTime ,Integer specially ,Integer approval,
-			Integer distribution,String depId,String contractNo,Integer outsource,Integer liquidationStatus,Integer amountStatus,
-							   String contractStart,String contractEnd,String uid,Integer projectType,Integer processStatus,Integer pageNo,Integer pageSize){
+	public Result orderNewList(InputOrderNewListBo in){
 		Result res=new Result();
-		res.data(orderNewService.orderNewList(aid,name, orderNo, starTime, endTime, specially ,approval, distribution,depId,
-				contractNo,outsource, liquidationStatus,amountStatus,contractStart, contractEnd,uid, projectType,processStatus,pageNo, pageSize));
+		res.data(orderNewService.orderNewList(in));
 		return res;
 	}
 
@@ -375,10 +352,10 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	 */
 	@RequestMapping(value="/dunOrderNewList", method = RequestMethod.GET)
 	public Result dunOrderNewList(String name,String orderNo,String contractNo,String starTime,String endTime,Integer specially,String aid,
-			String adminName,String depId,Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,
+			String adminName,String deps,Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,
 								  Integer pageNo,Integer pageSize){
 		Result res=new Result();
-		res.data(orderNewService.dunOrderNewList(name, orderNo,contractNo, starTime, endTime,specially,aid,  adminName, depId,newStatus,
+		res.data(orderNewService.dunOrderNewList(name, orderNo,contractNo, starTime, endTime,specially,aid,  adminName, deps,newStatus,
 				approval,amountStatus,memberType,pageNo, pageSize));
 		return res;
 	}
@@ -392,6 +369,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		res.data(orderNewService.arrearsDunList(in));
 		return res;
 	}
+
 	/**
 	 * 新增催款记录
 	 */
@@ -409,6 +387,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		res.data(orderNewService.createDunLog(dunId, dumTime, remarks,attUrl));
 		return res;
 	}
+
 	/**
 	 * 催款记录查询
 	 */
@@ -422,6 +401,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 			res.data(orderNewService.selectDunLogList(dunId));
 			return res;
 	}
+
 	/**
 	 * 订单退单
 	 */
@@ -447,6 +427,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 			res.data(orderNewService.addOrderRefund(t));
 			return res;
 	}
+
 	/**
 	 * 退单详情
 	 */
@@ -460,6 +441,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 			res.data(orderNewService.orderRefundDetail(id));
 			return res;
 	}
+
 	/**
 	 * 订单退单
 	 */
@@ -481,6 +463,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 			res.data(orderNewService.updateOrderRefund(t));
 			return res;
 	}
+
 	/**
 	 * 审批特批订单
 	 * @param orderNo
@@ -503,6 +486,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		}
 		return res.data(orderNewService.updateApprovalOrder(orderNo,confirm,reason));
 	}
+
 	/**
 	 * 退单列表
 	 */
@@ -513,10 +497,6 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return res;
 	}
 
-
-
-
-
 	/**
 	 * 订单结单
 	 */
@@ -535,6 +515,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		res.setData(i);
 		return res;
 	}
+
 	/**
 	 * 咨询师驳回订单
 	 */
@@ -548,6 +529,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		}
 		return res;
 	}
+
 	/**
 	 * 财务订单转交
 	 */
@@ -596,10 +578,6 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return res;
 	}
 
-
-
-
-
 	/**
 	 * 催款列表下载
 	 * @throws IOException
@@ -611,6 +589,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return orderNewService.exportOrderDunData( name, orderNo,contractNo, starTime, endTime,specially, aid, adminName, depId,newStatus
 				, approval, amountStatus, memberType,pageNo, pageSize);
 	}
+
 	/**
 	 * 	项目列表下载
 	 * @throws IOException
@@ -622,7 +601,6 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		 return  excel.exportExcel(list,"订单项目列表",response);
 	}
 
-
 	/**
 	 * 	催款信息下载
 	 * @throws IOException
@@ -709,7 +687,6 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return excelUtil.exportExcel(list,"签单省份统计表",uploadPath,sb.substring(0,sb.toString().length()-1));
 	}
 
-
 	/**
 	 * 新增协单人员
 	 * @param in
@@ -733,6 +710,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		}
 		return res.data(orderAssistService.addAssist(in));
 	}
+
 	/**
 	 * 删除订单协单人员
 	 * @return

+ 8 - 6
src/main/java/com/goafanti/order/controller/AdminOrderReceivablesApiController.java

@@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -55,6 +56,8 @@ public class AdminOrderReceivablesApiController extends CertifyApiController {
 	private OrderInvoiceService	orderInvoiceService;
 	@Resource
 	private FundManageOrderService	fundManageOrderService;
+	@Value(value = "${upload.path}")
+	private String					uploadPath			= null;
 	/**
 	 * 	新增预计回款信息
 	 * @param t
@@ -123,13 +126,13 @@ public class AdminOrderReceivablesApiController extends CertifyApiController {
 	}
 
 	@RequestMapping(value ="/listReceivables",method = RequestMethod.GET)
-	public Result listReceivables(ReceivablesListBo rl,Integer status,String adminName,String adminDepId,String orderDepId,Integer pageSize,Integer pageNo){
+	public Result listReceivables(ReceivablesListBo rl,Integer status,String adminName,String adminDeps,String orderDeps,Integer pageSize,Integer pageNo){
 		Result res = new Result();
 		Map<String, Object>map =new HashMap<>();
 		//列表数据
-		map.put("pagination", orderReceivablesService.listReceivables(  rl,status,adminName,  adminDepId, orderDepId, pageSize, pageNo));
+		map.put("pagination", orderReceivablesService.listReceivables(  rl,status,adminName,  adminDeps, orderDeps, pageSize, pageNo));
 		//统计数据
-		map.put("count",orderReceivablesService.getCountlistReceivables(  rl,status,adminName,  adminDepId, orderDepId));
+		map.put("count",orderReceivablesService.getCountlistReceivables(  rl,status,adminName,  adminDeps, orderDeps));
 		res.data(map);
 		return res;
 	}
@@ -202,11 +205,10 @@ public class AdminOrderReceivablesApiController extends CertifyApiController {
     /**
 	 * 	导出回款
      *
-     * @param response
      * @return
      */
     @RequestMapping(value = "/exportReceivables" , method = RequestMethod.GET)
-    public Result exportReceivables(HttpServletResponse response,OrderListBo o,Integer pageSize ,Integer pageNo)  {
+    public Result exportReceivables(OrderListBo o,Integer pageSize ,Integer pageNo)  {
     	if (pageSize==null)pageSize=99999;
     	o.setOrderStatus(2);//营销管理员审核通过
     	@SuppressWarnings("unchecked")
@@ -214,7 +216,7 @@ public class AdminOrderReceivablesApiController extends CertifyApiController {
 		@SuppressWarnings("unchecked")
 		List<OrderListBo> list=(List<OrderListBo>)p.getList() ;
     	NewExcelUtil<OrderListBo>excel=new NewExcelUtil<>(OrderListBo.class);
-		 return  excel.exportExcel(list,"订单回款列表",response);
+		 return  excel.exportExcel(list,"订单回款列表",uploadPath);
     	}
 
     /**

+ 41 - 41
src/main/java/com/goafanti/order/controller/OrderBonusStatisticsApiController.java

@@ -60,10 +60,10 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 res.setData(fundManageOrderServiceImpl.updateProofreading(orderNew));
 		 return res;
 	 }
-	 
+
 	 /**
 	  * 营销员奖金统计
-	  * @param orderNewBo
+	  * @param bonusBo
 	  * @return
 	  */
 	 @RequestMapping(value="/saleBonusStatistics", method = RequestMethod.GET)
@@ -72,7 +72,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 res.setData(orderBonusServiceImpl.saleBonusStatistics(bonusBo, pageNo, pageSize));
 		 return res;
 	 }
-	 
+
 	 /**
 	  * 财务专员发放营销员奖金
 	  * @param id
@@ -89,7 +89,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 			}
 		 return res;
 	 }
-	 
+
 	 /**
 	  * 财务专员查看技术员奖金数据
 	  * @param bonusBo
@@ -103,7 +103,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 res.setData(orderBonusServiceImpl.technicianBonusStatistics(bonusBo, pageNo, pageSize));
 		 return res;
 	 }
-	 
+
 	 /**
 	  * 财务专员发放技术员的奖金操作
 	  * @param id
@@ -115,8 +115,8 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 res.setData(orderBonusServiceImpl.updateChangeBonus(id));
 		 return res;
 	 }
-	 
-	 
+
+
 	 /**
 	  * 财务专员导出营销员奖金数据
 	  * @param bonusBo
@@ -138,20 +138,20 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 			 cell.setCellValue("没有营销员奖金记录");
 		 }
 		 String fileName = "营销员奖金统计" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
-		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
-		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));
+		 response.setContentType("application/octet-stream;charset=utf-8");
 		 try {
 			 // 返回数据流
-			 wb.write(out); 
+			 wb.write(out);
 			 out.flush();
 			 out.close();
 		 } finally {
-			 out.flush(); 
-			 out.close(); 
+			 out.flush();
+			 out.close();
 		 }
 		 return res;
 	 }
-	 
+
 	/**
 	 * 导出技术员(咨询师)的奖金数据
 	 * @param bonusBo
@@ -173,20 +173,20 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 			 cell.setCellValue("没有技术员奖金记录");
 		 }
 		 String fileName = "技术员奖金统计" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
-		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
-		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));
+		 response.setContentType("application/octet-stream;charset=utf-8");
 		 try {
 			 // 返回数据流
-			 wb.write(out); 
+			 wb.write(out);
 			 out.flush();
 			 out.close();
 		 } finally {
-			 out.flush(); 
-			 out.close(); 
+			 out.flush();
+			 out.close();
 		 }
 		 return res;
 	 }
-	 
+
 	 /**
 	  * 订单报表统计数据
 	  * @param reportBo
@@ -205,7 +205,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		res.setData(orderReportServiceImpl.getOrderReportData(reportBo, pageNo, pageSize));
 		return res;
 	 }
-	 
+
 	 /**
 	  * 导出订单数据
 	  * @param orderReportBo
@@ -221,7 +221,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 			res.getError().add(buildError("", "没有指定订单日期"));
 			return res;
 		 }
-		 String date = orderReportBo.getMonth() == orderReportBo.getMonth1() ? orderReportBo.getMonth().toString() : orderReportBo.getMonth() + "-" + orderReportBo.getMonth1(); 
+		 String date = orderReportBo.getMonth() == orderReportBo.getMonth1() ? orderReportBo.getMonth().toString() : orderReportBo.getMonth() + "-" + orderReportBo.getMonth1();
 		 OutputStream out = response.getOutputStream();
 		 XSSFWorkbook wb = orderReportServiceImpl.exportMonthData(orderReportBo, date);
 		 if(null == wb){
@@ -232,16 +232,16 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 			 cell.setCellValue("没有订单统计记录");
 		 }
 		 String fileName = "订单统计" + date + ".xls";
-		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
-		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));
+		 response.setContentType("application/octet-stream;charset=utf-8");
 		 try {
 			 // 返回数据流
-			 wb.write(out); 
+			 wb.write(out);
 			 out.flush();
 			 out.close();
 		 } finally {
-			 out.flush(); 
-			 out.close(); 
+			 out.flush();
+			 out.close();
 		 }
 		 return res;
 	 }
@@ -281,10 +281,10 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 				res.setData(orderReportServiceImpl.saveUploadData(boSet));
 			} catch (IOException e) {
 				e.printStackTrace();
-			}	
+			}
 		return res;
 	}
-	
+
 	/**
 	 * 下载年度订单数据模板
 	 * @param response
@@ -297,20 +297,20 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 OutputStream out = response.getOutputStream();
 		 XSSFWorkbook wb = ExportExcelUtil.downOrderModelExcel();
 		 String fileName = "导入年度销售数据模板.xls";
-		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
-		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));
+		 response.setContentType("application/octet-stream;charset=utf-8");
 		 try {
 			 // 返回数据流
-			 wb.write(out); 
+			 wb.write(out);
 			 out.flush();
 			 out.close();
 		 } finally {
-			 out.flush(); 
-			 out.close(); 
+			 out.flush();
+			 out.close();
 		 }
 		return res;
 	}
-	 
+
 	/**
 	 * 手动更新校对单量
 	 * @param report
@@ -322,7 +322,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		res.setData(orderReportServiceImpl.updateMonthDataById(report));
 		return res;
 	}
-	
+
 	/**
 	 * 营销管理员查看所有营销员奖金
 	 * @param bonusBo
@@ -336,7 +336,7 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 res.setData(orderBonusServiceImpl.saleBonusStatistics(bonusBo, pageNo, pageSize));
 		 return res;
 	}
-	
+
 	/**
 	 * 营销管理员导出所有营销员奖金
 	 * @param bonusBo
@@ -357,16 +357,16 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 			 cell.setCellValue("没有营销员奖金记录");
 		 }
 		 String fileName = "营销员奖金统计" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
-		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
-		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));
+		 response.setContentType("application/octet-stream;charset=utf-8");
 		 try {
 			 // 返回数据流
-			 wb.write(out); 
+			 wb.write(out);
 			 out.flush();
 			 out.close();
 		 } finally {
-			 out.flush(); 
-			 out.close(); 
+			 out.flush();
+			 out.close();
 		 }
 		 return res;
 	 }

+ 57 - 11
src/main/java/com/goafanti/order/controller/OrderChangeApiController.java

@@ -21,7 +21,8 @@ import com.goafanti.order.bo.InputTChangeTask;
 import com.goafanti.order.bo.NewOrderChangeBo;
 import com.goafanti.order.service.OrderChangeService;
 
-import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.List;
 
 @RestController
 @RequestMapping(value = "/api/admin/orderChange")
@@ -32,7 +33,7 @@ public class OrderChangeApiController extends CertifyApiController {
 
 
 	/**
-	 *  新增变更
+	 *  新增变更、发起变更
 	 */
 	@RequestMapping(value = "/addOrderChange", method = RequestMethod.POST)
 	public Result addOrderChange(NewOrderChangeBo t,String startRemarks){
@@ -290,7 +291,6 @@ public class OrderChangeApiController extends CertifyApiController {
 	 * @param timeType
 	 * @param startTime
 	 * @param endTime
-	 * @param depId
 	 * @param salesmanName
 	 * @param complete
 	 * @param orderNo
@@ -301,11 +301,11 @@ public class OrderChangeApiController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value ="/orderChangeList",method = RequestMethod.GET)
-	public Result orderChangeList(String userName,Integer  processState,Integer timeType,String startTime,String endTime,
-			String depId,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type,Integer pageSize, Integer pageNo) {
+	public Result orderChangeList(String userName, Integer  processState, Integer timeType, String startTime, String endTime,
+								  String deps, String salesmanName, Integer complete, String orderNo, String contractNo, Integer type, Integer pageSize, Integer pageNo) {
 		Result res =new Result();
 		res.data(orderChangeService.selectOrderChangeList( userName,  processState, timeType, startTime, endTime,
-				depId, salesmanName, complete, orderNo,  contractNo, type,pageSize,  pageNo));
+				 deps, salesmanName, complete, orderNo,  contractNo, type,pageSize,  pageNo));
 		return res;
 	}
 	/**
@@ -376,7 +376,7 @@ public class OrderChangeApiController extends CertifyApiController {
 		return res;
 	}
 	/**
-	 * 完成变更、完成变更
+	 * 完成变更、变更完成
 	 */
 	@RequestMapping(value ="/completeOrderChange",method = RequestMethod.GET)
 	public Result completeOrderChange(NewOrderChangeBo nb) {
@@ -434,12 +434,12 @@ public class OrderChangeApiController extends CertifyApiController {
      */
     @RequestMapping(value = "/exportMyChange" , method = RequestMethod.GET)
     public Result exportMyBill(HttpServletResponse response,String userName,Integer  processState,Integer timeType,String startTime,String endTime,
-			String depId,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type,Integer pageSize, Integer pageNo)  {
+							   String deps,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type,Integer pageSize, Integer pageNo)  {
     	Result res=new Result();
 			try {
-				orderChangeService.exportMyChange( response, userName,  processState, timeType, startTime, endTime,
-						 depId, salesmanName, complete, orderNo,  contractNo, type, pageSize,  pageNo);
-			} catch (Exception e) {
+				orderChangeService.exportMyChange(response,userName,processState,timeType,startTime,endTime,deps,salesmanName,complete,
+				orderNo,contractNo,type,pageSize,pageNo);
+			} catch (IOException e) {
 				res.getError().add(buildError("格式不正确"));
 				e.printStackTrace();
 				return res;
@@ -522,5 +522,51 @@ public class OrderChangeApiController extends CertifyApiController {
 		return res;
 	}
 
+	/**
+	 * 新增会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/addMemberSonProject" ,method = RequestMethod.POST)
+	public Result addMemberSonProject(Integer id,String serviceYear,String taskComment){
+		Result res = new Result();
+		if(id==null||StringUtils.isBlank(serviceYear)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","参数"));
+			return res;
+		}
+		return res.data(orderChangeService.addMemberSonProject( id, serviceYear, taskComment));
+
+	}
+
+	/**
+	 * 删除会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/deleteMemberSonProject" ,method = RequestMethod.POST)
+	public Result deleteMemberSonProject(Integer id){
+		Result res = new Result();
+		if(id==null){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			return res;
+		}
+		return res.data(orderChangeService.deleteMemberSonProject( id));
+	}
 
+
+
+	/**
+	 * 新增会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/updateMemberSonProject" ,method = RequestMethod.POST)
+	public Result updateMemberSonProject(Integer id,String taskComment){
+		Result res = new Result();
+		if(id==null){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","参数"));
+			return res;
+		}
+		return res.data(orderChangeService.updateMemberSonProject( id,taskComment));
+	}
 }

+ 53 - 3
src/main/java/com/goafanti/order/controller/OrderProjectApiController.java

@@ -127,7 +127,7 @@ public class OrderProjectApiController extends CertifyApiController {
 	 * 任务详情
 	 */
 	@RequestMapping(value="/orderTaskDetail" ,method = RequestMethod.GET)
-	public Result orderTaskDetail(String id){
+	public Result orderTaskDetail(Integer id){
 		Result res=new Result();
 		res.setData(orderProjectService.orderTaskDetail(id));
 		return res;
@@ -316,7 +316,7 @@ public class OrderProjectApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"项目和拆分数","项目和拆分数"));
 			return res;
 		}
-		res.setData(orderProjectService.splitProjectList(tid));
+		res.setData(orderProjectService.splitProjectList(tid,1));
 		return res;
 	}
 
@@ -492,7 +492,7 @@ public class OrderProjectApiController extends CertifyApiController {
 	@RequestMapping(value = "/addMemberProject" ,method = RequestMethod.POST)
 	public Result addMemberProject(InputAddTask t){
 		Result res = new Result();
-		if(org.apache.commons.lang3.StringUtils.isBlank(t.getOrderNo())){
+		if(StringUtils.isBlank(t.getOrderNo())){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
 			return res;
 		}
@@ -578,4 +578,54 @@ public class OrderProjectApiController extends CertifyApiController {
 	}
 
 
+	/**
+	 * 新增会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/addMemberFirstSonProject" ,method = RequestMethod.POST)
+	public Result addMemberFirstSonProject(Integer tid,String serviceYear,String taskComment){
+		Result res = new Result();
+		if(tid==null||StringUtils.isBlank(serviceYear)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","参数"));
+			return res;
+		}
+		if (orderProjectService.checkOrderProcessStatus(tid,0)){
+			res.getError().add(buildError("项目已发起,不允许使用首次新增会员子项目。"));
+			return res;
+		}
+		return res.data(orderProjectService.addMemberSonProject( tid, serviceYear, taskComment,null,null));
+
+	}
+	/**
+	 * 新增会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/addMemberSonProject" ,method = RequestMethod.POST)
+	public Result addMemberSonProject(Integer tid,String serviceYear,String taskComment,Integer memberType,String pictureUrl){
+		Result res = new Result();
+		if(tid==null||StringUtils.isBlank(serviceYear)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","参数"));
+			return res;
+		}
+		return res.data(orderProjectService.addMemberSonProject( tid, serviceYear, taskComment,memberType, pictureUrl));
+
+	}
+
+	/**
+	 * 删除会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/deleteMemberSonProject" ,method = RequestMethod.POST)
+	public Result deleteMemberSonProject(Integer id){
+		Result res = new Result();
+		if(id==null){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			return res;
+		}
+		return res.data(orderProjectService.deleteMemberSonProject( id));
+	}
+
 }

+ 9 - 4
src/main/java/com/goafanti/order/service/OrderChangeService.java

@@ -39,7 +39,6 @@ public interface OrderChangeService {
 	 * @param timeType
 	 * @param startTime
 	 * @param endTime
-	 * @param depId
 	 * @param salesmanName
 	 * @param complete
 	 * @param orderNo
@@ -50,7 +49,7 @@ public interface OrderChangeService {
 	 * @return
 	 */
 	Pagination<NewOderCahngeListBo> selectOrderChangeList(String userName,Integer  processState,Integer timeType,String startTime,String endTime,
-			String depId,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type, Integer pageSize, Integer pageNo );
+														  String deps,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type, Integer pageSize, Integer pageNo );
 
 	int updateOrderChange(NewOrderChangeBo t, Integer changeType,String startRemarks);
 
@@ -67,12 +66,12 @@ public interface OrderChangeService {
 	Map<String ,Object> listOrderInvoiceAndBill(String orderNo);
 
 	void exportMyChange(HttpServletResponse response, String userName, Integer processState, Integer timeType,
-			String startTime, String endTime, String depId, String salesmanName, Integer complete,String orderNo, String contractNo,Integer type, Integer pageSize,
+			String startTime, String endTime, String deps, String salesmanName, Integer complete,String orderNo, String contractNo,Integer type, Integer pageSize,
 			Integer pageNo) throws IOException ;
 
 
 
-	int addChangeTask(TChangeTask t);
+	Object addChangeTask(TChangeTask t);
 
 	int addChangeDun(TChangeDun d);
 
@@ -108,4 +107,10 @@ public interface OrderChangeService {
 	int pushCompleteRefund(NewOrderChangeBo nb);
 
     boolean checkChangeId(Integer id);
+
+    Object addMemberSonProject(Integer id, String serviceYear, String taskComment);
+
+	int deleteMemberSonProject(Integer id);
+
+    Object updateMemberSonProject(Integer id,String taskComment);
 }

+ 8 - 21
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -26,7 +26,7 @@ public interface OrderNewService {
 	 * 创建项目
 	 * @param t
 	 */
-	int addOrderTask(InputAddTask t);
+	InputAddTask addOrderTask(InputAddTask t);
 
 	int addMemberProject(InputAddTask t);
 	/**
@@ -62,17 +62,8 @@ public interface OrderNewService {
 	int createOrderDun(String orderDun,String orderNo);
 	/**
 	 * 订单列表
-	 * @param name
-	 * @param orderNo
-	 * @param starTime
-	 * @param endTime
-	 * @param pageNo
-	 * @param pageSize
-	 * @param amountStatus
 	 */
-	Pagination<TOrderNewBo> orderNewList(String aid,String name, String orderNo, String starTime, String endTime,Integer specially ,
-										 Integer approval,Integer distribution,String depId,String contractNo,Integer outsource,Integer liquidationStatus, Integer amountStatus,
-										 String contractStart, String contractEnd,String uid,Integer projectType,Integer processStatus, Integer pageNo, Integer pageSize);
+	Pagination<TOrderNewBo> orderNewList(InputOrderNewListBo in);
 	/**
 	 * 订单审核
 	 * @param orderNo
@@ -90,7 +81,8 @@ public interface OrderNewService {
 	 * @param pageNo
 	 * @param pageSize
 	 */
-	Pagination<outOrderDunListBo> dunOrderNewList(String name, String orderNo,String contractNo, String starTime, String endTime,Integer specially, String aid,String adminName,String depId,
+	Pagination<outOrderDunListBo> dunOrderNewList(String name, String orderNo,String contractNo, String starTime, String endTime,Integer specially, String aid,
+												  String adminName,String deps,
 			Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,Integer pageNo, Integer pageSize);
 
 	Result exportOrderDunData(String name, String orderNo, String contractNo, String starTime, String endTime, Integer specially, String aid, String adminName,
@@ -165,7 +157,7 @@ public interface OrderNewService {
 	 */
 	void addTimingTaskNewDunNoticAndSendEmail( OutNewOrderDunBo o,Integer type);
 
-	boolean checkORderDun(String orderNo);
+	boolean checkOrderAmount(TOrderNewWithBLOBs t);
 
 	int updateFinance(String orderNo, String newFinance);
 	List<TOrderLogBo> selectOrderLog(String orderNo);
@@ -216,17 +208,12 @@ public interface OrderNewService {
 	 */
 	void addNotic(Integer type,  TOrderNewBo b,String str);
 
-	/**
-	 *
-	 * @param type 消息类型
-	 * @param b  订单信息
-	 * @param shiroType  0财务 1特批
-	 * @param  result 0审核 1通过
-	 */
-	void addNoticMember(Integer type,  TOrderNewBo b,Integer shiroType,Integer result);
+
 	Pagination<TOrderNewBo> statisticsOrderList(InputStatisticsOrderList in);
 
 	int updateSalesType(TOrderNew in);
 
 
+	int addTaskMid(Integer id,String commodityId, String orderNo);
+
 }

+ 39 - 2
src/main/java/com/goafanti/order/service/OrderProjectService.java

@@ -25,7 +25,7 @@ public interface OrderProjectService {
 
 	Pagination<TOrderTaskListBo> orderTaskList(inuptTaskListBo ib);
 
-	TOrderTaskDetailBo orderTaskDetail(String id);
+	TOrderTaskDetailBo orderTaskDetail(Integer id);
 
 	int updateOrderTask(TOrderTaskDetailBo t);
 
@@ -54,7 +54,7 @@ public interface OrderProjectService {
 
 	int pushSplitProject(Integer tid, String splitList);
 
-	List<TOrderTaskListBo> splitProjectList(Integer tid);
+	List<TOrderTaskListBo> splitProjectList(Integer tid,Integer type);
 
 	void addNoticAndEmail(OutPaymentNode pn, Integer code);
 
@@ -95,4 +95,41 @@ public interface OrderProjectService {
 	void addMemberLog(Integer id,Integer status ,String remarks);
 
 	List<MemberLogBo> memberLog(Integer id);
+
+	/**
+	 *
+	 * @param tid
+	 * @param serviceYear
+	 * @param taskComment
+	 * @param type 0首次新增 1会员新增
+	 * @return
+	 */
+	TOrderTask addMemberSonProject(Integer tid, String serviceYear, String taskComment,Integer type,String pictureUrl);
+
+	/**
+	 *
+	 * @param type 消息类型
+	 * @param b  订单信息
+	 * @param shiroType  0财务 1特批
+	 * @param  result 0审核 1通过
+	 */
+	void addNoticMember(Integer type,  TOrderNewBo b,Integer shiroType,Integer result);
+
+	int deleteMemberSonProject(Integer id);
+
+	/**
+	 *
+	 * @param tid 项目编号
+	 * @param  processStatus 流程状态 0-已派营销员,1-已派营销员管理员,2-已派财务管理员,3-已派财务专员,4-已派咨询师管理员,5-已部分派咨询师经理,6-已部全部派咨询师经理
+	 * @return
+	 */
+    boolean checkOrderProcessStatus(Integer tid, Integer processStatus);
+
+	/**
+	 * 根据订单编号获取项目编号来判断当前订单的流程状态
+	 * 仅用于咨询师管理员以后
+	 * @param orderNo
+	 * @return
+	 */
+	Integer getOrderProcessStatus(String orderNo);
 }

+ 3 - 3
src/main/java/com/goafanti/order/service/OrderReceivablesService.java

@@ -24,12 +24,12 @@ public interface OrderReceivablesService {
 
 	void batchListReceivables(MultipartFile file);
 
-	Pagination<ReceivablesListBo> listReceivables(ReceivablesListBo rl,Integer status,String adminName, String adminDepId, String orderDepId, Integer pageSize,
+	Pagination<ReceivablesListBo> listReceivables(ReceivablesListBo rl,Integer status,String adminName, String adminDeps, String orderDeps, Integer pageSize,
 			Integer pageNo);
 
 
-	Map<String, Object> getCountlistReceivables(ReceivablesListBo rl, Integer status, String adminName, String adminDepId,
-			String orderDepId);
+	Map<String, Object> getCountlistReceivables(ReceivablesListBo rl, Integer status, String adminName, String adminDeps,
+			String orderDeps);
 
 
 

+ 6 - 3
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -162,12 +162,15 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		}
 		if (order.getOutsource()==null)order.setOutsource(0);//默认非外包
 		params.put("o", order);
-		if (StringUtils.isNotBlank(order.getDepartmentId())){
-			params.put("deps", departmentService.getLowerDep(order.getDepartmentId()));
+		List<String> listDep=null;
+		if (order.getDeps()!=null){
+			params.put("deps", departmentService.parseArray(order.getDeps()));
+			listDep=departmentService.parseArray(order.getDeps());
+			params.put("deps", listDep);
 		}
 		Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
 		result.put("pagination", data);
-		Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order,fids);
+		Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order,fids,listDep);
 		result.put("count", count);
 		return result;
 	}

+ 14 - 2
src/main/java/com/goafanti/order/service/impl/LegalAffairsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.goafanti.order.service.impl;
 
+import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.*;
@@ -33,6 +34,8 @@ public class LegalAffairsServiceImpl extends BaseMybatisDao<TOrderMidMapper> imp
     @Autowired
     private TOrderLegalAffairsMapper tOrderLegalAffairsMapper;
     @Autowired
+    private DepartmentService departmentService;
+    @Autowired
     private AdminMapper adminMapper;
     @Value(value = "${upload.path}")
     private String uploadPath = null;
@@ -75,7 +78,11 @@ public class LegalAffairsServiceImpl extends BaseMybatisDao<TOrderMidMapper> imp
             if (TokenManager.hasRole(AFTConstants.FINANCE)){
                 map.put("shiro",1);
                 List<String> deps=adminMapper.getFinanceDep(TokenManager.getAdminId());
-                map.put("deps",deps);
+                if (in.getDeps()==null){
+                    map.put("deps",deps);
+                }else {
+                    map.put("deps",departmentService.selectSubDeps(deps));
+                }
             }else if(TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
                 map.put("shiro",2);
                 map.put("sid", TokenManager.getAdminId());
@@ -92,8 +99,13 @@ public class LegalAffairsServiceImpl extends BaseMybatisDao<TOrderMidMapper> imp
             if(in.getAid()!=null) map.put("aid", in.getAid());
             if (in.getStatus()!=null) map.put("status",in.getStatus());
             map.put("type", in.getType());
+
+        }
+        if (!TokenManager.hasRole(AFTConstants.FINANCE)){
+            if(in.getDeps()!=null){
+                map.put("deps", departmentService.parseArray(in.getDeps()));
+            }
         }
-        if(in.getDepId()!=null) map.put("depId", in.getDepId());
         if(in.getUserName()!=null) map.put("userName", in.getUserName());
         if(in.getStartTime()!=null)map.put("startTime", in.getStartTime());
         if(in.getEndTime()!=null)map.put("endTime", in.getEndTime()+" 23:59:59");

+ 9 - 3
src/main/java/com/goafanti/order/service/impl/OrderBillServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.goafanti.admin.service.DepartmentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -24,7 +25,7 @@ import com.goafanti.order.service.OrderBillService;
 
 @Service
 public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> implements OrderBillService {
-	
+
 	@Autowired
 	private TOrderBillNewMapper billNewMapper;
 	@Autowired
@@ -33,6 +34,8 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 	private AdminMapper	adminMapper;
 	@Value(value = "${upload.path}")
 	private String	uploadPath = null;
+	@Autowired
+	private DepartmentService	 departmentService;
 
 
 	@SuppressWarnings("unchecked")
@@ -48,11 +51,14 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 		}
 		params.put("fids", fids);
 		params.put("b", billNew);
+		if (billNew.getDeps()!=null){
+			params.put("deps", departmentService.parseArray(billNew.getDeps()));
+		}
 		return (Pagination<TOrderBillNew>)findPage("myBillList", "myBillCount", params, pageNo, pageSize);
 	}
 
 
-	
+
 
 
 	@Override
@@ -78,5 +84,5 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 		billNewMapper.updateByPrimaryKeySelective(ntbn);
 		return 1;
 	}
-	
+
 }

+ 32 - 13
src/main/java/com/goafanti/order/service/impl/OrderBonusServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import com.goafanti.admin.service.DepartmentService;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,7 +32,7 @@ import com.goafanti.order.service.OrderBonusService;
 
 @Service
 public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> implements OrderBonusService {
-	
+
 	@Autowired
 	private TOrderBonusMapper bonusMapper;
 	@Autowired
@@ -40,7 +41,9 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 	private AdminMapper	adminMapper;
 	@Autowired
 	private TOrderMonthReportMapper orderMonthReportMapper;
-	
+	@Autowired
+	private DepartmentService departmentService;
+
 	@Override
 	public Integer addOrderBouns(TOrderBonus bonus) {
 		// 生成id
@@ -78,27 +81,43 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 		return data;
 	}
 
-	
-	
+
+
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<TOrderBonusBo> saleBonusStatistics(TOrderBonusBo newBo, Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<String, Object>();
-		
+
 		List<String> fids=new ArrayList<>();
 		if (TokenManager.hasRole(AFTConstants.FINANCE)) {
 			newBo.setGrantBy(TokenManager.getAdminId());
 		}else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
 			fids=adminMapper.selectBySuperId(TokenManager.getAdminId());
 		}
+		List<String> depsList = new ArrayList<>();
+		if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
+			depsList=departmentService.selectMyDeps();
+		}
+		if (newBo.getDeps()==null){
+			if (depsList.isEmpty()){
+				return new Pagination<>(1,10,0);
+			}
+			params.put("deps", depsList);
+		}else {
+			depsList=departmentService.comparePermissions(depsList, newBo.getDeps());
+			if (depsList.isEmpty()){
+				return new Pagination<>(1,10,0);
+			}
+			params.put("deps", depsList);
+		}
 		params.put("fids", fids);
 		params.put("b", newBo);
 		Pagination<TOrderBonusBo> data = (Pagination<TOrderBonusBo>)findPage("saleBonusList", "saleBonusCount", params, pageNo, pageSize);
-		
+
 		innerData((List<TOrderBonusBo>) data.getList(), newBo);
 		return data;
 	}
-	
+
 	private void innerData(List<TOrderBonusBo> list, TOrderBonusBo newBo){
 		Integer m = null;
 		Integer m1 = null;
@@ -131,7 +150,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 					orderListBo.setRenzm(o.getRenzm());
 				}
 			}
-			
+
 			r.setMonth(y);
 			r.setMonth1(y1);
 			//处理年度数据
@@ -157,7 +176,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 	@Override
 	public XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) {
 		// 判断导出是否有部门
-		String deptid = bonusBo.getDepartmentId();
+		String deptid = bonusBo.getDeps();
 		Map<String, List<TOrderBonusBo>> map = new HashMap<String, List<TOrderBonusBo>>();
 		if(StringUtils.isBlank(deptid)){
 			//获得所有有数据的部门
@@ -168,8 +187,8 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 			}
 			for (int i = 0; i < dlist.size(); i++) {
 				TOrderBonusBo ob = dlist.get(i);
-				if(null != ob && null!= ob.getDepartmentId()){
-					bonusBo.setDepartmentId(ob.getDepartmentId());
+				if(null != ob && null!= ob.getDeps()){
+//					bonusBo.setDepartmentId(ob.getDepartmentId());
 					map.put(ob.getDepartmentName(), bonusMapper.getBonusData(bonusBo));
 				}
 			}
@@ -183,7 +202,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 
 	@Override
 	public XSSFWorkbook exportSaleBonusData(TOrderBonusBo bonusBo) {
-		String deptid = bonusBo.getDepartmentId();
+		String deptid = bonusBo.getDeps();
 		Map<String, List<TOrderBonusBo>> map = new HashMap<String, List<TOrderBonusBo>>();
 		if(StringUtils.isBlank(deptid)){
 			//获得所有有数据的部门
@@ -194,7 +213,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 			}
 			for (int i = 0; i < dlist.size(); i++) {
 				TOrderBonusBo ob = dlist.get(i);
-				bonusBo.setDepartmentId(ob.getDepartmentId());
+//				bonusBo.setDepartmentId(ob.getDepartmentId());
 				List<TOrderBonusBo> l =  bonusMapper.getSaleBounsList(bonusBo);
 				innerData(l, bonusBo);
 				map.put(ob.getDepartmentName(), l);

+ 206 - 84
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -10,8 +10,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.dao.*;
-import com.goafanti.common.enums.UserFields;
 import com.goafanti.common.model.*;
+import com.goafanti.order.service.*;
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -52,10 +52,6 @@ import com.goafanti.order.enums.OrderChangeType;
 import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.enums.OrderType;
 import com.goafanti.order.enums.ProcessStatus;
-import com.goafanti.order.service.NewOrderDunService;
-import com.goafanti.order.service.OrderChangeService;
-import com.goafanti.order.service.OrderNewService;
-import com.goafanti.order.service.OrderService;
 import com.goafanti.techproject.enums.TaskState;
 
 @Service
@@ -110,6 +106,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	private UserMidMapper userMidMapper;
 	@Autowired
 	private DepartmentService departmentService;
+	@Autowired
+	private OrderProjectService orderProjectService;
 
 	Logger							logger	= LoggerFactory.getLogger(OrderChangeServiceImpl.class);
 
@@ -155,7 +153,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				tChangeDunMapper.insertSelectiveList(listcd);
 			}
 			List<TChangeTask> listck=new ArrayList<>();
-			List<TOrderTaskBo> listTask=tOrderTaskMapper.selectOrderTaskAll(t.getOrderNo());
+			List<TOrderTaskBo> listTask=tOrderTaskMapper.selectOrderTaskAll(t.getOrderNo(),null);
 			if (listTask!=null&&!listTask.isEmpty()) {
 				for (TOrderTaskBo tt : listTask) {
 					TChangeTask ck=new TChangeTask();
@@ -172,11 +170,10 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 					ck.setReceiverName(tt.getReceiverName());
 					ck.setMain(tt.getMain());
 					ck.setTid(tt.getId());
-					if(tt.getServiceLife()!=null){
-						ck.setServiceLife(tt.getServiceLife());
-						ck.setServiceYear(tt.getServiceYear());
-						ck.setYearSum(tt.getYearSum());
-					}
+					if(tt.getServiceLife()!=null)	ck.setServiceLife(tt.getServiceLife());
+					if(tt.getServiceYear()!=null)		ck.setServiceYear(tt.getServiceYear());
+					if(tt.getYearSum()!=null)	ck.setYearSum(tt.getYearSum());
+					if(tt.getContractTerm()!=null)	ck.setContractTerm(tt.getContractTerm());
 					listck.add(ck);
 				}
 				tChangeTaskMapper.insertSelectiveList(listck);
@@ -198,7 +195,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	 * 新增审核流程中的
 	 */
 	private void insertOrderExamine(String orderNo) {
-		List<TOrderTaskBo> list=tOrderTaskMapper.selectOrderTaskAll(orderNo);
+		List<TOrderTaskBo> list=tOrderTaskMapper.selectOrderTaskAll(orderNo,null);
 		for (TOrderTaskBo t : list) {
 			if (t.getConsultantId()!=null) {
 				OrderExamine o=new OrderExamine();
@@ -422,7 +419,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	private void changeAdopt(NewOrderChangeBo nb) {
 		TOrderNew t1=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
 		List<OutNewOrderDunBo> td2=newOrderDunMapper.selectListNewOrderDun(nb.getOrderNo(),  null);
-		List<TOrderTaskBo> tt1=tOrderTaskMapper.selectOrderTaskAll(nb.getOrderNo());
+		List<TOrderTaskBo> tt1=tOrderTaskMapper.selectOrderTaskAll(nb.getOrderNo(),null);
 		List<TOrderLogBo> tl1=tOrderLogMapper.selectOrderByNo(nb.getOrderNo());
 		String newOrderNo=idGenerator.generateId().toString();
 		t1.setOrderNo(newOrderNo);
@@ -440,6 +437,12 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			}
 			tOrderTaskBo.setProcessStatus(3);
 			tOrderTaskMapper.insertSelective(tOrderTaskBo);
+			TTaskMember tTaskMember = tTaskMemberMapper.selectByTid(x);
+			if (tTaskMember!=null){
+				tTaskMember.setId(null);
+				tTaskMember.setTid(tOrderTaskBo.getId());
+				tTaskMemberMapper.insertSelective(tTaskMember);
+			}
 			int y=tOrderTaskBo.getId();
 			TTaskMid dtails = tTaskMidMapper.getDtails(tOrderTaskBo.getId());
 			TTaskMid tTaskMid = new TTaskMid(y, new BigDecimal(0));
@@ -499,7 +502,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<NewOderCahngeListBo> selectOrderChangeList(String userName,Integer  processState,Integer timeType,String startTime,String endTime,
-			String depId,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type,Integer pageSize, Integer pageNo) {
+																 String deps,String salesmanName,Integer complete,String orderNo, String contractNo,Integer type,Integer pageSize, Integer pageNo) {
 		Map<String, Object> parameter=new HashMap<String, Object>();
 		if(pageSize==null||pageSize<0)pageSize=10;
 		if(pageNo==null||pageNo<0)pageNo=1;
@@ -514,9 +517,9 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		if (StringUtils.isNotBlank(startTime)) parameter.put("startTime", startTime);
 		if (StringUtils.isNotBlank(endTime)) parameter.put("endTime", endTime+" 23:59:59");
 		if (processState==1){
-			List<Department> myDep;
-			if (StringUtils.isNotBlank(depId)) {
-				myDep=departmentService.selectSubDeps(depId,0,1);
+			List<String > myDep;
+			if (deps!=null) {
+				myDep=departmentService.selectSubDeps(deps);
 				if (myDep.isEmpty()){
 					return new Pagination(1,10,0);
 				}
@@ -525,8 +528,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			}
 			parameter.put("deps",myDep);
 		}else {
-			if (StringUtils.isNotBlank(depId)) {
-				parameter.put("deps",departmentService.getLowerDep(depId));
+			if (deps!=null) {
+				parameter.put("deps",departmentService.parseArray(deps));
 			}
 		}
 		if (StringUtils.isNotBlank(salesmanName)) parameter.put("salesmanName", salesmanName);
@@ -535,7 +538,6 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		}else {
 			parameter.put("aid", TokenManager.getAdminId());
 		}
-		parameter.put("deps", orderService.selectMyDeps());
 		Pagination<NewOderCahngeListBo> data = (Pagination<NewOderCahngeListBo>)findPage("selectOrderChangeList", "selectOrderChangeCount", parameter, pageNo, pageSize);
 		return data;
 	}
@@ -545,7 +547,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		t.setProcessState(1);
 		noc.setId(t.getId());
 		if (changeType==0) {
-			chekeChangeTaskNumber(noc);
+//			chekeChangeTaskNumber(noc);
 			noc.setRemarks(t.getRemarks());
 			noc.setType(t.getType());
 			noc.setVoucherUrl(t.getVoucherUrl());
@@ -697,6 +699,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		return false;
 	}
 
+
+
 	/**
 	 * 修改订单数据
 	 * @param nb
@@ -721,28 +725,14 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		}else if (nob.getType()==OrderChangeType.ZS.getCode()) {
 			pushTaskAndDun(nob.getId(),o);
 		}else if(nob.getType()==OrderChangeType.TDTK.getCode()) {
-			//先将业务锁关闭
-			List<String> list=tOrderTaskMapper.getLockId(nb.getOrderNo(),o.getSalesmanId(),o.getBuyerId());
-			if(!list.isEmpty())userLockReleaseMapper.updateReleaseList(list);
-			int i=userLockReleaseMapper.selectByUidGetCount(o.getSalesmanId(),o.getBuyerId());
-			if (i<1) userLockReleaseMapper.updateReleaseUser(o.getOrderNo());
+			//先将业务锁关闭 退单退款不做任何处理
+//			List<String> list=tOrderTaskMapper.getLockId(nb.getOrderNo(),o.getSalesmanId(),o.getBuyerId());
+//			if(!list.isEmpty())userLockReleaseMapper.updateReleaseList(list);
+//			int i=userLockReleaseMapper.selectByUidGetCount(o.getSalesmanId(),o.getBuyerId());
+//			if (i<1) userLockReleaseMapper.updateReleaseUser(o.getOrderNo());
 		}
 		//
-		List<TOrderTaskBo> taskBos=tOrderTaskMapper.selectOrderTask(nb.getOrderNo(),0);
-		int i=0;
-		for (TOrderTaskBo to : taskBos) {
-			if (to.getTaskStatus()>TaskState.UN_DISTRIBUTION.getCode()&&to.getTaskStatus()<TaskState.INVALID.getCode()) {
-				i++;
-			}
-
-		}
-		if (i==taskBos.size()) {
-			o.setProcessStatus(ProcessStatus.YQBFPZXSGLY.getCode());
-		}else if(i>0&&i<taskBos.size()){
-			o.setProcessStatus(ProcessStatus.YBFPZXSGLY.getCode());
-		}else if(i==0){
-			o.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
-		}
+		o.setProcessStatus(orderProjectService.getOrderProcessStatus(nb.getOrderNo()));
 		o.setDeleteSign(0);
 		//处理客户中间表退单标识
 		//处理客户已派项目
@@ -756,39 +746,13 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		return o;
 	}
 
+
+
 	private void pushTaskAndDun(Integer id,TOrderNew o) {
-		List<TChangeTaskOut> listct=tChangeTaskMapper.selectByCid(id,null);
-		for (TChangeTaskOut cd : listct) {
-			TOrderTask ot=new TOrderTask();
-			if (cd.getType()==1) {
-			ot.setOrderNo(cd.getOrderNo());
-			ot.setCommodityId(cd.getCommodityId());
-			ot.setOrderNo(cd.getOrderNo());
-			ot.setCommodityName(cd.getCommodityName());
-			ot.setCommodityPrice(cd.getCommodityPrice());
-			ot.setCommodityQuantity(cd.getCommodityQuantity());
-			ot.setTaskComment(cd.getTaskComment());
-			ot.setMain(cd.getMain());
-			ot.setTaskStatus(0);
-			tOrderTaskMapper.insertSelective(ot);
-			if (cd.getServiceLife()!=null){
-				addTaskMember(ot.getId(),cd.getServiceLife(),cd.getServiceYear(),cd.getYearSum());
-			}
-			cd.setTid(ot.getId());
-			tChangeTaskMapper.updateByPrimaryKeySelective(cd);
-			tChangeDunMapper.updateByCTid(cd.getId(), ot.getId());
-			}else if (cd.getType()==2) {
-				ot.setId(cd.getTid());
-				ot.setCommodityPrice(cd.getCommodityPrice());
-				ot.setCommodityQuantity(cd.getCommodityQuantity());
-				tOrderTaskMapper.updateByPrimaryKeySelective(ot);
-				if (cd.getServiceLife()!=null){
-					updateTaskMember(ot.getId(),cd.getServiceLife(),cd.getServiceYear(),cd.getYearSum());
-				}
-			}else if(cd.getType()==3) {
-				tOrderTaskMapper.deleteByPrimaryKey(cd.getTid());
-			}
-		}
+		List<TChangeTaskOut> listct=tChangeTaskMapper.selectByCid(id,3);
+		HashMap<Integer, Integer> map=changeAddOrderTask(listct,0,null);
+		List<TChangeTaskOut> listct2=tChangeTaskMapper.selectByCid(id,2);
+		changeAddOrderTask(listct2,1 ,map);
 
 		List<TChangeDunOut> listcd=tChangeDunMapper.selectByCid(id);
 		for (TChangeDunOut cd : listcd) {
@@ -821,21 +785,86 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		}
 	}
 
-	private void updateTaskMember(Integer id, String serviceLife, String serviceYear, Integer yearSum) {
+	/**
+	 *
+	 * @param listct 数据
+	 * @param type 0普通数据处理 1子集数据处理
+	 */
+	private HashMap<Integer, Integer> changeAddOrderTask(List<TChangeTaskOut> listct, Integer type,HashMap<Integer, Integer> input) {
+		HashMap<Integer, Integer> map = new HashMap<>();
+		for (TChangeTaskOut cd : listct) {
+			TOrderTask ot=new TOrderTask();
+			if (cd.getType()==1) {
+				ot.setOrderNo(cd.getOrderNo());
+				ot.setCommodityId(cd.getCommodityId());
+				ot.setOrderNo(cd.getOrderNo());
+				ot.setCommodityName(cd.getCommodityName());
+				ot.setCommodityPrice(cd.getCommodityPrice());
+				ot.setCommodityQuantity(cd.getCommodityQuantity());
+				ot.setTaskComment(cd.getTaskComment());
+				ot.setMain(cd.getMain());
+				ot.setTaskStatus(0);
+				ot.setSplitStatus(cd.getSplitStatus());
+				if (cd.getSplitStatus()==2){
+					Integer tid;
+					if (cd.getSplitSuper()!=null){
+						ot.setSplitSuper(cd.getSplitSuper());
+					}else {
+						if (cd.getTid()!=null){
+							tid=cd.getTid();
+						}else{
+							tid=input.get(cd.getChangeSplitSuper());
+						}
+						if (tid==null)tid=tChangeTaskMapper.selectByPrimaryKey(cd.getChangeSplitSuper()).getTid();
+						ot.setSplitSuper(tid);
+					}
+				}
+				if (cd.getDeclarationBatch()!=null)ot.setDeclarationBatch(cd.getDeclarationBatch());
+				if (cd.getPatentType()!=null)ot.setPatentType(cd.getPatentType());
+				tOrderTaskMapper.insertSelective(ot);
+				if (cd.getSplitStatus()==1){
+					map.put(cd.getId(),ot.getId());
+				}
+				if (cd.getServiceLife()!=null){
+					addTaskMember(ot.getId(),cd.getServiceLife(),cd.getServiceYear(),cd.getYearSum(),cd.getContractTerm());
+				}
+				cd.setTid(ot.getId());
+				tChangeTaskMapper.updateByPrimaryKeySelective(cd);
+				tChangeDunMapper.updateByCTid(cd.getId(), ot.getId());
+			}else if (cd.getType()==2) {
+				ot.setId(cd.getTid());
+				ot.setCommodityPrice(cd.getCommodityPrice());
+				ot.setCommodityQuantity(cd.getCommodityQuantity());
+				if (cd.getDeclarationBatch()!=null)ot.setDeclarationBatch(cd.getDeclarationBatch());
+				if (cd.getPatentType()!=null)ot.setPatentType(cd.getPatentType());
+				tOrderTaskMapper.updateByPrimaryKeySelective(ot);
+				if (cd.getServiceLife()!=null){
+					updateTaskMember(ot.getId(),cd.getServiceLife(),cd.getServiceYear(),cd.getYearSum(),cd.getContractTerm());
+				}
+			}else if(cd.getType()==3) {
+				tOrderTaskMapper.deleteByPrimaryKey(cd.getTid());
+			}
+		}
+		return map;
+	}
+
+	private void updateTaskMember(Integer id, String serviceLife, String serviceYear, Integer yearSum,String contractTerm) {
 		TTaskMember ttm=new TTaskMember();
 		ttm.setTid(id);
 		ttm.setServiceLife(serviceLife);
 		ttm.setServiceYear(serviceYear);
 		ttm.setYearSum(yearSum);
+		ttm.setContractTerm(contractTerm);
 		tTaskMemberMapper.updateByTid(ttm);
 	}
 
-	private void addTaskMember(Integer id, String serviceLife, String serviceYear, Integer yearSum) {
+	private void addTaskMember(Integer id, String serviceLife, String serviceYear, Integer yearSum,String contractTerm) {
 		TTaskMember ttm=new TTaskMember();
 		ttm.setTid(id);
 		ttm.setServiceLife(serviceLife);
 		ttm.setServiceYear(serviceYear);
 		ttm.setYearSum(yearSum);
+		ttm.setContractTerm(contractTerm);
 		tTaskMemberMapper.insertSelective(ttm);
 	}
 
@@ -853,10 +882,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	@SuppressWarnings("unchecked")
 	@Override
 	public void exportMyChange(HttpServletResponse response, String userName, Integer processState, Integer timeType,
-			String startTime, String endTime, String depId, String salesmanName, Integer complete,String orderNo, String contractNo,Integer type,Integer pageSize,Integer pageNo) throws IOException {
+			String startTime, String endTime, String deps, String salesmanName, Integer complete,String orderNo, String contractNo,
+							   Integer type,Integer pageSize,Integer pageNo) throws IOException {
 		OutputStream out = response.getOutputStream();
 		List<NewOderCahngeListBo>list=(List<NewOderCahngeListBo>) selectOrderChangeList( userName,  processState, timeType, startTime, endTime,
-				 depId, salesmanName, complete, orderNo,  contractNo, type, pageSize,  pageNo).getList();
+				 deps, salesmanName, complete, orderNo,  contractNo, type, pageSize,  pageNo).getList();
 		try {
     		//设计表头  String[] comment = {"合同编号","订单编号","客户名称","订单部门","订单类型","下单时间","订单状态","合同额(万元)","已付额(万元)","欠款(万元)","订单负责人","变更类型","变更审核状态","变更提交时间"}
     		String[] comment = {"合同编号","订单编号","客户名称","订单部门","订单类型","下单时间","订单状态","合同额(万元)","已付额(万元)","欠款(万元)","订单负责人","变更类型","变更审核状态","变更提交时间"};
@@ -957,9 +987,10 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 
 
 			@Override
-			public int addChangeTask(TChangeTask t) {
+			public Object addChangeTask(TChangeTask t) {
 				t.setType(1);
-				return tChangeTaskMapper.insertSelective(t);
+				tChangeTaskMapper.insertSelective(t);
+				return t;
 			}
 
 			@Override
@@ -984,8 +1015,15 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			public List<TChangeTaskOut> selectChangeTask(Integer cid) {
 				List<TChangeTaskOut> list=tChangeTaskMapper.selectByCid(cid,3);//3设置不等于2
 				for (TChangeTaskOut tChangeTaskOut : list) {
-					List<TChangeTask> list2=tChangeTaskMapper.selectBySuper(tChangeTaskOut.getTid(),cid);
-					tChangeTaskOut.setList(list2);
+					if(tChangeTaskOut.getSplitStatus()==1){
+						//变更会员子项目有2中,一种是复制过来的,根据上级项目编号关联,还一种是新增的根据变更项目编号关联
+
+						TChangeTask input= new TChangeTask();
+						input.setCid(cid);
+						input.setSplitSuper(tChangeTaskOut.getTid());
+						input.setChangeSplitSuper(tChangeTaskOut.getId());
+						tChangeTaskOut.setList(getChangeSonTasks(input));
+					}
 				}
 				return list;
 			}
@@ -1011,7 +1049,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 							tChangeTaskMapper.updateByTid(null,tt.getTid(),tt.getCid(),3);
 							tChangeDunMapper.updateByTid(tt.getTid(),tt.getCid(),3);
 						}else if(tt.getSplitStatus()==2) {
-							List<TChangeTask> list=tChangeTaskMapper.selectBySuper(tt.getSplitSuper(),tt.getCid());
+							List<TChangeTask> list=tChangeTaskMapper.selectBySuper(tt.getSplitSuper(),null,tt.getCid());
 							boolean flag=true;
 							for (TChangeTask tc : list) {
 								if (tc.getType()!=3) {
@@ -1028,11 +1066,15 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 					}else if(t.getType()==2){
 						tChangeTaskMapper.updateByTid(t.getTid(),null,tt.getCid(),2);
 						if (tt.getSplitStatus()==1) {
-							tChangeTaskMapper.updateByTid(null,tt.getTid(),tt.getCid(),2);
+							if (t.getServiceLife()!=null||t.getServiceYear()!=null||t.getYearSum()!=null||t.getContractTerm()!=null){
+								tChangeTaskMapper.updateMemberByTid(tt.getTid(),t.getCid(),null,t.getServiceLife(),t.getServiceYear(),t.getYearSum(),t.getContractTerm());
+							}
+							updateChangeType(tt);
 						}else if(tt.getSplitStatus()==2) {
 								tChangeTaskMapper.updateByTid(tt.getSplitSuper(),null,tt.getCid(),2);
 						}
 					}
+					//如果没有tid是新增项目则直接删除
 				}else {
 					if (t.getType()==3) {
 						tChangeTaskMapper.deleteByPrimaryKey(t.getId());
@@ -1042,7 +1084,18 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				return tChangeTaskMapper.updateByPrimaryKeySelective(t);
 			}
 
-			@Override
+	private void updateChangeType(TChangeTask t) {
+		List<TChangeTask> changeSonTasks = getChangeSonTasks(t);
+		List<Integer> list=new ArrayList<>();
+		for (TChangeTask changeSonTask : changeSonTasks) {
+			if (changeSonTask.getType()==0||changeSonTask.getType()==2){
+				list.add(changeSonTask.getId());
+			}
+		}
+		if(!list.isEmpty())tChangeTaskMapper.updateTypeBatch(2,list);
+	}
+
+	@Override
 			public int updateChangeDun(TChangeDun t) {
 				if(t.getCustomizeTimes()!=null)t.setCustomizeTime(DateUtils.StringToDate(t.getCustomizeTimes(), AFTConstants.YYYYMMDD));
 				if (t.getType()==1||t.getType()==2) {
@@ -1168,5 +1221,74 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				return 1;
 			}
 
+	@Override
+	public Object addMemberSonProject(Integer id, String serviceYear, String taskComment) {
+		//先修改父项目
+		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		Integer tid=tChangeTask.getTid();
+		tChangeTask.setSplitStatus(1);
+		tChangeTaskMapper.updateByPrimaryKey(tChangeTask);
+		//在判断是否有删除的年份没有就新增
+		tChangeTask.setId(null);
+		tChangeTask.setTid(null);
+		tChangeTask.setSplitStatus(2);
+		if(tid!=null){
+			tChangeTask.setSplitSuper(tid);
+		}else {
+			tChangeTask.setChangeSplitSuper(id);
+		}
+		tChangeTask.setType(1);
+		tChangeTask.setCommodityQuantity(1);
+		tChangeTask.setTaskComment(taskComment);
+		tChangeTask.setServiceYear(serviceYear);
+		tChangeTaskMapper.insertSelective(tChangeTask);
+		return tChangeTask;
+	}
+
+	@Override
+	public int deleteMemberSonProject(Integer id) {
+		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		if (tChangeTask.getType()==1){
+			tChangeTaskMapper.deleteByPrimaryKey(id);
+		}else {
+			TChangeTask newtChangeTask = new TChangeTask();
+			newtChangeTask.setId(id);
+			newtChangeTask.setType(3);
+			tChangeTaskMapper.updateByPrimaryKeySelective(newtChangeTask);
+
+		}
+		List<TChangeTask> tChangeTasks = getChangeSonTasks(tChangeTask);
+		//如果没有子项目则修改上级
+		if (tChangeTasks == null || tChangeTasks.isEmpty()) {
+			TChangeTask changeTask = new TChangeTask();
+			changeTask.setId(tChangeTask.getSplitSuper());
+			changeTask.setSplitStatus(0);
+			tChangeTaskMapper.updateByPrimaryKeySelective(changeTask);
+		}
+		return 1;
+	}
+
+	@Override
+	public Object updateMemberSonProject(Integer id,String taskComment) {
+		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		tChangeTask.setType(2);
+		tChangeTask.setTaskComment(taskComment);
+		tChangeTaskMapper.updateByPrimaryKeySelective(tChangeTask);
+		return tChangeTask;
+	}
+
+	/**
+	 * 	如果是有splitSuper 是父有项目的tid,变更父项目有订单项目,则需要看订单项目变更后的子集,反正则不需要
+	 * 	changeSplitSuper 是当前变更项目的子集
+	 * @param tChangeTask
+	 * @return
+	 */
+	private List<TChangeTask> getChangeSonTasks(TChangeTask tChangeTask) {
+		List<TChangeTask> tChangeTasks = new ArrayList<>();
+		if (tChangeTask.getSplitSuper()!=null)tChangeTasks.addAll(tChangeTaskMapper.selectBySuper(tChangeTask.getSplitSuper(),null, tChangeTask.getCid()));
+		tChangeTasks.addAll(tChangeTaskMapper.selectBySuper(null, tChangeTask.getChangeSplitSuper(), tChangeTask.getCid()));
+		return tChangeTasks;
+	}
+
 
 }

+ 22 - 11
src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java

@@ -132,25 +132,36 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		List<String> aDep=new ArrayList<>();
 		//财务专员查看自己的
 		if (TokenManager.hasRole(AFTConstants.FINANCE)) {
-			params.put("financeId", TokenManager.getAdminId());
-
+			aDep.addAll(departmentService.getFinanceDep(TokenManager.getAdminId()));
 		}
 		//财务经理
 		if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
-			aDep=adminMapper.selectDepIdWithSpuerId(TokenManager.getAdminId());
-			params.put("aDep", aDep);
-		}
-		if(StringUtils.isNotBlank(o.getOrderDep())){
-			params.put("deps", departmentService.getLowerDep(o.getOrderDep()));
+			aDep.addAll(adminMapper.selectDepIdWithSpuerId(TokenManager.getAdminId()));
 		}
-		if(o.getType()!=null)params.put("type", o.getType());
 		//营销管理员
 		if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)) {
-			Admin a=adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
-			aDep.add(a.getDepartmentId());
-			params.put("aDep", aDep);
+			aDep.addAll(departmentService.selectMyDeps());
 
 		}
+		if (TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)) {
+			if (o.getDeps()!=null){
+				aDep.addAll(departmentService.parseArray(o.getDeps()));
+			}
+		}
+		if(o.getDeps()==null){
+			if (!aDep.isEmpty()){
+				params.put("deps", aDep);
+			}
+		}else {
+			aDep=departmentService.comparePermissions(aDep,o.getDeps());
+			if (aDep.isEmpty()){
+				return new Pagination<>(1,10,0);
+			}
+			params.put("deps", aDep);
+
+		}
+		if(o.getType()!=null)params.put("type", o.getType());
+
 		if (null !=o.getAll()){
 			params.put("all",o.getAll());
 		}else {

+ 121 - 219
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -186,7 +186,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	}
 
 	@Override
-	public int addOrderTask(InputAddTask t) {
+	public InputAddTask addOrderTask(InputAddTask t) {
 		TOrderNew order=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
 		checkOrder(order,t);
 		t.setTaskStatus(TaskState.WFP.getCode());
@@ -197,39 +197,44 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		String str=tOrderTaskMapper.selectByidGetCname(t.getCommodityId());
 		t.setCname(str);
 		tOrderTaskMapper.insertSelective(t);
-		if (t.getServiceLife()!=null&&t.getServiceYear()!=null){
+		if (t.getServiceLife()!=null||t.getServiceYear()!=null||t.getYearSum()!=null||t.getContractTerm()!=null){
 			TTaskMember ttm=new TTaskMember();
 			ttm.setTid(t.getId());
-			ttm.setServiceLife(t.getServiceLife());
-			ttm.setServiceYear(t.getServiceYear());
-			ttm.setYearSum(t.getYearSum());
+			if(t.getServiceLife()!=null)ttm.setServiceLife(t.getServiceLife());
+			if(t.getServiceYear()!=null)ttm.setServiceYear(t.getServiceYear());
+			if(t.getYearSum()!=null)ttm.setYearSum(t.getYearSum());
+			if(t.getContractTerm()!=null)ttm.setContractTerm(t.getContractTerm());
 			tTaskMemberMapper.insertSelective(ttm);
 		}
+		addTaskMid(t.getId(),t.getCommodityId(), order.getOrderNo());
+		return t;
+	}
+	@Override
+	public int addTaskMid(Integer id,String commodityId, String orderNo) {
 		TTaskMid tm=new TTaskMid();
-		tm.setTid(t.getId());
+		tm.setTid(id);
 		//判断这个项目是不是高新复审
 		int highNewRetrial=0;
-		BusinessProject b=businessProjectMapper.selectByPrimaryKey(t.getCommodityId());
+		BusinessProject b=businessProjectMapper.selectByPrimaryKey(commodityId);
 		if (b.getType()==5){
-			int i=tOrderTaskMapper.getHighNewRetrial(order.getOrderNo());
+			int i=tOrderTaskMapper.getHighNewRetrial(orderNo);
 			if (i>0) {
 				highNewRetrial =1;
 			}
 			BusinessCategory bc =businessCategoryMapper.selectByPrimaryKey(b.getCid());
 			if (bc !=null && bc.getSort().equals(6)){
 				TOrderMid tom=new TOrderMid();
-				tom.setOrderNo(t.getOrderNo());
+				tom.setOrderNo(orderNo);
 				tom.setProjectType(1);
 				tOrderMidMapper.updateByOrderNo(tom);
 			}
 		}
 		tm.setHighNewRetrial(highNewRetrial);
-		TTaskMid dtails = tTaskMidMapper.getDtails(t.getId());
-		TTaskMid tTaskMid = new TTaskMid(t.getId(), new BigDecimal(0));
+		TTaskMid dtails = tTaskMidMapper.getDtails(id);
+		TTaskMid tTaskMid = new TTaskMid(id, new BigDecimal(0));
 		tTaskMid.setDispatchProvince(dtails.getDispatchProvince());
 		tTaskMid.setDutyDep(dtails.getDutyDep());
-		tTaskMidMapper.insertSelective(tm);
-		return 1;
+		return tTaskMidMapper.insertSelective(tm);
 	}
 
 	@Override
@@ -237,7 +242,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		TOrderNewBo tn = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
 		addOrderTask(t);
 		orderProjectService.addMemberLog(t.getId(),0,"新增会员项目");
-		addNoticMember(NoticeStatus.MENBER_START.getCode(),tn,null,0);
+		orderProjectService.addNoticMember(NoticeStatus.MENBER_START.getCode(),tn,null,0);
 		return 1;
 	}
 
@@ -307,13 +312,18 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			projcetCheckLogMapper.insertSelective(log);
 		}
 		int  i=tOrderTaskMapper.updateByPrimaryKeySelective(t);
-		if (t.getServiceLife()!=null&&t.getServiceYear()!=null){
+		if (t.getServiceLife()!=null||t.getServiceYear()!=null||t.getYearSum()!=null||t.getContractTerm()!=null){
 			TTaskMember ttm=new TTaskMember();
 			ttm.setTid(t.getId());
-			ttm.setServiceLife(t.getServiceLife());
-			ttm.setServiceYear(t.getServiceYear());
-			ttm.setYearSum(t.getYearSum());
+			if(t.getServiceLife()!=null)ttm.setServiceLife(t.getServiceLife());
+			if(t.getServiceYear()!=null)ttm.setServiceYear(t.getServiceYear());
+			if(t.getYearSum()!=null)ttm.setYearSum(t.getYearSum());
+			if(t.getContractTerm()!=null)ttm.setContractTerm(t.getContractTerm());
 			tTaskMemberMapper.updateByTid(ttm);
+			//如果是拆分主项目则同时改变子项目
+			if (use.getSplitStatus()==1){
+				tTaskMemberMapper.updateSplitSuper(use.getId(),t.getServiceLife(),t.getServiceYear(),t.getYearSum(),t.getContractTerm());
+			}
 		}
 		if (flag) {
 			patentNewService.updateCostReduction(t.getId());
@@ -351,11 +361,16 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				t.setCertificateNumber("****");
 				}else if (TokenManager.hasRole(AFTConstants.TECH)) {
 					//设置隐藏金额
-					t.setCommodityPrice(new BigDecimal(-1));
+					t.setCommodityPrice(null);
 					}
 				if(t.getPatentType()!=null) {
 					t.setPatentTypeName(OfficialPatentType.getValueByCode(t.getPatentType()));
 				}
+				//如果有拆分获取拆分数据
+				if (t.getSplitStatus()==1){
+					List<TOrderTaskListBo> l=orderProjectService.splitProjectList(t.getId(),type);
+					t.setSplitList(l);
+				}
 		}
 		return list;
 	}
@@ -616,119 +631,92 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		return 1;
 	}
 
+
+
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<TOrderNewBo> orderNewList(String aid,String name, String orderNo, String starTime, String endTime,Integer specially,Integer approval,
-			Integer distribution,String depId,String contractNo,Integer outsource,Integer liquidationStatus, Integer amountStatus,
-												String contractStart, String contractEnd,String uid,Integer projectType,Integer processStatus,  Integer pageNo, Integer pageSize) {
+	public Pagination<TOrderNewBo> orderNewList(InputOrderNewListBo in) {
 		Map<String, Object> params = new HashMap<>();
-		if (specially!=null&&(specially==0||specially==1||specially==2||specially==4||specially==5||specially==7)) {
+		if (in.getSpecially()!=null&&(in.getSpecially()==0||in.getSpecially()==1||in.getSpecially()==2||in.getSpecially()==4||in.getSpecially()==5||in.getSpecially()==7)) {
 			//0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询
-			if (specially!=3&&specially!=4) {
-				if (aid ==null){
+			if (in.getSpecially()!=3&&in.getSpecially()!=4) {
+				if (in.getAid() ==null){
 					params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
 				}else{
-					params.put("aid", aid);
+					params.put("aid", in.getAid());
 				}
 			}
 			//(咨询师管理列表 0 未分配 1部分   2全部)
-			if(specially==4) {
-				params.put("distribution",distribution);
+			if(in.getSpecially()==4) {
+				params.put("distribution",in.getDistribution());
 			}
 
-		}else if(specially==8){
-			if (StringUtils.isNotBlank(uid)) {
-				params.put("uid", uid);
+		}else if(in.getSpecially()==8){
+			if (StringUtils.isNotBlank(in.getUid())) {
+				params.put("uid", in.getUid());
 			}
-		}else if (specially==9){
-			if (StringUtils.isNotBlank(aid)) {
-				params.put("aid", aid);
+		}else if (in.getSpecially()==9){
+			if (StringUtils.isNotBlank(in.getAid())) {
+				params.put("aid", in.getAid());
 			}
 		}
-			params.put("specially",specially);
-		if (StringUtils.isNotBlank(name)) {
-			params.put("name", name);
+			params.put("specially",in.getSpecially());
+		if (StringUtils.isNotBlank(in.getName())) {
+			params.put("name", in.getName());
 		}
 		// 计算出所有本部门及所属部门的ID
-		List<Department> deps = new ArrayList<>();
-		if(specially==1||specially==5) {
-			if (depId!=null){
-				deps=departmentService.selectSubDeps(depId,0,1);
-				if(deps.isEmpty()){
-					return new Pagination(1,10,0);
+		if(in.getSpecially()==1||in.getSpecially()==5) {
+			List<String>departmentList=new ArrayList<>();
+			if (in.getDeps()!=null){
+				departmentList=departmentService.selectSubDeps(in.getDeps());
+				if (departmentList==null||departmentList.isEmpty()){
+					return  new Pagination<>(1,10,0);
 				}
 			}else {
-				deps=departmentService.selectMyDeps();
+				departmentList=departmentService.selectMyDeps();
 			}
+			params.put("deps",departmentList);
 		}else {
-			if (StringUtils.isNotBlank(depId)) {
-				deps=departmentService.getLowerDep(depId);
+			if (in.getDeps()!=null) {
+				params.put("deps",departmentService.parseArray(in.getDeps()));
 			}
 		}
-		if (!deps.isEmpty())params.put("deps",deps);
-		if (StringUtils.isNotBlank(contractNo)) {
-			params.put("contractNo", contractNo);
+
+		if (StringUtils.isNotBlank(in.getContractNo())) {
+			params.put("contractNo", in.getContractNo());
 		}
-		if (null!=liquidationStatus) {
-			params.put("liquidationStatus", liquidationStatus);
-			if (null !=approval) {
-				params.put("approval", approval);
-			}
-			if(null != amountStatus) {
-				params.put("amountStatus", amountStatus);
-			}
-			if (StringUtils.isNotBlank(orderNo)) {
-				params.put("orderNo", orderNo);
-			}
-			if (StringUtils.isNotBlank(starTime)) {
-				params.put("starTime", starTime);
-			}
-			if (StringUtils.isNotBlank(endTime)) {
-				params.put("endTime", endTime+" 23:59:59");
-			}
-			if (StringUtils.isNotBlank(contractStart)) {
-				params.put("contractStart", contractStart);
-			}
-			if (StringUtils.isNotBlank(contractEnd)) {
-				params.put("contractEnd", contractEnd+" 23:59:59");
-			}
-			if(null != projectType) {
-				params.put("projectType",projectType);
-			}
-			if(null != processStatus) {
-				params.put("processStatus",processStatus);
-			}
-		} else {
-			if (null !=approval) {
-				params.put("approval", approval);
+		if (null!=in.getLiquidationStatus()) {
+			params.put("liquidationStatus", in.getLiquidationStatus());
+		}
+			if (null !=in.getApproval()) {
+				params.put("approval", in.getApproval());
 			}
-			if(null != amountStatus) {
-				params.put("amountStatus", amountStatus);
+			if(null != in.getAmountStatus()) {
+				params.put("amountStatus", in.getAmountStatus());
 			}
-			if (StringUtils.isNotBlank(orderNo)) {
-				params.put("orderNo", orderNo);
+			if (StringUtils.isNotBlank(in.getOrderNo())) {
+				params.put("orderNo", in.getOrderNo());
 			}
-			if (StringUtils.isNotBlank(starTime)) {
-				params.put("starTime", starTime);
+			if (StringUtils.isNotBlank(in.getStarTime())) {
+				params.put("starTime", in.getStarTime());
 			}
-			if (StringUtils.isNotBlank(endTime)) {
-				params.put("endTime", endTime+" 23:59:59");
+			if (StringUtils.isNotBlank(in.getEndTime())) {
+				params.put("endTime", in.getEndTime()+" 23:59:59");
 			}
-			if (StringUtils.isNotBlank(contractStart)) {
-				params.put("contractStart", contractStart);
+			if (StringUtils.isNotBlank(in.getContractStart())) {
+				params.put("contractStart", in.getContractStart());
 			}
-			if (StringUtils.isNotBlank(contractEnd)) {
-				params.put("contractEnd", contractEnd+" 23:59:59");
+			if (StringUtils.isNotBlank(in.getContractEnd())) {
+				params.put("contractEnd", in.getContractEnd()+" 23:59:59");
 			}
-			if(null != projectType) {
-				params.put("projectType",projectType);
+			if(null != in.getProjectType()) {
+				params.put("projectType",in.getProjectType());
 			}
-			if(null != processStatus) {
-				params.put("processStatus",processStatus);
+			if(null != in.getProcessStatus()) {
+				params.put("processStatus",in.getProcessStatus());
 			}
-		}
-		params.put("outsource", outsource);
-		Pagination<TOrderNewBo> p = (Pagination<TOrderNewBo>)findPage("selectOrderNewListByPage", "selectOrderNewListCount", params, pageNo, pageSize);
+		params.put("outsource", in.getOutsource());
+		Pagination<TOrderNewBo> p = (Pagination<TOrderNewBo>)findPage("selectOrderNewListByPage", "selectOrderNewListCount", params, in.getPageNo(), in.getPageSize());
 		return p;
 	}
 
@@ -1021,7 +1009,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<outOrderDunListBo> dunOrderNewList(String name, String orderNo,String contractNo, String starTime, String endTime,
-			Integer specially,String  aid, String adminName,String depId,Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,Integer pageNo, Integer pageSize) {
+			Integer specially,String  aid, String adminName,String deps,Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<String, Object>();
 		if(newStatus!=null&&newStatus==0) {
 			params.put("newStatus", 0);
@@ -1031,8 +1019,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		if (StringUtils.isNotBlank(name)) {
 			params.put("name", name);
 		}
-		if (StringUtils.isNotBlank(depId)) {
-			params.put("depId", depId);
+		if (StringUtils.isNotBlank(deps)) {
+			params.put("deps", departmentService.parseArray(deps));
 		}
 		if (StringUtils.isNotBlank(adminName)) {
 			params.put("adminName", adminName);
@@ -1332,14 +1320,30 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 	@Override
-	public boolean checkORderDun(String orderNo) {
-		List<OutNewOrderDunBo> list=newOrderDunMapper.selectListNewOrderDun(orderNo,  null);
-		if (list==null||list.size()<1) {
-			return true;
-		}else {
-			return false;
+	public boolean checkOrderAmount(TOrderNewWithBLOBs t) {
+		BigDecimal orderAmount=t.getTotalAmount();
+		if (orderAmount==null){
+			TOrderNew tOrderNew=tOrderNewMapper.getOrderNewDetail(t.getOrderNo());
+			orderAmount=tOrderNew.getTotalAmount();
 		}
 
+		List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(t.getOrderNo(),3);
+		List<OutNewOrderDunBo> tOrderDuns = newOrderDunMapper.selectListNewOrderDun(t.getOrderNo(),null);
+		BigDecimal taskAmount=new BigDecimal(0);
+		for (TOrderTaskBo tOrderTaskBo : tOrderTaskBos) {
+			if (tOrderTaskBo.getCommodityPrice()!=null)
+			taskAmount=taskAmount.add(tOrderTaskBo.getCommodityPrice());
+		}
+		BigDecimal dunAmount=new BigDecimal(0);
+		for (OutNewOrderDunBo tOrderDun : tOrderDuns) {
+			if(tOrderDun.getMoney()!=null){
+				dunAmount=dunAmount.add(tOrderDun.getMoney());
+			}
+		}
+		if (orderAmount.compareTo(taskAmount)==0&&orderAmount.compareTo(dunAmount)==0){
+			return false;
+		}
+		return true;
 	}
 
 	/**
@@ -1433,120 +1437,18 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			sb=sb.append(str);
 		}
 
-		addNotic(type,aid,sb.toString());
+		asyncUtils.addNotic(type,aid,sb.toString());
 	}
 
-	@Override
-	public void addNoticMember(Integer type,  TOrderNewBo b,Integer shiroType,Integer result) {
-		StringBuffer sb=new StringBuffer();
-		String aid=null;
-		List<Admin>admins=new ArrayList<>();
-		sb.append("客户名称【").append(b.getUserName()).append("】,订单编号【").append(b.getOrderNo()).append("】,");
-		if (type.equals(NoticeStatus.MENBER_START.getCode())){
-			sb=sb.append("发起会员项目,请及时审核");
-			aid=b.getFinanceId();
-		}else if (type.equals(NoticeStatus.MENBER_YES.getCode())){
-			sb=sb.append("会员项目审核");
-			if(shiroType==0){
-				sb=sb.append("财务已通过。");
-				if (result==1) {
-					admins = MemberEnd(b);
-				}else{
-					admins=adminMapper.getAdminRoleList("总裁");
-				}
-			} else if(shiroType==1){
-				sb=sb.append("特批已通过。");
-				admins = MemberEnd(b);
-			}
-		}else if (type.equals(NoticeStatus.MENBER_NO.getCode())){
-			if(shiroType==0){
-				sb=sb.append("财务已驳回。");
-			} else if(shiroType==1){
-				sb=sb.append("特批已驳回。");
-			}
-			aid=b.getSalesmanId();
-		}
-		if (admins!=null&&admins.size()>0){
-			for (Admin admin : admins) {
-				addNotic(type,admin.getId(),sb.toString());
-				sendMemberEmail(type,admin.getId(),sb.toString());
-			}
-		}else {
-			addNotic(type,aid,sb.toString());
-			sendMemberEmail(type,aid,sb.toString());
-		}
-	}
 
-	/**
-	 * 会员项目完成审核调用
-	 * @param b
-	 * @return
-	 */
-	private List<Admin> MemberEnd(TOrderNewBo b) {
-		List<Admin> admins;
-		admins=adminMapper.getAdminRoleList("咨询师管理员");
-		Admin admin = new Admin();
-		admin.setId(b.getSalesmanId());
-		admins.add(admin);
-		pushTOrderNew(b);
-		return admins;
-	}
 
-	/**
-	 * 新建完成会员项目修改订单状态
-	 * @param b
-	 */
-	private void pushTOrderNew(TOrderNewBo b) {
-		List<TOrderTaskBo> l = tOrderTaskMapper.selectOrderTask(b.getOrderNo(), 0);
-		int counts =l.size();
-		int x=0;
-		for (TOrderTaskBo t : l) {
-			if (t.getTaskStatus()>0) {
-				x++;
-			}
-		}
-		TOrderNew n = new TOrderNew();
-		n.setOrderNo(b.getOrderNo());
-		if (x==0) {
-			n.setProcessStatus(4);
-		} else if(x<counts) {
-			n.setProcessStatus(5);
-		} else if(x==counts) {
-			n.setProcessStatus(6);
-		}
-		tOrderNewMapper.updateByPrimaryKeySelective(n);
-	}
 
-	/**
-	 * 发送邮件使用
-	 * @param type
-	 * @param aid
-	 * @param content
-	 */
-	private void sendMemberEmail(Integer type,String aid,String content) {
-		Admin admin = adminMapper.selectByPrimaryKey(aid);
-		EmailBo bo = new EmailBo(NoticeStatus.getValueByCode(type), admin.getEmail(),content);
-		if(StringUtils.isNotBlank(admin.getEmail())) {
-			asyncUtils.send(bo);
-		}
-	}
 
 
-	/**
-	 *
-	 * @param type 通知类型
-	 * @param aid 被通知人
-	 * @param str 信息
-	 */
-	public void addNotic(Integer type, String  aid,String str) {
-		Notice n =new Notice();
-		n.setId(UUID.randomUUID().toString());
-		n.setAid(aid);
-		n.setNoticeType(type);
-		n.setContent(str);
-		n.setReaded(0);//未读
-		asyncUtils.addNotice(n);
-	}
+
+
+
+
 
 
 
@@ -1772,8 +1674,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		if (StringUtils.isNotBlank(in.getName())) {
 			params.put("name", in.getName());
 		}
-		if (StringUtils.isNotBlank(in.getDepId())) {
-			params.put("deps", departmentService.getLowerDep(in.getDepId()));
+		if (in.getDeps()!=null) {
+			params.put("deps",departmentService.parseArray(in.getDeps()));
 		}
 		if (StringUtils.isNotBlank(in.getAdminName())) {
 			params.put("adminName", in.getAdminName());
@@ -1820,7 +1722,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	@Override
 	public boolean checkOfficialType(TOrderOutsource o) {
-		TOrderTaskDetailBo t=tOrderTaskMapper.getOrderTaskDetail(o.getTid().toString());
+		TOrderTaskDetailBo t=tOrderTaskMapper.getOrderTaskDetail(o.getTid());
 		//项目类型是专利不是转让就需要获取专利官费
 		if(t.getPatentTransfer()==0){
 			if(t.getBpType()==1) {

+ 202 - 16
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -13,6 +13,7 @@ import java.util.UUID;
 
 import javax.mail.MessagingException;
 
+import com.alibaba.fastjson.JSON;
 import com.goafanti.admin.bo.AdminListBo;
 import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.bo.*;
@@ -29,6 +30,7 @@ import org.apache.commons.collections4.map.HashedMap;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -113,6 +115,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private UserMidMapper userMidMapper;
 	@Autowired
 	private AsyncUtils	asyncUtils;
+	@Autowired
+	private TTaskMemberMapper tTaskMemberMapper;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
 
@@ -271,24 +275,32 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 
 	}
 	public void checkProjiectAllocation(String  orderNo) {
-		List<TOrderTaskBo> taskBos=tOrderTaskMapper.selectOrderTask(orderNo,0);
+		List<TOrderTaskBo> taskBos=tOrderTaskMapper.selectOrderTaskAll(orderNo,null);
 		TOrderNew tNew=new TOrderNew();
 		tNew.setOrderNo(orderNo);
+		tNew.setProcessStatus(getOrderProcessStatus(orderNo));
+
+		tOrderNewMapper.updateByPrimaryKeySelective(tNew);
+	}
+
+	@Override
+	public Integer getOrderProcessStatus(String  orderNo) {
+		Integer processStatus=4;
+		List<TOrderTaskBo> taskBos=tOrderTaskMapper.selectOrderTaskAll(orderNo,4);
 		int i=0;
 		for (TOrderTaskBo to : taskBos) {
 			if (to.getTaskStatus()>TaskState.UN_DISTRIBUTION.getCode()&&to.getTaskStatus()<TaskState.INVALID.getCode()) {
 				i++;
 			}
-
 		}
 		if (i==taskBos.size()) {
-			tNew.setProcessStatus(ProcessStatus.YQBFPZXSGLY.getCode());
+			processStatus=6;
 		}else if(i>0&&i<taskBos.size()){
-			tNew.setProcessStatus(ProcessStatus.YBFPZXSGLY.getCode());
+			processStatus=5;
 		}else if(i==0){
-			tNew.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
+			processStatus=4;
 		}
-		tOrderNewMapper.updateByPrimaryKeySelective(tNew);
+		return processStatus;
 	}
 
 	private void insetLog(Integer taskId, String taskReceiverId) {
@@ -342,7 +354,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		List<TOrderTaskListBo> list=(List<TOrderTaskListBo>) p.getList();
 		for (TOrderTaskListBo t : list) {
 			if(t.getSplitStatus()==1) {
-				List<TOrderTaskListBo> l=splitProjectList(t.getId());
+				List<TOrderTaskListBo> l=splitProjectList(t.getId(),1);
 				t.setSplitList(l);
 			}
 		}
@@ -350,7 +362,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	}
 
 	@Override
-	public TOrderTaskDetailBo orderTaskDetail(String id) {
+	public TOrderTaskDetailBo orderTaskDetail(Integer id) {
 		TOrderTaskDetailBo t=tOrderTaskMapper.getOrderTaskDetail(id);
 		if (TokenManager.hasRole(AFTConstants.SUPERADMIN)||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)
 				||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)||TokenManager.hasRole(AFTConstants.TECH_ADMIN)
@@ -528,7 +540,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			//如果是子项目
 		}else if (task2.getSplitStatus()==2){
 			//查出父项目
-			List<TOrderTaskListBo> list=tOrderTaskMapper.splitProjectList(task2.getSplitSuper());
+			List<TOrderTaskListBo> list=tOrderTaskMapper.splitProjectList(task2.getSplitSuper(),null);
 			//设置一个比较大的流程数字,然后取最小的
 			Integer i=28;
 			for (TOrderTaskListBo tt : list) {
@@ -961,8 +973,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	}
 
 	@Override
-	public List<TOrderTaskListBo> splitProjectList(Integer tid) {
-		return tOrderTaskMapper.splitProjectList(tid);
+	public List<TOrderTaskListBo> splitProjectList(Integer tid,Integer type) {
+		return tOrderTaskMapper.splitProjectList(tid,type);
 	}
 
 
@@ -1055,7 +1067,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		if (in.getOrderNo()!=null) map.put("orderNo", in.getOrderNo());
 		if (in.getContractNo()!=null) map.put("contartNo", in.getContractNo());
 		if (in.getPname()!=null) map.put("pname", in.getPname());
-		if (in.getDepId()!=null) map.put("depId", in.getDepId());
+		if (in.getDeps()!=null) {
+			map.put("deps", departmentService.parseArray(in.getDeps()));
+		}
 		map.put("aid", TokenManager.getAdminId());
 		return (Pagination<OutProjectCheck>)findPage("selectProjectCheck", "countProjectCheck", map, in.getPageNo(), in.getPageSize());
 	}
@@ -1084,8 +1098,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private void addParam(InputMemberList in, HashMap<String, Object> map) {
 		if(in.getOrderNo()!=null) map.put("orderNo", in.getOrderNo());
 		if(in.getUserName()!=null) map.put("userName", in.getUserName());
-		if(in.getDepId()!=null){
-			map.put("deps", departmentService.getLowerDep(in.getDepId()));
+		if(in.getDeps()!=null&&!in.getDeps().isEmpty()){
+			List<String> ls=JSON.parseArray(in.getDeps(),String.class);
+			map.put("deps", ls);
 		}
 		if(in.getContractNo()!=null) map.put("contractNo", in.getContractNo());
 		if(in.getSalesmanId()!=null) map.put("salesmanId", in.getSalesmanId());
@@ -1162,7 +1177,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			nt.setProcessStatus(4);
 			notice=NoticeStatus.MENBER_NO.getCode();
 		}
-		orderNewService.addNoticMember(notice, ono, in.getType(),result);
+		addNoticMember(notice, ono, in.getType(),result);
 		addMemberLog(in.getId(),status,in.getRemarks());
 		return tOrderTaskMapper.updateByPrimaryKeySelective(nt);
 	}
@@ -1176,7 +1191,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		addMemberLog(t.getId(),0,"修改重新发起");
 		t.setProcessStatus(1);
 		TOrderNewBo ono = tOrderNewMapper.getSaleIdByOno(task.getOrderNo());
-		orderNewService.addNoticMember(NoticeStatus.MENBER_START.getCode(), ono, null,0);
+		addNoticMember(NoticeStatus.MENBER_START.getCode(), ono, null,0);
 		return orderNewService.updateOrderTask(t);
 	}
 	@Override
@@ -1194,5 +1209,176 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		return memberLogMapper.memberLog(id);
 	}
 
+	@Override
+	public TOrderTask addMemberSonProject(Integer tid, String serviceYear, String taskComment,Integer memberType,String pictureUrl) {
+		Date date =new Date();
+		TOrderTask tOrderTask =  tOrderTaskMapper.selectByPrimaryKey(tid);
+		tOrderTask.setSplitStatus(1);
+		tOrderTask.setSplitAid(TokenManager.getAdminId());
+		tOrderTask.setSplitTime(date);
+		tOrderTaskMapper.updateByPrimaryKey(tOrderTask);
+		tOrderTask.setId(null);
+		tOrderTask.setSplitStatus(2);
+		tOrderTask.setSplitSuper(tid);
+		if (memberType!=null){
+			tOrderTask.setProcessStatus(1);
+			tOrderTask.setMemberType(memberType);
+			tOrderTask.setPictureUrl(pictureUrl);
+		}
+		Integer i=tOrderTaskMapper.getSplitCount(tid);
+		i++;
+		tOrderTask.setSplitId(i);
+		tOrderTask.setCommodityQuantity(1);
+		tOrderTask.setTaskComment(taskComment);
+		tOrderTask.setMain(0);
+		tOrderTaskMapper.insertSelective(tOrderTask);
+		TTaskMember t = tTaskMemberMapper.selectByTid(tid);
+		TOrderTaskBo tb=new TOrderTaskBo();
+		BeanUtils.copyProperties(tOrderTask,tb);
+		if (t.getServiceLife()!=null||t.getYearSum()!=null||t.getContractTerm()!=null||serviceYear!=null){
+			TTaskMember ttm=new TTaskMember();
+			ttm.setId(null);
+			ttm.setTid(tOrderTask.getId());
+			if(t.getServiceLife()!=null)ttm.setServiceLife(t.getServiceLife());
+			ttm.setServiceYear(serviceYear);
+			tb.setServiceYear(serviceYear);
+			if(t.getYearSum()!=null)ttm.setYearSum(t.getYearSum());
+			if(t.getContractTerm()!=null)ttm.setContractTerm(t.getContractTerm());
+			tTaskMemberMapper.insertSelective(ttm);
+		}
+
+		orderNewService.addTaskMid(tOrderTask.getId(),tOrderTask.getCommodityId(), tOrderTask.getOrderNo());
+		addMemberLog(tOrderTask.getId(),0,"新增会员项目");
+		addNoticMember(NoticeStatus.MENBER_START.getCode(),tOrderTask.getOrderNo(),null,0);
+		return tb;
+	}
+	public void addNoticMember(Integer type,  String orderNo,Integer shiroType,Integer result) {
+		TOrderNewBo tn = tOrderNewMapper.getSaleIdByOno(orderNo);
+		addNoticMember(NoticeStatus.MENBER_START.getCode(),tn,null,0);
+	}
+
+	@Override
+	public void addNoticMember(Integer type,  TOrderNewBo b,Integer shiroType,Integer result) {
+		StringBuffer sb=new StringBuffer();
+		String aid=null;
+		List<Admin>admins=new ArrayList<>();
+		sb.append("客户名称【").append(b.getUserName()).append("】,订单编号【").append(b.getOrderNo()).append("】,");
+		if (type.equals(NoticeStatus.MENBER_START.getCode())){
+			sb=sb.append("发起会员项目,请及时审核");
+			aid=b.getFinanceId();
+		}else if (type.equals(NoticeStatus.MENBER_YES.getCode())){
+			sb=sb.append("会员项目审核");
+			if(shiroType==0){
+				sb=sb.append("财务已通过。");
+				if (result==1) {
+					admins = MemberEnd(b);
+				}else{
+					admins=adminMapper.getAdminRoleList("总裁");
+				}
+			} else if(shiroType==1){
+				sb=sb.append("特批已通过。");
+				admins = MemberEnd(b);
+			}
+		}else if (type.equals(NoticeStatus.MENBER_NO.getCode())){
+			if(shiroType==0){
+				sb=sb.append("财务已驳回。");
+			} else if(shiroType==1){
+				sb=sb.append("特批已驳回。");
+			}
+			aid=b.getSalesmanId();
+		}
+		if (admins!=null&&admins.size()>0){
+			for (Admin admin : admins) {
+				asyncUtils.addNotic(type,admin.getId(),sb.toString());
+				sendMemberEmail(type,admin.getId(),sb.toString());
+			}
+		}else {
+			asyncUtils.addNotic(type,aid,sb.toString());
+			sendMemberEmail(type,aid,sb.toString());
+		}
+	}
+
+
+
+	/**
+	 * 会员项目完成审核调用
+	 * @param b
+	 * @return
+	 */
+	private List<Admin> MemberEnd(TOrderNewBo b) {
+		List<Admin> admins;
+		admins=adminMapper.getAdminRoleList("咨询师管理员");
+		Admin admin = new Admin();
+		admin.setId(b.getSalesmanId());
+		admins.add(admin);
+		pushTOrderNew(b);
+		return admins;
+	}
+	/**
+	 * 新建完成会员项目修改订单状态
+	 * @param b
+	 */
+	private void pushTOrderNew(TOrderNewBo b) {
+		List<TOrderTaskBo> l = tOrderTaskMapper.selectOrderTask(b.getOrderNo(), 0);
+		int counts =l.size();
+		int x=0;
+		for (TOrderTaskBo t : l) {
+			if (t.getTaskStatus()>0) {
+				x++;
+			}
+		}
+		TOrderNew n = new TOrderNew();
+		n.setOrderNo(b.getOrderNo());
+		if (x==0) {
+			n.setProcessStatus(4);
+		} else if(x<counts) {
+			n.setProcessStatus(5);
+		} else if(x==counts) {
+			n.setProcessStatus(6);
+		}
+		tOrderNewMapper.updateByPrimaryKeySelective(n);
+	}
+
+	/**
+	 * 发送邮件使用
+	 * @param type
+	 * @param aid
+	 * @param content
+	 */
+	private void sendMemberEmail(Integer type,String aid,String content) {
+		Admin admin = adminMapper.selectByPrimaryKey(aid);
+		EmailBo bo = new EmailBo(NoticeStatus.getValueByCode(type), admin.getEmail(),content);
+		if(com.goafanti.common.utils.StringUtils.isNotBlank(admin.getEmail())) {
+			asyncUtils.send(bo);
+		}
+	}
+
+	@Override
+	public int deleteMemberSonProject(Integer id) {
+		TOrderTask task = tOrderTaskMapper.selectByPrimaryKey(id);
+		tOrderTaskMapper.deleteByPrimaryKey(id);
+		List<TOrderTaskListBo> tOrderTaskListBos = tOrderTaskMapper.splitProjectList(task.getSplitSuper(),null);
+		//如果没有子项目则修改上级
+		if (tOrderTaskListBos==null||tOrderTaskListBos.isEmpty()){
+			TOrderTask tOrderTask=new TOrderTask();
+			tOrderTask.setId(task.getSplitSuper());
+			tOrderTask.setSplitStatus(0);
+			tOrderTaskMapper.updateByPrimaryKeySelective(tOrderTask);
+		}
+		tTaskMidMapper.deleteByPrimaryKey(id);
+		tTaskMemberMapper.deleteByPrimaryKey(id);
+		tTaskLogMapper.deleteByPrimaryKey(id);
+		return 1;
+	}
+
+	@Override
+	public boolean checkOrderProcessStatus(Integer tid, Integer processStatus) {
+		TOrderNew tOrderNew = tOrderNewMapper.checkOrderProcessStatus(tid);
+		if (tOrderNew.getProcessStatus()>processStatus){
+			return true;
+		}
+		return false;
+	}
+
 
 }

+ 23 - 20
src/main/java/com/goafanti/order/service/impl/OrderReceivablesServiceImpl.java

@@ -10,6 +10,7 @@ import java.util.UUID;
 
 import javax.annotation.Resource;
 
+import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.order.bo.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Cell;
@@ -87,6 +88,8 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
 
 	@Resource
 	private OrderBillService	orderBillService;
+	@Autowired
+	private DepartmentService	departmentService;
 
 	@Override
 	public int addReceivables(TemporaryReceivablesBo t) {
@@ -273,20 +276,12 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
 	}
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<ReceivablesListBo> listReceivables(ReceivablesListBo rl,Integer status,String adminName, String adminDepId, String orderDepId, Integer pageSize,
+	public Pagination<ReceivablesListBo> listReceivables(ReceivablesListBo rl,Integer status,String adminName, String adminDeps, String orderDeps, Integer pageSize,
 			Integer pageNo) {
 		Map<String,Object> parameter=new HashMap<String, Object>();
 		if(pageSize==null||pageSize<1)pageSize=10;
 		if(pageNo==null||pageNo<1)pageNo=1;
-		if(StringUtils.isNotBlank(rl.getContractNo()))parameter.put("contractNo", rl.getContractNo());
-		if(StringUtils.isNotBlank(rl.getOrderNo()))parameter.put("orderNo", rl.getOrderNo());
-		if(StringUtils.isNotBlank(rl.getNickname()))parameter.put("nickname", rl.getNickname());
-		if(StringUtils.isNotBlank(rl.getCorporateName()))parameter.put("corporateName", rl.getCorporateName());
-		if(StringUtils.isNotBlank(adminName))parameter.put("adminName", adminName);
-		if(StringUtils.isNotBlank(adminDepId))parameter.put("adminDepId", adminDepId);
-		if(StringUtils.isNotBlank(orderDepId))parameter.put("orderDepId", orderDepId);
-		if(null!=status)parameter.put("status", status);
-		if(StringUtils.isNotBlank(TokenManager.getAdminId()))parameter.put("aid", TokenManager.getAdminId());
+		addParemeter(rl, status, adminName, adminDeps, orderDeps, parameter);
 		Pagination<ReceivablesListBo> p=(Pagination<ReceivablesListBo>) findPage("selectReceivablesList", "selectReceivablesCount", parameter, pageNo, pageSize);
 		List<ReceivablesListBo> list=(List<ReceivablesListBo>) p.getList();
 
@@ -307,19 +302,27 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
 		return p;
 	}
 
+	private void addParemeter(ReceivablesListBo rl, Integer status, String adminName, String adminDeps, String orderDeps, Map<String, Object> parameter) {
+		if(StringUtils.isNotBlank(rl.getContractNo())) parameter.put("contractNo", rl.getContractNo());
+		if(StringUtils.isNotBlank(rl.getOrderNo())) parameter.put("orderNo", rl.getOrderNo());
+		if(StringUtils.isNotBlank(rl.getNickname())) parameter.put("nickname", rl.getNickname());
+		if(StringUtils.isNotBlank(rl.getCorporateName())) parameter.put("corporateName", rl.getCorporateName());
+		if(StringUtils.isNotBlank(adminName)) parameter.put("adminName", adminName);
+		if(StringUtils.isNotBlank(adminDeps)){
+			parameter.put("adminDeps", departmentService.parseArray(adminDeps));
+		}
+		if(StringUtils.isNotBlank(orderDeps)){
+			parameter.put("orderDeps", departmentService.parseArray(orderDeps));
+		}
+		if(null!= status) parameter.put("status", status);
+		if(StringUtils.isNotBlank(TokenManager.getAdminId())) parameter.put("aid", TokenManager.getAdminId());
+	}
+
 	@Override
 	public Map<String, Object> getCountlistReceivables(ReceivablesListBo rl, Integer status, String adminName,
-			String adminDepId, String orderDepId) {
+			String adminDeps, String orderDeps) {
 		Map<String,Object> parameter=new HashMap<String, Object>();
-		if(StringUtils.isNotBlank(rl.getContractNo()))parameter.put("contractNo", rl.getContractNo());
-		if(StringUtils.isNotBlank(rl.getOrderNo()))parameter.put("orderNo", rl.getOrderNo());
-		if(StringUtils.isNotBlank(rl.getNickname()))parameter.put("nickname", rl.getNickname());
-		if(StringUtils.isNotBlank(rl.getCorporateName()))parameter.put("corporateName", rl.getCorporateName());
-		if(StringUtils.isNotBlank(adminName))parameter.put("adminName", adminName);
-		if(StringUtils.isNotBlank(adminDepId))parameter.put("adminDepId", adminDepId);
-		if(StringUtils.isNotBlank(orderDepId))parameter.put("orderDepId", orderDepId);
-		if(null!=status)parameter.put("status", status);
-		if(StringUtils.isNotBlank(TokenManager.getAdminId()))parameter.put("aid", TokenManager.getAdminId());
+		addParemeter(rl, status, adminName, adminDeps, orderDeps, parameter);
 		//计算回收表的订单总金额与当前总收款额。
 		Map<String,Object> map=new HashMap<String, Object>();
 		map.put("totalAmount", new BigDecimal(temporaryReceivablesMapper.getCountlistReceivablesTotalAmount(parameter)).stripTrailingZeros() );

+ 4 - 2
src/main/java/com/goafanti/order/service/impl/OrderServiceImpl.java

@@ -1206,7 +1206,7 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 				superIds += om.getId() + ",";
 			}
 		}
-		if(StringUtils.isNotBlank(superIds)) subData = departmentMapper.selectSubDeps(superIds.substring(0, superIds.length()-1));
+		if(StringUtils.isNotBlank(superIds)) subData = departmentMapper.selectSubDepsList(superIds.substring(0, superIds.length()-1));
 		if(subData != null && subData.size()>0) {
 			allData.addAll(subData);
 			selectSubDeps(allData,subData);
@@ -1216,7 +1216,7 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 
 	private List<Department> selectCurrentDep(String managerId){
 		List<Department> allData = new ArrayList<Department>();
-		List<Department> superData = departmentMapper.selectCurrentDeps(managerId);
+		List<Department> superData = departmentMapper.selectSubDepsList(managerId);
 		if(superData != null && superData.size()>0){
 			allData.addAll(superData);
 		}
@@ -1674,6 +1674,8 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 		return tOrderMapper.updateByPrimaryKeySelective(tOrder);
 	}
 
+
+
 	@Override
 	public int updateLockOrRevokeOrder(String orderNo, Integer operatorType) {
 		TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);

+ 5 - 0
src/main/java/com/goafanti/order/service/impl/OrderStatisticsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.goafanti.order.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.goafanti.common.dao.TOrderNewMapper;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.order.bo.*;
@@ -20,6 +21,10 @@ public class OrderStatisticsServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	public List<OutOrderSalesSource> orderSalesSource(InputOrderSalesSource in) {
 		if (in.getSort()==null)in.setSort(0);
 		if(in.getEndDate()!=null)in.setEndDate(in.getEndDate()+" 23:59:59");
+		if (in.getDeps()!=null){
+			List<String> ls= JSON.parseArray(in.getDeps(),String.class);
+			in.setListDep(ls);
+		}
 		return tOrderNewMapper.orderSalesSource(in);
 	}
 

+ 2 - 7
src/main/java/com/goafanti/order/service/impl/UserStatisticsServiceImpl.java

@@ -71,13 +71,8 @@ public class UserStatisticsServiceImpl extends BaseMybatisDao<UserMidMapper> imp
 
 
 	private void addsignStatisticsParam(InputSignStatistics in, Map<String, Object> map) {
-		if (in.getDepId()!=null){
-			String[] ss=in.getDepId().split(",");
-			List<Department> ls=new ArrayList<>();
-			Arrays.stream(ss).forEach(e ->{
-				ls.addAll(departmentService.selectSubDeps(e));
-			});
-			map.put("deps",ls);
+		if (!in.getDeps().isEmpty()){
+			map.put("deps",in.getDeps());
 		}
 		if (StringUtils.isNotBlank(in.getAid())) map.put("aid", in.getAid());
 		if (StringUtils.isNotBlank(in.getUid())) map.put("uid", in.getUid());

+ 56 - 0
src/main/java/com/goafanti/organization/bo/DepOut.java

@@ -0,0 +1,56 @@
+package com.goafanti.organization.bo;
+
+import java.util.List;
+
+public class DepOut {
+
+    private String id;
+
+    private String name;
+
+    private String depNo;
+
+    private Integer lvl;
+
+    private List<DepOut> list;
+
+    public String getDepNo() {
+        return depNo;
+    }
+
+    public void setDepNo(String depNo) {
+        this.depNo = depNo;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getLvl() {
+        return lvl;
+    }
+
+    public void setLvl(Integer lvl) {
+        this.lvl = lvl;
+    }
+
+    public List<DepOut> getList() {
+        return list;
+    }
+
+    public void setList(List<DepOut> list) {
+        this.list = list;
+    }
+}

+ 22 - 14
src/main/java/com/goafanti/organization/bo/InputPaymentList.java

@@ -1,18 +1,30 @@
 package com.goafanti.organization.bo;
 
+import java.util.List;
+
 public class InputPaymentList {
 	private String contractNo;
-	private String orderNo; 
+	private String orderNo;
 	private String userName;
-	private String depId;
-	private String aname; 
+	private String deps;
+	private String aname;
 	private String financeName;
-	private String cname; 
-	private String pname; 
+	private String cname;
+	private String pname;
 	private Integer status;
 	private Integer chooseType;
 	private Integer pageSize;
 	private Integer pageNo;
+
+
+	public String getDeps() {
+		return deps;
+	}
+
+	public void setDeps(String deps) {
+		this.deps = deps;
+	}
+
 	public String getContractNo() {
 		return contractNo;
 	}
@@ -25,7 +37,7 @@ public class InputPaymentList {
 	public void setOrderNo(String orderNo) {
 		this.orderNo = orderNo;
 	}
-	
+
 	public String getAname() {
 		return aname;
 	}
@@ -66,7 +78,7 @@ public class InputPaymentList {
 		return pageNo;
 	}
 	public void setPageNo(Integer pageNo) {
-		
+
 		this.pageNo = pageNo;
 	}
 	public String getUserName() {
@@ -75,12 +87,8 @@ public class InputPaymentList {
 	public void setUserName(String userName) {
 		this.userName = userName;
 	}
-	public String getDepId() {
-		return depId;
-	}
-	public void setDepId(String depId) {
-		this.depId = depId;
-	}
+
+
 	public String getPname() {
 		return pname;
 	}
@@ -93,7 +101,7 @@ public class InputPaymentList {
 	public void setChooseType(Integer chooseType) {
 		this.chooseType = chooseType;
 	}
-	
+
 
 
 }

+ 11 - 0
src/main/java/com/goafanti/organization/bo/OrganizationListOut.java

@@ -1,5 +1,7 @@
 package com.goafanti.organization.bo;
 
+import java.util.List;
+
 public class OrganizationListOut {
 	/**登录用户ID**/
 	private String uid;
@@ -43,6 +45,15 @@ public class OrganizationListOut {
 	private Integer workingHoursType;
 	private String workingHoursName;
 	private Integer lvl;
+	private List<OrganizationListOut> list;
+
+	public List<OrganizationListOut> getList() {
+		return list;
+	}
+
+	public void setList(List<OrganizationListOut> list) {
+		this.list = list;
+	}
 
 	public Integer getLvl() {
 		return lvl;

+ 28 - 10
src/main/java/com/goafanti/organization/controller/AdminOrganizationController.java

@@ -22,6 +22,7 @@ public class AdminOrganizationController extends BaseApiController{
 	private OrganizationService organizationService;
 	@Autowired
 	private DepartmentMapper departmentMapper;
+
 	/**部门组织管理列表 **/
 	@RequestMapping(value = "/listOrganizationManagement" , method = RequestMethod.POST)
 	public Result listOrganizationManagement(OrganizationListOut olo, Integer pageNo,
@@ -30,13 +31,22 @@ public class AdminOrganizationController extends BaseApiController{
 		res.setData(organizationService.listOrganizationManagement(olo, pageNo, pageSize));
 		return res;
 	}
-	/**部门组织管理上级组织查询 **/
+	/**获取科德集团以下的部门 **/
+	@RequestMapping(value = "/getAllDep" , method = RequestMethod.GET)
+	public Result getAllDep(Integer hideSign){
+		Result res = new Result();
+		res.setData(organizationService.getAllDep(hideSign));
+		return res;
+	}
+
+	/**获取所有部门 **/
 	@RequestMapping(value = "/selectSuperId" , method = RequestMethod.GET)
-	public Result selectsuperId(Integer hideSign){
+	public Result selectSuperId(Integer hideSign){
 		Result res = new Result();
 		res.setData(organizationService.selectSuperId(hideSign));
 		return res;
 	}
+
 	/**部门组织管理上级组织查询 **/
 	@RequestMapping(value = "/selectSuperIdS" , method = RequestMethod.GET)
 	public Result selectsuperIdS(){
@@ -47,10 +57,10 @@ public class AdminOrganizationController extends BaseApiController{
 	/**部门组织管理新增**/
 	@RequestMapping(value = "/addOrganization" , method = RequestMethod.POST)
 	public Result addOrganization(String name, String managerId, String type, String superId, String remarks,
-								  Integer workingHoursType,Integer hideSign) {
+								  Integer workingHoursType,Integer hideSign,String depNo) {
 		Result res = new Result();
-		if(StringUtils.isBlank(name) || StringUtils.isBlank(type) || StringUtils.isBlank(superId)){
-			res.getError().add(buildError("","组织名称、组织类型、上级组织不能为空"));
+		if(StringUtils.isBlank(name) || StringUtils.isBlank(type) || StringUtils.isBlank(superId)||StringUtils.isBlank(depNo)){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR,"",""));
 			return res;
 		}
 		String olo=departmentMapper.selectDepNoByName(name);
@@ -58,7 +68,11 @@ public class AdminOrganizationController extends BaseApiController{
 			res.getError().add(buildError("","部门已存在"));
 			return res;
 		}
-		organizationService.addOrganization(name, managerId, type, superId, remarks,workingHoursType,hideSign);
+		if (organizationService.checkDepNo(depNo,0)){
+			res.getError().add(buildError("","部门编号已存在"));
+			return res;
+		}
+		organizationService.addOrganization(name, managerId, type, superId, remarks,workingHoursType,hideSign,depNo);
 
 		return res;
 	}
@@ -79,20 +93,24 @@ public class AdminOrganizationController extends BaseApiController{
 	/**修改信息**/
 	@RequestMapping(value = "/updateOrganization" , method = RequestMethod.POST)
 	public Result updateOrganization(String name, String type, String managerId, String superId, String status,Integer province,
-			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign){
+			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign,String depNo){
 		Result res = new Result();
 		if(StringUtils.isBlank(name) || StringUtils.isBlank(type)
 				|| StringUtils.isBlank(managerId)|| StringUtils.isBlank(superId)
-				|| StringUtils.isBlank(status)|| StringUtils.isBlank(remarks)){
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR,""));
+				|| StringUtils.isBlank(status)|| StringUtils.isBlank(remarks)|| StringUtils.isBlank(depNo)){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR,"",""));
 			return res;
 		}
 		if (id ==superId){
 			res.getError().add(buildError("不能设置自己为上级"));
 			return res;
 		}
+		if (organizationService.checkDepNo(depNo,1)){
+			res.getError().add(buildError("","部门编号已存在"));
+			return res;
+		}
 		int i=organizationService.updateOrganization(name, type, managerId, superId, status, province,remarks,id,
-				abbreviation,financeId,workingHoursType,hideSign);
+				abbreviation,financeId,workingHoursType,hideSign,depNo);
 		return res.data(i);
 	}
 

+ 9 - 3
src/main/java/com/goafanti/organization/service/OrganizationService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.goafanti.admin.bo.AdminListBo;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.organization.bo.DepOut;
 import com.goafanti.organization.bo.OrganizationListOut;
 
 public interface OrganizationService {
@@ -17,7 +18,9 @@ public interface OrganizationService {
 	Pagination<OrganizationListOut>
 	listOrganizationManagement(OrganizationListOut olo,Integer pageNo, Integer pageSize);
 	/**组织名称查上级组织*/
-	List<OrganizationListOut> selectSuperId(Integer hideSign);
+	List<DepOut> selectSuperId(Integer hideSign);
+
+	List<DepOut> getAllDep(Integer hideSign);
 	/**
 	 *
 	 * @param name 组织名称
@@ -28,7 +31,7 @@ public interface OrganizationService {
 	 * @return
 	 */
 	int addOrganization(String name,String managerId,String type,String superId,String desc,
-						Integer workingHoursType,Integer hideSign);
+						Integer workingHoursType,Integer hideSign,String depNo);
 	/**
 	 * 模糊查询负责人名称
 	 * @param name
@@ -41,6 +44,9 @@ public interface OrganizationService {
 	int deleteById(String id);
 
 	int updateOrganization(String name,String type,String managerId,String superId,String status,Integer province,
-			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign);
+			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign,String depNo);
+
+	boolean checkDepNo(String depNo,Integer type);
+
 
 }

+ 60 - 23
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.UUID;
 
 import com.goafanti.common.dao.DepartmentMapper;
 import com.goafanti.common.model.Department;
+import com.goafanti.organization.bo.DepOut;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -52,7 +53,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		return params;
 	}
 	@Override
-	public List<OrganizationListOut> selectSuperId(Integer hideSign) {
+	public List<DepOut> selectSuperId(Integer hideSign) {
 		if(hideSign==null){
 			hideSign=1;
 		}
@@ -60,9 +61,43 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		if (hideSign>1){
 			hideSign=null;
 		}
-		List<OrganizationListOut> depList=departmentMapper.selectSuperId(hideSign);
+		List<DepOut> depList=departmentMapper.selectSuperId(hideSign,null,null);
 		return depList;
 	}
+
+	@Override
+	public List<DepOut> getAllDep(Integer hideSign) {
+		if(hideSign==null){
+			hideSign=1;
+		}
+		//此处理用于前端不批量改接口
+		if (hideSign>1){
+			hideSign=null;
+		}
+		List<DepOut> depList=departmentMapper.selectSuperId(hideSign,3,null);
+		depList.forEach(e ->{
+			List<DepOut> list=getSubordinateDep(1,e.getId());
+			if (!list.isEmpty()){
+				e.setList(list);
+			}
+		});
+		return depList;
+	}
+
+	/**
+	 *
+	 */
+	public List<DepOut> getSubordinateDep(Integer hideSign,String id){
+		List<DepOut> depList=departmentMapper.selectSuperId(hideSign,null,id);
+		depList.forEach(e ->{
+			List<DepOut> list=getSubordinateDep(1,e.getId());
+			if (!list.isEmpty()){
+				e.setList(list);
+			}
+		});
+		return depList;
+	}
+
 	/**
 	 *   XXIn form 提交 ,bo包中
 	 *   xxOut 输出 bo包中
@@ -70,7 +105,8 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 	 *
 	 */
 	@Override
-	public int addOrganization( String name, String managerId, String type, String superId, String remarks,Integer workingHoursType,Integer hideSign) {
+	public int addOrganization( String name, String managerId, String type, String superId, String remarks,
+								Integer workingHoursType,Integer hideSign,String depNo) {
 		Department superDep=departmentMapper.selectByPrimaryKey(superId);
 		String id = UUID.randomUUID().toString();
 		Date now = new Date();
@@ -85,7 +121,6 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setLvl(superDep.getLvl()+1);
 		dep.setType(type);
 		dep.setManagerId(managerId);
-		String depNo = getMaxDep(superDep);
 		dep.setDepNo(depNo);
 	//	superId=departmentMapper.selectIdByName(superId);
 		dep.setSuperId(superId);
@@ -135,28 +170,11 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 	}
 	@Override
 	public int updateOrganization(String name, String type, String managerId, String superId, String status,Integer province,
-			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign) {
+			String remarks,String id,String abbreviation,String financeId,Integer workingHoursType,Integer hideSign,String depNo) {
 		//获取上级编号
 		Department superDep=departmentMapper.selectByPrimaryKey(superId);
-		Department use =departmentMapper.selectByPrimaryKey(id);
 		Date now=new Date();
 		Department dep=new Department();
-		String deps ="";
-		//如果是修改顶级则不触发下级修改
-		boolean flag=true;
-		if (name.contains("平台超管中心"))flag=false;
-		if (!use.getSuperId().equals(superId)){
-			if(!name.equals("平台超管中心")){
-				deps=getMaxDep(superDep);
-			}else {
-				deps="DP";
-			}
-			dep.setDepNo(deps);
-			dep.setSuperId(superId);
-		}else {
-			flag=false;
-		}
-
 		dep.setLvl(superDep.getLvl()+1);
 		dep.setName(name);
 		dep.setType(type);
@@ -165,6 +183,8 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setStatus(status);
 		dep.setRemarks(remarks);
 		dep.setId(id);
+		dep.setSuperId(superId);
+		dep.setDepNo(depNo);
 		dep.setAbbreviation(abbreviation);
 		dep.setFinanceId(financeId);
 		dep.setProvince(province);
@@ -172,10 +192,27 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setWorkingHoursType(workingHoursType);
 		tOrderMidMapper.updateFinanceId(id,financeId);
 		int x=departmentMapper.updateByPrimaryKeySelective(dep);
-		if(flag)updateLowerLevelNo(dep.getId(),dep.getDepNo(),dep.getLvl());
 		return x;
 	}
 
+	@Override
+	public boolean checkDepNo(String depNo,Integer type) {
+		String useDepNo=departmentMapper.selectIdByDepNo(depNo);
+		if (StringUtils.isNotBlank(useDepNo)){
+			if (type==1){
+				if (!depNo.equals(useDepNo)){
+					return false;
+				}else {
+					return true;
+				}
+			}else {
+				return true;
+			}
+
+		}
+		return false;
+	}
+
 	private String countDepNo(String sdepNo, Integer count) {
 		String dep=null;
 		if(count<10){

+ 3 - 3
src/main/java/com/goafanti/organization/service/impl/ThirdPartyCompanyServiceImpl.java

@@ -582,7 +582,7 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 	@Override
 	public boolean checkprojectDun(TOrderPayment p) {
 		PaymentNode pn=paymentNodeMapper.selectByPrimaryKey(p.getNodeId());
-		TOrderTaskDetailBo tt=tOrderTaskMapper.getOrderTaskDetail(p.getTid().toString());
+		TOrderTaskDetailBo tt=tOrderTaskMapper.getOrderTaskDetail(p.getTid());
 //		项目状态 0-项目待提交 1-项目已提交,2-项目评审,3-项目立项,4-项目公示,5-项目抽查,6-项目备案,7-项目下证,8-项目验收,
 //		9-项目拨款 10- 项目进度10% 11- 项目进度30% 12- 项目进度70%
 		if(pn.getDunType()==1) {
@@ -648,8 +648,8 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 		if (i.getContractNo()!=null)map.put("contractNo", i.getContractNo());
 		if (i.getOrderNo()!=null)map.put("orderNo", i.getOrderNo());
 		if (i.getUserName()!=null)map.put("userName", i.getUserName());
-		if (i.getDepId()!=null){
-			map.put("deps", departmentService.getLowerDep(i.getDepId()));
+		if (i.getDeps()!=null){
+			map.put("deps", departmentService.parseArray(i.getDeps()));
 		}
 		if (i.getAname()!=null)map.put("aname", i.getAname());
 		if (i.getFinanceName()!=null)map.put("financeName", i.getFinanceName());

+ 12 - 10
src/main/java/com/goafanti/patent/bo/PatentNewBo.java

@@ -2,15 +2,16 @@ package com.goafanti.patent.bo;
 
 
 import java.math.BigDecimal;
+import java.util.List;
 
 import com.goafanti.common.model.PatentNew;
 import com.goafanti.common.utils.excel.Excel;
 
 public class PatentNewBo extends PatentNew{
 
-	
+
 	/**
-	 * 
+	 *
 	 */
 	private static final long serialVersionUID = 1L;
 
@@ -70,13 +71,6 @@ public class PatentNewBo extends PatentNew{
 	private String createEnds;
 	private Integer isFollow;
 
-	public String getFollowDep() {
-		return followDep;
-	}
-
-	public void setFollowDep(String followDep) {
-		this.followDep = followDep;
-	}
 	public String getInputDep() {
 		return inputDep;
 	}
@@ -85,6 +79,14 @@ public class PatentNewBo extends PatentNew{
 		this.inputDep = inputDep;
 	}
 
+	public String getFollowDep() {
+		return followDep;
+	}
+
+	public void setFollowDep(String followDep) {
+		this.followDep = followDep;
+	}
+
 	public Integer getCostReduction() {
 		return costReduction;
 	}
@@ -157,7 +159,7 @@ public class PatentNewBo extends PatentNew{
 	public void setEmail(String email) {
 		this.email = email;
 	}
-	
+
 	public String getProjectName() {
 		return projectName;
 	}

+ 3 - 3
src/main/java/com/goafanti/patent/service/impl/PatentNewServiceImpl.java

@@ -227,16 +227,16 @@ public class PatentNewServiceImpl  extends BaseMybatisDao<PatentNewMapper> imple
 		if(p.getCreateEnds()!=null)params.put("createEnds", p.getCreateEnds()+" 23:59:59");
 		if(p.getType()!=null)params.put("type", p.getType());
 		if(p.getDepName()!=null){
-			params.put("depName",  p.getDepName());
+			params.put("depName",  departmentService.parseArray(p.getDepName()));
 		}
 		if(p.getAnnualFeeStatus()!=null)params.put("annualFeeStatus", p.getAnnualFeeStatus());
 		if(p.getUserName()!=null)params.put("userName", p.getUserName());
 		if(p.getSalesmanRemind()!=null)params.put("salesmanRemind", p.getSalesmanRemind());
 		if(p.getInputDep()!=null){
-			params.put("inputDep", departmentService.getLowerDep(p.getInputDep()));
+			params.put("inputDep", departmentService.parseArray(p.getInputDep()));
 		}
 		if(p.getFollowDep()!=null){
-			params.put("followDep", departmentService.getLowerDep(p.getFollowDep()));
+			params.put("followDep", departmentService.parseArray(p.getFollowDep()));
 		}
 
 		if(p.getIsFollow()!=null) {

+ 14 - 14
src/main/java/com/goafanti/report/controller/ReportApiController.java

@@ -118,7 +118,7 @@ public class ReportApiController extends BaseApiController {
 	@RequestMapping(value = "/sales/marketingStatistics", method = RequestMethod.GET)
 	public Result marketingStatistics(String depId,Integer type) {
 		Result res=new Result();
-		
+
 		if (null==type||type>1) {
 			 res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "参数错误", "参数"));
 	            return res;
@@ -138,7 +138,7 @@ public class ReportApiController extends BaseApiController {
 	@RequestMapping(value = "/sales/countMarketingStatistics", method = RequestMethod.GET)
 	public Result countMarketingStatistics(String depId,Integer type) {
 		Result res=new Result();
-		
+
 		if (null==type||type>1) {
 			 res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "参数错误", "参数"));
 	            return res;
@@ -149,7 +149,7 @@ public class ReportApiController extends BaseApiController {
 			return res.data(reportService.countMarketingDepStatistics(depId));
 		}
 	}
-	
+
 	/**
 	 * 客户营销时段统计表
 	 * @param depId
@@ -199,7 +199,7 @@ public class ReportApiController extends BaseApiController {
 	            return res;
 		}
 	  return res.data(reportService.countSometimeMarketingStatistics(depId,timeType,startTime,endTime));
-		
+
 	}
 	/**
 	 * 派单报表统计
@@ -216,28 +216,28 @@ public class ReportApiController extends BaseApiController {
 	            return res;
 		}
 	   return res.data(reportService.technicalDepStatistics(depId,timeType,startTime,endTime,publishStatus,taskStatus));
-		
+
 	}
-	
+
 	/**
 	 * 客户资料统计报表
 	 */
 	@RequestMapping(value="/userDataStatistics" , method=RequestMethod.GET)
-	public Result userDataStatistics(String depId){
+	public Result userDataStatistics(String deps){
 		Result res=new Result();
-		return res.data(reportService.userDataStatistics(depId));
-		
+		return res.data(reportService.userDataStatistics(deps));
+
 	}
-	
+
 	/**
 	 * 客户资料统计报表总计
 	 */
 	@RequestMapping(value="/userDataStatisticsCount" , method=RequestMethod.GET)
-	public Result userDataStatisticsCount(String depId){
+	public Result userDataStatisticsCount(String deps){
 		Result res=new Result();
-		return res.data(reportService.userDataStatisticsCount(depId));
-		
+		return res.data(reportService.userDataStatisticsCount(deps));
+
 	}
-	
+
 
 }

+ 22 - 15
src/main/java/com/goafanti/report/service/SalesReportServiceImpl.java

@@ -1,13 +1,10 @@
 package com.goafanti.report.service;
 
 import java.math.BigDecimal;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
+
+import com.goafanti.admin.service.DepartmentService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,6 +35,8 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 	DailySalesReportMapper dailySalesReportMapper;
 	@Autowired
 	UserMapper userMapper;
+	@Autowired
+	DepartmentService	departmentService;
 
 	public int insertDailyReports(Date startTime, Date endTime) {
 		List<DailySalesReport> list = dailySalesReportMapper.selectAdmins();
@@ -250,12 +249,12 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 		}
 	}
 
-	
+
 	public List<marketingESBo> marketingStatistics(String depId) {
 		ReportDate rd = new ReportDate(new Date());
 		List<marketingESBo> list=dailySalesReportMapper.findmarketingStatisticsList(depId,rd.getStringDailyStart(),rd.getStringDailyEnd(),rd.getStringWeeklyStart(),rd.getStringWeeklyEnd(),
 														rd.getStringMonthStart(),rd.getStringMonthEnd(),rd.getStringYearStart(),rd.getStringYearEnd());
-		
+
 			return list;
 	}
 
@@ -264,7 +263,7 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 		ReportDate rd = new ReportDate(new Date());
 		List<marketingESBo> list=dailySalesReportMapper.marketingDepStatisticsList(depId,rd.getStringDailyStart(),rd.getStringDailyEnd(),rd.getStringWeeklyStart(),rd.getStringWeeklyEnd(),
 				rd.getStringMonthStart(),rd.getStringMonthEnd(),rd.getStringYearStart(),rd.getStringYearEnd());
-			
+
 		return list;
 	}
 
@@ -279,7 +278,7 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 		ReportDate rd = new ReportDate(new Date());
 		CountMarketingStatisticsBo count=dailySalesReportMapper.privateCustomersDepCount(depId,rd.getStringDailyStart(),rd.getStringDailyEnd(),rd.getStringWeeklyStart(),rd.getStringWeeklyEnd(),
 				rd.getStringMonthStart(),rd.getStringMonthEnd(),rd.getStringYearStart(),rd.getStringYearEnd());
-		
+
 		return count;
 	}
 
@@ -388,13 +387,21 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 		return null;
 	}
 
-	public List<userDataListBo> userDataStatistics(String depId) {
-		return userMapper.userDataStatistics(depId);
+	public List<userDataListBo> userDataStatistics(String deps) {
+		List<String> listDep=new ArrayList<>();
+		if (deps!=null){
+			listDep=departmentService.parseArray(deps);
+		}
+		return userMapper.userDataStatistics(listDep);
 	}
 
-	public userDataListBo userDataStatisticsCount(String depId) {
-		return userMapper.userDataStatisticsCount(depId);
+	public userDataListBo userDataStatisticsCount(String deps) {
+		List<String> listDep=new ArrayList<>();
+		if (deps!=null){
+			listDep=departmentService.parseArray(deps);
+		}
+		return userMapper.userDataStatisticsCount(listDep);
 	}
-	
+
 
 }

+ 7 - 5
src/main/java/com/goafanti/user/bo/InputUserFollowList.java

@@ -1,5 +1,7 @@
 package com.goafanti.user.bo;
 
+import java.util.List;
+
 public class InputUserFollowList {
 
     private String userName;
@@ -12,7 +14,7 @@ public class InputUserFollowList {
     private String createEndTime;
     private String guidanceStartTime;
     private String guidanceEndTime;
-    private String depId;
+    private String deps;
     /** 0自己 1下级 2全部*/
     private Integer shiroType;
     private String followName;
@@ -83,12 +85,12 @@ public class InputUserFollowList {
         this.guidanceEndTime = guidanceEndTime;
     }
 
-    public String getDepId() {
-        return depId;
+    public String getDeps() {
+        return deps;
     }
 
-    public void setDepId(String depId) {
-        this.depId = depId;
+    public void setDeps(String deps) {
+        this.deps = deps;
     }
 
     public Integer getPageSize() {

+ 9 - 8
src/main/java/com/goafanti/user/controller/ExpertPublishController.java

@@ -18,10 +18,8 @@ import com.goafanti.user.service.UserService;
 @RequestMapping(value = "/api/admin/expert")
 public class ExpertPublishController extends BaseApiController {
 	@Resource
-	private UserService						userService;
-	@Resource
 	private ExpertPublishService			expertPublishService;
-	
+
 	/**
      * 成果发布
      */
@@ -32,28 +30,30 @@ public class ExpertPublishController extends BaseApiController {
             res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到专家", "专家"));
             return res;
         }
-        res.setData(expertPublishService.insertExpertPublish(e));     
+        res.setData(expertPublishService.insertExpertPublish(e));
         return res;
     }
+
     /**
      * 撤销发布
      */
     @RequestMapping(value = "/deletePublish", method = RequestMethod.GET)
     private Result deletePublish(String id) {
         Result res = new Result();
-        res.setData(expertPublishService.deletePublish(id));     
+        res.setData(expertPublishService.deletePublish(id));
         return res;
     }
+
     /**
      * 修改发布
      */
     @RequestMapping(value = "/updatePublish", method = RequestMethod.GET)
     private Result updatePublish(ExpertPublish e) {
         Result res = new Result();
-        res.setData(expertPublishService.updatePublish(e));     
+        res.setData(expertPublishService.updatePublish(e));
         return res;
     }
-    
+
     /**
      * 发布列表
      */
@@ -68,9 +68,10 @@ public class ExpertPublishController extends BaseApiController {
 			pageSize=10;
 		}
         res.setData(expertPublishService.listPublish( name, publishPlatform, publishClient, publishPage,
-        		 ifTop,  pageNo,  pageSize));     
+        		 ifTop,  pageNo,  pageSize));
         return res;
     }
+
     /**
      * 获取专家页面位置
      */

+ 26 - 28
src/main/java/com/goafanti/user/controller/UserChannelApiController.java

@@ -27,16 +27,15 @@ import com.goafanti.user.service.UserChannelService;
 @RestController
 @RequestMapping(value = "/api/user/channel")
 public class UserChannelApiController  extends CertifyApiController{
-	
+
 	@Resource
 	private UserChannelService 	userChannelService;
 	@Resource
 	private AttachmentService	attachmentService;
-	
-	
+
+
 	/**
 	 * 	新增渠道
-	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/add", method = RequestMethod.POST)
@@ -44,14 +43,14 @@ public class UserChannelApiController  extends CertifyApiController{
 		Result res = new Result();
 		if (StringUtils.isBlank(in.getUserName())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "用户名称"));
+			return  res;
 		}
 		res.setData(userChannelService.add(in));
 		return res;
 	}
-	
+
 	/**
 	 * 	删除渠道
-	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/delete", method = RequestMethod.POST)
@@ -59,15 +58,15 @@ public class UserChannelApiController  extends CertifyApiController{
 		Result res = new Result();
 		if (StringUtils.isBlank(ids)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "编号"));
+			return  res;
 		}
 		res.setData(userChannelService.delete(ids));
 		return res;
 	}
 
-	
+
 	/**
 	 * 	Excel批量导入渠道客户
-     * 
      * @return
      */
     @RequestMapping(value = "/import" , method = RequestMethod.POST)
@@ -83,30 +82,29 @@ public class UserChannelApiController  extends CertifyApiController{
         	  res.getError().add(buildError("格式不正确","格式不正确"));
         	  return res;
           }
-    	
-         res.data(userChannelService.batchListReceivables(file)); 
+
+         res.data(userChannelService.batchListReceivables(file));
     	return res;
     }
-    
-    
+
+
     /**
-  	 * 	已存在渠道客户列表
-       * 
-       * @return
-       */
+	 * 已存在渠道客户列表
+	 * @return
+	 */
       @RequestMapping(value = "/erorrList" , method = RequestMethod.GET)
       public Result erorrList(Integer pageNo,Integer pageSize)  {
     	  Result res =new Result();
     	  res.data(userChannelService.getErorrList(pageNo,pageSize));
   		 return  res;
       	}
-    
-    /**
-  	 * 	导出已存在渠道客户
-       * 
-       * @param response
-       * @return
-       */
+
+
+	/**
+	 * 导出已存在渠道客户
+	 * @param response
+	 * @return
+	 */
       @RequestMapping(value = "/export" , method = RequestMethod.GET)
       public Result exportReceivables(HttpServletResponse response)  {
     	  @SuppressWarnings("unchecked")
@@ -114,9 +112,9 @@ public class UserChannelApiController  extends CertifyApiController{
       	NewExcelUtil<OutUserChannel>excel=new NewExcelUtil<>(OutUserChannel.class);
   		 return  excel.exportExcel(list,"未导入渠道客户表",response);
       	}
+
       /**
-  	 * 	下载回款批量导入Excel模板
-       * 
+	   * 下载回款批量导入Excel模板
        * @param response
        * @return
        */
@@ -140,8 +138,8 @@ public class UserChannelApiController  extends CertifyApiController{
           }
           return res;
       }
-      
-      
-	
+
+
+
 
 }

+ 4 - 7
src/main/java/com/goafanti/user/controller/UserLoginController.java

@@ -3,7 +3,6 @@ package com.goafanti.user.controller;
 
 import java.util.Date;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.lang3.StringUtils;
@@ -12,7 +11,6 @@ import org.apache.shiro.web.util.SavedRequest;
 import org.apache.shiro.web.util.WebUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -41,7 +39,7 @@ public class UserLoginController extends BaseController {
 
 	@RequestMapping(value = "/login", method = RequestMethod.GET)
 	@ResponseBody
-	public Result login(HttpServletRequest request, Model model) {
+	public Result login() {
 		Result res = new Result();
 		TokenManager.logout();
 		return res;
@@ -75,12 +73,11 @@ public class UserLoginController extends BaseController {
 	 *
 	 * @param user
 	 * @param remember
-	 * @param request
 	 * @return
 	 */
 	@RequestMapping(value = "/mlogin", method = RequestMethod.POST)
 	@ResponseBody
-	public Result mLogin(User user, Boolean remember, HttpServletRequest request) {
+	public Result mLogin(User user, Boolean remember) {
 		Result res = new Result();
 		JSONObject jo = (JSONObject) JSON.toJSON(TokenManager.login(user, remember));
 
@@ -96,13 +93,12 @@ public class UserLoginController extends BaseController {
 	/**
 	 * 管理端登录
 	 *
-	 * @param request
 	 * @return
 	 */
 	@RequestMapping(value = "/managesignin", method = RequestMethod.POST)
 	@ResponseBody
 	@CrossOrigin
-	public Result managesignin(Admin admin, Boolean remember, HttpServletRequest request) {
+	public Result managesignin(Admin admin, Boolean remember) {
 		Result res = new Result();
 		String mobile=adminMapper.selectStatusByMobile(admin.getMobile());
 		if("锁定".equals(mobile)){
@@ -117,6 +113,7 @@ public class UserLoginController extends BaseController {
 		res.setData(TokenManager.manageLogin(admin, remember));
 		Admin a =adminMapper.selectByMobile(admin.getMobile());
 		if (a!=null) {
+			shiroAddRedis();
 			a.setLastLoginTime(new Date());
 			adminMapper.updateByPrimaryKeySelective(a);
 		}

+ 2 - 2
src/main/java/com/goafanti/user/service/impl/UserFollowServiceImpl.java

@@ -53,8 +53,8 @@ public class UserFollowServiceImpl extends BaseMybatisDao<UserFollowMapper>  imp
         if (in.getCreateEndTime()!=null) map.put("createEndTime", in.getCreateEndTime()+" 23:59:59");
         if (in.getGuidanceStartTime()!=null) map.put("guidanceStartTime", in.getGuidanceStartTime());
         if (in.getGuidanceEndTime()!=null) map.put("guidanceEndTime", in.getGuidanceEndTime()+" 23:59:59");
-        if (in.getDepId() != null){
-            map.put("deps", departmentService.getLowerDep(in.getDepId()));
+        if (in.getDeps()!=null){
+            map.put("deps", departmentService.parseArray(in.getDeps()));
         }
         if (in.getShiroType()!=null)map.put("shiroType",in.getShiroType());
         else map.put("shiroType",0);

+ 5 - 5
src/main/java/com/goafanti/weChat/bo/InputPublicDtails.java

@@ -15,7 +15,7 @@ public class InputPublicDtails {
 	 */
 	private Integer type;
 	private String sid;
-	private String depId;
+	private String deps;
 	/**
 	 * 0业务 1技术 2行政 3协单
 	 */
@@ -55,12 +55,12 @@ public class InputPublicDtails {
 		this.sid = sid;
 	}
 
-	public String getDepId() {
-		return depId;
+	public String getDeps() {
+		return deps;
 	}
 
-	public void setDepId(String depId) {
-		this.depId = depId;
+	public void setDeps(String deps) {
+		this.deps = deps;
 	}
 
 	public Integer getType() {

+ 11 - 2
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -3,6 +3,7 @@ package com.goafanti.weChat.service.impl;
 import java.text.ParseException;
 import java.util.*;
 
+import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.dao.*;
 import com.goafanti.order.service.OrderService;
 import org.springframework.beans.BeanUtils;
@@ -69,6 +70,8 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	private SystemWebSocketHandler	systemWebSocketHandler;
 	@Autowired
 	private TOrderNewMapper tOrderNewMapper;
+	@Autowired
+	private DepartmentService	departmentService;
 
 	@Override
 	public Map<String, Object> addPublicRelease(InputPublicRelease in) {
@@ -606,7 +609,6 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	private void addParams(InputPublicDtails in, Map<String, Object> map) {
 		if(in.getAid()!=null) map.put("aid", in.getAid());
 		if(in.getSid()!=null) map.put("sid", in.getSid());
-		if(in.getDepId()!=null) map.put("depId", in.getDepId());
 		if(in.getReleaseStart()!=null) map.put("releaseStart", in.getReleaseStart());
 		if(in.getReleaseEnd()!=null) map.put("releaseEnd", in.getReleaseEnd()+" 23:59:59");
 		if(in.getCreateStart()!=null) map.put("createStart", in.getCreateStart());
@@ -624,10 +626,17 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			in.setType(2);
 		}else if(TokenManager.hasRole(AFTConstants.COMPANY_MANAGER)||TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
 			in.setType(1);
-			map.put("deps", orderService.selectMyDeps());
+			if (in.getDeps()!=null){
+				map.put("deps", departmentService.selectSubDeps(in.getDeps()));
+			}else {
+				map.put("deps",departmentService.selectMyDeps());
+			}
 		}else{
 			in.setType(0);
 			if (in.getAid()==null) map.put("aid",TokenManager.getAdminId());
+			if(in.getDeps()!=null){
+				map.put("deps", departmentService.parseArray(in.getDeps()));
+			}
 		}
 		map.put("type", in.getType());
 	}

+ 6 - 5
src/main/webapp/WEB-INF/views/common.html

@@ -66,21 +66,21 @@
 							<li><a
 								th:href="${basePath + '/portal/contactUs.html'}">联系我们</a>
 							</li>
-					</ol></li>						
+					</ol></li>
 					<!-- <li><a href="#">科技活动</a></li> <li><a href="#">平台共建</a></li> 	-->
 				</ul>
 			</div>
 			<div class="nav_right" th:if="${!isLogin}">
 				<a th:href="${basePath + '/user/signIn.html'}"> <img
 					th:src="${portalHost+'/img/index_resiter.png'}" alt="" />
-				</a> 
-				<a href="javascript:;" class="head_login">登录</a> 
+				</a>
+				<a href="javascript:;" class="head_login">登录</a>
 				<div></div>
 			</div>
 			<div class="nav_right" th:if="${isLogin}">
 				<a th:href="${basePath + (isAdmin? '/admin/index.html':'/user/account/index.html')}"
-					th:text="${#strings.isEmpty(userName)?'个人中心':userName}">个人中心</a> 
-				<a th:href="${basePath + '/user/logout'}">退出</a> 
+					th:text="${#strings.isEmpty(userName)?'个人中心':userName}">个人中心</a>
+				<a th:href="${basePath + '/user/logout'}">退出</a>
 				<a th:href="${basePath + '/portal/aboutUs.html'}">关于公司</a>
 				<div></div>
 			</div>
@@ -368,6 +368,7 @@
 				isSuperAdmin : /*[[${shiro.hasRole('999999')}]]*/false,
 				isApprovalDecision : /*[[${shiro.hasRole('99999')}]]*/false,
 				isLegal: /*[[${shiro.hasRole('82')}]]*/false,
+				shiroList:/*[[${shiroList}]]*/'',
 			}
 			/*]]>*/
 		</script>