From 240a4fa7811733f9617227cb58670a71b27389e1 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 09 九月 2025 18:25:03 +0800
Subject: [PATCH] 增加异常文件统计
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionExcelVO.java | 35 +++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionQueryVO.java | 30 ++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.java | 6
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java | 11 ++
doc/sql/mdm/mdm.mysql.all.create.sql | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/MachineFileExceptionController.java | 98 +++++++++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineFileQueryVO.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java | 46 +++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml | 21 ++++
9 files changed, 250 insertions(+), 3 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java
index 894cd84..3edccd1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java
@@ -61,6 +61,28 @@
* temp鐩綍
*/
public static final String DIR_TYPE_TEMP = "TEMP";
+ /**
+ * 鏂囦欢寮傚父绫诲瀷锛氭甯�
+ */
+ public static final int EXCEPTION_OK = 0;
+ /**
+ * 鏂囦欢寮傚父绫诲瀷锛氶潪鏂囨湰鏂囦欢
+ */
+ public static final int EXCEPTION_NOT_TEXT = 1;
+ /**
+ * 鏂囦欢寮傚父绫诲瀷锛氭枃浠跺悕鏍煎紡涓嶅悎娉�
+ */
+ public static final int EXCEPTION_BAD_FILENAME = 2;
+ /**
+ * 鏂囦欢寮傚父绫诲瀷锛氭枃浠剁‘澶�(娈垫暟涓嶅)
+ */
+ public static final int EXCEPTION_LOST_FILES = 3;
+
+ /**
+ * 鏂囦欢寮傚父绫诲瀷锛氭枃浠舵鏁颁笌涓嬪彂璁板綍涓嶅尮閰嶏紙杞﹀簥/鐜板満缂栧埗闄ゅ)
+ */
+ public static final int EXCEPTION_NOT_MATCH_SEND = 3;
+
/**
* 鏂囦欢鍚�
@@ -106,6 +128,13 @@
* 绋嬪簭鐘舵�侊紙1璇曞垏锛�2鍥哄寲锛�3鍋忕锛�4鏈煡锛�
*/
private Integer programStatus;
+
+ /**
+ * REC鐩綍鏂囦欢寮傚父绫诲瀷锛�0/null:姝e父; 1闈炴枃鏈牸寮忥紱2:鏂囦欢鍚嶆牸寮忎笉鍚堟硶锛�3:鏂囦欢纭け(娈垫暟涓嶅)锛�4:鏂囦欢娈垫暟涓庝笅鍙戣褰曚笉鍖归厤锛堣溅搴�/鐜板満缂栧埗闄ゅ)
+ */
+ private Integer exceptionType;
+
+
/**
* 鐢熸垚鏂囦欢澶у皬鐨勬樉绀烘枃鏈�
* @return 鏄剧ず鏂囨湰
@@ -133,4 +162,21 @@
setStatus(STATUS_REJECTED);
this.determineTime = new Date();
}
+
+ /**
+ * 寮傚父璇︾粏鎻忚堪
+ * @return 鎻忚堪鏂囨湰
+ */
+ public String getExceptionMsg(){
+ if(exceptionType == null){
+ return "姝e父";
+ }
+ return switch (exceptionType) {
+ case 1 -> "闈炴枃鏈�";
+ case 2 -> "鏂囦欢鍚嶆牸寮忛敊璇�";
+ case 3 -> "鏂囦欢纭け";
+ case 4 -> "娈垫暟涓庝笅鍙戣褰曚笉鍖归厤";
+ default -> "姝e父";
+ };
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.java
index 9f2b648..c6cf329 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.java
@@ -8,6 +8,7 @@
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
import org.springblade.mdm.machinefile.vo.MachineBackFileQueryVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
+import org.springblade.mdm.statreport.vo.MachineFileExceptionQueryVO;
public interface MachineFileMapper extends BladeMapper<MachineFile> {
/**
@@ -26,10 +27,11 @@
IPage<MachineFile> filePageForAccept(IPage<MachineAcceptedFileVO> page, @Param("query")MachineBackFileQueryVO queryVO);
/**
- * 鏈哄簥鍥炰紶鏂囦欢澶勭悊鍒嗛〉鏌ヨ
+ * 寮傚父鏂囦欢鍒楄〃鏌ヨ
* @param page
* @param query
* @return
*/
- //IPage<MachineAcceptedFileVO> handlePageQuery(@Param("page")IPage<MachineAcceptedFileVO> page, @Param("query") MachineAcceptedFileHandleQueryVO query);
+ IPage<MachineFile> exceptionFilePageQuery(IPage<Object> page,@Param("query") MachineFileExceptionQueryVO query);
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml
index abe01bd..f1a9b35 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml
@@ -89,4 +89,25 @@
</where>
order by f.file_create_time desc
</select>
+
+ <!--寮傚父鏂囦欢璁板綍鏌ヨ-->
+ <select id="exceptionFilePageQuery" resultType="org.springblade.mdm.machinefile.entity.MachineFile">
+ select f.id,f.name,f.machine_code,f.file_create_time, f.file_modify_time,f.md5,f.file_size,f.exception_type,f.create_time,f.update_time
+ from mdm_machine_file f join mdm_machine m on f.machine_code=m.code and m.is_deleted=0
+ <where>
+ f.dir_type='REC' and f.is_deleted=0 and f.exception_type is not null and f.exception_type <> 0
+
+ <if test="query.name!=null and query.name!=''">
+ and f.name like CONCAT('%', #{query.name,jdbcType=VARCHAR},'%')
+ </if>
+
+ <if test="query.fileCreateTimeBegin!=null">
+ and f.file_create_time >= #{query.fileCreateTimeBegin}
+ </if>
+ <if test="query.fileCreateTimeEnd!=null">
+ and f.file_create_time <= #{query.fileCreateTimeEnd}
+ </if>
+ </where>
+ order by f.file_create_time desc
+ </select>
</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
index d6f7507..f0414b3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
@@ -19,6 +19,7 @@
import org.springblade.mdm.machinefile.vo.MachineFileQueryVO;
import org.springblade.mdm.machinefile.vo.MachineBackFileQueryVO;
import org.springblade.mdm.program.vo.CompareDataVO;
+import org.springblade.mdm.statreport.vo.MachineFileExceptionQueryVO;
import org.springblade.mdm.utils.FileContentUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -235,4 +236,14 @@
public void deleteById(Long id) {
baseMapper.deleteById(id);
}
+
+ /**
+ * 寮傚父鏂囦欢璁板綍鏌ヨ
+ * @param query
+ * @return
+ */
+ @Transactional(readOnly = true)
+ public IPage<MachineFile> exceptionFilePageQuery(MachineFileExceptionQueryVO query) {
+ return baseMapper.exceptionFilePageQuery(Condition.getPage(query),query);
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineFileQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineFileQueryVO.java
index 0f67190..421f120 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineFileQueryVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineFileQueryVO.java
@@ -15,7 +15,7 @@
@Setter
@Getter
public class MachineFileQueryVO extends Query {
- @Schema(description = "鏂囦欢鍚嶆垚")
+ @Schema(description = "鏂囦欢鍚嶇О")
private String name;
@Schema(description = "鐩綍绫诲瀷")
private String dirType;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/MachineFileExceptionController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/MachineFileExceptionController.java
new file mode 100644
index 0000000..827a0c9
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/MachineFileExceptionController.java
@@ -0,0 +1,98 @@
+
+package org.springblade.mdm.statreport.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmDept;
+import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService;
+import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.machinefile.service.MachineFileChangeHisService;
+import org.springblade.mdm.machinefile.service.MachineFileService;
+import org.springblade.mdm.machinefile.vo.*;
+import org.springblade.mdm.program.vo.CompareDataVO;
+import org.springblade.mdm.statreport.vo.MachineFileExceptionExcelVO;
+import org.springblade.mdm.statreport.vo.MachineFileExceptionQueryVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 宸ユ帶缃戝紓甯告枃浠惰褰�
+ *
+ * @author yangys
+ */
+@NonDS
+@RestController
+@RequestMapping("/statreport/exceptionfile")
+@Tag(name = "宸ユ帶缃戠▼搴忚妭鐐�", description = "宸ユ帶缃戠▼搴忚妭鐐�")
+@Slf4j
+public class MachineFileExceptionController {
+ @Autowired
+ private MachineFileService machineFileService;
+ @Autowired
+ private MdmDeptService mdmDeptService;
+ @Autowired
+ private MachineService machineService;
+
+ @GetMapping("/page")
+ @Operation(summary = "鏂囦欢寮傚父璁板綍鍒楄〃", description = "鏂囦欢寮傚父璁板綍鍒楄〃")
+ public R<IPage<MachineFile>> page(MachineFileExceptionQueryVO query) {
+ /*
+ if("workshop".equals(query.getNodeType()) || "seg".equals(query.getNodeType())) {
+ //鑺傜偣涓鸿溅闂淬�佸伐娈�
+ MdmDept dept = mdmDeptService.getById(query.getNodeId());
+
+ String idStr = dept.getAncestors()+","+dept.getId();
+ List<MdmDept> depts = mdmDeptService.lambdaQuery().likeRight(MdmDept::getParentId, query.getNodeId()).list();
+ List<Long> deptIds = new ArrayList<>(depts.stream().map(MdmDept::getId).toList());
+ deptIds.add(dept.getId());
+ //+鏈溅闂�
+ //Func.toStrList(",",idStr)
+ query.setDeptIds(deptIds);
+ }else if("machine".equals(query.getNodeType())){
+ Machine machine = machineService.getById(query.getNodeId());
+ query.setMachineCode(machine.getCode());
+ }else if("dir".equals(query.getNodeType())){
+ query.setMachineCode(query.getMachineCode());
+ }*/
+ return R.data(machineFileService.exceptionFilePageQuery(query));
+ }
+
+ @Operation(summary = "鍥炰紶绋嬪簭澶勭悊瀵煎嚭Excel", description = "鍥炰紶绋嬪簭澶勭悊瀵煎嚭Excel")
+ @GetMapping("/export-excel")
+ public void exportExcel(MachineFileExceptionQueryVO query, HttpServletResponse response) {
+ query.setCurrent(1);
+ query.setSize(Integer.MAX_VALUE);
+
+ IPage<MachineFile> page = machineFileService.exceptionFilePageQuery(query);
+ //List<MachineFileExceptionExcelVO> list = BeanUtil.copy(page.getRecords(), MachineFileExceptionExcelVO.class);
+ List<MachineFileExceptionExcelVO> list = new ArrayList<>();
+ page.getRecords().forEach(machineFile ->{
+ MachineFileExceptionExcelVO excelVO = new MachineFileExceptionExcelVO();
+ BeanUtil.copyProperties(machineFile, excelVO);
+ //excelVO.setExceptionMsg(machineFile.getExceptionMsg());
+
+ list.add(excelVO);
+ });
+
+ ExcelUtil.export(response, "鏂囦欢寮傚父璁板綍" + DateUtil.time(), "鏂囦欢寮傚父璁板綍", list, MachineFileExceptionExcelVO.class);
+ }
+
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionExcelVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionExcelVO.java
new file mode 100644
index 0000000..17c5a83
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionExcelVO.java
@@ -0,0 +1,35 @@
+package org.springblade.mdm.statreport.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鏈哄簥鍥炰紶鏂囦欢澶勭悊瀵煎嚭excelVO
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class MachineFileExceptionExcelVO {
+
+ @ExcelProperty("鏂囦欢鍚嶇О")
+ private String name;
+
+ @ColumnWidth(20)
+ @ExcelProperty("鏈哄簥")
+ private String machineCode;
+
+ @ExcelProperty("寮傚父淇℃伅")
+ private String exceptionMsg;
+
+ @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty("鏃堕棿")
+ private Date fileCreateTime;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionQueryVO.java
new file mode 100644
index 0000000..2219b57
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/MachineFileExceptionQueryVO.java
@@ -0,0 +1,30 @@
+package org.springblade.mdm.statreport.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.support.Query;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 鍒嗛〉鏌ヨ鍙傛暟
+ */
+
+@Schema(description = "鏂扮紪绋嬪簭缁熻鏌ヨ瀵硅薄")
+@Setter
+@Getter
+public class MachineFileExceptionQueryVO extends Query {
+ @Schema(description = "鏂囦欢鍚嶇О")
+ private String name;
+
+ @Schema(description = "鏂囦欢鍒涘缓鏃堕棿寮�濮�")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime fileCreateTimeBegin;
+ @Schema(description = "鏂囦欢鍒涘缓鏃堕棿鎴")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime fileCreateTimeEnd;
+}
diff --git a/doc/sql/mdm/mdm.mysql.all.create.sql b/doc/sql/mdm/mdm.mysql.all.create.sql
index 930c5cf..b7d067d 100644
--- a/doc/sql/mdm/mdm.mysql.all.create.sql
+++ b/doc/sql/mdm/mdm.mysql.all.create.sql
@@ -173,6 +173,9 @@
`program_no` varchar(20) NULL COMMENT '鏁版帶绋嬪簭缂栧彿锛屾祦绋嬪彂璧峰悗濉厖',
`mes_task_id` varchar(100) NULL COMMENT 'MES浠诲姟鍞竴鏍囪瘑',
`inspector` varchar(40) NULL COMMENT '妫�楠屽憳锛坢es鎻愪緵锛�',
+ `check_time` datetime DEFAULT NULL COMMENT '妫�楠屾椂闂�',
+ `operator` varchar(40) NULL COMMENT '鎿嶄綔鑰咃紙mes鎻愪緵锛�',
+ `operate_time` datetime DEFAULT NULL COMMENT '鎿嶄綔鏃堕棿',
`status` int DEFAULT NULL COMMENT '涓氬姟鐘舵�侊紝1锛氬垵濮嬪寲锛�2:娴佺▼宸插惎鍔� 3:閲嶅娲惧伐;4锛岄獙璇佸け璐�,5锛氬惎鍔ㄥ紓甯�',
`create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
`is_deleted` int DEFAULT NULL,
@@ -452,6 +455,7 @@
`file_size` bigint DEFAULT NULL COMMENT '鏂囦欢瀛楄妭鏁�',
`determine_time` datetime DEFAULT NULL COMMENT '鎺ュ彈/鎷掔粷鐨勬椂闂�',
`program_status` int DEFAULT NULL COMMENT '绋嬪簭鐘舵�侊紙1璇曞垏锛�2鍥哄寲锛�3鍋忕锛�4鏈煡锛�',
+ `exception_type` int DEFAULT NULL COMMENT 'REC鐩綍鏂囦欢寮傚父绫诲瀷锛�0/null:姝e父; 1闈炴枃鏈牸寮忥紱2:鏂囦欢鍚嶆牸寮忎笉鍚堟硶锛�3:鏂囦欢纭け(娈垫暟涓嶅)锛�4:鏂囦欢娈垫暟涓庝笅鍙戣褰曚笉鍖归厤锛堣溅搴�/鐜板満缂栧埗闄ゅ)',
`status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
`create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
`is_deleted` int DEFAULT NULL,
--
Gitblit v1.9.3