Просмотр исходного кода

修改政策列表逻辑以及销售逻辑

huangxuechao 4 лет назад
Родитель
Сommit
5a9ad76b09

+ 102 - 47
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java

@@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import cn.com.ctop.common.module.entity.UserCompany;
 import cn.com.ctop.common.module.mapper.MailLogMapper;
+import cn.com.ctop.common.module.mapper.SysUserMapper;
 import cn.com.ctop.common.module.service.IUserCompanyService;
 import cn.com.ctop.common.module.utils.CorpWexinUtils;
 import com.alibaba.fastjson.JSONArray;
@@ -19,6 +20,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.entity.SysUser;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.DateUtils;
@@ -33,6 +35,7 @@ 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.ctop.service.IMaterialReportOverViewService;
 import org.jeecg.modules.system.service.ISysRoleService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -82,6 +85,9 @@ public class CwjsPolicyInfoController {
 	 CorpWexinUtils corpWexinUtils;
 	 @Resource
 	 MailLogMapper mailLogMapper;
+	 @Autowired
+	 private IMaterialReportOverViewService materialReportOverViewService;
+
 
 	 @GetMapping(value = "/queryApprovalRejectReason")
 	 public Result<CwjsPolicyApprovalLog> queryApprovalRejectReason(@RequestParam(name="id",required=true) Integer id){
@@ -153,13 +159,13 @@ public class CwjsPolicyInfoController {
 
 			JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfoEntity.getCreateUserId());
 			StringBuilder text = new StringBuilder();
-			text.append("您有一条销售政策需要审核,客户为:");
+			text.append("您有一条销售政策审核未通过,客户为:");
 			text.append(cwjsPolicyInfoEntity.getCompanyName());
 			text.append(",请及时登录助手平台-销售政策页面进行政策修改,谢谢!");
 			corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
 		}
 		cwjsPolicyInfoService.updateById(cwjsPolicyInfoEntity);
-	 	return Result.successMsg("提交成功",null);
+	 	return Result.successMsg("成功",cwjsPolicyInfoEntity);
 	 }
 
 	/**
@@ -178,27 +184,41 @@ public class CwjsPolicyInfoController {
 									  @RequestParam(name="userId",required=true) String userId,
 									  HttpServletRequest req) {
 
-		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(userId);
+        List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUserList = companyApprovalUserMapper.queryByUserId(userId);
+		List<CwjsPolicyInfo> cwjsPolicyInfoList = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+		if(Check.isNull(cwjsPolicyInfoList)){
+			return Result.successMsg("目前没有政策,请新增",null);
 		}
+        /**如果是管理员,就全部看,该搜索搜索,不搜索就全看*/
+
+        /**如果不是管理员,也不是审核人员。看自己和自己下属的所有政策。*/
+        if(!"admin".equalsIgnoreCase(roleCode) && Check.isNull(cwjsCompanyApprovalUserList)){
+//			Set<String> userIds= materialReportOverViewService.recursiveQuerySubordinate(userId);
+			List<String> userIds = cwjsPolicyInfoService.getAllSubordinate(userId);
+			List<CwjsPolicyInfo> removeList = new ArrayList<>();
+            cwjsPolicyInfoList.forEach(cwjsPolicy -> {
+                if(!userIds.contains(cwjsPolicy.getCreateUserId())){
+                    removeList.add(cwjsPolicy);
+                }
+            });
+            cwjsPolicyInfoList.removeAll(removeList);
+        }
+        /**如果不是管理员,是审核人员。看自己创建的和自己下属的所有政策、和该自己审核。*/
+        if(!"admin".equalsIgnoreCase(roleCode) && !Check.isNull(cwjsCompanyApprovalUserList)){
+//			Set<String> userIds= materialReportOverViewService.recursiveQuerySubordinate(userId);
+			List<String> userIds = cwjsPolicyInfoService.getAllSubordinate(userId);
+
+			List<CwjsPolicyInfo> removeList = new ArrayList<>();
+            cwjsPolicyInfoList.forEach(cwjsPolicy -> {
+                if(!userIds.contains(cwjsPolicy.getCreateUserId()) && !userId.equalsIgnoreCase(cwjsPolicy.getApprovedProgress())){
+                    removeList.add(cwjsPolicy);
+                }
+            });
+            cwjsPolicyInfoList.removeAll(removeList);
+        }
 
-		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);
 
@@ -207,21 +227,18 @@ public class CwjsPolicyInfoController {
 			if(!Check.isNull(log)){
 				cwjsPolicy.setApprovalContent(log.getApprovalContent());
 			}
-			if(Check.isNull(cwjsCompanyApprovalUserList)){	//普通销售
-				if(cwjsPolicy.getApprovedStatus() == 4){
-					cwjsPolicy.setOperation("编辑|提交审核");
-				}else{
-					cwjsPolicy.setOperation("查看");
-				}
-			}else{	//审核人员
-				if(cwjsPolicy.getApprovedStatus() == 1 || cwjsPolicy.getApprovedStatus() == 2){
-					cwjsPolicy.setOperation("查看|审核通过|审核拒绝");
-				}else{
-					cwjsPolicy.setOperation("查看|提交审核");
-				}
-			}
+            cwjsPolicy.setOperation("查看");  //所有人只要能看到就能有查看的按钮
+			if(userId.equals(cwjsPolicy.getCreateUserId()) && cwjsPolicy.getApprovedStatus() == 4){ //创建人是自己且状态是审核拒绝的
+                cwjsPolicy.setOperation("编辑|提交审核");
+            }
+
+			if(userId.equals(cwjsPolicy.getApprovedProgress()) && (cwjsPolicy.getApprovedStatus() == 1 || cwjsPolicy.getApprovedStatus() == 2)){
+                cwjsPolicy.setOperation("查看|审核通过|审核拒绝");
+            }
+
 			UserCompany userCompany = userCompanyService.getByUserId(cwjsPolicy.getCreateUserId());
-			if(Check.isNull(cwjsPolicy.getCreateUserName())){
+
+			if(!Check.isNull(userCompany) && Check.isNull(cwjsPolicy.getCreateUserName())){
 				cwjsPolicy.setCreateUserName(userCompany.getUserName());
 			}
 			CwjsCompanySubject cwjsCompanySubject = companySubjectService.getById(cwjsPolicy.getCompanySubjectId());
@@ -235,22 +252,18 @@ public class CwjsPolicyInfoController {
 		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);
-//			});
-//		}
-
+        String roleCode = roleService.getRoleCodeByUserId(userId);
+        List<JSONObject> allSaleList;
+        if("admin".equalsIgnoreCase(roleCode)){
+            allSaleList = cwjsPolicyInfoService.getAllSale();
+        }else{
+            allSaleList = cwjsPolicyInfoService.getAllSaleByUserId(userId);
+        }
 		return Result.OK(allSaleList);
 	}
 
@@ -492,4 +505,46 @@ public class CwjsPolicyInfoController {
       return Result.ok("文件导入失败!");
   }
 
+  @GetMapping(value = "/weiXinNotice")
+  public Result weiXinNotice(){
+	  CwjsPolicyInfo cwjsPolicyInfo = new CwjsPolicyInfo();
+	  cwjsPolicyInfo.setApprovedStatus(1);
+	  //待审核的状态的政策
+	  List<CwjsPolicyInfo> cwjsPolicyInfoListStatus1 = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+	  cwjsPolicyInfoListStatus1.forEach(cwjsPolicy -> {
+		  JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicy.getApprovedProgress());
+		  StringBuilder text = new StringBuilder();
+		  text.append("您有一条销售政策需要审核,该客户为:");
+		  text.append(cwjsPolicy.getCompanyName());
+		  text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+		  corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
+	  });
+
+	  //审核中的状态的政策
+	  cwjsPolicyInfo.setApprovedStatus(2);
+	  List<CwjsPolicyInfo> cwjsPolicyInfoListStatus2 = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+	  cwjsPolicyInfoListStatus2.forEach(cwjsPolicy -> {
+		  JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicy.getApprovedProgress());
+		  StringBuilder text = new StringBuilder();
+		  text.append("您有一条销售政策需要审核,该客户为:");
+		  text.append(cwjsPolicy.getCompanyName());
+		  text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
+		  corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
+	  });
+
+	  //审核拒绝的状态的政策
+	  cwjsPolicyInfo.setApprovedStatus(4);
+	  List<CwjsPolicyInfo> cwjsPolicyInfoListStatus4 = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+	  cwjsPolicyInfoListStatus4.forEach(cwjsPolicy -> {
+		  JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicy.getCreateUserId());
+		  StringBuilder text = new StringBuilder();
+		  text.append("您有一条销售政策审核未通过,该客户为:");
+		  text.append(cwjsPolicy.getCompanyName());
+		  text.append(",请及时登录助手平台-销售政策页面进行政策修改,谢谢!");
+		  corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
+	  });
+
+  	return Result.OK();
+  }
+
 }

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

@@ -113,7 +113,8 @@ public class CwjsPolicyInfo {
 	@Excel(name = "创建人", width = 15)
 	@ApiModelProperty(value = "创建人")
 	private String createUserId;
-	@TableField(exist = false)
+	@Excel(name = "创建人名字", width = 15)
+	@ApiModelProperty(value = "创建人名字")
 	private String createUserName;
 	/**创建时间*/
     @ApiModelProperty(value = "创建时间")

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

@@ -16,7 +16,7 @@ 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> getAllSale();
 
     List<JSONObject> getAllSaleByUserId(String userId);
 }

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

@@ -27,7 +27,7 @@
         order by t2.create_time desc
     </select>
 
-    <select id="getAllSaleByCompanyId" resultType="com.alibaba.fastjson.JSONObject">
+    <select id="getAllSale" resultType="com.alibaba.fastjson.JSONObject">
         SELECT t1.user_id AS 'userId',
 	LEFT (t1.company_name, 2) AS 'companyName',
 	t3.role_name AS 'ruleName',
@@ -55,6 +55,6 @@
         FROM
             ctop_cwjs_policy_info t1
         WHERE
-            t1.approved_progress = #{userId}
+            t1.approved_progress = #{userId} or t1.create_user_id = #{userId}
     </select>
 </mapper>

+ 4 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsPolicyInfoService.java

@@ -2,6 +2,7 @@ package org.jeecg.ctop.finance.policy.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import org.jeecg.common.system.entity.SysUser;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -16,7 +17,9 @@ import java.util.List;
 public interface ICwjsPolicyInfoService extends IService<CwjsPolicyInfo> {
     List<CwjsPolicyInfo> queryPageList(CwjsPolicyInfo policyInfo);
 
-    List<JSONObject> getAllSaleByCompanyId(String companyId);
+    List<JSONObject> getAllSale();
 
     List<JSONObject> getAllSaleByUserId(String userId);
+
+    List<String> getAllSubordinate(String userId);
 }

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

@@ -1,11 +1,15 @@
 package org.jeecg.ctop.finance.policy.service.impl;
 
+import cn.com.ctop.common.module.mapper.SysUserMapper;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
+import org.jeecg.common.system.entity.SysUser;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyInfoMapper;
 import org.jeecg.ctop.finance.policy.service.ICwjsPolicyInfoService;
+import org.jeecg.ctop.finance.policy.utils.Check;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -62,12 +66,36 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
     }
 
     @Override
-    public List<JSONObject> getAllSaleByCompanyId(String companyId){
-        return policyInfoMapper.getAllSaleByCompanyId(companyId);
+    public List<JSONObject> getAllSale(){
+        return policyInfoMapper.getAllSale();
     }
 
     @Override
     public List<JSONObject> getAllSaleByUserId(String userId){
         return policyInfoMapper.getAllSaleByUserId(userId);
     }
+
+
+    @Autowired
+    private SysUserMapper userMapper;
+    @Override
+    public List<String> getAllSubordinate(String userId){
+        List<SysUser> allList = userMapper.selectAllUser();
+        List<SysUser> mulUserList = treeCategoryData(allList, userId);
+        List<String> userIds = new ArrayList<>();
+        userIds.add(userId);
+        mulUserList.forEach(mulUser -> userIds.add(mulUser.getId()));
+        return userIds;
+    }
+    public List<SysUser> treeCategoryData(List<SysUser> allList, String leaderId) {
+        List<SysUser> mapList = new ArrayList<>();
+        for (SysUser vo : allList) {
+            if (leaderId.equals(vo.getLeaderId())){
+                mapList.add(vo);
+                mapList.addAll(treeCategoryData(allList,vo.getId()));
+            }
+        }
+        return mapList;
+
+    }
 }