|
@@ -1,24 +1,25 @@
|
|
|
package org.jeecg.modules.projectCostHuiji.controller;
|
|
|
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.shiro.SecurityUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.common.aspect.annotation.AutoLog;
|
|
|
import org.jeecg.common.system.base.controller.JeecgController;
|
|
|
import org.jeecg.common.system.query.QueryGenerator;
|
|
|
+import org.jeecg.common.system.vo.LoginUser;
|
|
|
import org.jeecg.common.util.Md5Util;
|
|
|
import org.jeecg.common.util.RedisUtil;
|
|
|
+import org.jeecg.modules.Index.util.AuthMark;
|
|
|
import org.jeecg.modules.Index.util.CacheKey;
|
|
|
+import org.jeecg.modules.Index.util.CommonMethod;
|
|
|
import org.jeecg.modules.mesInfoInstallationcost.service.IMesInfoInstallationcostService;
|
|
|
import org.jeecg.modules.projectCost.entity.ProjectCost;
|
|
|
import org.jeecg.modules.projectCost.entity.ProjectCostSumVo;
|
|
@@ -34,6 +35,7 @@ import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiListVO;
|
|
|
import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiSumVO;
|
|
|
import org.jeecg.modules.projectCostYs.entity.KzksProjectCostYs;
|
|
|
import org.jeecg.modules.projectCostYs.service.IKzksProjectCostYsService;
|
|
|
+import org.jeecg.modules.system.mapper.SysDepartMapper;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -43,7 +45,6 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.nio.charset.CharsetEncoder;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -78,6 +79,11 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
@Autowired
|
|
|
private ProjectCostHuijiConverCustomImpl projectCostHuijiConverCustom;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CommonMethod commonMethod;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysDepartMapper sysDepartMapper;
|
|
|
|
|
|
@ApiOperation(value = "111111111111")
|
|
|
@GetMapping(value = "/children1")
|
|
@@ -101,7 +107,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
// List<ProjectCostHuiji> list = projectCostHuijiService.compareListByIds(Arrays.asList(ids.split(",")));
|
|
|
// return list;
|
|
|
// }
|
|
|
- public ProjectCostHuijiCompare compareList(String ids){
|
|
|
+ public ProjectCostHuijiCompare compareList(String ids) {
|
|
|
return projectCostHuijiService.compareListByIds(Arrays.asList(ids.split(",")));
|
|
|
|
|
|
}
|
|
@@ -122,29 +128,49 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
|
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
|
|
HttpServletRequest req) {
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ String role = commonMethod.getRole(sysUser.getUsername());
|
|
|
+ // if (AuthMark.BOSS.equals(role)) role = AuthMark.DEPT_LEADER;
|
|
|
+ ProjectCostHuijiSumVO sumVO = new ProjectCostHuijiSumVO();
|
|
|
+
|
|
|
+ if (AuthMark.STAFF.equals(role)) {
|
|
|
+ projectCostHuiji.setYwfzrname(sysUser.getRealname());
|
|
|
+ projectCostHuiji.setZrbm(sysUser.getRealname());
|
|
|
+ }
|
|
|
+
|
|
|
+ ProjectCostHuiji huiji1 = new ProjectCostHuiji();
|
|
|
+
|
|
|
+ QueryWrapper<ProjectCostHuiji> queryWrapper = QueryGenerator.initQueryWrapper(huiji1, req.getParameterMap());
|
|
|
+ if (AuthMark.DEPT_LEADER.equals(role)) {
|
|
|
+ String[] deptIds = sysUser.getDepartIds().split(",");
|
|
|
+ List<String> departNames = sysDepartMapper.getDepNameByIds(deptIds);
|
|
|
+ queryWrapper.lambda().and(i -> {
|
|
|
+ for (String departName : departNames) {
|
|
|
+ i.or().like(StringUtils.isNotBlank(departName), ProjectCostHuiji::getJycs, departName)
|
|
|
+ .or().like(StringUtils.isNotBlank(departName), ProjectCostHuiji::getZrbm, departName);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ projectCostHuiji.setDeptNames(departNames);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (AuthMark.BOSS.equals(role)) {
|
|
|
+ queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getJycs()), ProjectCostHuiji::getJycs, projectCostHuiji.getJycs())
|
|
|
+ .or().like(StringUtils.isNotBlank(projectCostHuiji.getZrbm()), ProjectCostHuiji::getZrbm, projectCostHuiji.getZrbm());
|
|
|
+ }
|
|
|
+
|
|
|
+ queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getTaskno()), ProjectCostHuiji::getTaskno, projectCostHuiji.getTaskno());
|
|
|
+ queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getTaskname()), ProjectCostHuiji::getTaskname, projectCostHuiji.getTaskname());
|
|
|
|
|
|
|
|
|
String superQueryParams = Arrays.toString(req.getParameterMap().get("superQueryParams"));
|
|
|
String superQueryParamsMd5 = Md5Util.md5Encode(superQueryParams, "utf-8");
|
|
|
String ObjectMd5 = Md5Util.md5Encode(projectCostHuiji.toString(), "utf-8");
|
|
|
-
|
|
|
ProjectCostHuijiSumVO cacheResultOne = (ProjectCostHuijiSumVO) redisUtil.get(CacheKey.PROJECT_COST_HUIJI + ":" + ObjectMd5 + ":" + superQueryParamsMd5 + ":" + pageNo + "&" + pageSize);
|
|
|
ProjectCostSumVo cacheResultTwo = (ProjectCostSumVo) redisUtil.get(CacheKey.PROJECT_COST + ":" + ObjectMd5 + ":" + superQueryParamsMd5 + ":" + pageNo + "&" + pageSize);
|
|
|
if (cacheResultOne != null) return Result.ok(cacheResultOne);
|
|
|
if (cacheResultTwo != null) return Result.ok(cacheResultTwo);
|
|
|
|
|
|
|
|
|
- ProjectCostHuijiSumVO sumVO = new ProjectCostHuijiSumVO();
|
|
|
-
|
|
|
- ProjectCostHuiji huiji1 = new ProjectCostHuiji();
|
|
|
-
|
|
|
- QueryWrapper<ProjectCostHuiji> queryWrapper = QueryGenerator.initQueryWrapper(huiji1, req.getParameterMap());
|
|
|
- queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getTaskno()), ProjectCostHuiji::getTaskno, projectCostHuiji.getTaskno());
|
|
|
- queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getTaskname()), ProjectCostHuiji::getTaskname, projectCostHuiji.getTaskname());
|
|
|
- queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getJycs()), ProjectCostHuiji::getJycs, projectCostHuiji.getJycs());
|
|
|
- queryWrapper.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getZrbm()), ProjectCostHuiji::getZrbm, projectCostHuiji.getZrbm());
|
|
|
-
|
|
|
-
|
|
|
//高级查询参数不等于"null"并且有查询条件("[%5B%5D]" 高级查询无查询条件) 则返回true,获取满足查询条件的任务号
|
|
|
//普通查询有查询条件则returnFlag()返回true,判断条件是ProjectCostHuiji对象有任意属性不为null
|
|
|
boolean flag = !superQueryParams.equals("null") && !"[%5B%5D]".equals(superQueryParams) || returnFlag(projectCostHuiji);
|
|
@@ -255,12 +281,28 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
} else {
|
|
|
ProjectCost projectCost = new ProjectCost();
|
|
|
BeanUtils.copyProperties(projectCostHuiji, projectCost);
|
|
|
+
|
|
|
ProjectCost projectCost1 = new ProjectCost();
|
|
|
+
|
|
|
QueryWrapper<ProjectCost> query = QueryGenerator.initQueryWrapper(projectCost1, req.getParameterMap());
|
|
|
- query.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getTaskno()), ProjectCost::getTaskno, projectCostHuiji.getTaskno());
|
|
|
- query.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getTaskname()), ProjectCost::getTaskname, projectCostHuiji.getTaskname());
|
|
|
- query.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getJycs()), ProjectCost::getJycs, projectCostHuiji.getJycs());
|
|
|
- query.lambda().like(StringUtils.isNotBlank(projectCostHuiji.getZrbm()), ProjectCost::getZrbm, projectCostHuiji.getZrbm());
|
|
|
+ query.lambda().like(StringUtils.isNotBlank(projectCost.getTaskno()), ProjectCost::getTaskno, projectCost.getTaskno());
|
|
|
+ query.lambda().like(StringUtils.isNotBlank(projectCost.getTaskname()), ProjectCost::getTaskname, projectCost.getTaskname());
|
|
|
+
|
|
|
+ if (AuthMark.DEPT_LEADER.equals(role)) {
|
|
|
+ String[] deptIds = sysUser.getDepartIds().split(",");
|
|
|
+ List<String> departNames = sysDepartMapper.getDepNameByIds(deptIds);
|
|
|
+ query.lambda().and(i -> {
|
|
|
+ for (String departName : departNames) {
|
|
|
+ i.or().like(StringUtils.isNotBlank(departName), ProjectCost::getClys, departName)
|
|
|
+ .or().like(StringUtils.isNotBlank(departName), ProjectCost::getZrbm, departName);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ projectCost.setDeptNames(departNames);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (AuthMark.BOSS.equals(role)) {
|
|
|
+ query.lambda().like(StringUtils.isNotBlank(projectCost.getJycs()), ProjectCost::getJycs, projectCost.getJycs())
|
|
|
+ .or().like(StringUtils.isNotBlank(projectCost.getZrbm()), ProjectCost::getZrbm, projectCost.getZrbm()); }
|
|
|
|
|
|
//根据条件分页查询任务
|
|
|
CompletableFuture<Page<ProjectCost>> pageCompletableFuture = CompletableFuture.supplyAsync(() -> {
|
|
@@ -387,7 +429,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
return x;
|
|
|
}
|
|
|
|
|
|
- private ProjectCostHuiji initProjectCostHuiji(){
|
|
|
+ private ProjectCostHuiji initProjectCostHuiji() {
|
|
|
ProjectCostHuiji huiji = new ProjectCostHuiji();
|
|
|
huiji.setContractfpe(BigDecimal.ZERO);
|
|
|
huiji.setEstimationcoat(BigDecimal.ZERO);
|
|
@@ -408,7 +450,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
return huiji;
|
|
|
}
|
|
|
|
|
|
- private boolean returnFlag(ProjectCostHuiji projectCostHuiji){
|
|
|
+ private boolean returnFlag(ProjectCostHuiji projectCostHuiji) {
|
|
|
JSONObject json = (JSONObject) JSONObject.toJSON(projectCostHuiji);
|
|
|
for (Map.Entry<String, Object> entry : json.entrySet()) {
|
|
|
if (entry.getValue() != null) return true;
|
|
@@ -519,19 +561,19 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * author: dzc
|
|
|
- * version: 1.0
|
|
|
- * des: 将选中的任务号加入到成本模型中 (将汇集表中的status改为4)
|
|
|
- * date: 2023/10/24
|
|
|
- */
|
|
|
+ * author: dzc
|
|
|
+ * version: 1.0
|
|
|
+ * des: 将选中的任务号加入到成本模型中 (将汇集表中的status改为4)
|
|
|
+ * date: 2023/10/24
|
|
|
+ */
|
|
|
@AutoLog(value = "项目成本汇集表-添加到成本模型中")
|
|
|
@ApiOperation(value = "项目成本汇集表-添加到成本模型中", notes = "项目成本汇集表-添加到成本模型中")
|
|
|
@PostMapping(value = "/insertIntoCostModel")
|
|
|
- public Result<String> insertIntoCostModel(@RequestBody List<ProjectCostHuiji> projectCostHuijis){
|
|
|
+ public Result<String> insertIntoCostModel(@RequestBody List<ProjectCostHuiji> projectCostHuijis) {
|
|
|
redisUtil.removeAll(CacheKey.PROJECT_COST_HUIJI);
|
|
|
redisUtil.removeAll(CacheKey.PROJECT_COST);
|
|
|
Boolean b = projectCostHuijiService.insertIntoCostModel(projectCostHuijis);
|
|
|
- if ( b ){
|
|
|
+ if (b) {
|
|
|
return Result.OK("加入成功!");
|
|
|
}
|
|
|
return Result.OK("加入失败!");
|