|
@@ -1,6 +1,7 @@
|
|
package org.springblade.manager.controller;
|
|
package org.springblade.manager.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -12,14 +13,13 @@ import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiParam;
|
|
import io.swagger.annotations.ApiParam;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.springblade.common.utils.BaseUtils;
|
|
import org.springblade.common.utils.BaseUtils;
|
|
|
|
+import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.core.mp.base.BaseService;
|
|
import org.springblade.core.mp.base.BaseService;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Query;
|
|
import org.springblade.core.mp.support.Query;
|
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
-import org.springblade.core.tool.utils.BeanUtil;
|
|
|
|
-import org.springblade.core.tool.utils.CollectionUtil;
|
|
|
|
-import org.springblade.core.tool.utils.Func;
|
|
|
|
-import org.springblade.core.tool.utils.StringPool;
|
|
|
|
|
|
+import org.springblade.core.tool.utils.*;
|
|
import org.springblade.manager.dto.FileNameRuleDto;
|
|
import org.springblade.manager.dto.FileNameRuleDto;
|
|
import org.springblade.manager.dto.FormulaBean;
|
|
import org.springblade.manager.dto.FormulaBean;
|
|
import org.springblade.manager.dto.WbsParamBean;
|
|
import org.springblade.manager.dto.WbsParamBean;
|
|
@@ -603,7 +603,99 @@ public class WbsParamController {
|
|
return R.success("操作成功");
|
|
return R.success("操作成功");
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ private static final String G10PCFW = "G10pcfw";
|
|
|
|
+ private static final String G8PCFW = "g8pcfw";
|
|
|
|
+ /**
|
|
|
|
+ * 获取偏差范围(高程偏差和平面偏差)
|
|
|
|
+ * @param
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("/getDeviationRange")
|
|
|
|
+ public R<List<WbsParam>> getDeviationRange(@RequestParam Long pKeyId){
|
|
|
|
+ List<WbsParam> wps = this.service.list(Wrappers.<WbsParam>lambdaUpdate().eq(WbsParam::getNodeId,pKeyId).in(WbsParam::getK,G10PCFW, G8PCFW));
|
|
|
|
+ if (wps == null || wps.isEmpty()) {
|
|
|
|
+ // 获取父节点
|
|
|
|
+ wps = this.service.list(Wrappers.<WbsParam>lambdaQuery().in(WbsParam::getK, G10PCFW, G8PCFW).apply(" node_id = (select p_id from m_wbs_tree_contract where p_key_id = " + pKeyId + " )"));
|
|
|
|
+ if (wps == null || wps.isEmpty()) {
|
|
|
|
+ wps = this.service.list(Wrappers.<WbsParam>lambdaQuery().in(WbsParam::getK, G10PCFW, G8PCFW)
|
|
|
|
+ .apply(" node_id = (SELECT is_type_private_pid from m_wbs_tree_contract WHERE p_key_id = (select p_id from m_wbs_tree_contract where p_key_id = "+ pKeyId +" ))"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (wps != null && !wps.isEmpty()) {
|
|
|
|
+ Map<Integer, List<WbsParam>> map = wps.stream().collect(Collectors.groupingBy(WbsParam::getType));
|
|
|
|
+ List<Integer> keys = new ArrayList<>(map.keySet());
|
|
|
|
+ keys.sort(Integer::compareTo);
|
|
|
|
+ for (int i = keys.size() - 1; i >= 0; i--) {
|
|
|
|
+ wps = map.get(keys.get(i));
|
|
|
|
+ if (wps != null && !wps.isEmpty()) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return R.data(wps);
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 设置偏差范围(高程偏差和平面偏差)
|
|
|
|
+ * @param
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @PostMapping("/setDeviationRange")
|
|
|
|
+ public R<Boolean> setDeviationRange(@RequestBody JSONObject obj){
|
|
|
|
+ Long nodeId = obj.getLong("pKeyId");
|
|
|
|
+ if (nodeId == null || nodeId <= 0) {
|
|
|
|
+ return R.fail("参数错误");
|
|
|
|
+ }
|
|
|
|
+ String g10 = checkDeviationRange(obj.getString("g10pcfw"));
|
|
|
|
+ String g8 = checkDeviationRange(obj.getString(G8PCFW));
|
|
|
|
+ if (StringUtil.isBlank(g10) && StringUtil.isBlank(g8)) {
|
|
|
|
+ return R.fail("请输入符合格式要求的偏差范围");
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ saveOrUpdateDeviationRange(nodeId, G10PCFW, g10, "G10偏差范围");
|
|
|
|
+ saveOrUpdateDeviationRange(nodeId, G8PCFW, g8, "G8高程偏差");
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ return R.fail("操作失败");
|
|
|
|
+ }
|
|
|
|
+ return R.data(true);
|
|
|
|
+ }
|
|
|
|
+ private void saveOrUpdateDeviationRange(Long nodeId, String k,String v, String name) {
|
|
|
|
+ if (v == null) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ WbsParam g10Param = this.service.getOne(Wrappers.<WbsParam>lambdaUpdate().eq(WbsParam::getNodeId, nodeId).eq(WbsParam::getK,k).last(" limit 1"));
|
|
|
|
+ if (g10Param == null) {
|
|
|
|
+ g10Param = new WbsParam();
|
|
|
|
+ g10Param.setId(SnowFlakeUtil.getId());
|
|
|
|
+ g10Param.setName(name);
|
|
|
|
+ g10Param.setK(k);
|
|
|
|
+ g10Param.setNodeId(nodeId);
|
|
|
|
+ g10Param.setType(220);
|
|
|
|
+ g10Param.setCreateUser(AuthUtil.getUserId());
|
|
|
|
+ g10Param.setCreateTime(new Date());
|
|
|
|
+ g10Param.setV(v);
|
|
|
|
+ this.service.save(g10Param);
|
|
|
|
+ } else {
|
|
|
|
+ this.service.update(Wrappers.<WbsParam>lambdaUpdate().eq(WbsParam::getId,g10Param.getId()).set(WbsParam::getV, v).set(WbsParam::getUpdateUser,AuthUtil.getUserId()).set(WbsParam::getUpdateTime,new Date()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ private static String checkDeviationRange(String deviationRange) {
|
|
|
|
+ if (deviationRange == null || deviationRange.trim().isEmpty()) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ if (deviationRange.contains("±") && StringUtils.isNumber(deviationRange.replace("±", ""))) {
|
|
|
|
+ return deviationRange;
|
|
|
|
+ }
|
|
|
|
+ if (deviationRange.contains(",")) {
|
|
|
|
+ String[] split = deviationRange.split("[,,]");
|
|
|
|
+ if (split.length <= 1) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNumber(split[0]) && StringUtils.isNumber(split[1])) {
|
|
|
|
+ return split[0] + "," + split[1];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|