Ver código fonte

生产领料单

zhanghe 5 meses atrás
pai
commit
8fb50aa8e7

+ 15 - 0
src/main/java/com/jeesite/modules/erp/dao/MesMaterialErpDao.java

@@ -0,0 +1,15 @@
+package com.jeesite.modules.erp.dao;
+
+import com.jeesite.common.dao.CrudDao;
+import com.jeesite.common.mybatis.annotation.MyBatisDao;
+import com.jeesite.modules.erp.entity.MesMaterialErp;
+
+/**
+ * mes_material_erpDAO接口
+ * @author system
+ * @version 2026-05-07
+ */
+@MyBatisDao
+public interface MesMaterialErpDao extends CrudDao<MesMaterialErp> {
+	
+}

+ 86 - 0
src/main/java/com/jeesite/modules/erp/entity/MesMaterialErp.java

@@ -0,0 +1,86 @@
+package com.jeesite.modules.erp.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;
+
+/**
+ * mes_material_erpEntity
+ * @author system
+ * @version 2026-05-07
+ */
+@Table(name="mes_material_erp", alias="a", label="mes_material_erp信息", columns={
+		@Column(name="id", attrName="id", label="id", isPK=true),
+		@Column(name="material_code", attrName="materialCode", label="物料单号"),
+		@Column(name="material_name", attrName="materialName", label="物料名称", queryType=QueryType.LIKE),
+		@Column(name="material_number", attrName="materialNumber", label="物料数量"),
+		@Column(name="materiar_size", attrName="materiarSize", label="物料规格"),
+		@Column(name="requisition_no", attrName="requisitionNo", label="物料领料单"),
+	}, orderBy="a.id DESC"
+)
+public class MesMaterialErp extends DataEntity<MesMaterialErp> {
+	
+	private static final long serialVersionUID = 1L;
+	private String materialCode;		// 物料单号
+	private String materialName;		// 物料名称
+	private String materialNumber;		// 物料数量
+	private String materiarSize;		// 物料规格
+	private String requisitionNo;		// 物料领料单
+
+	public MesMaterialErp() {
+		this(null);
+	}
+	
+	public MesMaterialErp(String id){
+		super(id);
+	}
+	
+	@Size(min=0, max=255, message="物料单号长度不能超过 255 个字符")
+	public String getMaterialCode() {
+		return materialCode;
+	}
+
+	public void setMaterialCode(String materialCode) {
+		this.materialCode = materialCode;
+	}
+	
+	@Size(min=0, max=255, message="物料名称长度不能超过 255 个字符")
+	public String getMaterialName() {
+		return materialName;
+	}
+
+	public void setMaterialName(String materialName) {
+		this.materialName = materialName;
+	}
+	
+	@Size(min=0, max=255, message="物料数量长度不能超过 255 个字符")
+	public String getMaterialNumber() {
+		return materialNumber;
+	}
+
+	public void setMaterialNumber(String materialNumber) {
+		this.materialNumber = materialNumber;
+	}
+	
+	@Size(min=0, max=255, message="物料规格长度不能超过 255 个字符")
+	public String getMateriarSize() {
+		return materiarSize;
+	}
+
+	public void setMateriarSize(String materiarSize) {
+		this.materiarSize = materiarSize;
+	}
+	
+	@Size(min=0, max=255, message="物料领料单长度不能超过 255 个字符")
+	public String getRequisitionNo() {
+		return requisitionNo;
+	}
+
+	public void setRequisitionNo(String requisitionNo) {
+		this.requisitionNo = requisitionNo;
+	}
+	
+}

+ 86 - 0
src/main/java/com/jeesite/modules/erp/service/MesMaterialErpService.java

@@ -0,0 +1,86 @@
+package com.jeesite.modules.erp.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.erp.entity.MesMaterialErp;
+import com.jeesite.modules.erp.dao.MesMaterialErpDao;
+import com.jeesite.modules.file.utils.FileUploadUtils;
+
+/**
+ * mes_material_erpService
+ * @author system
+ * @version 2026-05-07
+ */
+@Service
+public class MesMaterialErpService extends CrudService<MesMaterialErpDao, MesMaterialErp> {
+	
+	/**
+	 * 获取单条数据
+	 * @param mesMaterialErp
+	 * @return
+	 */
+	@Override
+	public MesMaterialErp get(MesMaterialErp mesMaterialErp) {
+		return super.get(mesMaterialErp);
+	}
+	
+	/**
+	 * 查询分页数据
+	 * @param mesMaterialErp 查询条件
+	 * @param mesMaterialErp.page 分页对象
+	 * @return
+	 */
+	@Override
+	public Page<MesMaterialErp> findPage(MesMaterialErp mesMaterialErp) {
+		return super.findPage(mesMaterialErp);
+	}
+	
+	/**
+	 * 查询列表数据
+	 * @param mesMaterialErp
+	 * @return
+	 */
+	@Override
+	public List<MesMaterialErp> findList(MesMaterialErp mesMaterialErp) {
+		return super.findList(mesMaterialErp);
+	}
+	
+	/**
+	 * 保存数据(插入或更新)
+	 * @param mesMaterialErp
+	 */
+	@Override
+	@Transactional
+	public void save(MesMaterialErp mesMaterialErp) {
+		super.save(mesMaterialErp);
+		// 保存上传图片
+		FileUploadUtils.saveFileUpload(mesMaterialErp, mesMaterialErp.getId(), "mesMaterialErp_image");
+		// 保存上传附件
+		FileUploadUtils.saveFileUpload(mesMaterialErp, mesMaterialErp.getId(), "mesMaterialErp_file");
+	}
+	
+	/**
+	 * 更新状态
+	 * @param mesMaterialErp
+	 */
+	@Override
+	@Transactional
+	public void updateStatus(MesMaterialErp mesMaterialErp) {
+		super.updateStatus(mesMaterialErp);
+	}
+	
+	/**
+	 * 删除数据
+	 * @param mesMaterialErp
+	 */
+	@Override
+	@Transactional
+	public void delete(MesMaterialErp mesMaterialErp) {
+		super.delete(mesMaterialErp);
+	}
+	
+}

+ 121 - 0
src/main/java/com/jeesite/modules/erp/web/MesMaterialErpController.java

@@ -0,0 +1,121 @@
+package com.jeesite.modules.erp.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.web.BaseController;
+import com.jeesite.modules.erp.entity.MesMaterialErp;
+import com.jeesite.modules.erp.service.MesMaterialErpService;
+
+/**
+ * mes_material_erpController
+ * @author system
+ * @version 2026-05-07
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/erp/mesMaterialErp")
+public class MesMaterialErpController extends BaseController {
+
+	@Autowired
+	private MesMaterialErpService mesMaterialErpService;
+
+	/**
+	 * 获取数据
+	 */
+	@ModelAttribute
+	public MesMaterialErp get(String id, boolean isNewRecord) {
+		return mesMaterialErpService.get(id, isNewRecord);
+	}
+
+	/**
+	 * 查询列表
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:view")
+	@RequestMapping(value = {"list", ""})
+	public String list(MesMaterialErp mesMaterialErp, Model model) {
+		model.addAttribute("mesMaterialErp", mesMaterialErp);
+		return "modules/erp/mesMaterialErpList";
+	}
+
+	/**
+	 * 查询列表数据
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:view")
+	@RequestMapping(value = "listData")
+	@ResponseBody
+	public Page<MesMaterialErp> listData(MesMaterialErp mesMaterialErp, HttpServletRequest request, HttpServletResponse response) {
+		mesMaterialErp.setPage(new Page<>(request, response));
+		Page<MesMaterialErp> page = mesMaterialErpService.findPage(mesMaterialErp);
+		return page;
+	}
+
+	/**
+	 * 查看编辑表单
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:view")
+	@RequestMapping(value = "form")
+	public String form(MesMaterialErp mesMaterialErp, Model model) {
+		model.addAttribute("mesMaterialErp", mesMaterialErp);
+		return "modules/erp/mesMaterialErpForm";
+	}
+
+	/**
+	 * 保存数据
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:edit")
+	@PostMapping(value = "save")
+	@ResponseBody
+	public String save(@Validated MesMaterialErp mesMaterialErp) {
+		mesMaterialErpService.save(mesMaterialErp);
+		return renderResult(Global.TRUE, text("保存mes_material_erp成功!"));
+	}
+
+	/**
+	 * 停用数据
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:edit")
+	@RequestMapping(value = "disable")
+	@ResponseBody
+	public String disable(MesMaterialErp mesMaterialErp) {
+		mesMaterialErp.setStatus(MesMaterialErp.STATUS_DISABLE);
+		mesMaterialErpService.updateStatus(mesMaterialErp);
+		return renderResult(Global.TRUE, text("停用mes_material_erp成功"));
+	}
+
+	/**
+	 * 启用数据
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:edit")
+	@RequestMapping(value = "enable")
+	@ResponseBody
+	public String enable(MesMaterialErp mesMaterialErp) {
+		mesMaterialErp.setStatus(MesMaterialErp.STATUS_NORMAL);
+		mesMaterialErpService.updateStatus(mesMaterialErp);
+		return renderResult(Global.TRUE, text("启用mes_material_erp成功"));
+	}
+
+	/**
+	 * 删除数据
+	 */
+	@RequiresPermissions("erp:mesMaterialErp:edit")
+	@RequestMapping(value = "delete")
+	@ResponseBody
+	public String delete(MesMaterialErp mesMaterialErp) {
+		mesMaterialErpService.delete(mesMaterialErp);
+		return renderResult(Global.TRUE, text("删除mes_material_erp成功!"));
+	}
+
+}

+ 3 - 3
src/main/java/com/jeesite/modules/mes/web/MesProductController.java

@@ -287,12 +287,12 @@ public class MesProductController extends BaseController {
 
 	@RequestMapping(value = {"screen", ""})
 	public String screen(Model model) {
-		return "modules/mes/mesScreen3";
+		return "modules/mes/mesScreen4";
 	}
 
 	@RequestMapping(value = {"screen3"})
 	public String screen3(Model model) {
-		return "modules/mes/mesScreen3";
+		return "modules/mes/mesScreen4";
 	}
 
 	@RequestMapping(value = "alarmData")
@@ -443,7 +443,7 @@ public class MesProductController extends BaseController {
 //			planCount = Integer.valueOf(planInfo.getPlanCount());
 //		}
 
-		// 获取当日OP40上线数(作为计划)
+		// 获取当日OP10上线数(作为计划)
 		String op40DayCount = mesProductRecordService.getSjOk("OP10", "XT", sdate1, edate1);
 		todayPlan = Integer.valueOf(op40DayCount);
 

+ 15 - 0
src/main/resources/mappings/modules/erp/MesMaterialErpDao.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.erp.dao.MesMaterialErpDao">
+	
+	<!-- 查询数据
+	<select id="findList" resultType="MesMaterialErp">
+		SELECT ${sqlMap.column.toSql()}
+		FROM ${sqlMap.table.toSql()}
+		<where>
+			${sqlMap.where.toSql()}
+		</where>
+		ORDER BY ${sqlMap.order.toSql()}
+	</select> -->
+	
+</mapper>

BIN
src/main/resources/static/screen/imgs/ljrSreen1.png


+ 115 - 0
src/main/resources/views/modules/erp/mesMaterialErpForm.html

@@ -0,0 +1,115 @@
+<% layout('/layouts/default.html', {title: 'mes_material_erp管理', libs: ['validate','fileupload']}){ %>
+<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(mesMaterialErp.isNewRecord ? '新增mes_material_erp' : '编辑mes_material_erp')}
+			</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="${mesMaterialErp}" action="${ctx}/erp/mesMaterialErp/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="materialCode" maxlength="255" 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="materialName" maxlength="255" 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="materialNumber" maxlength="255" 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="materiarSize" maxlength="255" 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="requisitionNo" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="row">
+					<div class="col-xs-12">
+						<div class="form-group">
+							<label class="control-label col-sm-2">
+								<span class="required hide">*</span> ${text('图片上传')}:</label>
+							<div class="col-sm-10">
+								<#form:fileupload id="uploadImage" bizKey="${mesMaterialErp.id}" bizType="mesMaterialErp_image"
+									uploadType="image" class="" readonly="false" preview="true"/>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="row">
+					<div class="col-xs-12">
+						<div class="form-group">
+							<label class="control-label col-sm-2">
+								<span class="required hide">*</span> ${text('附件上传')}:</label>
+							<div class="col-sm-10">
+								<#form:fileupload id="uploadFile" bizKey="${mesMaterialErp.id}" bizType="mesMaterialErp_file"
+									uploadType="all" class="" readonly="false" preview="true"/>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="box-footer">
+				<div class="row">
+					<div class="col-sm-offset-2 col-sm-10">
+						<% if (hasPermi('erp:mesMaterialErp: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>

+ 91 - 0
src/main/resources/views/modules/erp/mesMaterialErpList.html

@@ -0,0 +1,91 @@
+<% layout('/layouts/default.html', {title: 'mes_material_erp管理', 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('erp:mesMaterialErp:edit')){ %>
+					<a href="${ctx}/erp/mesMaterialErp/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="${mesMaterialErp}" action="${ctx}/erp/mesMaterialErp/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="materialCode" maxlength="255" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('物料名称')}:</label>
+					<div class="control-inline">
+						<#form:input path="materialName" maxlength="255" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('物料数量')}:</label>
+					<div class="control-inline">
+						<#form:input path="materialNumber" maxlength="255" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('物料规格')}:</label>
+					<div class="control-inline">
+						<#form:input path="materiarSize" maxlength="255" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('生产领料单单号')}:</label>
+					<div class="control-inline">
+						<#form:input path="requisitionNo" maxlength="255" 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:'materialCode', index:'a.material_code', width:150, align:"left", frozen:true, formatter: function(val, obj, row, act){
+			return '<a href="${ctx}/erp/mesMaterialErp/form?id='+row.id+'" class="btnList" data-title="${text("编辑mes_material_erp")}">'+(val||row.id)+'</a>';
+		}},
+		{header:'${text("物料名称")}', name:'materialName', index:'a.material_name', width:150, align:"left"},
+		{header:'${text("物料数量")}', name:'materialNumber', index:'a.material_number', width:150, align:"left"},
+		{header:'${text("物料规格")}', name:'materiarSize', index:'a.materiar_size', width:150, align:"left"},
+		{header:'${text("生产领料单")}', name:'requisitionNo', index:'a.requisition_no', width:150, align:"left"},
+		{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
+			var actions = [];
+			//<% if(hasPermi('erp:mesMaterialErp:edit')){ %>
+				actions.push('<a href="${ctx}/erp/mesMaterialErp/form?id='+row.id+'" class="btnList" title="${text("编辑")}"><i class="fa fa-pencil"></i></a>&nbsp;');
+				if (row.status == Global.STATUS_NORMAL){
+					actions.push('<a href="${ctx}/erp/mesMaterialErp/disable?id='+row.id+'" class="btnList" title="${text("停用")}" data-confirm="${text("确认要停用吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
+				} else if (row.status == Global.STATUS_DISABLE){
+					actions.push('<a href="${ctx}/erp/mesMaterialErp/enable?id='+row.id+'" class="btnList" title="${text("启用")}" data-confirm="${text("确认要启用吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
+				}
+				actions.push('<a href="${ctx}/erp/mesMaterialErp/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>

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

@@ -270,7 +270,7 @@
 
 	<div class="mes4-header">
 		<img class="mes4-logo" src="${ctxStatic}/screen/imgs/ljrLogo.png" alt="logo">
-		<div class="mes4-title"半成品【P10-P70】阶段统计大屏</div>
+		<div class="mes4-title">半成品【P10-P70】阶段统计大屏</div>
 		<div class="mes4-datetime">
 			<span class="mes4-date" id="mes4Date"></span>
 			<span class="mes4-time" id="mes4Time"></span>