Selaa lähdekoodia

日报表添加数据表,保存每天第一批时间的日报表

sl 7 kuukautta sitten
vanhempi
commit
2204f8474e

+ 5 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/history/convert/InterlockSummaryHistoryConvert.java

@@ -5,6 +5,7 @@ import org.jeecg.modules.history.dto.InterlockHistoryQueryDTO;
 import org.jeecg.modules.history.entity.InterlockDetailHistory;
 import org.jeecg.modules.history.entity.InterlockSummaryHistory;
 import org.jeecg.modules.history.vo.InterlockSummaryHistoryVO;
+import org.jeecg.modules.interlockSummaryDay.entity.InterlockSummaryDay;
 import org.jeecg.modules.summary.entity.InterlockSummary;
 import org.jeecg.modules.summary.vo.InterlockSummaryDayVO;
 import org.jeecg.modules.temp.entity.InterlockSummaryTemp;
@@ -45,4 +46,8 @@ public interface InterlockSummaryHistoryConvert {
 
     List<InterlockSummaryHistoryVO> toHistoryDayList(List<InterlockSummaryDayVO> interlockSummaryDayVOList);
 
+    @Mapping(target = "id", ignore = true)
+    @Mapping(target = "interlockName", source = "interlockname")
+    InterlockSummaryDay toSummaryDay(InterlockSummaryHistoryVO interlockSummaryHistoryVO);
+
 }

+ 13 - 2
jeecg-module-interlock/src/main/java/org/jeecg/modules/history/service/impl/InterlockDetailHistoryServiceImpl.java

@@ -21,6 +21,8 @@ import org.jeecg.modules.history.vo.InterlockDetailHistoryQueryVO;
 import org.jeecg.modules.history.vo.InterlockHistoryDistinctZZXTVO;
 import org.jeecg.modules.history.vo.InterlockSummaryHistoryLimitVO;
 import org.jeecg.modules.history.vo.InterlockSummaryHistoryVO;
+import org.jeecg.modules.interlockSummaryDay.entity.InterlockSummaryDay;
+import org.jeecg.modules.interlockSummaryDay.service.IInterlockSummaryDayService;
 import org.jeecg.modules.interlockUser.entity.InterlockUser;
 import org.jeecg.modules.summary.entity.InterlockSummary;
 import org.jeecg.modules.summary.service.IInterlockSummaryService;
@@ -61,6 +63,10 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
     @SuppressWarnings("all")
     private IInterlockSummaryService summaryService;
 
+    @Autowired
+    @SuppressWarnings("all")
+    private IInterlockSummaryDayService summaryDayService;
+
 
     /**
      * 联锁历史数据详细信息-分页查询
@@ -514,6 +520,8 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
     public Workbook  exportXlsToFile1(InterlockHistoryQueryDTO dto, List<InterlockHistoryDistinctZZXTVO> zzxtvoList, Class<InterlockSummaryHistoryVO> clazz,String type) throws IOException {
         SXSSFWorkbook workbook = new SXSSFWorkbook();
         Map<String,CellStyle> cellStyleMap = getCellStyle(workbook);
+        //判断日报表当天是否存过数据
+        Boolean isSaveDay = summaryDayService.getIsExistDataCurr();
         if (zzxtvoList != null) {
             for (InterlockHistoryDistinctZZXTVO zzxtvo : zzxtvoList) {
                 if(dto.getBeginTime()==null && "1".equals(type)){
@@ -525,7 +533,7 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
                     if(maxTagTime!=null) dto.setEndTime(maxTagTime);
                 }
                 String sheetName =generateSheetName(zzxtvo) ;
-                processSheet2(workbook, cellStyleMap, sheetName, dto, zzxtvo,type);
+                processSheet2(workbook, cellStyleMap, sheetName, dto, zzxtvo,type, isSaveDay);
             }
         }
         return workbook;
@@ -735,7 +743,7 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
     }
 
     //该段日报表取的当前时刻数据是从联锁总表中获取的
-    private SXSSFWorkbook processSheet2(SXSSFWorkbook workbook, Map<String,CellStyle> cellStyleMap, String sheetName, InterlockHistoryQueryDTO dto, InterlockHistoryDistinctZZXTVO zzxtvo,String type) throws IOException {
+    private SXSSFWorkbook processSheet2(SXSSFWorkbook workbook, Map<String,CellStyle> cellStyleMap, String sheetName, InterlockHistoryQueryDTO dto, InterlockHistoryDistinctZZXTVO zzxtvo,String type, Boolean isSaveDay) throws IOException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String formattedBeginTime = dto.getBeginTime() != null ? sdf.format(dto.getBeginTime()) : "";
         String formattedEndTime = dto.getEndTime() != null ? sdf.format(dto.getEndTime()) : "";
@@ -751,6 +759,7 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
             exportList = InterlockSummaryHistoryConvert.INSTANCE.toHistoryDayList(interlockSummaryDayVOList);
             //计算投用率 数据是按点位时间和联锁名称排序的,当名称不一样时,代表是下一个联锁,查看一下投用
             String interlockname = "";
+            List<InterlockSummaryDay> interlockSummaryDays = new ArrayList<>();//存放日报表总表数据
             for(InterlockSummaryHistoryVO interlockSummaryHistoryVO:exportList){
                 if(!interlockname.equals(interlockSummaryHistoryVO.getInterlockname())){
                     interlockname = interlockSummaryHistoryVO.getInterlockname();
@@ -759,8 +768,10 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
                     }else{
                         wty++;
                     }
+                    interlockSummaryDays.add(InterlockSummaryHistoryConvert.INSTANCE.toSummaryDay(interlockSummaryHistoryVO));
                 }
             }
+            if(interlockSummaryDays.size()!=0 && !isSaveDay) summaryDayService.saveBatch(interlockSummaryDays);
 //            //获取所有联锁数据用于写入日报表
 //            exportList = this.getForExport00(dto);
         }else {//手动导出、月报表、年报表相关

+ 177 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSummaryDay/controller/InterlockSummaryDayController.java

@@ -0,0 +1,177 @@
+package org.jeecg.modules.interlockSummaryDay.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 javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.interlockSummaryDay.entity.InterlockSummaryDay;
+import org.jeecg.modules.interlockSummaryDay.service.IInterlockSummaryDayService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.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.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: interlock_summary_day
+ * @Author: jeecg-boot
+ * @Date:   2024-09-29
+ * @Version: V1.0
+ */
+@Api(tags="interlock_summary_day")
+@RestController
+@RequestMapping("/interlockSummaryDay/interlockSummaryDay")
+@Slf4j
+public class InterlockSummaryDayController extends JeecgController<InterlockSummaryDay, IInterlockSummaryDayService> {
+	@Autowired
+	private IInterlockSummaryDayService interlockSummaryDayService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param interlockSummaryDay
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "interlock_summary_day-分页列表查询")
+	@ApiOperation(value="interlock_summary_day-分页列表查询", notes="interlock_summary_day-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<InterlockSummaryDay>> queryPageList(InterlockSummaryDay interlockSummaryDay,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<InterlockSummaryDay> queryWrapper = QueryGenerator.initQueryWrapper(interlockSummaryDay, req.getParameterMap());
+		Page<InterlockSummaryDay> page = new Page<InterlockSummaryDay>(pageNo, pageSize);
+		IPage<InterlockSummaryDay> pageList = interlockSummaryDayService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param interlockSummaryDay
+	 * @return
+	 */
+	@AutoLog(value = "interlock_summary_day-添加")
+	@ApiOperation(value="interlock_summary_day-添加", notes="interlock_summary_day-添加")
+	//@RequiresPermissions("org.jeecg.modules:interlock_summary_day:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody InterlockSummaryDay interlockSummaryDay) {
+		interlockSummaryDayService.save(interlockSummaryDay);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param interlockSummaryDay
+	 * @return
+	 */
+	@AutoLog(value = "interlock_summary_day-编辑")
+	@ApiOperation(value="interlock_summary_day-编辑", notes="interlock_summary_day-编辑")
+	//@RequiresPermissions("org.jeecg.modules:interlock_summary_day:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody InterlockSummaryDay interlockSummaryDay) {
+		interlockSummaryDayService.updateById(interlockSummaryDay);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "interlock_summary_day-通过id删除")
+	@ApiOperation(value="interlock_summary_day-通过id删除", notes="interlock_summary_day-通过id删除")
+	//@RequiresPermissions("org.jeecg.modules:interlock_summary_day:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		interlockSummaryDayService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "interlock_summary_day-批量删除")
+	@ApiOperation(value="interlock_summary_day-批量删除", notes="interlock_summary_day-批量删除")
+	//@RequiresPermissions("org.jeecg.modules:interlock_summary_day:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.interlockSummaryDayService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "interlock_summary_day-通过id查询")
+	@ApiOperation(value="interlock_summary_day-通过id查询", notes="interlock_summary_day-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<InterlockSummaryDay> queryById(@RequestParam(name="id",required=true) String id) {
+		InterlockSummaryDay interlockSummaryDay = interlockSummaryDayService.getById(id);
+		if(interlockSummaryDay==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(interlockSummaryDay);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param interlockSummaryDay
+    */
+    //@RequiresPermissions("org.jeecg.modules:interlock_summary_day:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, InterlockSummaryDay interlockSummaryDay) {
+        return super.exportXls(request, interlockSummaryDay, InterlockSummaryDay.class, "interlock_summary_day");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("interlock_summary_day:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, InterlockSummaryDay.class);
+    }
+
+}

+ 130 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSummaryDay/entity/InterlockSummaryDay.java

@@ -0,0 +1,130 @@
+package org.jeecg.modules.interlockSummaryDay.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: interlock_summary_day
+ * @Author: jeecg-boot
+ * @Date:   2024-09-29
+ * @Version: V1.0
+ */
+@Data
+@TableName("interlock_summary_day")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="interlock_summary_day对象", description="interlock_summary_day")
+public class InterlockSummaryDay implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private java.lang.String id;
+	/**联锁名称*/
+	@Excel(name = "联锁名称", width = 15)
+    @ApiModelProperty(value = "联锁名称")
+    private java.lang.String interlockName;
+	/**系统id*/
+	@Excel(name = "系统id", width = 15)
+    @ApiModelProperty(value = "系统id")
+    private java.lang.String interlockSystemId;
+	/**装置id*/
+	@Excel(name = "装置id", width = 15)
+    @ApiModelProperty(value = "装置id")
+    private java.lang.String interlockApparatusId;
+	/**联锁状态(0未投用1投用)*/
+	@Excel(name = "联锁状态(0未投用1投用)", width = 15)
+    @ApiModelProperty(value = "联锁状态(0未投用1投用)")
+    private java.lang.String interlockStatus;
+	/**回路健康级别*/
+	@Excel(name = "回路健康级别", width = 15)
+    @ApiModelProperty(value = "回路健康级别")
+    private java.lang.String loopHealthLevel;
+	/**逻辑关系*/
+	@Excel(name = "逻辑关系", width = 15)
+    @ApiModelProperty(value = "逻辑关系")
+    private java.lang.String ljgx;
+	/**联锁输出值*/
+	@Excel(name = "联锁输出值", width = 15)
+    @ApiModelProperty(value = "联锁输出值")
+    private java.lang.String interlockOutValue;
+	/**联锁输出值-设备名称*/
+	@Excel(name = "联锁输出值-设备名称", width = 15)
+    @ApiModelProperty(value = "联锁输出值-设备名称")
+    private java.lang.String deviceId;
+	/**联锁输出值-装置名称*/
+	@Excel(name = "联锁输出值-装置名称", width = 15)
+    @ApiModelProperty(value = "联锁输出值-装置名称")
+    private java.lang.String moduleName;
+	/**联锁输出值点位*/
+	@Excel(name = "联锁输出值点位", width = 15)
+    @ApiModelProperty(value = "联锁输出值点位")
+    private java.lang.String interlockOutValueTag;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建日期")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新日期")
+    private java.util.Date updateTime;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private java.lang.String remark;
+	/**所属部门*/
+    @ApiModelProperty(value = "所属部门")
+    private java.lang.String sysOrgCode;
+	/**点位当前时间*/
+	@Excel(name = "点位当前时间", width = 15)
+    @ApiModelProperty(value = "点位当前时间")
+    private java.lang.String tagTime;
+	/**该联锁在原联锁总表的id*/
+	@Excel(name = "该联锁在原联锁总表的id", width = 15)
+    @ApiModelProperty(value = "该联锁在原联锁总表的id")
+    private java.lang.String summaryOriginId;
+	/**联锁状态-统一定义(0未投用1投用)*/
+	@Excel(name = "联锁状态-统一定义(0未投用1投用)", width = 15)
+    @ApiModelProperty(value = "联锁状态-统一定义(0未投用1投用)")
+    private java.lang.String interlockStatusPs;
+	/**联锁状态名称*/
+	@Excel(name = "联锁状态名称", width = 15)
+    @ApiModelProperty(value = "联锁状态名称")
+    private java.lang.String interlockStatusName;
+	/**联锁状态-正常状态对应的值*/
+	@Excel(name = "联锁状态-正常状态对应的值", width = 15)
+    @ApiModelProperty(value = "联锁状态-正常状态对应的值")
+    private java.lang.String interlockStatusTy;
+	/**联锁状态-正常状态-名称*/
+	@Excel(name = "联锁状态-正常状态-名称", width = 15)
+    @ApiModelProperty(value = "联锁状态-正常状态-名称")
+    private java.lang.String interlockStatusTyName;
+	/**联锁状态-故障状态-名称*/
+	@Excel(name = "联锁状态-故障状态-名称", width = 15)
+    @ApiModelProperty(value = "联锁状态-故障状态-名称")
+    private java.lang.String interlockStatusWtyName;
+}

+ 22 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSummaryDay/mapper/InterlockSummaryDayMapper.java

@@ -0,0 +1,22 @@
+package org.jeecg.modules.interlockSummaryDay.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.jeecg.modules.interlockSummaryDay.entity.InterlockSummaryDay;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: interlock_summary_day
+ * @Author: jeecg-boot
+ * @Date:   2024-09-29
+ * @Version: V1.0
+ */
+public interface InterlockSummaryDayMapper extends BaseMapper<InterlockSummaryDay> {
+
+    //判断当天日报表是否存过数据
+    @Select("select exists (select 1 from interlock_summary_day where date_trunc('day', create_time) = date_trunc('day', CURRENT_DATE));")
+    Boolean getIsExistDataCurr();
+
+}

+ 5 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSummaryDay/mapper/xml/InterlockSummaryDayMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.interlockSummaryDay.mapper.InterlockSummaryDayMapper">
+
+</mapper>

+ 18 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSummaryDay/service/IInterlockSummaryDayService.java

@@ -0,0 +1,18 @@
+package org.jeecg.modules.interlockSummaryDay.service;
+
+import org.apache.ibatis.annotations.Select;
+import org.jeecg.modules.interlockSummaryDay.entity.InterlockSummaryDay;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: interlock_summary_day
+ * @Author: jeecg-boot
+ * @Date:   2024-09-29
+ * @Version: V1.0
+ */
+public interface IInterlockSummaryDayService extends IService<InterlockSummaryDay> {
+
+    //判断当天日报表是否存过数据
+    Boolean getIsExistDataCurr();
+
+}

+ 30 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockSummaryDay/service/impl/InterlockSummaryDayServiceImpl.java

@@ -0,0 +1,30 @@
+package org.jeecg.modules.interlockSummaryDay.service.impl;
+
+import org.checkerframework.checker.units.qual.A;
+import org.jeecg.modules.interlockSummaryDay.entity.InterlockSummaryDay;
+import org.jeecg.modules.interlockSummaryDay.mapper.InterlockSummaryDayMapper;
+import org.jeecg.modules.interlockSummaryDay.service.IInterlockSummaryDayService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: interlock_summary_day
+ * @Author: jeecg-boot
+ * @Date:   2024-09-29
+ * @Version: V1.0
+ */
+@Service
+public class InterlockSummaryDayServiceImpl extends ServiceImpl<InterlockSummaryDayMapper, InterlockSummaryDay> implements IInterlockSummaryDayService {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private InterlockSummaryDayMapper summaryDayMapper;
+
+    //判断当天日报表是否存过数据
+    public Boolean getIsExistDataCurr(){
+        return summaryDayMapper.getIsExistDataCurr();
+    }
+
+}