Browse Source

Merge remote-tracking branch 'origin/test' into test

songyh 4 years ago
parent
commit
4ff451585e
22 changed files with 317 additions and 167 deletions
  1. 1 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  2. 130 65
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java
  3. 2 2
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsCompanyApprovalUser.java
  4. 4 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsCompanySubject.java
  5. 13 5
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsPolicyInfo.java
  6. 5 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsCompanyApprovalUserMapper.java
  7. 5 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsCompanySubjectMapper.java
  8. 5 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsPolicyInfoMapper.java
  9. 9 3
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsCompanyApprovalUserMapper.xml
  10. 7 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsCompanySubjectMapper.xml
  11. 33 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsPolicyInfoMapper.xml
  12. 6 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsPolicyInfoService.java
  13. 1 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsPolicyApprovalLogServiceImpl.java
  14. 21 3
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsPolicyInfoServiceImpl.java
  15. 19 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/utils/ListPageUtil.java
  16. 2 2
      jeecg-boot-finance/src/main/resources/application.yml
  17. 19 0
      jeecg-boot-finance/src/test/java/org/jeecg/modules/finance/FinanceTest.java
  18. 1 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/entity/UserCompany.java
  19. 4 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/IUserCompanyService.java
  20. 8 1
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/impl/UserCompanyServiceImpl.java
  21. 21 80
      jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java
  22. 1 1
      jeecg-cloud-module/jeecg-cloud-gateway/src/main/resources/application-dev.yml

+ 1 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -211,6 +211,7 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/kuaishou/batch/*", "anon");
         filterChainDefinitionMap.put("/dimension/kuaiShouDimensionAccount/*", "anon");
         filterChainDefinitionMap.put("/ai/projectCreate/*", "anon");
+        filterChainDefinitionMap.put("/cwjsPolicyInfo/**", "anon");
 
         // 添加自己的过滤器并且取名为jwt
         Map<String, Filter> filterMap = new HashMap<>(1);

+ 130 - 65
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java

@@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.ctop.finance.policy.utils.Check;
+import org.jeecg.ctop.finance.policy.utils.ListPageUtil;
 import org.jeecg.modules.system.service.ISysRoleService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -57,7 +58,7 @@ import io.swagger.annotations.ApiOperation;
 @Slf4j
 @Api(tags="政策模块")
 @RestController
-@RequestMapping("/finance/cwjsPolicyInfo")
+@RequestMapping("/cwjsPolicyInfo")
 public class CwjsPolicyInfoController {
 	@Autowired
 	private ICwjsPolicyInfoService cwjsPolicyInfoService;
@@ -93,43 +94,69 @@ public class CwjsPolicyInfoController {
 
 	 }
 
-	 @PostMapping(value = "/policyApproval")
+	 @GetMapping(value = "/policyApproval")
 	 public Result policyApproval(@RequestParam(name="id",required=true) Integer id,
 	 							@RequestParam(name="type",required=true) Integer type,
+								  @RequestParam(name="userId",required=true) String userId,
 								@RequestParam(name="approvalContent",required=false) String approvalContent){
-		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+//		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 		CwjsPolicyInfo cwjsPolicyInfoEntity = cwjsPolicyInfoService.getById(id);
 		 if(cwjsPolicyInfoEntity==null) {
-			 return Result.error("未找到对应实体");
+			 return Result.error("参数传递有误");
 		 }
-		 String companyId = companySubjectService.getById(cwjsPolicyInfoEntity.getCompanySubjectId()).getCompanyId();
-		 CwjsCompanyApprovalUser cwjsCompanyApprovalUser = companyApprovalUserMapper.queryByCompanyIdAndUserId(companyId, user.getId());
-
+		 Integer companySubjectId= cwjsPolicyInfoEntity.getCompanySubjectId();
+		 CwjsCompanyApprovalUser cwjsCompanyApprovalUser = companyApprovalUserMapper.queryByCompanySubjectIdAndUserId(companySubjectId, userId);
 		 if(type == 1){	//审核提交	等于新增的时候
+//			 cwjsPolicyInfoEntity.setApprovedStatus(1);
 			if(!Check.isNull(cwjsCompanyApprovalUser)){//当前登录的用户所提交的政策是审核链里的人的提交的  直接状态到2给终审的人员
 				cwjsPolicyInfoEntity.setApprovedStatus(2);
 			}else{	//除了销售总监提交的申请都是-待审核
 				cwjsPolicyInfoEntity.setApprovedStatus(1);
 			}
+			 JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfoEntity.getApprovedProgress());
+			 StringBuilder text = new StringBuilder();
+			 text.append("您有一条销售政策需要审核,该客户为:");
+			 text.append(cwjsPolicyInfoEntity.getCompanyName());
+			 text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+			 corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
 		}
-	 	if(type == 2){	//审核通过  是不是终审,不是就给当前的下一个人发企业微信
-			if(!Check.isNull(cwjsCompanyApprovalUser) && !"final".equalsIgnoreCase(cwjsCompanyApprovalUser.getLevel())){//不是终审的
-				cwjsPolicyInfoEntity.setApprovedStatus(2);
-			}else{	//是终审的就搞成3
+		 if(type == 2){	//审核通过  是不是终审,不是就给当前的下一个人发企业微信
+			 CwjsCompanyApprovalUser nextApprovalUser = companyApprovalUserMapper.queryByCompanySubjectIdAndLevel(companySubjectId, cwjsCompanyApprovalUser.getLevel() + 1);
+			 if(!Check.isNull(cwjsCompanyApprovalUser) && Check.isNull(nextApprovalUser)){//没有下一个审核人员,是终审
 				cwjsPolicyInfoEntity.setApprovedStatus(3);
+			}else{	//不是终审
+				cwjsPolicyInfoEntity.setApprovedStatus(2);
+				cwjsPolicyInfoEntity.setApprovedProgress(nextApprovalUser.getApprovalUserId());	//设置一下个人为审核人员
+				 JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(nextApprovalUser.getApprovalUserId());
+				 StringBuilder text = new StringBuilder();
+				 text.append("您有一条销售政策需要审核,该客户为:");
+				 text.append(cwjsPolicyInfoEntity.getCompanyName());
+				 text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+				 corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
 			}
 			CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
-			policyApprovalLog.setCreateUserId(user.getId());
+			policyApprovalLog.setPolicyId(id);
+			policyApprovalLog.setCreateUserId(userId);
 			policyApprovalLog.setApprovalStatus(0);
 			policyApprovalLogService.save(policyApprovalLog);
+
+
 		}
 	 	if(type == 3){	//审核拒绝	给申请人发企业微信
 			cwjsPolicyInfoEntity.setApprovedStatus(4);
 			CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
-			policyApprovalLog.setCreateUserId(user.getId());
+			policyApprovalLog.setPolicyId(id);
+			policyApprovalLog.setCreateUserId(userId);
 			policyApprovalLog.setApprovalContent(approvalContent);
 			policyApprovalLog.setApprovalStatus(1);
 			policyApprovalLogService.save(policyApprovalLog);
+
+			JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfoEntity.getCreateUserId());
+			StringBuilder text = new StringBuilder();
+			text.append("您有一条销售政策需要审核,客户为:");
+			text.append(cwjsPolicyInfoEntity.getCompanyName());
+			text.append(",请及时登录助手平台-销售政策页面进行政策修改,谢谢!");
+			corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
 		}
 		cwjsPolicyInfoService.updateById(cwjsPolicyInfoEntity);
 	 	return Result.successMsg("提交成功",null);
@@ -148,47 +175,33 @@ public class CwjsPolicyInfoController {
 	public Result<PageInfo<CwjsPolicyInfo>> queryPageList(CwjsPolicyInfo cwjsPolicyInfo,
 									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  @RequestParam(name="userId",required=true) String userId,
 									  HttpServletRequest req) {
 
-		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-		List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUserList = companyApprovalUserMapper.queryByUserId(user.getId());
-		if(Check.isNull(cwjsCompanyApprovalUserList)){
-			cwjsPolicyInfo.setCreateUserId(user.getId());
-		}else{
-			List<Integer> companySubjectIds = new ArrayList<>();
-			cwjsCompanyApprovalUserList.forEach(cwjsCompanyApprovalUser -> {
-				List<CwjsCompanySubject> cwjsCompanySubjects = companySubjectMapper.queryByCompanyId(cwjsCompanyApprovalUser.getCompanyId());
-				cwjsCompanySubjects.forEach(cwjsCompanySubject -> companySubjectIds.add(cwjsCompanySubject.getId()));
-			});
-			cwjsPolicyInfo.setCompanySubjectIds(companySubjectIds);
+		List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUserList = companyApprovalUserMapper.queryByUserId(userId);
+		if(Check.isNull(cwjsCompanyApprovalUserList)){	//不是审核人员,只看自己的
+			cwjsPolicyInfo.setCreateUserId(userId);
+		}else{		//是审核人员,那么就看自己需要审核的和自己提交的
+//			List<Integer> companySubjectIds = new ArrayList<>();
+//			cwjsCompanyApprovalUserList.forEach(cwjsCompanyApprovalUser -> {
+//				List<CwjsCompanySubject> cwjsCompanySubjects = companySubjectMapper.queryByCompanyId(cwjsCompanyApprovalUser.getCompanyId());
+//				cwjsCompanySubjects.forEach(cwjsCompanySubject -> companySubjectIds.add(cwjsCompanySubject.getId()));
+//			});
+//			cwjsPolicyInfo.setCompanySubjectIds(companySubjectIds);
+			cwjsPolicyInfo.setApprovedProgress(userId);
 		}
-//		String roleCode = roleService.getRoleCodeByUserId(user.getId());
-//		if (roleCode.equals("admin")&&Check.isNull(cwjsPolicyInfo.getCreateUserId())) {	//1.当前登录用户为管理员角色,并且没有传递销售id来精确查询。  则不触发sql的过滤条件
-//			cwjsPolicyInfo.setCreateUserIds(null);
-//		}else if(roleCode.equals("admin")&&!Check.isNull(cwjsPolicyInfo.getCreateUserId())){//2.当前登录用户为管理员角色,并且传递了销售的id,则需要触发
-//			List<String> userIds = new ArrayList<>();
-//			userIds.add(cwjsPolicyInfo.getCreateUserId());
-//			cwjsPolicyInfo.setCreateUserIds(userIds);
-//		}else if(roleCode.equals("saleDirector")){	//3.如果是销售总监	查询自己和手下创建的所有政策
-//			List<SysUser> allList = userMapper.selectAllUser();
-//			List<SysUser>  mulUserList = treeCategoryData(allList, user.getId());
-//			List<String> userIds = new ArrayList<>();
-//			mulUserList.forEach(sysUser -> userIds.add(sysUser.getId()));
-//			userIds.add(user.getId());
-//			cwjsPolicyInfo.setCreateUserIds(userIds);
-//			if(!Check.isNull(cwjsPolicyInfo.getCreateUserId())&& userIds.contains(cwjsPolicyInfo.getCreateUserId())){//总监精确查询了某个销售id的政策,那么先看这个销售是不是他的手下
-//				List<String> newUserIds = new ArrayList<>();
-//				newUserIds.add(cwjsPolicyInfo.getCreateUserId());
-//				cwjsPolicyInfo.setCreateUserIds(newUserIds);
-//			}
-//		}else {	//其他的人,谁登录看谁自己的
-//			List<String> userIds = new ArrayList<>();
-//			userIds.add(user.getId());
-//			cwjsPolicyInfo.setCreateUserIds(userIds);
-//		}
 
-		PageHelper.startPage(pageNo,pageSize);
-		List<CwjsPolicyInfo> cwjsPolicyInfos = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+		if("4aba62011120ac565c7f2b9f8f4aa96b".equalsIgnoreCase(userId) && Check.isNull(cwjsPolicyInfo.getCreateUserId())){
+			cwjsPolicyInfo.setCreateUserId(null);
+		}
+		if("4aba62011120ac565c7f2b9f8f4aa96b".equalsIgnoreCase(userId) && Check.isNull(cwjsPolicyInfo.getApprovedProgress())){
+			cwjsPolicyInfo.setApprovedProgress(null);
+		}
+
+		List<CwjsPolicyInfo> cwjsPolicyInfoList = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+		cwjsPolicyInfoList.sort((CwjsPolicyInfo o1, CwjsPolicyInfo o2) -> o2.getCreateTime().after(o1.getCreateTime()) ? 1 : -1 );
+		List<CwjsPolicyInfo> cwjsPolicyInfos = ListPageUtil.page(cwjsPolicyInfoList, pageSize, pageNo);
+
 		cwjsPolicyInfos.forEach(cwjsPolicy ->{
 			CwjsPolicyApprovalLog log = policyApprovalLogMapper.getOneByPolicyId(cwjsPolicy.getId());	//添加日志记录最新的第一条
 			if(!Check.isNull(log)){
@@ -204,33 +217,63 @@ public class CwjsPolicyInfoController {
 				if(cwjsPolicy.getApprovedStatus() == 1 || cwjsPolicy.getApprovedStatus() == 2){
 					cwjsPolicy.setOperation("查看|审核通过|审核拒绝");
 				}else{
-					cwjsPolicy.setOperation("查看");
+					cwjsPolicy.setOperation("查看|提交审核");
 				}
 			}
-
+			UserCompany userCompany = userCompanyService.getByUserId(cwjsPolicy.getCreateUserId());
+			if(Check.isNull(cwjsPolicy.getCreateUserName())){
+				cwjsPolicy.setCreateUserName(userCompany.getUserName());
+			}
+			CwjsCompanySubject cwjsCompanySubject = companySubjectService.getById(cwjsPolicy.getCompanySubjectId());
+			cwjsPolicy.setCompanySubjectName(cwjsCompanySubject.getCompanySubjectName());
+			cwjsPolicy.setAreaInfo(cwjsCompanySubject.getAreaInfo());
 		});
 		PageInfo<CwjsPolicyInfo> pageInfo = new PageInfo<>(cwjsPolicyInfos);
+		pageInfo.setTotal(cwjsPolicyInfoList.size());
+		pageInfo.setPageSize(pageSize);
+		pageInfo.setPageNum(pageNo);
 		return Result.successMsg("成功。",pageInfo);
 	}
 
+	@ApiOperation(value="政策信息表-获取当前公司的销售", notes="政策信息表-获取当前公司的销售")
+	@GetMapping(value = "/getAllSaleList")
+	public Result getAllSaleList(@RequestParam(name="userId",required=true) String userId){
+//		List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUserList = companyApprovalUserMapper.queryByUserId(userId);
+		List<JSONObject> allSaleList = cwjsPolicyInfoService.getAllSaleByUserId(userId);
+//		if(Check.isNull(cwjsCompanyApprovalUserList)){	//就只有当前登录的人自己
+//			JSONObject userInfo = cwjsPolicyInfoService.getAllSaleByUserId(userId);
+//			saleList.add(userInfo);
+//		}else{
+//			cwjsCompanyApprovalUserList.forEach(cwjsCompanyApprovalUser -> {
+//				String companySubjectId = cwjsCompanyApprovalUser.getCompanySubjectId();
+//				List<JSONObject> allSaleByCompanyId = cwjsPolicyInfoService.getAllSaleByCompanyId(companyId);
+//				saleList.addAll(allSaleByCompanyId);
+//			});
+//		}
+
+		return Result.OK(allSaleList);
+	}
 
 	 /**
-	  * 分页列表查询
+	  * 获取当前用户的公司、区域、和主体
 	  * @param userId
 	  * @return
 	  */
-
-	 @ApiOperation(value="政策信息表-分页列表查询", notes="政策信息表-分页列表查询")
+	 @ApiOperation(value="政策信息表-获取当前用户的公司、区域、和主体", notes="政策信息表-获取当前用户的公司、区域、和主体")
 	 @GetMapping(value = "/queryAeraByUserId")
-	 public Result<JSONObject> queryAeraByUserId(@RequestParam(name="userId",required=true) String userId) {
-		 Result<JSONObject> result = new Result<>();
-		 UserCompany userCompany = userCompanyService.getByUserId(userId);
-		 List<CwjsCompanySubject> companySubjects = companySubjectMapper.queryByCompanyId(userCompany.getCompanyId());
-		 JSONObject jsonObject = new JSONObject();
-		 jsonObject.put("UserCompany",userCompany);
-		 jsonObject.put("companySubjects",companySubjects);
+	 public Result<JSONArray> queryAeraByUserId(@RequestParam(name="userId",required=true) String userId) {
+		 Result<JSONArray> result = new Result<>();
+		 List<UserCompany> userCompany = userCompanyService.getAllByUserId(userId);
+		 JSONArray res = new JSONArray();
+		 userCompany.forEach(user -> {
+			 List<CwjsCompanySubject> companySubjects = companySubjectMapper.queryAllSubjectName();
+			 JSONObject jsonObject = new JSONObject();
+			 jsonObject.put("UserCompany",userCompany);
+			 jsonObject.put("companySubjects",companySubjects);
+			 res.add(jsonObject);
+		 });
 		 result.setSuccess(true);
-		 result.setResult(jsonObject);
+		 result.setResult(res);
 		 return result;
 	 }
 
@@ -244,7 +287,23 @@ public class CwjsPolicyInfoController {
 	public Result<CwjsPolicyInfo> add(@RequestBody CwjsPolicyInfo cwjsPolicyInfo) {
 		Result<CwjsPolicyInfo> result = new Result<>();
 		try {
-			cwjsPolicyInfo.setApprovedStatus(1);
+			cwjsPolicyInfo.setApprovedStatus(1);	//新增出来的政策全部都是待审核状态
+			String companySubjectName = cwjsPolicyInfo.getCompanySubjectName();
+			String areaInfo = cwjsPolicyInfo.getAreaInfo();
+			Integer companySubjectId = companySubjectMapper.queryIdBySubjectNameAndArea(companySubjectName, areaInfo);
+			if(Check.isNull(companySubjectId)){
+				return  Result.errorMsg("您选择的区域和公司主体不合法,请联系开发人员");
+			}
+			cwjsPolicyInfo.setCompanySubjectId(companySubjectId);
+			List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUsers = companyApprovalUserMapper.queryByCompanySubjectId(companySubjectId);
+			if(Check.isNull(cwjsCompanyApprovalUsers)){
+				return Result.errorMsg("此业务线暂时无审核人员,提交审核无效,请联系开发人员添加此区域主体的审核人员");
+			}
+			cwjsCompanyApprovalUsers.forEach(cwjsCompanyApprovalUser -> {
+				if(cwjsCompanyApprovalUser.getLevel() == 0){
+					cwjsPolicyInfo.setApprovedProgress(cwjsCompanyApprovalUser.getApprovalUserId());
+				}
+			});
 			cwjsPolicyInfoService.save(cwjsPolicyInfo);
 			JSONArray products = cwjsPolicyInfo.getPolicyProductName();
 			List<CwjsPolicyProduct> policyProductList = new ArrayList<>();
@@ -257,7 +316,13 @@ public class CwjsPolicyInfoController {
 				policyProductList.add(policyProduct);
 			});
 			cwjsPolicyProductService.saveBatch(policyProductList);
-			//先给first发企业微信
+			//先给first发企业微信 -- 先注释掉
+			JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfo.getApprovedProgress());
+			StringBuilder text = new StringBuilder();
+			text.append("您有一条销售政策需要审核,该客户为:");
+			text.append(cwjsPolicyInfo.getCompanyName());
+			text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+			corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
 			result.success("添加成功!");
 		} catch (Exception e) {
 			log.error(e.getMessage(),e);

+ 2 - 2
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsCompanyApprovalUser.java

@@ -35,7 +35,7 @@ public class CwjsCompanyApprovalUser {
 	/**公司id*/
 	@Excel(name = "公司id", width = 15)
     @ApiModelProperty(value = "公司id")
-	private String companyId;
+	private String companySubjectId;
 	/**审核人员id*/
 	@Excel(name = "审核人员id", width = 15)
     @ApiModelProperty(value = "审核人员id")
@@ -47,7 +47,7 @@ public class CwjsCompanyApprovalUser {
 	/**是否是终审(0:不是 ,1:是)*/
 	@Excel(name = "是否是终审(0:不是 ,1:是)", width = 15)
     @ApiModelProperty(value = "是否是终审(0:不是 ,1:是)")
-	private String level;
+	private Integer level;
 	/**删除状态(0,正常,1已删除)*/
 	@Excel(name = "删除状态(0,正常,1已删除)", width = 15)
     @ApiModelProperty(value = "删除状态(0,正常,1已删除)")

+ 4 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsCompanySubject.java

@@ -40,6 +40,10 @@ public class CwjsCompanySubject {
 	@Excel(name = "公司主体名称", width = 15)
     @ApiModelProperty(value = "公司主体名称")
 	private String companySubjectName;
+	/**区域*/
+	@Excel(name = "区域", width = 15)
+	@ApiModelProperty(value = "区域")
+	private String areaInfo;
 	/**删除状态(0,正常,1已删除)*/
 	@Excel(name = "删除状态(0,正常,1已删除)", width = 15)
     @ApiModelProperty(value = "删除状态(0,正常,1已删除)")

+ 13 - 5
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsPolicyInfo.java

@@ -47,14 +47,10 @@ public class CwjsPolicyInfo {
 	@Excel(name = "媒体类型", width = 15)
     @ApiModelProperty(value = "媒体类型")
 	private Integer mediaType;
-	/**区域 华北,华南,华东*/
-	@Excel(name = "区域 华北,华南,华东", width = 15)
-    @ApiModelProperty(value = "区域 华北,华南,华东")
-	private String userCompanyId;
 	/**我司主体*/
 	@Excel(name = "我司主体", width = 15)
     @ApiModelProperty(value = "我司主体")
-	private String companySubjectId;
+	private Integer companySubjectId;
 	/**集团简称*/
 	@Excel(name = "集团简称", width = 15)
     @ApiModelProperty(value = "集团简称")
@@ -63,6 +59,8 @@ public class CwjsPolicyInfo {
 	@Excel(name = "状态 0:待审核 1:审核中 2:审核通过3:审核拒绝", width = 15)
     @ApiModelProperty(value = "状态 0:待审核 1:审核中 2:审核通过3:审核拒绝")
 	private Integer approvedStatus;
+	@ApiModelProperty(value = "审核进度,当前该谁审核")
+	private String approvedProgress;
 	/**是否预付:0:否  1:是 */
 	@Excel(name = "是否预付:0:否  1:是 ", width = 15)
     @ApiModelProperty(value = "是否预付:0:否  1:是 ")
@@ -115,6 +113,8 @@ public class CwjsPolicyInfo {
 	@Excel(name = "创建人", width = 15)
 	@ApiModelProperty(value = "创建人")
 	private String createUserId;
+	@TableField(exist = false)
+	private String createUserName;
 	/**创建时间*/
     @ApiModelProperty(value = "创建时间")
 	private Date createTime;
@@ -140,4 +140,12 @@ public class CwjsPolicyInfo {
 	private String approvalContent;
 	@TableField(exist = false)
 	private String operation;
+	@TableField(exist = false)
+	private String nickName;
+	@TableField(exist = false)
+	private String companySubjectName;
+
+	/**区域 华北,华南,华东*/
+	@TableField(exist = false)
+	private String areaInfo;
 }

+ 5 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsCompanyApprovalUserMapper.java

@@ -13,7 +13,11 @@ import org.jeecg.ctop.finance.policy.entity.CwjsCompanyApprovalUser;
  * @version V1.0
  */
 public interface CwjsCompanyApprovalUserMapper extends BaseMapper<CwjsCompanyApprovalUser> {
-    CwjsCompanyApprovalUser queryByCompanyIdAndUserId(String companyId, String userId);
+    CwjsCompanyApprovalUser queryByCompanySubjectIdAndUserId(Integer companySubjectId, String userId);
 
     List<CwjsCompanyApprovalUser> queryByUserId(String userId);
+
+    List<CwjsCompanyApprovalUser> queryByCompanySubjectId(Integer companySubjectId);
+
+    CwjsCompanyApprovalUser queryByCompanySubjectIdAndLevel(Integer companySubjectId, Integer level);
 }

+ 5 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsCompanySubjectMapper.java

@@ -13,5 +13,9 @@ import org.jeecg.ctop.finance.policy.entity.CwjsCompanySubject;
  * @version V1.0
  */
 public interface CwjsCompanySubjectMapper extends BaseMapper<CwjsCompanySubject> {
-    List<CwjsCompanySubject> queryByCompanyId(String companyId);
+    List<CwjsCompanySubject> queryAllSubjectName();
+
+    List<CwjsCompanySubject>  queryByCompanyId(String companyId);
+
+    Integer queryIdBySubjectNameAndArea(String companySubjectName, String areaInfo);
 }

+ 5 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsPolicyInfoMapper.java

@@ -2,6 +2,7 @@ package org.jeecg.ctop.finance.policy.mapper;
 
 import java.util.List;
 
+import com.alibaba.fastjson.JSONObject;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -14,4 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface CwjsPolicyInfoMapper extends BaseMapper<CwjsPolicyInfo> {
     List<CwjsPolicyInfo> selectPolicyInfos(CwjsPolicyInfo policyInfo);
+
+    List<JSONObject> getAllSaleByCompanyId(String companyId);
+
+    List<JSONObject> getAllSaleByUserId(String userId);
 }

+ 9 - 3
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsCompanyApprovalUserMapper.xml

@@ -1,10 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.ctop.finance.policy.mapper.CwjsCompanyApprovalUserMapper">
-    <select id="queryByCompanyIdAndUserId" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanyApprovalUser">
-        select * from ctop_cwjs_company_approval_user where company_id = #{companyId} and create_user_id = #{userId}  limit 1
+    <select id="queryByCompanySubjectIdAndUserId" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanyApprovalUser">
+        select * from ctop_cwjs_company_approval_user where company_subject_id = #{companySubjectId} and approval_user_id = #{userId}  limit 1
     </select>
     <select id="queryByUserId" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanyApprovalUser">
-        select * from ctop_cwjs_company_approval_user where create_user_id = #{userId}
+        select * from ctop_cwjs_company_approval_user where approval_user_id = #{userId}
+    </select>
+    <select id="queryByCompanySubjectId" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanyApprovalUser">
+        select * from ctop_cwjs_company_approval_user where company_subject_id = #{companySubjectId}
+    </select>
+    <select id="queryByCompanySubjectIdAndLevel" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanyApprovalUser">
+        select * from ctop_cwjs_company_approval_user where company_subject_id = #{companySubjectId} and level = #{level}
     </select>
 </mapper>

+ 7 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsCompanySubjectMapper.xml

@@ -1,7 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.ctop.finance.policy.mapper.CwjsCompanySubjectMapper">
+    <select id="queryAllSubjectName" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanySubject">
+        select distinct company_subject_name from ctop_cwjs_company_subject
+    </select>
     <select id="queryByCompanyId" resultType="org.jeecg.ctop.finance.policy.entity.CwjsCompanySubject">
-        select * from ctop_cwjs_company_subject where company_id = {companyId}
+        select * from ctop_cwjs_company_subject where company_id = #{companyId}
+    </select>
+    <select id="queryIdBySubjectNameAndArea" resultType="integer">
+        select id from ctop_cwjs_company_subject where company_subject_name = #{companySubjectName} and area_info = #{areaInfo}
     </select>
 </mapper>

+ 33 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsPolicyInfoMapper.xml

@@ -23,6 +23,38 @@
         <if test="approvedStatus != null and approvedStatus != ''">and t2.approved_status = #{approvedStatus}</if>
         <if test="startTime != null and startTime != ''">and t2.create_time &gt;= #{startTime}</if>
         <if test="endTime != null and endTime != ''">and t2.create_time &lt;= #{endTime}</if>
-        order by create_time desc
+        <if test="approvedProgress != null and approvedProgress != ''">and t2.approved_progress = #{approvedProgress}</if>
+        order by t2.create_time desc
+    </select>
+
+    <select id="getAllSaleByCompanyId" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT t1.user_id AS 'userId',
+	LEFT (t1.company_name, 2) AS 'companyName',
+	t3.role_name AS 'ruleName',
+	t1.user_name AS 'userName'
+        FROM
+            user_company t1
+            LEFT JOIN sys_user_role t2
+        ON t1.user_id = t2.user_id
+            LEFT JOIN sys_role t3 ON t2.role_id = t3.id
+        WHERE
+            t3.role_code IN (
+            'externalSale'
+            , 'saleDirector'
+            , 'sale'
+            , 'saleAssistant'
+            , 'salesSupportManager'
+            , 'saleAm'
+            )
+            and t1.company_id = #{companyId}
+    </select>
+
+    <select id="getAllSaleByUserId" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT t1.create_user_id AS 'userId',
+	           t1.create_user_name AS 'userName'
+        FROM
+            ctop_cwjs_policy_info t1
+        WHERE
+            t1.approved_progress = #{userId}
     </select>
 </mapper>

+ 6 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsPolicyInfoService.java

@@ -1,5 +1,7 @@
 package org.jeecg.ctop.finance.policy.service;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,4 +15,8 @@ import java.util.List;
  */
 public interface ICwjsPolicyInfoService extends IService<CwjsPolicyInfo> {
     List<CwjsPolicyInfo> queryPageList(CwjsPolicyInfo policyInfo);
+
+    List<JSONObject> getAllSaleByCompanyId(String companyId);
+
+    List<JSONObject> getAllSaleByUserId(String userId);
 }

+ 1 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsPolicyApprovalLogServiceImpl.java

@@ -20,7 +20,7 @@ public class CwjsPolicyApprovalLogServiceImpl extends ServiceImpl<CwjsPolicyAppr
     @Resource
     CwjsPolicyApprovalLogMapper policyApprovalLogMapper;
 
-
+    @Override
     public CwjsPolicyApprovalLog getOneByPolicyId(Integer policyId){
         return policyApprovalLogMapper.getOneByPolicyId(policyId);
     }

+ 21 - 3
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsPolicyInfoServiceImpl.java

@@ -1,5 +1,7 @@
 package org.jeecg.ctop.finance.policy.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyInfoMapper;
@@ -29,8 +31,10 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
         List<CwjsPolicyInfo> result = new ArrayList<>();
         //1.过滤所有已通过审核的政策到结果表中
         policyInfoList.forEach(policy->{
-            if(policy.getApprovedStatus() == 2){
-                policy.getPolicyProductName().add(policy.getProductName());
+            if(policy.getApprovedStatus() == 3){
+                JSONArray policyProductName = new JSONArray();
+                policyProductName.add(policy.getProductName());
+                policy.setPolicyProductName(policyProductName);
                 result.add(policy);
             }
         });
@@ -41,7 +45,9 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
             if(map.containsKey(policy.getId())){
                 map.get(policy.getId()).getPolicyProductName().add(policy.getProductName());
             }else{
-                policy.getPolicyProductName().add(policy.getProductName());
+                JSONArray policyProductName = new JSONArray();
+                policyProductName.add(policy.getProductName());
+                policy.setPolicyProductName(policyProductName);
                 map.put(policy.getId(),policy);
             }
         });
@@ -50,6 +56,18 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
         for(Integer key : keys){
             result.add(map.get(key));
         }
+
+
         return result;
     }
+
+    @Override
+    public List<JSONObject> getAllSaleByCompanyId(String companyId){
+        return policyInfoMapper.getAllSaleByCompanyId(companyId);
+    }
+
+    @Override
+    public List<JSONObject> getAllSaleByUserId(String userId){
+        return policyInfoMapper.getAllSaleByUserId(userId);
+    }
 }

+ 19 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/utils/ListPageUtil.java

@@ -0,0 +1,19 @@
+package org.jeecg.ctop.finance.policy.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ListPageUtil {
+
+    public static <T> List<T> page(List<T> dataList, int pageSize, int currentPage) {
+        List<T> currentPageList = new ArrayList<>();
+        if (dataList != null && dataList.size() > 0) {
+            int currIdx = (currentPage > 1 ? (currentPage - 1) * pageSize : 0);
+            for (int i = 0; i < pageSize && i < dataList.size() - currIdx; i++) {
+                T data = dataList.get(currIdx + i);
+                currentPageList.add(data);
+            }
+        }
+        return currentPageList;
+    }
+}

+ 2 - 2
jeecg-boot-finance/src/main/resources/application.yml

@@ -1,7 +1,7 @@
 server:
   port: 7005
   servlet:
-    context-path: /jeecg-boot-finance
+    context-path: /
 
 spring:
   application:
@@ -12,6 +12,6 @@ spring:
     nacos:
       discovery:
         server-addr: 127.0.0.1:8848
-        service: jeecg-boot-finance
+        service: finance
   main:
     allow-bean-definition-overriding: true

+ 19 - 0
jeecg-boot-finance/src/test/java/org/jeecg/modules/finance/FinanceTest.java

@@ -1,11 +1,16 @@
 package org.jeecg.modules.finance;
 
+import cn.com.ctop.common.module.mapper.MailLogMapper;
+import cn.com.ctop.common.module.utils.CorpWexinUtils;
+import com.alibaba.fastjson.JSONObject;
 import org.jeecg.JeecgSystemApplication;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import javax.annotation.Resource;
+
 /**
  * zian Y
  * 2021/8/3
@@ -15,6 +20,20 @@ import org.springframework.test.context.junit4.SpringRunner;
 @RunWith(SpringRunner.class)
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,classes = JeecgSystemApplication.class)
 public class FinanceTest {
+    @Resource
+    CorpWexinUtils corpWexinUtils;
+    @Resource
+    MailLogMapper mailLogMapper;
+    @Test
+    public void weixin(){
+        JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId("26bbe90edc5b475ca41ec3f76aa65067");
+        StringBuilder text = new StringBuilder();
+        text.append("您有一条销售政策需要审核,该客户为:");
+        text.append("测试");
+        text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+        corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
+    }
+
 
     @Test
     public void getAccountId(){

+ 1 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/entity/UserCompany.java

@@ -57,6 +57,7 @@ public class UserCompany {
     @ApiModelProperty(value = "公司名称")
     private String companyName;
 
+    private String nickName;
 
     private Date createTime;
     private Date updateTime;

+ 4 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/IUserCompanyService.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.entity.SysUser;
 
+import java.util.List;
+
 /**
  * 用户够公司
  *
@@ -20,5 +22,7 @@ public interface IUserCompanyService extends IService<UserCompany> {
 
     UserCompany getByUserId(String userId);
 
+    List<UserCompany> getAllByUserId(String userId);
+
     Result<Object> allCompany();
 }

+ 8 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/impl/UserCompanyServiceImpl.java

@@ -102,7 +102,14 @@ public class UserCompanyServiceImpl extends ServiceImpl<UserCompanyMapper, UserC
         QueryWrapper<UserCompany> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id", userId);
         queryWrapper.last("limit 1");
-        return null;
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    public List<UserCompany> getAllByUserId(String userId) {
+        QueryWrapper<UserCompany> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id", userId);
+        return this.list(queryWrapper);
     }
 
     @Override

+ 21 - 80
jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java

@@ -1,89 +1,30 @@
 package org.jeecg;
-//
-//import org.jeecg.modules.demo.mock.MockController;
-//import org.jeecg.modules.demo.test.entity.JeecgDemo;
-//import org.jeecg.modules.demo.test.mapper.JeecgDemoMapper;
-//import org.jeecg.modules.demo.test.service.IJeecgDemoService;
-//import org.junit.Assert;
-//import org.junit.Test;
-import cn.com.ctop.common.module.entity.CtopOauthToken;
-import cn.com.ctop.common.module.service.ICtopOauthTokenService;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyService;
-import com.alibaba.fastjson.JSONArray;
+
+import cn.com.ctop.common.module.mapper.MailLogMapper;
+import cn.com.ctop.common.module.utils.CorpWexinUtils;
+import com.alibaba.fastjson.JSONObject;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
-//
-//import javax.annotation.Resource;
-//import java.util.List;
-//
+
+import javax.annotation.Resource;
+
 @RunWith(SpringRunner.class)
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,classes = JeecgSystemApplication.class)
 public class SampleTest {
-    @Autowired
-    private ICtopOauthTokenService tokenService;
-    @Autowired
-    IKuaishouAudienceReportDailyService kuaishouAudienceReportDailyService;
-//    @Test
-//    public void haha(){
-//        CtopOauthToken token = tokenService.getTokenByAccountId(9556431l);
-//        JSONArray types = new JSONArray();
-//        // province: 省级地域分布, city: 地级地域分布,gender: 性别分布,ageSegment: 年龄分布, clientId: 系统分布 businessInterestTags: 商业兴趣分布
-//
-//        types.add("province");
-//        types.add("city");
-//        types.add("gender");
-//        types.add("ageSegment");
-//        types.add("businessInterestTags");
-//        types.add("clientId");
-//        kuaishouAudienceReportDailyService.crowdAnalysisReport3(token, "2021-05-01", types, 50293820l, 216264247l, 1, 2000);
-//    }
-//
-//	@Resource
-//	private JeecgDemoMapper jeecgDemoMapper;
-//	@Resource
-//	private IJeecgDemoService jeecgDemoService;
-////	@Resource
-////	private ISysDataLogService sysDataLogService;
-//	@Resource
-//	private MockController mock;
-//
-//	@Test
-//	public void testSelect() {
-//		System.out.println(("----- selectAll method test ------"));
-//		List<JeecgDemo> userList = jeecgDemoMapper.selectList(null);
-//		Assert.assertEquals(5, userList.size());
-//		userList.forEach(System.out::println);
-//	}
-//
-//	@Test
-//	public void testXmlSql() {
-//		System.out.println(("----- selectAll method test ------"));
-//		List<JeecgDemo> userList = jeecgDemoMapper.getDemoByName("Sandy12");
-//		userList.forEach(System.out::println);
-//	}
-//
-//	/**
-//	 * 测试事务
-//	 */
-//	@Test
-//	public void testTran() {
-//		jeecgDemoService.testTran();
-//	}
-//
-//	//author:lvdandan-----date:20190315---for:添加数据日志测试----
-//	/**
-//	 * 测试数据日志添加
-//	 */
-////	@Test
-////	public void testDataLogSave() {
-////		System.out.println(("----- datalog test ------"));
-////		String tableName = "jeecg_demo";
-////		String dataId = "4028ef81550c1a7901550c1cd6e70001";
-////		String dataContent = mock.sysDataLogJson();
-////		sysDataLogService.addDataLog(tableName, dataId, dataContent);
-////	}
-//	//author:lvdandan-----date:20190315---for:添加数据日志测试----
+    @Resource
+    CorpWexinUtils corpWexinUtils;
+    @Resource
+    MailLogMapper mailLogMapper;
+    @Test
+    public void weixin(){
+        JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId("26bbe90edc5b475ca41ec3f76aa65067");
+        StringBuilder text = new StringBuilder();
+        text.append("您有一条销售政策需要审核,该客户为:");
+        text.append("测试");
+        text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+        corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
+    }
+
 }

+ 1 - 1
jeecg-cloud-module/jeecg-cloud-gateway/src/main/resources/application-dev.yml

@@ -29,7 +29,7 @@ spring:
       - id: finance
         uri: lb://jeecg-boot-finance
         predicates:
-          - Path=/jeecg-boot-finance/**
+          - Path=/finance/**
         filters:
           - DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
       - id: jeecg-bytedance-ad