|
@@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.common.system.entity.SysUser;
|
|
@@ -33,6 +34,7 @@ import org.jeecg.ctop.finance.policy.service.*;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
+import org.jeecg.ctop.finance.policy.service.impl.CwjsCompanySubjectServiceImpl;
|
|
|
import org.jeecg.ctop.finance.policy.utils.Check;
|
|
|
import org.jeecg.ctop.finance.policy.utils.ListPageUtil;
|
|
|
import org.jeecg.ctop.finance.settlement.service.serviceImpl.ReportSettlementServiceImpl;
|
|
@@ -110,6 +112,8 @@ public class CwjsPolicyInfoController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ICwjsCompanySubjectService cwjsCompanySubjectService;
|
|
|
/**
|
|
|
* 审核-master
|
|
|
* @param id 政策id
|
|
@@ -119,136 +123,212 @@ public class CwjsPolicyInfoController {
|
|
|
* @return
|
|
|
*/
|
|
|
@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,
|
|
|
+ public Result policyApproval(@RequestParam(name="id") Integer id,
|
|
|
+ @RequestParam(name="type") Integer type,
|
|
|
+ @RequestParam(name="userId") String userId,
|
|
|
@RequestParam(name="approvalContent",required=false) String approvalContent){
|
|
|
-// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
- CwjsPolicyInfo cwjsPolicyInfoEntity = cwjsPolicyInfoService.getById(id);
|
|
|
- if(cwjsPolicyInfoEntity==null) {
|
|
|
+
|
|
|
+ CwjsPolicyInfo cwjsPolicyInfo = cwjsPolicyInfoService.getById(id);
|
|
|
+ if(cwjsPolicyInfo==null) {
|
|
|
return Result.error("政策不存在或已被删除,请重新选择要审核的政策。");
|
|
|
}
|
|
|
- //获取 主体
|
|
|
- Integer companySubjectId= cwjsPolicyInfoEntity.getCompanySubjectId();
|
|
|
+ cwjsPolicyInfo.setLoginUserId(userId);
|
|
|
+ cwjsPolicyInfo.setApprovalContent(approvalContent);
|
|
|
+ //获取 公司主题
|
|
|
+ Integer companySubjectId = cwjsPolicyInfo.getCompanySubjectId();
|
|
|
|
|
|
- // 当前用户是否是审核人
|
|
|
- CwjsCompanyApprovalUser cwjsCompanyApprovalUser = companyApprovalUserMapper.queryByCompanySubjectIdAndUserId(companySubjectId, userId);
|
|
|
+ CwjsCompanySubject companySubject = cwjsCompanySubjectService.getById(companySubjectId);
|
|
|
+ cwjsPolicyInfo.setCompanyId(companySubject.getCompanyId());
|
|
|
|
|
|
- if(type == 1){ //审核提交 等于新增的时候
|
|
|
- List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUsers = companyApprovalUserMapper.queryByCompanySubjectId(companySubjectId);
|
|
|
- if(Check.isNull(cwjsCompanyApprovalUsers)){
|
|
|
- return Result.errorMsg("此业务线暂时无审核人员,提交审核无效,请联系开发人员添加此区域主体的审核人员");
|
|
|
- }
|
|
|
- //普通销售,审核都是1,审核进度的人都是等级为0的审核人id
|
|
|
- cwjsCompanyApprovalUsers.forEach(cwjsCompanyApprovalUser2 -> {
|
|
|
- if(cwjsCompanyApprovalUser2.getLevel() == 0){
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(1);
|
|
|
- cwjsPolicyInfoEntity.setApprovedProgress(cwjsCompanyApprovalUser2.getApprovalUserId());
|
|
|
- }
|
|
|
- });
|
|
|
- //如果满足 当前用户 是 审核人员 且 创建人
|
|
|
- cwjsCompanyApprovalUsers.forEach(cwjsCompanyApprovalUser2 -> {
|
|
|
- if(cwjsCompanyApprovalUser2.getApprovalUserId().equalsIgnoreCase(cwjsPolicyInfoEntity.getCreateUserId())
|
|
|
- && cwjsCompanyApprovalUser2.getApprovalUserId().equalsIgnoreCase(userId)){
|
|
|
- CwjsCompanyApprovalUser approvalUserNext = companyApprovalUserMapper.queryByCompanySubjectIdAndLevel(companySubjectId, cwjsCompanyApprovalUser2.getLevel()+1);
|
|
|
- if(Check.isNull(approvalUserNext)){
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(3);
|
|
|
- cwjsPolicyInfoEntity.setApprovedProgress(null);
|
|
|
- }else{
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(2);
|
|
|
- cwjsPolicyInfoEntity.setApprovedProgress(approvalUserNext.getApprovalUserId());
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
|
|
|
- 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){ //审核通过 是不是终审,不是就给当前的下一个人发企业微信
|
|
|
- CwjsCompanyApprovalUser nextApprovalUser = null;
|
|
|
- //查询 下一个 审核人
|
|
|
- if(!Check.isNull(cwjsCompanyApprovalUser)){
|
|
|
- nextApprovalUser = companyApprovalUserMapper.queryByCompanySubjectIdAndLevel(companySubjectId, cwjsCompanyApprovalUser.getLevel() + 1);
|
|
|
+ //当前政策审核人
|
|
|
+ String approvalUser = cwjsPolicyInfo.getApprovedProgress();
|
|
|
+
|
|
|
+ //政策所属销售的部门 和 上级
|
|
|
+ JSONObject examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getSaleId(),"分公司总经理");
|
|
|
+ String firstAudit = "";//第一次审核人
|
|
|
+
|
|
|
+ // 提交 - 待审核
|
|
|
+ //华北==> 法务 其他===> 销售上级
|
|
|
+ if(type == 1){
|
|
|
+ if (cwjsPolicyInfo.getAdvancePay() == 0 && cwjsPolicyInfo.getCustomerFlag() == 0){
|
|
|
+ //第一次审核人 -- 法务(法务有多个用户 无法判断审核人 所以 法务审核人为 角色code legalAffairs 占位)
|
|
|
+ //firstAudit = examineUser.getString("directorId");
|
|
|
+ firstAudit = "legalAffairs";
|
|
|
+ }else {
|
|
|
+ //销售的 上级
|
|
|
+ firstAudit = examineUser.getString("leaderId");
|
|
|
}
|
|
|
- if(Check.isNull(nextApprovalUser)){//没有下一个审核人员,是终审
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(3);
|
|
|
- /**
|
|
|
- * 终审通过后 添加 起始时间
|
|
|
- */
|
|
|
- reportSettlementService.cwjsPRofit(cwjsPolicyInfoEntity);
|
|
|
- }else{ //不是终审
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(2);
|
|
|
- cwjsPolicyInfoEntity.setApprovedProgress(nextApprovalUser.getApprovalUserId()); //设置一下个人为审核人员
|
|
|
- JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(nextApprovalUser.getApprovalUserId());
|
|
|
+
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
+ cwjsPolicyInfo.setApprovedProgress(firstAudit);
|
|
|
+
|
|
|
+
|
|
|
+ if(StringUtils.equals(firstAudit,"legalAffairs")){
|
|
|
+ List<JSONObject> legalUserList = cwjsPolicyInfoService.getLegalAffairsUsers();
|
|
|
+ for (JSONObject jsonObject : legalUserList) {
|
|
|
+ JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(jsonObject.getString("userId"));
|
|
|
+ StringBuilder text = new StringBuilder();
|
|
|
+ text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
+ text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
+ text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
+ corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfo.getApprovedProgress());
|
|
|
StringBuilder text = new StringBuilder();
|
|
|
text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
- text.append(cwjsPolicyInfoEntity.getCompanyName());
|
|
|
+ text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加记录
|
|
|
+ CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
+ policyApprovalLog.setPolicyId(cwjsPolicyInfo.getId());
|
|
|
+ policyApprovalLog.setCreateUserId(cwjsPolicyInfo.getCreateUserId());
|
|
|
+ policyApprovalLog.setApprovalStatus(0);
|
|
|
+ policyApprovalLog.setApprovalContent("提交政策");
|
|
|
+ policyApprovalLog.setCreateTime(new Date());
|
|
|
+ policyApprovalLogService.save(policyApprovalLog);
|
|
|
+
|
|
|
+ }
|
|
|
+ //审核通过 是不是终审,不是就给当前的下一个人发企业微信
|
|
|
+ if(type == 2){
|
|
|
+
|
|
|
+ //第一个审核人 - 法务
|
|
|
+ if(approvalUser.equals("legalAffairs")){
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
+ cwjsPolicyInfo.setApprovedProgress(examineUser.getString("leaderId")); //设置一下个审核人员 上级
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //查询审核人角色
|
|
|
+ String roleCode = roleService.getRoleCodeByUserId(approvalUser);
|
|
|
+
|
|
|
+ //第二个审核人 = 上级
|
|
|
+ //if(approvalUser.equals(examineUser.getString("leaderId"))){
|
|
|
+ if(StringUtils.equals("saleDirector",roleCode)){//审核人角色为销售总监
|
|
|
+ if(examineUser.getString("departName").contains("渠道")){
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(3);
|
|
|
+ cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 终审通过后 添加 起始时间
|
|
|
+ */
|
|
|
+ reportSettlementService.cwjsPRofit(cwjsPolicyInfo);
|
|
|
+ return Result.successMsg("审核通过",cwjsPolicyInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(examineUser.getString("departName").contains("销售")){
|
|
|
+ //华北 ---> 自动转老板
|
|
|
+ if (cwjsPolicyInfo.getCompanyId().equals("d57fecdcf7a94d009736d9c850731582")){
|
|
|
+ //查询 是否符合条件
|
|
|
+ List<JSONObject> autoConveryList = cwjsPolicyInfoMapper.selAutoConveryInfo(cwjsPolicyInfo.getAccountingPeriod(),cwjsPolicyInfo.getMediaType(),
|
|
|
+ cwjsPolicyInfo.getAdvancePay(),cwjsPolicyInfo.getRebateType(),cwjsPolicyInfo.getRebateRate());
|
|
|
+ if (!Check.isNull(autoConveryList)){
|
|
|
+ cwjsPolicyInfoService.automaticConveyBossExamine(cwjsPolicyInfo);
|
|
|
+ cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
|
|
|
+ log.info("-----自动转老板");
|
|
|
+ return Result.successMsg("审核通过",cwjsPolicyInfo);
|
|
|
+ }else {
|
|
|
+ //结束
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(3);
|
|
|
+ cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 终审通过后 添加 起始时间
|
|
|
+ */
|
|
|
+ reportSettlementService.cwjsPRofit(cwjsPolicyInfo);
|
|
|
+ return Result.successMsg("审核通过",cwjsPolicyInfo);
|
|
|
+
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ // 下一步审核 分公司总经理
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
+ cwjsPolicyInfo.setApprovedProgress(examineUser.getString("directorId")); //设置一下个审核人员 分公司总经理
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+ //第三个审核人- 分公司总经理
|
|
|
+ if(approvalUser.equals(examineUser.getString("directorId"))){
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(3);
|
|
|
+ cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 终审通过后 添加 起始时间
|
|
|
+ */
|
|
|
+ reportSettlementService.cwjsPRofit(cwjsPolicyInfo);
|
|
|
+ return Result.successMsg("审核通过",cwjsPolicyInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //老板
|
|
|
+ if (approvalUser.equals(userId) && userId.equals("4aba62011120ac565c7f2b9f8f4aa96b")){
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(3);
|
|
|
+ cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 终审通过后 添加 起始时间
|
|
|
+ */
|
|
|
+ reportSettlementService.cwjsPRofit(cwjsPolicyInfo);
|
|
|
+ return Result.successMsg("审核通过",cwjsPolicyInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfo.getApprovedProgress());
|
|
|
+ StringBuilder text = new StringBuilder();
|
|
|
+ text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
+ text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
+ text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
+ corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
+
|
|
|
CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
policyApprovalLog.setPolicyId(id);
|
|
|
policyApprovalLog.setCreateUserId(userId);
|
|
|
policyApprovalLog.setApprovalStatus(0);
|
|
|
+ policyApprovalLog.setApprovalContent(Check.isNull(approvalContent) ? "审核通过" : approvalContent);
|
|
|
+ policyApprovalLog.setCreateTime(new Date());
|
|
|
policyApprovalLogService.save(policyApprovalLog);
|
|
|
|
|
|
-
|
|
|
}
|
|
|
if(type == 3){ //审核拒绝 给申请人发企业微信
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(4);
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(4);
|
|
|
+
|
|
|
CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
+ policyApprovalLog.setApprovalStatus(1);
|
|
|
policyApprovalLog.setPolicyId(id);
|
|
|
policyApprovalLog.setCreateUserId(userId);
|
|
|
- policyApprovalLog.setApprovalContent(approvalContent);
|
|
|
- policyApprovalLog.setApprovalStatus(1);
|
|
|
+ policyApprovalLog.setApprovalContent(Check.isNull(approvalContent) ? "审核拒绝" : approvalContent);
|
|
|
+ policyApprovalLog.setCreateTime(new Date());
|
|
|
policyApprovalLogService.save(policyApprovalLog);
|
|
|
|
|
|
- JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfoEntity.getCreateUserId());
|
|
|
+
|
|
|
+ JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfo.getCreateUserId());
|
|
|
StringBuilder text = new StringBuilder();
|
|
|
text.append("您有一条销售政策审核未通过,客户为:");
|
|
|
- text.append(cwjsPolicyInfoEntity.getCompanyName());
|
|
|
+ text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
text.append(",请及时登录助手平台-销售政策页面进行政策修改,谢谢!");
|
|
|
corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
}
|
|
|
|
|
|
- //转领导审批 只有审核人是最后一个人的时候 才可以转领导
|
|
|
+ //手动-转领导审批 只有审核人是最后一个人的时候 才可以转领导
|
|
|
if (type == 4){
|
|
|
- //根据主体查询 最后一个审核人员
|
|
|
- CwjsCompanyApprovalUser endApprovalUser = companyApprovalUserMapper.getEndApprovalUserBySub(companySubjectId);
|
|
|
- if (!Check.isNull(endApprovalUser)){
|
|
|
- if (!userId.equals(endApprovalUser.getApprovalUserId())){
|
|
|
- return Result.errorMsg("当前所登录用户不是最后一个审核人员,无法转领导审批。");
|
|
|
- }
|
|
|
+ // 最后一个审核人员
|
|
|
+ if (!approvalUser.equals(examineUser.getString("leaderId")) && !approvalUser.equals(examineUser.getString("directorId"))){
|
|
|
+ return Result.errorMsg("当前审核人不是最后一个审核人员,无法转领导审批。");
|
|
|
}
|
|
|
- cwjsPolicyInfoEntity.setApprovedStatus(2);
|
|
|
- cwjsPolicyInfoEntity.setApprovedProgress("4aba62011120ac565c7f2b9f8f4aa96b"); //设置 boss 为审核人员
|
|
|
- JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId("4aba62011120ac565c7f2b9f8f4aa96b");
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
- text.append(cwjsPolicyInfoEntity.getCompanyName());
|
|
|
- text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
- corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
-
|
|
|
- CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
- policyApprovalLog.setPolicyId(id);
|
|
|
- policyApprovalLog.setCreateUserId(userId);
|
|
|
- policyApprovalLog.setApprovalStatus(2);//0-审核通过 1-审核不通过 2-转给领导
|
|
|
- policyApprovalLog.setApprovalContent(approvalContent);
|
|
|
- policyApprovalLogService.save(policyApprovalLog);
|
|
|
-
|
|
|
|
|
|
+ cwjsPolicyInfoService.automaticConveyBossExamine(cwjsPolicyInfo);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- cwjsPolicyInfoService.updateById(cwjsPolicyInfoEntity);
|
|
|
- return Result.successMsg("成功",cwjsPolicyInfoEntity);
|
|
|
+ cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
|
|
|
+ return Result.successMsg(type == 3 ? "审核拒绝" : "审核通过",cwjsPolicyInfo);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -278,70 +358,105 @@ public class CwjsPolicyInfoController {
|
|
|
if ("admin".equalsIgnoreCase(roleCode) || "finance".equalsIgnoreCase(roleCode) ){
|
|
|
|
|
|
}else if("saleDirector".equalsIgnoreCase(roleCode)){
|
|
|
- //总监 看下属
|
|
|
+ //总监看下属
|
|
|
userIds = cwjsPolicyInfoService.getAllSubordinate(userId);
|
|
|
+ cwjsPolicyInfo.setSaleIds(userIds);
|
|
|
|
|
|
- //法务
|
|
|
+ //分公司总经理
|
|
|
+ }else if("CompanyManager".equalsIgnoreCase(roleCode)){
|
|
|
+ //自己所属区域
|
|
|
+ //查询 用户 所属区域 公司主题id
|
|
|
+ List<Integer> subjectId = cwjsPolicyInfoService.getCompanySubjectByUserId(userId);
|
|
|
+ cwjsPolicyInfo.setCompanySubjectIds(subjectId);
|
|
|
+
|
|
|
+ //法务
|
|
|
}else if("legalAffairs".equalsIgnoreCase(roleCode)){
|
|
|
- //法务 查看 华北
|
|
|
- cwjsPolicyInfo.setCompanySubjectId(1);
|
|
|
+ //法务 查看
|
|
|
+ //cwjsPolicyInfo.setAdvancePay(0); //预付-否
|
|
|
+ //cwjsPolicyInfo.setCustomerFlag(0);// 老客户 -否
|
|
|
+
|
|
|
}else {
|
|
|
//查询 对应的销售或 助理
|
|
|
userIds = cwjsSaleAssistantInfoService.getCwSaleAndAssistantListStr(userId);
|
|
|
if (Check.isNull(userIds)){
|
|
|
userIds.add(userId);
|
|
|
}
|
|
|
-
|
|
|
+ cwjsPolicyInfo.setSaleIds(userIds);
|
|
|
}
|
|
|
- cwjsPolicyInfo.setSaleIds(userIds);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
//查询政策
|
|
|
List<CwjsPolicyInfo> cwjsPolicyInfoList = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
|
|
|
if(Check.isNull(cwjsPolicyInfoList)){
|
|
|
- return Result.successMsg("没有符合条件的政策,请重新选择。",null);
|
|
|
+ return Result.errorMsg("暂无政策。");
|
|
|
}
|
|
|
-
|
|
|
+ //时间 降序
|
|
|
+ Collections.sort(cwjsPolicyInfoList, Comparator.comparing(CwjsPolicyInfo::getCreateTime).reversed());
|
|
|
|
|
|
List<CwjsPolicyInfo> cwjsPolicyInfos = ListPageUtil.page(cwjsPolicyInfoList, pageSize, pageNo);
|
|
|
|
|
|
cwjsPolicyInfos.forEach(cwjsPolicy ->{
|
|
|
CwjsPolicyApprovalLog log = policyApprovalLogMapper.getOneByPolicyId(cwjsPolicy.getId(),1); // 查询 被拒 审核意见 最新的一条
|
|
|
- cwjsPolicy.setApprovalContent(Check.isNull(log) ? "暂无被拒意见" : log.getApprovalContent());
|
|
|
+ cwjsPolicy.setApprovalContent(Check.isNull(log) ? "" : log.getApprovalContent());
|
|
|
+
|
|
|
+ CwjsPolicyApprovalLog forwardContent = policyApprovalLogMapper.getOneByPolicyId(cwjsPolicy.getId(),2); // 查询 转发领导的理由 最新的一条
|
|
|
+ cwjsPolicy.setTheForwardingBossContent(Check.isNull(forwardContent) ? "" : forwardContent.getApprovalContent());
|
|
|
|
|
|
- CwjsPolicyApprovalLog bossContent = policyApprovalLogMapper.getOneByPolicyId(cwjsPolicy.getId(),2); // 查询 转发领导的 审核意见 最新的一条
|
|
|
- cwjsPolicy.setTheBossContent(Check.isNull(bossContent) ? "暂无老板审核意见" : bossContent.getApprovalContent());
|
|
|
+ CwjsPolicyApprovalLog bossContent = policyApprovalLogMapper.getBossOneByPolicyId(cwjsPolicy.getId()); // 查询 老板审核意见 最新的一条
|
|
|
+ if (!Check.isNull(bossContent)){
|
|
|
+ cwjsPolicy.setTheBossContent(StringUtils.equals("终审通过",bossContent.getApprovalContent()) ? "-" : bossContent.getApprovalContent());
|
|
|
+ }else {
|
|
|
+ cwjsPolicy.setTheBossContent("-");
|
|
|
+ }
|
|
|
|
|
|
- CwjsPolicyApprovalLog legalContent = policyApprovalLogMapper.getOneByPolicyId(cwjsPolicy.getId(),11); // 查询 法务 审核意见 最新的一条
|
|
|
- cwjsPolicy.setLegalAffairsContent(Check.isNull(legalContent) ? "暂无法务审核意见" : legalContent.getApprovalContent());
|
|
|
+ CwjsPolicyApprovalLog legalContent = policyApprovalLogMapper.getOneByPolicyLegalInfo(cwjsPolicy.getId()); // 查询 法务 审核意见 最新的一条
|
|
|
+ cwjsPolicy.setLegalAffairsContent(Check.isNull(legalContent) ? "" : legalContent.getApprovalContent());
|
|
|
|
|
|
|
|
|
+ JSONObject examineUser = new JSONObject();
|
|
|
String directorUserId = "";
|
|
|
//主体为1 为 华北
|
|
|
- if (cwjsPolicy.getCompanySubjectId() == 1){
|
|
|
+ if (cwjsPolicy.getCompanyId().equals("d57fecdcf7a94d009736d9c850731582")){
|
|
|
//查询 该销售 所属的审核人员
|
|
|
//华北审核人员 - 法务==>销售总监(销售上级)==>手动转领导/自动转领导
|
|
|
- directorUserId = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(userId,"法务").getString("leaderId");
|
|
|
-
|
|
|
+ examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicy.getSaleId(),"法务");
|
|
|
+ directorUserId = examineUser.getString("leaderId");
|
|
|
}else {
|
|
|
//查询 该销售 所属的审核人员
|
|
|
//华南审核人员 - 销售总监(销售上级) ==> 分公司经理 ==>转领导
|
|
|
- directorUserId = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(userId,"分公司总经理").getString("directorId");
|
|
|
+ examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicy.getSaleId(),"分公司总经理");
|
|
|
+ directorUserId = examineUser.getString("directorId");
|
|
|
|
|
|
}
|
|
|
|
|
|
//政策当前审核人 = 最后一个审核人 = 当前用户 && 状态不为3 审核通过 && 状态不为4 审核拒绝 || 当前用户 不是老板
|
|
|
// 则显示 转领导审批
|
|
|
+ cwjsPolicy.setTheBossRight("no");
|
|
|
if(cwjsPolicy.getApprovedStatus() != 3 && cwjsPolicy.getApprovedStatus() != 4){
|
|
|
- if (cwjsPolicy.getApprovedProgress().equals(directorUserId) && directorUserId.equals(userId)
|
|
|
- && !"80e747cdea6f41dbbc8cde23046fd4e0".equals(userId)){
|
|
|
- cwjsPolicy.setTheBossRight("yes");
|
|
|
- }
|
|
|
- }else {
|
|
|
- cwjsPolicy.setTheBossRight("no");
|
|
|
- }
|
|
|
+ if (StringUtils.equals(cwjsPolicy.getApprovedProgress(),directorUserId) && directorUserId.equals(userId)
|
|
|
+ && !"4aba62011120ac565c7f2b9f8f4aa96b".equals(userId)){
|
|
|
|
|
|
+ if(examineUser.getString("departName").contains("渠道")){
|
|
|
+ cwjsPolicy.setTheBossRight("yes");
|
|
|
+ }
|
|
|
|
|
|
+ if(examineUser.getString("departName").contains("销售")){
|
|
|
+ //华北
|
|
|
+ if (cwjsPolicy.getCompanyId().equals("d57fecdcf7a94d009736d9c850731582")){
|
|
|
+ //查询 是否符合自动转审条件
|
|
|
+ List<JSONObject> autoConveryList = cwjsPolicyInfoMapper.selAutoConveryInfo(cwjsPolicy.getAccountingPeriod(),cwjsPolicy.getMediaType(),
|
|
|
+ cwjsPolicy.getAdvancePay(),cwjsPolicy.getRebateType(),cwjsPolicy.getRebateRate());
|
|
|
+ if (Check.isNull(autoConveryList)){
|
|
|
+ cwjsPolicy.setTheBossRight("yes");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ cwjsPolicy.setTheBossRight("yes");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
|
@@ -356,11 +471,22 @@ public class CwjsPolicyInfoController {
|
|
|
}
|
|
|
}
|
|
|
//待审核
|
|
|
- if (cwjsPolicy.getApprovedStatus() == 1 || cwjsPolicy.getApprovedStatus() == 2){
|
|
|
- if(cwjsPolicy.getApprovedProgress().equals(userId)){
|
|
|
+ if (cwjsPolicy.getApprovedStatus() == 1){
|
|
|
+ if(StringUtils.equals(cwjsPolicy.getApprovedProgress(),userId)
|
|
|
+ || (StringUtils.equals(cwjsPolicy.getApprovedProgress(),"legalAffairs") && StringUtils.equals(roleCode,"legalAffairs"))){
|
|
|
stringBuilder.append("审核通过").append("|").append("审核拒绝").append("|");
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
+ //待审核
|
|
|
+ if (cwjsPolicy.getApprovedStatus() == 2){
|
|
|
+ if(StringUtils.equals(cwjsPolicy.getApprovedProgress(),userId)){
|
|
|
+ stringBuilder.append("审核通过").append("|").append("审核拒绝").append("|");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
stringBuilder.append("查看").append("|");
|
|
|
cwjsPolicy.setOperation(stringBuilder.deleteCharAt(stringBuilder.lastIndexOf("|")).toString());
|
|
@@ -445,35 +571,35 @@ public class CwjsPolicyInfoController {
|
|
|
return Result.errorMsg("您选择的区域和公司主体系统不支持,请联系开发人员开放");
|
|
|
}
|
|
|
cwjsPolicyInfo.setCompanySubjectId(companySubjectId);
|
|
|
- List<CwjsCompanyApprovalUser> cwjsCompanyApprovalUsers = companyApprovalUserMapper.queryByCompanySubjectId(companySubjectId);
|
|
|
- if(Check.isNull(cwjsCompanyApprovalUsers)){
|
|
|
- return Result.errorMsg("此业务线暂时无审核人员,提交审核无效,请联系开发人员添加此区域主体的审核人员");
|
|
|
- }
|
|
|
- //普通销售,新增都是1,审核进度的人都是等级为0的审核人id
|
|
|
- cwjsCompanyApprovalUsers.forEach(cwjsCompanyApprovalUser -> {
|
|
|
- if(cwjsCompanyApprovalUser.getLevel() == 0){
|
|
|
- cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
- cwjsPolicyInfo.setApprovedProgress(cwjsCompanyApprovalUser.getApprovalUserId());
|
|
|
- }
|
|
|
- });
|
|
|
- //如果满足有审核人员等于当前创建的人,
|
|
|
- //当前用户 和 选择的销售(创建人) 相同
|
|
|
- LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
- if(user.getId().equals(cwjsPolicyInfo.getCreateUserId())){
|
|
|
- cwjsCompanyApprovalUsers.forEach(cwjsCompanyApprovalUser -> {
|
|
|
- if(cwjsCompanyApprovalUser.getApprovalUserId().equalsIgnoreCase(cwjsPolicyInfo.getCreateUserId())){
|
|
|
- CwjsCompanyApprovalUser approvalUserNext = companyApprovalUserMapper.queryByCompanySubjectIdAndLevel(companySubjectId, cwjsCompanyApprovalUser.getLevel()+1);
|
|
|
- if(Check.isNull(approvalUserNext)){
|
|
|
- cwjsPolicyInfo.setApprovedStatus(3);
|
|
|
- cwjsPolicyInfo.setApprovedProgress(null);
|
|
|
- }else{
|
|
|
- cwjsPolicyInfo.setApprovedStatus(2);
|
|
|
- cwjsPolicyInfo.setApprovedProgress(approvalUserNext.getApprovalUserId());
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
+
|
|
|
+ //查询销售角色
|
|
|
+ String roleCode = roleService.getRoleCodeByUserId(cwjsPolicyInfo.getSaleId());
|
|
|
+
|
|
|
+
|
|
|
+ //政策所属销售的部门 和 上级
|
|
|
+ JSONObject examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getSaleId(),"分公司总经理");
|
|
|
+ String firstAudit = "";//第一次审核人
|
|
|
+
|
|
|
+ //普通销售,新增都是1,审核进度的人都是等级为0的审核人i
|
|
|
+ // 预付-否 && 老客户-否
|
|
|
+ if (cwjsPolicyInfo.getAdvancePay() == 0 && cwjsPolicyInfo.getCustomerFlag() == 0){
|
|
|
+ //第一次审核人 -- 法务(法务有多个用户 无法判断审核人 所以 法务审核人为 角色code legalAffairs 占位)
|
|
|
+ //firstAudit = examineUser.getString("directorId");
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
+ firstAudit = "legalAffairs";
|
|
|
+
|
|
|
+ //助理给销售总监创建
|
|
|
+ }else if (StringUtils.equals(roleCode,"saleDirector")){
|
|
|
+ //审核人是销售总监自己
|
|
|
+ firstAudit = cwjsPolicyInfo.getSaleId();
|
|
|
+ }else {
|
|
|
+ //销售的 上级
|
|
|
+ firstAudit = examineUser.getString("leaderId");
|
|
|
}
|
|
|
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
+ cwjsPolicyInfo.setApprovedProgress(firstAudit);
|
|
|
|
|
|
|
|
|
if(cwjsPolicyInfo.getAdvancePay() == 1){
|
|
@@ -484,6 +610,7 @@ public class CwjsPolicyInfoController {
|
|
|
SysUser sysUser = sysUserService.getById(cwjsPolicyInfo.getCreateUserId());
|
|
|
cwjsPolicyInfo.setCreateUserName(sysUser.getRealname());
|
|
|
|
|
|
+ cwjsPolicyInfo.setCreateTime(new Date());
|
|
|
cwjsPolicyInfoService.save(cwjsPolicyInfo);
|
|
|
JSONArray products = cwjsPolicyInfo.getPolicyProductName();
|
|
|
List<CwjsPolicyProduct> policyProductList = new ArrayList<>();
|
|
@@ -496,13 +623,37 @@ public class CwjsPolicyInfoController {
|
|
|
policyProductList.add(policyProduct);
|
|
|
});
|
|
|
cwjsPolicyProductService.saveBatch(policyProductList);
|
|
|
- //先给first发企业微信 -- 先注释掉
|
|
|
- JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfo.getApprovedProgress());
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
- text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
- text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
- corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
+
|
|
|
+
|
|
|
+ //发企业微信 法务有两个用户
|
|
|
+ if (StringUtils.equals(cwjsPolicyInfo.getApprovedProgress(),"legalAffairs")){
|
|
|
+ List<JSONObject> legalUserList = cwjsPolicyInfoService.getLegalAffairsUsers();
|
|
|
+ for (JSONObject jsonObject : legalUserList) {
|
|
|
+ JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(jsonObject.getString("userId"));
|
|
|
+ StringBuilder text = new StringBuilder();
|
|
|
+ text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
+ text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
+ text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
+ corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId(cwjsPolicyInfo.getApprovedProgress());
|
|
|
+ StringBuilder text = new StringBuilder();
|
|
|
+ text.append("您有一条销售政策需要审核,该客户为:");
|
|
|
+ text.append(cwjsPolicyInfo.getCompanyName());
|
|
|
+ text.append(",请及时登录助手平台-销售政策页面进行审核,谢谢!");
|
|
|
+ corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加记录
|
|
|
+ CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
+ policyApprovalLog.setPolicyId(cwjsPolicyInfo.getId());
|
|
|
+ policyApprovalLog.setCreateUserId(cwjsPolicyInfo.getCreateUserId());
|
|
|
+ policyApprovalLog.setApprovalStatus(0);
|
|
|
+ policyApprovalLog.setApprovalContent("创建政策");
|
|
|
+ policyApprovalLog.setCreateTime(new Date());
|
|
|
+ policyApprovalLogService.save(policyApprovalLog);
|
|
|
+
|
|
|
result.success("添加成功!");
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage(),e);
|
|
@@ -550,7 +701,19 @@ public class CwjsPolicyInfoController {
|
|
|
cwjsPolicyInfo.setDianPayCompanyName(null);
|
|
|
cwjsPolicyInfo.setDianPayCompanyRebateRate(null);
|
|
|
}
|
|
|
+
|
|
|
+ cwjsPolicyInfo.setCreateUserName(cwjsPolicyInfoEntity.getCreateUserName());
|
|
|
cwjsPolicyInfoService.updatePolicyInfoById(cwjsPolicyInfo);
|
|
|
+
|
|
|
+ //添加记录
|
|
|
+ CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
+ policyApprovalLog.setPolicyId(cwjsPolicyInfo.getId());
|
|
|
+ policyApprovalLog.setCreateUserId(cwjsPolicyInfo.getCreateUserId());
|
|
|
+ policyApprovalLog.setApprovalStatus(0);
|
|
|
+ policyApprovalLog.setApprovalContent("修改政策");
|
|
|
+ policyApprovalLog.setCreateTime(new Date());
|
|
|
+ policyApprovalLogService.save(policyApprovalLog);
|
|
|
+
|
|
|
result.success("修改成功!");
|
|
|
}
|
|
|
return result;
|
|
@@ -738,4 +901,17 @@ public class CwjsPolicyInfoController {
|
|
|
return Result.OK();
|
|
|
}
|
|
|
|
|
|
-}
|
|
|
+
|
|
|
+ @ApiOperation(value="查询政策审核记录", notes="查询政策审核记录")
|
|
|
+ @GetMapping(value = "/getPolicyApprovalLogByPolicyId")
|
|
|
+ public Result getPolicyApprovalLogByPolicyId(@RequestParam(name="policyId") Integer policyId) {
|
|
|
+ return cwjsPolicyInfoService.getPolicyApprovalLogByPolicyId(policyId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|