|
@@ -10,27 +10,27 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import cn.com.ctop.common.module.entity.UserCompany;
|
|
|
-import cn.com.ctop.common.module.mapper.SysUserMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.MailLogMapper;
|
|
|
import cn.com.ctop.common.module.service.IUserCompanyService;
|
|
|
+import cn.com.ctop.common.module.utils.CorpWexinUtils;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
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;
|
|
|
import org.jeecg.common.util.oConvertUtils;
|
|
|
-import org.jeecg.ctop.finance.policy.entity.CwjsPolicyApprovalLog;
|
|
|
-import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
|
|
|
-import org.jeecg.ctop.finance.policy.entity.CwjsPolicyProduct;
|
|
|
-import org.jeecg.ctop.finance.policy.service.ICwjsPolicyApprovalLogService;
|
|
|
-import org.jeecg.ctop.finance.policy.service.ICwjsPolicyInfoService;
|
|
|
+import org.jeecg.ctop.finance.policy.entity.*;
|
|
|
+import org.jeecg.ctop.finance.policy.mapper.CwjsCompanyApprovalUserMapper;
|
|
|
+import org.jeecg.ctop.finance.policy.mapper.CwjsCompanySubjectMapper;
|
|
|
+import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyApprovalLogMapper;
|
|
|
+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.ICwjsPolicyProductService;
|
|
|
import org.jeecg.ctop.finance.policy.utils.Check;
|
|
|
import org.jeecg.modules.system.service.ISysRoleService;
|
|
|
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
|
@@ -55,7 +55,7 @@ import io.swagger.annotations.ApiOperation;
|
|
|
* @version V1.0
|
|
|
*/
|
|
|
@Slf4j
|
|
|
-@Api(tags="政策信息表")
|
|
|
+@Api(tags="政策模块")
|
|
|
@RestController
|
|
|
@RequestMapping("/finance/cwjsPolicyInfo")
|
|
|
public class CwjsPolicyInfoController {
|
|
@@ -69,9 +69,19 @@ public class CwjsPolicyInfoController {
|
|
|
IUserCompanyService userCompanyService;
|
|
|
@Autowired
|
|
|
ICwjsPolicyApprovalLogService policyApprovalLogService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ CwjsCompanyApprovalUserMapper companyApprovalUserMapper;
|
|
|
+ @Resource
|
|
|
+ CwjsCompanySubjectMapper companySubjectMapper;
|
|
|
+ @Autowired
|
|
|
+ ICwjsCompanySubjectService companySubjectService;
|
|
|
+ @Resource
|
|
|
+ CwjsPolicyApprovalLogMapper policyApprovalLogMapper;
|
|
|
@Resource
|
|
|
- private SysUserMapper userMapper;
|
|
|
+ CorpWexinUtils corpWexinUtils;
|
|
|
+ @Resource
|
|
|
+ MailLogMapper mailLogMapper;
|
|
|
+
|
|
|
@GetMapping(value = "/queryApprovalRejectReason")
|
|
|
public Result<CwjsPolicyApprovalLog> queryApprovalRejectReason(@RequestParam(name="id",required=true) Integer id){
|
|
|
CwjsPolicyApprovalLog policyApprovalLog = policyApprovalLogService.getOneByPolicyId(id);
|
|
@@ -88,22 +98,24 @@ public class CwjsPolicyInfoController {
|
|
|
@RequestParam(name="type",required=true) Integer type,
|
|
|
@RequestParam(name="approvalContent",required=false) String approvalContent){
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
- String roleCode = roleService.getRoleCodeByUserId(user.getId());
|
|
|
CwjsPolicyInfo cwjsPolicyInfoEntity = cwjsPolicyInfoService.getById(id);
|
|
|
if(cwjsPolicyInfoEntity==null) {
|
|
|
return Result.error("未找到对应实体");
|
|
|
}
|
|
|
- if(type == 1){ //审核提交
|
|
|
- if(roleCode.equals("saleDirector")){//角色是销售总监的话,状态直接是审核中
|
|
|
+ String companyId = companySubjectService.getById(cwjsPolicyInfoEntity.getCompanySubjectId()).getCompanyId();
|
|
|
+ CwjsCompanyApprovalUser cwjsCompanyApprovalUser = companyApprovalUserMapper.queryByCompanyIdAndUserId(companyId, user.getId());
|
|
|
+
|
|
|
+ if(type == 1){ //审核提交 等于新增的时候
|
|
|
+ if(!Check.isNull(cwjsCompanyApprovalUser)){//当前登录的用户所提交的政策是审核链里的人的提交的 直接状态到2给终审的人员
|
|
|
cwjsPolicyInfoEntity.setApprovedStatus(2);
|
|
|
}else{ //除了销售总监提交的申请都是-待审核
|
|
|
cwjsPolicyInfoEntity.setApprovedStatus(1);
|
|
|
}
|
|
|
}
|
|
|
- if(type == 2){ //审核通过
|
|
|
- if(roleCode.equals("saleDirector")){//角色是销售总监的话,状态直接是审核中
|
|
|
+ if(type == 2){ //审核通过 是不是终审,不是就给当前的下一个人发企业微信
|
|
|
+ if(!Check.isNull(cwjsCompanyApprovalUser) && !"final".equalsIgnoreCase(cwjsCompanyApprovalUser.getLevel())){//不是终审的
|
|
|
cwjsPolicyInfoEntity.setApprovedStatus(2);
|
|
|
- }else{ //除了总监,别人点的包括管理员点通过审核按钮,是直接通过了
|
|
|
+ }else{ //是终审的就搞成3
|
|
|
cwjsPolicyInfoEntity.setApprovedStatus(3);
|
|
|
}
|
|
|
CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
@@ -111,7 +123,7 @@ public class CwjsPolicyInfoController {
|
|
|
policyApprovalLog.setApprovalStatus(0);
|
|
|
policyApprovalLogService.save(policyApprovalLog);
|
|
|
}
|
|
|
- if(type == 3){ //审核拒绝
|
|
|
+ if(type == 3){ //审核拒绝 给申请人发企业微信
|
|
|
cwjsPolicyInfoEntity.setApprovedStatus(4);
|
|
|
CwjsPolicyApprovalLog policyApprovalLog = new CwjsPolicyApprovalLog();
|
|
|
policyApprovalLog.setCreateUserId(user.getId());
|
|
@@ -139,52 +151,69 @@ public class CwjsPolicyInfoController {
|
|
|
HttpServletRequest req) {
|
|
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
-// LoginUser user = new LoginUser();
|
|
|
-// user.setId("b161b7d9793942f980dbfe8c931cd1b0"); //a9ab18bf186c463dba715f39f9fa9267
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
}
|
|
|
+// 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);
|
|
|
+ cwjsPolicyInfos.forEach(cwjsPolicy ->{
|
|
|
+ CwjsPolicyApprovalLog log = policyApprovalLogMapper.getOneByPolicyId(cwjsPolicy.getId()); //添加日志记录最新的第一条
|
|
|
+ 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("查看");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
PageInfo<CwjsPolicyInfo> pageInfo = new PageInfo<>(cwjsPolicyInfos);
|
|
|
return Result.successMsg("成功。",pageInfo);
|
|
|
}
|
|
|
|
|
|
|
|
|
- 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;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 分页列表查询
|
|
|
* @param userId
|
|
@@ -193,11 +222,15 @@ public class CwjsPolicyInfoController {
|
|
|
|
|
|
@ApiOperation(value="政策信息表-分页列表查询", notes="政策信息表-分页列表查询")
|
|
|
@GetMapping(value = "/queryAeraByUserId")
|
|
|
- public Result<UserCompany> queryAeraByUserId(@RequestParam(name="userId",required=true) String userId) {
|
|
|
- Result<UserCompany> result = new Result<>();
|
|
|
+ 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);
|
|
|
result.setSuccess(true);
|
|
|
- result.setResult(userCompany);
|
|
|
+ result.setResult(jsonObject);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -211,6 +244,7 @@ public class CwjsPolicyInfoController {
|
|
|
public Result<CwjsPolicyInfo> add(@RequestBody CwjsPolicyInfo cwjsPolicyInfo) {
|
|
|
Result<CwjsPolicyInfo> result = new Result<>();
|
|
|
try {
|
|
|
+ cwjsPolicyInfo.setApprovedStatus(1);
|
|
|
cwjsPolicyInfoService.save(cwjsPolicyInfo);
|
|
|
JSONArray products = cwjsPolicyInfo.getPolicyProductName();
|
|
|
List<CwjsPolicyProduct> policyProductList = new ArrayList<>();
|
|
@@ -223,6 +257,7 @@ public class CwjsPolicyInfoController {
|
|
|
policyProductList.add(policyProduct);
|
|
|
});
|
|
|
cwjsPolicyProductService.saveBatch(policyProductList);
|
|
|
+ //先给first发企业微信
|
|
|
result.success("添加成功!");
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage(),e);
|
|
@@ -237,7 +272,7 @@ public class CwjsPolicyInfoController {
|
|
|
* @return
|
|
|
*/
|
|
|
@ApiOperation(value="政策信息表-编辑", notes="政策信息表-编辑")
|
|
|
- @PutMapping(value = "/edit")
|
|
|
+ @PostMapping(value = "/edit")
|
|
|
public Result<CwjsPolicyInfo> edit(@RequestBody CwjsPolicyInfo cwjsPolicyInfo) {
|
|
|
Result<CwjsPolicyInfo> result = new Result<CwjsPolicyInfo>();
|
|
|
CwjsPolicyInfo cwjsPolicyInfoEntity = cwjsPolicyInfoService.getById(cwjsPolicyInfo.getId());
|