Pārlūkot izejas kodu

新增设备和模具维保的导出excel表的功能

dkk 4 mēneši atpakaļ
vecāks
revīzija
e3995f28d9

+ 37 - 1
src/main/java/com/jeesite/modules/mes/entity/MesDeviceMaintenance.java

@@ -9,6 +9,9 @@ import com.jeesite.common.mybatis.annotation.Column;
 import com.jeesite.common.mybatis.annotation.JoinTable;
 import com.jeesite.common.mybatis.annotation.JoinTable.Type;
 import com.jeesite.common.mybatis.annotation.Table;
+import com.jeesite.common.utils.excel.annotation.ExcelField;
+import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
+import com.jeesite.common.utils.excel.annotation.ExcelFields;
 
 /**
  * 设备维保记录Entity
@@ -32,6 +35,7 @@ import com.jeesite.common.mybatis.annotation.Table;
 		@Column(name="spare_part_name", attrName="sparePartName", label="备件名称"),
 		@Column(name="quantity", attrName="quantity", label="数量"),
 		@Column(name="repair_user", attrName="repairUser", label="维修人", isQuery=true),
+		@Column(name="acceptance_result", attrName="acceptanceResult", label="验收结果"),
 		@Column(name="remarks", attrName="remarks", label="备注"),
 		@Column(name="create_by", attrName="createBy", label="create_by", isUpdate=false, isQuery=false),
 		@Column(name="create_date", attrName="createDate", label="create_date", isUpdate=false, isQuery=false, isUpdateForce=true),
@@ -48,7 +52,9 @@ import com.jeesite.common.mybatis.annotation.Table;
 public class MesDeviceMaintenance extends DataEntity<MesDeviceMaintenance> {
 
 	private static final long serialVersionUID = 1L;
-	private String deviceTreeCode;		// 设备编码(关联mes_device.tree_code)
+
+	private String deviceTreeCode;
+	// 设备编码(关联mes_device.tree_code)
 	private Date maintenanceDate;		// 维保日期
 	private Date faultTime;			// 故障发生时间
 	private Date resumeProductionTime;	// 恢复生产时间
@@ -63,11 +69,32 @@ public class MesDeviceMaintenance extends DataEntity<MesDeviceMaintenance> {
 	private String sparePartName;		// 备件名称
 	private Integer quantity;			// 数量
 	private String repairUser;			// 维修人
+	private String acceptanceResult;	// 验收结果
 
 	// JoinTable 关联字段
 	private String deviceName;			// 设备名称(来自设备结构表 tree_name)
 	private String deviceCode;			// 机台号(来自设备结构表 device_code)
 
+	@ExcelFields({
+			@ExcelField(title="维保日期", attrName="maintenanceDate", align=Align.CENTER, sort=10),
+			@ExcelField(title="设备名称", attrName="deviceName", align=Align.CENTER, sort=20),
+			@ExcelField(title="机台号", attrName="deviceCode", align=Align.CENTER, sort=30),
+			@ExcelField(title="故障发生时间", attrName="faultTime", align=Align.CENTER, sort=40),
+			@ExcelField(title="恢复生产时间", attrName="resumeProductionTime", align=Align.CENTER, sort=50),
+			@ExcelField(title="停机时长", attrName="downtime", align=Align.CENTER, sort=60),
+			@ExcelField(title="维修开始时间", attrName="repairStartTime", align=Align.CENTER, sort=70),
+			@ExcelField(title="维修结束时间", attrName="repairEndTime", align=Align.CENTER, sort=80),
+			@ExcelField(title="维修时长", attrName="repairDuration", align=Align.CENTER, sort=90),
+			@ExcelField(title="故障现象", attrName="faultPhenomenon", align=Align.CENTER, sort=100),
+			@ExcelField(title="维修措施", attrName="repairMeasure", align=Align.CENTER, sort=110),
+			@ExcelField(title="故障类别", attrName="faultCategory", align=Align.CENTER, sort=120),
+			@ExcelField(title="根本原因分析", attrName="rootCauseAnalysis", align=Align.CENTER, sort=130),
+			@ExcelField(title="备件名称", attrName="sparePartName", align=Align.CENTER, sort=140),
+			@ExcelField(title="数量", attrName="quantity", align=Align.CENTER, sort=150),
+			@ExcelField(title="维修人", attrName="repairUser", align=Align.CENTER, sort=160),
+			@ExcelField(title="验收结果", attrName="acceptanceResult", align=Align.CENTER, sort=170),
+			@ExcelField(title="备注", attrName="remarks", align=Align.CENTER, sort=180),
+	})
 	public MesDeviceMaintenance() {
 		this(null);
 	}
@@ -207,6 +234,15 @@ public class MesDeviceMaintenance extends DataEntity<MesDeviceMaintenance> {
 		this.repairUser = repairUser;
 	}
 
+	@Size(min=0, max=100, message="验收结果长度不能超过 100 个字符")
+	public String getAcceptanceResult() {
+		return acceptanceResult;
+	}
+
+	public void setAcceptanceResult(String acceptanceResult) {
+		this.acceptanceResult = acceptanceResult;
+	}
+
 	public String getDeviceName() {
 		return deviceName;
 	}

+ 16 - 0
src/main/java/com/jeesite/modules/mes/web/MesDeviceMaintenanceController.java

@@ -1,5 +1,6 @@
 package com.jeesite.modules.mes.web;
 
+import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.jeesite.common.config.Global;
 import com.jeesite.common.entity.Page;
+import com.jeesite.common.lang.DateUtils;
+import com.jeesite.common.utils.excel.ExcelExport;
 import com.jeesite.common.web.BaseController;
 import com.jeesite.modules.mes.entity.MesDeviceMaintenance;
 import com.jeesite.modules.mes.service.MesDeviceMaintenanceService;
@@ -103,4 +106,17 @@ public class MesDeviceMaintenanceController extends BaseController {
 		return renderResult(Global.TRUE, text("删除设备维保记录成功!"));
 	}
 
+	/**
+	 * 导出数据
+	 */
+	@RequiresPermissions("mes:mesDeviceMaintenance:view")
+	@RequestMapping(value = "exportData")
+	public void exportData(MesDeviceMaintenance mesDeviceMaintenance, HttpServletResponse response) {
+		List<MesDeviceMaintenance> list = mesDeviceMaintenanceService.findList(mesDeviceMaintenance);
+		String fileName = "设备维保记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+		try(ExcelExport ee = new ExcelExport("设备维保记录", MesDeviceMaintenance.class)){
+			ee.setDataList(list).write(response, fileName);
+		}
+	}
+
 }

+ 2 - 0
src/main/java/com/jeesite/modules/mes/web/MesMaterialRkController.java

@@ -16,6 +16,8 @@ import com.jeesite.modules.mes.entity.MesMaterial;
 import com.jeesite.modules.mes.resp.CommonResp;
 import com.jeesite.modules.mes.service.MesMaterialService;
 import com.jeesite.modules.mes.util.U9cAuthUtil;
+import com.jeesite.modules.sys.utils.EmpUtils;
+import com.jeesite.modules.sys.utils.UserUtils;
 import com.jeesite.modules.utils.DateLocalUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;

+ 33 - 10
src/main/java/com/jeesite/modules/mes/web/MesMoldMaintenanceController.java

@@ -16,14 +16,18 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.jeesite.common.config.Global;
 import com.jeesite.common.entity.Page;
+import com.jeesite.common.lang.DateUtils;
+import com.jeesite.common.utils.excel.ExcelExport;
 import com.jeesite.common.web.BaseController;
 import com.jeesite.modules.mes.entity.MesMoldMaintenance;
+import com.jeesite.modules.mes.entity.MesMoldResume;
 import com.jeesite.modules.mes.service.MesMoldMaintenanceService;
+import com.jeesite.modules.mes.service.MesMoldResumeService;
 
 /**
  * 模具维保Controller
- * @author sxl
- * @version 2026-06-28
+ * @author mes
+ * @version 2026-06-27
  */
 @Controller
 @RequestMapping(value = "${adminPath}/mes/mesMoldMaintenance")
@@ -31,7 +35,10 @@ public class MesMoldMaintenanceController extends BaseController {
 
 	@Autowired
 	private MesMoldMaintenanceService mesMoldMaintenanceService;
-	
+
+	@Autowired
+	private MesMoldResumeService mesMoldResumeService;
+
 	/**
 	 * 获取数据
 	 */
@@ -39,7 +46,7 @@ public class MesMoldMaintenanceController extends BaseController {
 	public MesMoldMaintenance get(String id, boolean isNewRecord) {
 		return mesMoldMaintenanceService.get(id, isNewRecord);
 	}
-	
+
 	/**
 	 * 查询列表
 	 */
@@ -49,7 +56,7 @@ public class MesMoldMaintenanceController extends BaseController {
 		model.addAttribute("mesMoldMaintenance", mesMoldMaintenance);
 		return "modules/mes/mesMoldMaintenanceList";
 	}
-	
+
 	/**
 	 * 查询列表数据
 	 */
@@ -69,6 +76,9 @@ public class MesMoldMaintenanceController extends BaseController {
 	@RequestMapping(value = "form")
 	public String form(MesMoldMaintenance mesMoldMaintenance, Model model) {
 		model.addAttribute("mesMoldMaintenance", mesMoldMaintenance);
+		// 查询模具履历列表,用于表单下拉选择模具
+		List<MesMoldResume> moldResumeList = mesMoldResumeService.findList(new MesMoldResume());
+		model.addAttribute("moldResumeList", moldResumeList);
 		return "modules/mes/mesMoldMaintenanceForm";
 	}
 
@@ -92,7 +102,7 @@ public class MesMoldMaintenanceController extends BaseController {
 		mesMoldMaintenanceService.save(mesMoldMaintenance);
 		return renderResult(Global.TRUE, text("保存模具维保成功!"));
 	}
-	
+
 	/**
 	 * 停用数据
 	 */
@@ -104,7 +114,7 @@ public class MesMoldMaintenanceController extends BaseController {
 		mesMoldMaintenanceService.updateStatus(mesMoldMaintenance);
 		return renderResult(Global.TRUE, text("停用模具维保成功"));
 	}
-	
+
 	/**
 	 * 启用数据
 	 */
@@ -116,7 +126,7 @@ public class MesMoldMaintenanceController extends BaseController {
 		mesMoldMaintenanceService.updateStatus(mesMoldMaintenance);
 		return renderResult(Global.TRUE, text("启用模具维保成功"));
 	}
-	
+
 	/**
 	 * 删除数据
 	 */
@@ -127,5 +137,18 @@ public class MesMoldMaintenanceController extends BaseController {
 		mesMoldMaintenanceService.delete(mesMoldMaintenance);
 		return renderResult(Global.TRUE, text("删除模具维保成功!"));
 	}
-	
-}
+
+	/**
+	 * 导出数据
+	 */
+	@RequiresPermissions("mes:mesMoldMaintenance:view")
+	@RequestMapping(value = "exportData")
+	public void exportData(MesMoldMaintenance mesMoldMaintenance, HttpServletResponse response) {
+		List<MesMoldMaintenance> list = mesMoldMaintenanceService.findList(mesMoldMaintenance);
+		String fileName = "模具维保记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+		try(ExcelExport ee = new ExcelExport("模具维保记录", MesMoldMaintenance.class)){
+			ee.setDataList(list).write(response, fileName);
+		}
+	}
+
+}

+ 8 - 0
src/main/resources/views/modules/mes/mesMoldMaintenanceList.html

@@ -7,6 +7,7 @@
 			</div>
 			<div class="box-tools pull-right">
 				<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
+				<a href="#" class="btn btn-default" id="btnExport" title="${text('导出')}"><i class="glyphicon glyphicon-export"></i> ${text('导出')}</a>
 				<% if(hasPermi('mes:mesMoldMaintenance:edit')){ %>
 					<a href="${ctx}/mes/mesMoldMaintenance/form" class="btn btn-default btnTool" title="${text('新增模具维保')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
 				<% } %>
@@ -115,6 +116,7 @@ $('#dataGrid').dataGrid({
 			return '<a href="${ctx}/mes/mesMoldMaintenance/info?id='+row.id+'" class="btnList" data-title="${text("模具维保详情")}">'+(val||row.id)+'</a>';
 		}},
 		{header:'${text("模具名称")}', name:'moldName', index:'b.mold_name', width:150, align:"center"},
+		{header:'${text("生产商")}', name:'manufacturer', index:'b.manufacturer', width:150, align:"center"},
 		{header:'${text("维保日期")}', name:'maintenanceDate', index:'a.maintenance_date', width:150, align:"center"},
 		{header:'${text("发起部门")}', name:'initiateDept', index:'a.initiate_dept', width:150, align:"center"},
 		{header:'${text("发起人")}', name:'initiateUser', index:'a.initiate_user', width:150, align:"center"},
@@ -146,4 +148,10 @@ $('#dataGrid').dataGrid({
 
 	}
 });
+$('#btnExport').click(function(){
+	js.ajaxSubmitForm($('#searchForm'), {
+		url:'${ctx}/mes/mesMoldMaintenance/exportData',
+		downloadFile:true
+	});
+});
 </script>

+ 1 - 1
src/main/resources/views/modules/mes/mesQualityList.html

@@ -93,7 +93,7 @@ $('#dataGrid').dataGrid({
 		}},
 		{header:'${text("检查结果")}', name:'result', index:'a.result', width:150, align:"center"},
 		// {header:'${text("问题清单")}', name:'items', index:'a.items', width:150, align:"left"},
-		{header:'${text("备注")}', name:'remark', index:'a.remark', width:150, align:"left"},
+		{header:'${text("汇报内容")}', name:'remark', index:'a.remark', width:150, align:"left"},
 		{header:'${text("检查人")}', name:'createBy', index:'a.create_by', width:150, align:"center"},
 		{header:'${text("检查日期")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
 		{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){