Browse Source

feat: 可靠性预计

NickOooo 2 weeks ago
parent
commit
806ceb8445

+ 10 - 0
nationrel-module-rp-api/src/main/java/com/nationrel/modules/rp/constant/RpConstant.java

@@ -41,5 +41,15 @@ public class RpConstant {
         add(new ColumnsModel("单个失效率", "4"));
     }};
 
+    /** 根节点产品层次默认值 */
     public static final String DEFAULT_COL_VALUE = "1.1";
+
+    /** 打开 */
+    public static final String OPEN = "0";
+    /** 关闭 */
+    public static final String CLOSE = "1";
+    /** 上移 */
+    public static final String MOVE_UP = "2";
+    /** 下移 */
+    public static final String MOVE_DOWN = "3";
 }

+ 0 - 7
nationrel-module-rp-api/src/main/java/com/nationrel/modules/rp/entity/PredictionTable.java

@@ -67,11 +67,4 @@ public class PredictionTable implements Serializable {
 	@Excel(name = "版本(每次修改+1)", width = 15)
     @Schema(description = "版本(每次修改+1)")
     private Integer versionNo;
-    /**
-     * 扩展字段
-     */
-    @Excel(name = "扩展字段", width = 15)
-    @Schema(description = "扩展字段")
-    @TableField(typeHandler = JacksonTypeHandler.class)
-    private JSONObject extFields;
 }

+ 26 - 0
nationrel-module-rp-api/src/main/java/com/nationrel/modules/rp/req/PredictionColumnsOptReq.java

@@ -0,0 +1,26 @@
+package com.nationrel.modules.rp.req;
+
+import lombok.Data;
+
+/**
+ * @Description TODO
+ * @Author nijun
+ * @Date 2024/9/5 17:20
+ * @Version 1.0
+ */
+@Data
+public class PredictionColumnsOptReq {
+
+    private String predictionId;
+
+    private String columnId;
+
+    private Integer sort;
+
+    private Boolean displayFlag;
+
+    /**
+     * 操作类型 0- 显示  1- 隐藏  2- 上移  3- 下移
+     */
+    private String optFlag;
+}

+ 1 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/aop/UpdatePredictionAspect.java

@@ -10,6 +10,7 @@ import org.aspectj.lang.annotation.Aspect;
 import org.jeecg.common.system.vo.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 

+ 10 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/controller/PredictionColumnsController.java

@@ -1,8 +1,10 @@
 package com.nationrel.modules.rp.controller;
 
 import java.util.Arrays;
+import java.util.List;
 
 import com.nationrel.modules.rp.entity.PredictionColumns;
+import com.nationrel.modules.rp.req.PredictionColumnsOptReq;
 import com.nationrel.modules.rp.service.IPredictionColumnsService;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
@@ -162,4 +164,12 @@ public class PredictionColumnsController extends JeecgController<PredictionColum
         return super.importExcel(request, response, PredictionColumns.class);
     }
 
+
+	 @AutoLog(value = "prediction_columns-显示隐藏")
+	 @Operation(summary="prediction_columns-显示隐藏")
+	 @RequestMapping(value = "/optColumns", method = {RequestMethod.PUT,RequestMethod.POST})
+	 public Result<String> optColumns(@RequestBody List<PredictionColumnsOptReq> predictionColumnsOptReqList) {
+		 predictionColumnsService.optColumns(predictionColumnsOptReqList);
+		 return Result.OK(MessageUtils.get("nationrel_edit_success"));
+	 }
 }

+ 116 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/controller/PredictionTableController.java

@@ -0,0 +1,116 @@
+package com.nationrel.modules.rp.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.IPageExtField;
+import org.jeecg.common.api.PageExtField;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import com.nationrel.modules.rp.entity.PredictionTable;
+import com.nationrel.modules.rp.service.IPredictionTableService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.config.i18n.MessageUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: prediction_table
+ * @Author: nationrel
+ * @Date: 2024-09-02
+ * @Version: V1.0
+ */
+@Tag(name="prediction_table")
+@RestController
+@RequestMapping("/rp/predictionTable")
+@Slf4j
+public class PredictionTableController extends JeecgController<PredictionTable, IPredictionTableService> {
+	@Autowired
+	private IPredictionTableService predictionTableService;
+
+	/**
+	 *   添加
+	 *
+	 * @param predictionTable
+	 * @return
+	 */
+	@AutoLog(value = "prediction_table-添加/更新")
+	@Operation(summary="prediction_table-添加/更新")
+	@PostMapping(value = "/saveOrUpdate")
+	public Result<String> add(@RequestBody PredictionTable predictionTable) {
+		predictionTableService.saveOrUpdateTable(predictionTable);
+		return Result.OK(MessageUtils.get("nationrel_add_success"));
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "prediction_table-通过id删除")
+	@Operation(summary="prediction_table-通过id删除")
+	@RequiresPermissions("rp:prediction_table:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		predictionTableService.removeById(id);
+		return Result.OK(MessageUtils.get("nationrel_delete_success"));
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "prediction_table-批量删除")
+	@Operation(summary="prediction_table-批量删除")
+	@RequiresPermissions("rp:prediction_table:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.predictionTableService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK(MessageUtils.get("nationrel_delete_batch_success"));
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "prediction_table-通过id查询")
+	@Operation(summary="prediction_table-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<PredictionTable> queryById(@RequestParam(name="id",required=true) String id) {
+		PredictionTable predictionTable = predictionTableService.getById(id);
+		if(predictionTable==null) {
+			return Result.error(MessageUtils.get("nationrel_no_found_data"));
+		}
+		return Result.OK(predictionTable);
+	}
+
+}

+ 5 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/service/IPredictionColumnsService.java

@@ -2,6 +2,10 @@ package com.nationrel.modules.rp.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.nationrel.modules.rp.entity.PredictionColumns;
+import com.nationrel.modules.rp.entity.PredictionInfo;
+import com.nationrel.modules.rp.req.PredictionColumnsOptReq;
+
+import java.util.List;
 
 /**
  * @Description: prediction_columns
@@ -11,4 +15,5 @@ import com.nationrel.modules.rp.entity.PredictionColumns;
  */
 public interface IPredictionColumnsService extends IService<PredictionColumns> {
 
+    PredictionInfo optColumns(List<PredictionColumnsOptReq> predictionColumnsOptReqList);
 }

+ 1 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/service/IPredictionTableService.java

@@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IPredictionTableService extends IService<PredictionTable> {
 
+    void saveOrUpdateTable(PredictionTable predictionTable);
 }

+ 43 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/service/impl/PredictionColumnsServiceImpl.java

@@ -1,11 +1,25 @@
 package com.nationrel.modules.rp.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.nationrel.modules.rp.aop.UpdatePrediction;
 import com.nationrel.modules.rp.entity.PredictionColumns;
+import com.nationrel.modules.rp.entity.PredictionInfo;
 import com.nationrel.modules.rp.mapper.PredictionColumnsMapper;
+import com.nationrel.modules.rp.mapper.PredictionInfoMapper;
+import com.nationrel.modules.rp.req.PredictionColumnsOptReq;
 import com.nationrel.modules.rp.service.IPredictionColumnsService;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: prediction_columns
@@ -16,4 +30,33 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class PredictionColumnsServiceImpl extends ServiceImpl<PredictionColumnsMapper, PredictionColumns> implements IPredictionColumnsService {
 
+    @Autowired
+    private PredictionColumnsMapper predictionColumnsMapper;
+    @Autowired
+    private PredictionInfoMapper predictionInfoMapper;
+
+    @Override
+    @UpdatePrediction
+    @Transactional(rollbackFor = Exception.class)
+    public PredictionInfo optColumns(List<PredictionColumnsOptReq> predictionColumnsOptReqList) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        PredictionInfo predictionInfo = predictionInfoMapper.selectById(predictionColumnsOptReqList.get(0).getPredictionId());
+        List<PredictionColumns> predictionColumns = predictionColumnsMapper.selectList(new LambdaQueryWrapper<PredictionColumns>()
+                .eq(PredictionColumns::getPredictionId, predictionColumnsOptReqList.get(0).getPredictionId()));
+        predictionColumns.forEach(column -> {
+            List<PredictionColumnsOptReq> list = predictionColumnsOptReqList.stream().filter(req -> req.getPredictionId().equals(column.getPredictionId()) &&
+                    req.getColumnId().equals(column.getId())).toList();
+            if (!CollectionUtils.isEmpty(list)) {
+                PredictionColumnsOptReq columnsOptReq = list.get(0);
+                column.setColSort(columnsOptReq.getSort());
+                column.setDisplayFlag(columnsOptReq.getDisplayFlag()?"0":"1");
+                column.setUpdateBy(sysUser.getUsername());
+                column.setUpdateTime(new Date());
+            }
+        });
+        this.updateBatchById(predictionColumns);
+        return predictionInfo;
+    }
+
+
 }

+ 31 - 0
nationrel-module-rp-biz/src/main/java/com/nationrel/modules/rp/service/impl/PredictionTableServiceImpl.java

@@ -1,11 +1,19 @@
 package com.nationrel.modules.rp.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.nationrel.modules.rp.entity.PredictionTable;
 import com.nationrel.modules.rp.mapper.PredictionTableMapper;
 import com.nationrel.modules.rp.service.IPredictionTableService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
 
 /**
  * @Description: prediction_table
@@ -16,4 +24,27 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class PredictionTableServiceImpl extends ServiceImpl<PredictionTableMapper, PredictionTable> implements IPredictionTableService {
 
+    @Autowired
+    private PredictionTableMapper predictionTableMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveOrUpdateTable(PredictionTable predictionTable) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        PredictionTable table = predictionTableMapper.selectOne(new LambdaQueryWrapper<PredictionTable>()
+                .eq(PredictionTable::getPredictionId, predictionTable.getPredictionId())
+                .eq(PredictionTable::getStruId, predictionTable.getStruId())
+                .eq(PredictionTable::getColumnsId, predictionTable.getColumnsId()));
+        if (ObjectUtils.isNotEmpty(table)) {
+            table.setValue(predictionTable.getValue());
+            table.setUpdateBy(sysUser.getUsername());
+            table.setUpdateTime(new Date());
+            table.setVersionNo(table.getVersionNo()+1);
+            predictionTableMapper.updateById(table);
+        } else {
+            predictionTable.setCreateBy(sysUser.getUsername());
+            predictionTable.setCreateTime(new Date());
+            predictionTableMapper.insert(predictionTable);
+        }
+    }
 }