Ver código fonte

称重后台+涂胶点位更改

sunxianglong 1 mês atrás
pai
commit
1b80890636

+ 15 - 0
src/main/java/com/jeesite/modules/mes/dao/MesWuliaoCzDao.java

@@ -0,0 +1,15 @@
+package com.jeesite.modules.mes.dao;
+
+import com.jeesite.common.dao.CrudDao;
+import com.jeesite.common.mybatis.annotation.MyBatisDao;
+import com.jeesite.modules.mes.entity.MesWuliaoCz;
+
+/**
+ * 称重数据表DAO接口
+ * @author sxl
+ * @version 2026-09-28
+ */
+@MyBatisDao
+public interface MesWuliaoCzDao extends CrudDao<MesWuliaoCz> {
+	
+}

+ 76 - 0
src/main/java/com/jeesite/modules/mes/entity/MesWuliaoCz.java

@@ -0,0 +1,76 @@
+package com.jeesite.modules.mes.entity;
+
+import javax.validation.constraints.Size;
+
+import com.jeesite.common.entity.DataEntity;
+import com.jeesite.common.mybatis.annotation.Column;
+import com.jeesite.common.mybatis.annotation.Table;
+import com.jeesite.common.mybatis.mapper.query.QueryType;
+
+/**
+ * 称重数据表Entity
+ * @author sxl
+ * @version 2026-09-28
+ */
+@Table(name="mes_wuliao_cz", alias="a", label="称重数据表信息", columns={
+		@Column(name="id", attrName="id", label="id", isPK=true),
+		@Column(name="lc", attrName="lc", label="炉次"),
+		@Column(name="bc", attrName="bc", label="班次"),
+		@Column(name="type", attrName="type", label="物料类型"),
+		@Column(name="zl", attrName="zl", label="重量"),
+		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false, isUpdateForce=true),
+	}, orderBy="a.id DESC"
+)
+public class MesWuliaoCz extends DataEntity<MesWuliaoCz> {
+	
+	private static final long serialVersionUID = 1L;
+	private String lc;		// 炉次
+	private String bc;		// 班次
+	private String type;		// 物料类型
+	private String zl;		// 重量
+
+	public MesWuliaoCz() {
+		this(null);
+	}
+	
+	public MesWuliaoCz(String id){
+		super(id);
+	}
+	
+	@Size(min=0, max=64, message="炉次长度不能超过 64 个字符")
+	public String getLc() {
+		return lc;
+	}
+
+	public void setLc(String lc) {
+		this.lc = lc;
+	}
+	
+	@Size(min=0, max=64, message="班次长度不能超过 64 个字符")
+	public String getBc() {
+		return bc;
+	}
+
+	public void setBc(String bc) {
+		this.bc = bc;
+	}
+	
+	@Size(min=0, max=64, message="物料类型长度不能超过 64 个字符")
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+	
+	@Size(min=0, max=64, message="重量长度不能超过 64 个字符")
+	public String getZl() {
+		return zl;
+	}
+
+	public void setZl(String zl) {
+		this.zl = zl;
+	}
+	
+}

+ 81 - 0
src/main/java/com/jeesite/modules/mes/service/MesWuliaoCzService.java

@@ -0,0 +1,81 @@
+package com.jeesite.modules.mes.service;
+
+import java.util.List;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.service.CrudService;
+import com.jeesite.modules.mes.entity.MesWuliaoCz;
+import com.jeesite.modules.mes.dao.MesWuliaoCzDao;
+
+/**
+ * 称重数据表Service
+ * @author sxl
+ * @version 2026-09-28
+ */
+@Service
+public class MesWuliaoCzService extends CrudService<MesWuliaoCzDao, MesWuliaoCz> {
+	
+	/**
+	 * 获取单条数据
+	 * @param mesWuliaoCz
+	 * @return
+	 */
+	@Override
+	public MesWuliaoCz get(MesWuliaoCz mesWuliaoCz) {
+		return super.get(mesWuliaoCz);
+	}
+	
+	/**
+	 * 查询分页数据
+	 * @param mesWuliaoCz 查询条件
+	 * @param mesWuliaoCz.page 分页对象
+	 * @return
+	 */
+	@Override
+	public Page<MesWuliaoCz> findPage(MesWuliaoCz mesWuliaoCz) {
+		return super.findPage(mesWuliaoCz);
+	}
+	
+	/**
+	 * 查询列表数据
+	 * @param mesWuliaoCz
+	 * @return
+	 */
+	@Override
+	public List<MesWuliaoCz> findList(MesWuliaoCz mesWuliaoCz) {
+		return super.findList(mesWuliaoCz);
+	}
+	
+	/**
+	 * 保存数据(插入或更新)
+	 * @param mesWuliaoCz
+	 */
+	@Override
+	@Transactional
+	public void save(MesWuliaoCz mesWuliaoCz) {
+		super.save(mesWuliaoCz);
+	}
+	
+	/**
+	 * 更新状态
+	 * @param mesWuliaoCz
+	 */
+	@Override
+	@Transactional
+	public void updateStatus(MesWuliaoCz mesWuliaoCz) {
+		super.updateStatus(mesWuliaoCz);
+	}
+	
+	/**
+	 * 删除数据
+	 * @param mesWuliaoCz
+	 */
+	@Override
+	@Transactional
+	public void delete(MesWuliaoCz mesWuliaoCz) {
+		super.delete(mesWuliaoCz);
+	}
+	
+}

+ 156 - 0
src/main/java/com/jeesite/modules/mes/web/MesWuliaoCzController.java

@@ -0,0 +1,156 @@
+package com.jeesite.modules.mes.web;
+
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.jeesite.common.config.Global;
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.lang.StringUtils;
+import com.jeesite.common.web.BaseController;
+import com.jeesite.modules.mes.entity.MesWuliaoCz;
+import com.jeesite.modules.mes.resp.CommonResp;
+import com.jeesite.modules.mes.service.MesWuliaoCzService;
+
+/**
+ * 称重数据表Controller
+ * @author sxl
+ * @version 2026-09-28
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/mes/mesWuliaoCz")
+public class MesWuliaoCzController extends BaseController {
+
+	@Autowired
+	private MesWuliaoCzService mesWuliaoCzService;
+	
+	/**
+	 * 获取数据
+	 */
+	@ModelAttribute
+	public MesWuliaoCz get(String id, boolean isNewRecord) {
+		return mesWuliaoCzService.get(id, isNewRecord);
+	}
+	
+	/**
+	 * 查询列表
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:view")
+	@RequestMapping(value = {"list", ""})
+	public String list(MesWuliaoCz mesWuliaoCz, Model model) {
+		model.addAttribute("mesWuliaoCz", mesWuliaoCz);
+		return "modules/mes/mesWuliaoCzList";
+	}
+	
+	/**
+	 * 查询列表数据
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:view")
+	@RequestMapping(value = "listData")
+	@ResponseBody
+	public Page<MesWuliaoCz> listData(MesWuliaoCz mesWuliaoCz, HttpServletRequest request, HttpServletResponse response) {
+		mesWuliaoCz.setPage(new Page<>(request, response));
+		Page<MesWuliaoCz> page = mesWuliaoCzService.findPage(mesWuliaoCz);
+		return page;
+	}
+
+	/**
+	 * 查看编辑表单
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:view")
+	@RequestMapping(value = "form")
+	public String form(MesWuliaoCz mesWuliaoCz, Model model) {
+		model.addAttribute("mesWuliaoCz", mesWuliaoCz);
+		return "modules/mes/mesWuliaoCzForm";
+	}
+
+	/**
+	 * 保存数据
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:edit")
+	@PostMapping(value = "save")
+	@ResponseBody
+	public String save(@Validated MesWuliaoCz mesWuliaoCz) {
+		mesWuliaoCzService.save(mesWuliaoCz);
+		return renderResult(Global.TRUE, text("保存称重数据表成功!"));
+	}
+	
+	/**
+	 * 删除数据
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:edit")
+	@RequestMapping(value = "delete")
+	@ResponseBody
+	public String delete(MesWuliaoCz mesWuliaoCz) {
+		mesWuliaoCzService.delete(mesWuliaoCz);
+		return renderResult(Global.TRUE, text("删除称重数据表成功!"));
+	}
+
+	/**
+	 * 客户端称重提交接口(无需登录)
+	 * POST ${adminPath}/mes/mesWuliaoCz/pcsubmit
+	 * 参数:lc炉次、bc班次、type物料类型、zl重量、ucode操作人(可选)
+	 */
+	@PostMapping(value = "pcsubmit")
+	@ResponseBody
+	public CommonResp<String> pcsubmit(HttpServletRequest request) {
+		CommonResp<String> resp = new CommonResp<>();
+		String lc = request.getParameter("lc");
+		String bc = request.getParameter("bc");
+		String type = request.getParameter("type");
+		String zl = request.getParameter("zl");
+		String ucode = request.getParameter("ucode");
+
+		if (StringUtils.isBlank(lc) || StringUtils.isBlank(bc)
+				|| StringUtils.isBlank(type) || StringUtils.isBlank(zl)) {
+			resp.setResult(Global.FALSE);
+			resp.setMessage("参数错误:炉次、班次、物料类型、重量不能为空");
+			return resp;
+		}
+
+		try {
+			MesWuliaoCz entity = new MesWuliaoCz();
+			entity.setIsNewRecord(true);
+			entity.setLc(lc.trim());
+			entity.setBc(bc.trim());
+			entity.setType(type.trim());
+			entity.setZl(zl.trim());
+			if (StringUtils.isNotBlank(ucode)) {
+				entity.setRemarks(ucode.trim());
+			}
+			mesWuliaoCzService.save(entity);
+
+			resp.setResult(Global.TRUE);
+			resp.setMessage("称重提交成功");
+			resp.setData(entity.getId());
+		} catch (Exception e) {
+			logger.error("称重提交失败", e);
+			resp.setResult(Global.FALSE);
+			resp.setMessage("称重提交失败:" + e.getMessage());
+		}
+		return resp;
+	}
+
+	/**
+	 * 客户端称重记录分页查询(无需登录)
+	 * POST ${adminPath}/mes/mesWuliaoCz/pclist
+	 * 参数:pageNo、pageSize、lc、bc、type(均可选)
+	 */
+	@PostMapping(value = "pclist")
+	@ResponseBody
+	public Page<MesWuliaoCz> pclist(MesWuliaoCz mesWuliaoCz, HttpServletRequest request, HttpServletResponse response) {
+		mesWuliaoCz.setPage(new Page<>(request, response));
+		return mesWuliaoCzService.findPage(mesWuliaoCz);
+	}
+	
+}

+ 6 - 6
src/main/java/com/jeesite/modules/scheduling/ProductTjBScheduling.java

@@ -35,9 +35,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
  *   64.3   质量校验通过反馈(校验通过 MES 写 true,工位完成后 MES 写 false)
  *   74.1   整体完成信号
  *   74.0   涂胶数据采集触发
- *   76.0   涂胶序号 Word
- *   78.0   涂胶速度 Real
- *   82.0   涂胶长度 Word
+ *   66.0   涂胶序号 Word
+ *   68.0   涂胶速度 Real
+ *   72.0   涂胶长度 Word
  *
  * 配置(application.yml):
  *   mes.tj.b.enabled       是否启用(默认 false)
@@ -58,9 +58,9 @@ public class ProductTjBScheduling {
 	private static final String ADDR_QUALITY_PASS = "DB1300.64.3";
 	private static final String ADDR_COMPLETE = "DB1300.74.1";
 	private static final String ADDR_GLUE_COLLECT = "DB1300.74.0";
-	private static final String ADDR_GLUE_SEQ = "DB1300.76.0";
-	private static final String ADDR_GLUE_SPEED = "DB1300.78.0";
-	private static final String ADDR_GLUE_LENGTH = "DB1300.82.0";
+	private static final String ADDR_GLUE_SEQ = "DB1300.66.0";
+	private static final String ADDR_GLUE_SPEED = "DB1300.68.0";
+	private static final String ADDR_GLUE_LENGTH = "DB1300.72.0";
 
 	private static final String DEFAULT_PLC_IP = "10.0.40.100";
 	private static final String DEFAULT_OPRNO = "OP240B";

+ 6 - 6
src/main/java/com/jeesite/modules/scheduling/ProductTjScheduling.java

@@ -37,9 +37,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
  *   64.2   质量校验通过反馈(校验通过 MES 写 true,工位完成后 MES 写 false)
  *   64.4   涂胶数据采集触发
  *   64.5   整体完成信号(true 时提交工位 OK 并回查确认落库,成功后将 64.2 置 false)
- *   66.0   涂胶序号 Word
- *   68.0   涂胶速度 Real
- *   72.0   涂胶长度 Word
+ *   76.0   涂胶序号 Word
+ *   78.0   涂胶速度 Real
+ *   82.0   涂胶长度 Word
  *
  * 配置(application.yml):
  *   mes.tj.enabled       是否启用(默认 false)
@@ -59,9 +59,9 @@ public class ProductTjScheduling {
 	private static final String ADDR_QUALITY_PASS = "DB1300.64.2";
 	private static final String ADDR_GLUE_COLLECT = "DB1300.64.4";
 	private static final String ADDR_COMPLETE = "DB1300.64.5";
-	private static final String ADDR_GLUE_SEQ = "DB1300.66.0";
-	private static final String ADDR_GLUE_SPEED = "DB1300.68.0";
-	private static final String ADDR_GLUE_LENGTH = "DB1300.72.0";
+	private static final String ADDR_GLUE_SEQ = "DB1300.76.0";
+	private static final String ADDR_GLUE_SPEED = "DB1300.78.0";
+	private static final String ADDR_GLUE_LENGTH = "DB1300.82.0";
 
 	private static final String DEFAULT_PLC_IP = "10.0.40.100";
 	private static final String OPRNO = "OP220";

+ 15 - 0
src/main/resources/mappings/modules/mes/MesWuliaoCzDao.xml

@@ -0,0 +1,15 @@
+<?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="com.jeesite.modules.mes.dao.MesWuliaoCzDao">
+	
+	<!-- 查询数据
+	<select id="findList" resultType="MesWuliaoCz">
+		SELECT ${sqlMap.column.toSql()}
+		FROM ${sqlMap.table.toSql()}
+		<where>
+			${sqlMap.where.toSql()}
+		</where>
+		ORDER BY ${sqlMap.order.toSql()}
+	</select> -->
+	
+</mapper>

+ 82 - 0
src/main/resources/views/modules/mes/mesWuliaoCzForm.html

@@ -0,0 +1,82 @@
+<% layout('/layouts/default.html', {title: '称重数据表管理', libs: ['validate']}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header with-border">
+			<div class="box-title">
+				<i class="fa icon-note"></i> ${text(mesWuliaoCz.isNewRecord ? '新增称重数据表' : '编辑称重数据表')}
+			</div>
+			<div class="box-tools pull-right">
+				<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
+			</div>
+		</div>
+		<#form:form id="inputForm" model="${mesWuliaoCz}" action="${ctx}/mes/mesWuliaoCz/save" method="post" class="form-horizontal">
+			<div class="box-body">
+				<div class="form-unit">${text('基本信息')}</div>
+				<#form:hidden path="id"/>
+				<div class="row">
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('炉次')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="lc" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('班次')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="bc" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('物料类型')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="type" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('重量')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="zl" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="box-footer">
+				<div class="row">
+					<div class="col-sm-offset-2 col-sm-10">
+						<% if (hasPermi('mes:mesWuliaoCz:edit')){ %>
+							<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
+						<% } %>
+						<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
+					</div>
+				</div>
+			</div>
+		</#form:form>
+	</div>
+</div>
+<% } %>
+<script>
+$("#inputForm").validate({
+	submitHandler: function(form){
+		js.ajaxSubmitForm($(form), function(data){
+			js.showMessage(data.message);
+			if(data.result == Global.TRUE){
+				js.closeCurrentTabPage(function(contentWindow){
+					contentWindow.page();
+				});
+			}
+		}, "json");
+    }
+});
+</script>

+ 79 - 0
src/main/resources/views/modules/mes/mesWuliaoCzList.html

@@ -0,0 +1,79 @@
+<% layout('/layouts/default.html', {title: '称重数据表管理', libs: ['dataGrid']}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header">
+			<div class="box-title">
+				<i class="fa icon-notebook"></i> ${text('称重数据表管理')}
+			</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>
+				<% if(hasPermi('mes:mesWuliaoCz:edit')){ %>
+					<a href="${ctx}/mes/mesWuliaoCz/form" class="btn btn-default btnTool" title="${text('新增称重数据表')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
+				<% } %>
+				<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
+			</div>
+		</div>
+		<div class="box-body">
+			<#form:form id="searchForm" model="${mesWuliaoCz}" action="${ctx}/mes/mesWuliaoCz/listData" method="post" class="form-inline hide"
+					data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
+				<div class="form-group">
+					<label class="control-label">${text('炉次')}:</label>
+					<div class="control-inline">
+						<#form:input path="lc" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('班次')}:</label>
+					<div class="control-inline">
+						<#form:input path="bc" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('物料类型')}:</label>
+					<div class="control-inline">
+						<#form:input path="type" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('重量')}:</label>
+					<div class="control-inline">
+						<#form:input path="zl" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
+					<button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
+				</div>
+			</#form:form>
+			<table id="dataGrid"></table>
+			<div id="dataGridPage"></div>
+		</div>
+	</div>
+</div>
+<% } %>
+<script>
+// 初始化DataGrid对象
+$('#dataGrid').dataGrid({
+	searchForm: $("#searchForm"),
+	columnModel: [
+		{header:'${text("炉次")}', name:'lc', index:'a.lc', width:150, align:"center"},
+		{header:'${text("班次")}', name:'bc', index:'a.bc', width:150, align:"center"},
+		{header:'${text("物料类型")}', name:'type', index:'a.type', width:150, align:"center"},
+		{header:'${text("重量")}', name:'zl', index:'a.zl', width:150, align:"center", formatter: function(val, obj, row, act){
+			return (val == null || val === '') ? '' : (val + ' kg');
+		}},
+		{header:'${text("创建时间")}', name:'createDate', index:'a.create_date', width:150, align:"center"},
+		{header:'${text("操作")}', name:'actions', width:120, align:"center", formatter: function(val, obj, row, act){
+			var actions = [];
+			//<% if(hasPermi('mes:mesWuliaoCz:edit')){ %>
+				actions.push('<a href="${ctx}/mes/mesWuliaoCz/delete?id='+row.id+'" class="btnList" title="${text("删除称重数据表")}" data-confirm="${text("确认要删除该称重数据表吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
+			//<% } %>
+			return actions.join('');
+		}}
+	],
+	// 加载成功后执行事件
+	ajaxSuccess: function(data){
+		
+	}
+});
+</script>