公司-->保存时验证数据是否保存重复

SAP MM配置实战:如何让公司间STO采购单保存时,自动生成交货单? 本文详细解析了SAP MM模块中公司间STO采购单自动生成交货单的技术实现与配置方法。通过事件驱动架构和后台参数设置,实现采购单保存时自动触发交货单创建,大幅提升集团企业物资调拨效率。重点介绍了文档类型配置、工厂与装运点映射等核心机制,并提供了异常处理与性能优化建议。 阅读详情

js内容:

//提交校验,如果article,工段,部门一致则不能进行保存
function checkSave(){
	var primaryId=$("#primaryId").val();
	var articleId=$("#hidden_articleId").val();
	var sectionId=$("#sectionId").val();
	var departmentId=$("#departmentId").val();
	var isok=true;
	$.ajax({
		type : "post",
		url : contentPath + "/ajax/checkSpecialProductionPHSetArticleAndSectionAndDepartmentExist.do",
		data : {
			articleId : articleId,
			sectionId : sectionId,
			departmentId : departmentId,
			primaryId : primaryId
		},
		async : false,
		success : function(data) {
			if (data == 'true') {
				alertE('当前已经存在相同的Article,工段,部门的记录,不能保存,请检查.');
				isok = false;
			}
		}
	});
	return isok;
}


action内容:

package gts.erp.action.ajax;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.oletech.triangle.component.FormBean;

import gts.erp.action.base.ERPProxyAction;

public class CheckSpecialProductionPHSetArticleAndSectionAndDepartmentExistAction extends ERPProxyAction {

	@Override
	protected ActionForward doExecute(FormBean parameterFB, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		FormBean formBean = this.getERPServiceDelegation().getMasterProductionScheduleService().checkSpecialProductionPHSetArticleAndSectionAndDepartmentExist(parameterFB);
		
		String isExist = formBean.getCellBeanValue("isExist");
		
		PrintWriter pw = response.getWriter();
		pw.print(isExist);
		pw.flush();
		return null;
	}

}


impl内容:

/** 
	 * 判断article,工段,部门是否重复添加 
	 * @author zhuyz 
	 * @date 2016年11月19日17:48:16
	 * @param dataBean
	 * 			FormBean => key : "parameterFB"
	 *          	 CellBean key : primaryId,articleId,sectionId,departmentId
	 * @return FormBean
	 *          TableBean => key : "TN_PMC_PH_SETUP"
	 *         		        CellBean key : CN_ID,CR_ARTICLE_ID, CR_SECTION_ID, CN_LEADTIME, CN_PMC_PH_QTY,CR_DEPARTMENT_ID......
	 */
	public FormBean checkSpecialProductionPHSetArticleAndSectionAndDepartmentExist(FormBean formBean) {
		FormBean returnFB = new FormBean();
		String primaryId = formBean.getCellBeanValue("primaryId");
		String articleId = formBean.getCellBeanValue("articleId");
		String sectionId = formBean.getCellBeanValue("sectionId");
		String departmentId = formBean.getCellBeanValue("departmentId");
		String isExist = "false";
		try {
			if (StringUtils.isNotBlank(articleId) && StringUtils.isNotBlank(sectionId) && StringUtils.isNotBlank(departmentId)) {
				//查询数据库,如果存在三个条件都相同的数据,禁止添加
				CondSetBean csbPhSetup = new CondSetBeanJustAnd();
				csbPhSetup.addCondBean(new CondBeanEqual("CR_ARTICLE_ID", articleId));
				csbPhSetup.addCondBean(new CondBeanEqual("CR_SECTION_ID", sectionId));
				csbPhSetup.addCondBean(new CondBeanEqual("CR_DEPARTMENT_ID", departmentId));
				if (StringUtils.isNotEmpty(primaryId)) {
					csbPhSetup.addCondBean(new CondBeanNotEqual(TriangleDefinition.COLUMN_NAME_CN_ID, primaryId));
				}
				TableBean pmcPhSetupTB = this.baseDAO.queryForTableBean(new ClassPOJO("TN_PMC_PH_SETUP"), csbPhSetup);
				if (pmcPhSetupTB.size() > 0) {
					isExist = "true";
				}
			}
			returnFB.addCellBean(new CellBean("isExist", isExist));
		} catch (Exception e) {
			TriangleBLHelper.printExceptionLog(log, e);
			e.printStackTrace();
			throw new RuntimeException("**** Run time Exception!****");
		}
		return returnFB;
	}




Dev-C++自定义C语言源文件模板:告别重复代码,提升编程效率 在C语言编程实践中,代码模板是提升开发效率、确保代码规范性的重要工具。其原理是通过预定义的文件框架,在创建新文件时自动生成包含常用头文件、函数结构和代码风格的初始内容,从而减少重复劳动和人为错误。对于使用经典IDE Dev-C++的开发者而言,掌握其内置的模板机制具有显著的工程价值,能直接将个人常用配置(如调试宏、注释规范)固化到每个新项目中。本文聚焦于如何通过修改Dev-C++的模板配置文件,实现一键生成包含预置头文件、宏定义及调试代码的个性化C源文件,有效解决初学者和竞赛选手在练习中反复编写基础框架的痛 阅读详情

相关推荐

生产级前端表单设计:语义化、验证与无障碍实践

表单是Web应用中用户意图结构化表达的核心载体,其本质远超HTML标签组合,涉及语义化标记、分层验证逻辑、实时交互反馈与无障碍可访问性等基础能力。从`<input type="email">`的原生校验优势,到`<label>`与`id`的严格绑定对屏幕阅读器的关键支撑,再到`blur`/`input`/`submit`三阶段验证时机的工程权衡,每一个细节都直接影响用户信任与转化率。现代表单需兼顾数据安全(防手滑+防重提交)、状态可溯(支持草稿与撤回)及国际化适配(RTL、占位符长度、日期格式)。本文基于真

clugcpne10995的博客 413

当对某个表中的数据进行添加时,验证添加的内容是否重复

功能介绍:例如添加一类信息,当点击保存按钮时,先对添加的数据进行查重验证,如果重复则后端返回'error',前端根据后端的'error'提示信息重复,如果没有重复,则后端返回‘ok’,程序继续进行数据的入库。 实现方法: 第一步: 先在service层中的入库sql语句前添加一个判断 如果(if)我添加的‘sign’在数据库中已经存在时,就会显示error。 否则(else)就说明‘sign’没有存在,就会继续执行入库操作。 第二步:在前端的写一个点击保存后接...

weixin_49125510的博客 3946

车辆动力学从入门到进阶之路(传统篇)

新手如何入门车辆动力学开发领域,本文为您引路!

CrazyRabbit的博客 1万+

java(若依)防止表单重复提交

三、继承RepeatSubmitInterceptor抽象方法实现,重写isRepeatSubmit抽象方法,实现具体的校验规则。二、实现HandlerInterceptor,创建RepeatSubmitInterceptor抽象方法。四、构建可重复读取inputStream的request。一、创建 RepeatSubmit 自定义注解。五、把已写好的拦截器添加到mvc的拦截器组中。

shouji6175的博客 4630

快速谱峭度算法解析

最近一直在研究振动信号的最优解调带宽寻找方法,而快速谱峭度算法是最常见的一种,因此本篇文章准备对该算法做个深入解析,也相当于自己的学习记录了。本篇文章对快速谱峭度算法做了一个较为详细的介绍,实际上就是通过多组滤波器将信号分解到不同的频段,再计算每个频段的峭度,从而找到值最大的频段,进一步地我们也可以选取其他指标作为频段的选择,以便更好地找到振动信号中的故障信息。

qq1234534215的博客 2743

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程

本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。

weixin_30687051的博客 194

若依框架数据查重问题

若依框架数据查重、重复问题

m0_59182902的博客 456

保姆级教程:用Seurat 5.0.1搞定单细胞测序数据从质控到细胞注释的全流程

本文提供了一份详细的Seurat 5.0.1单细胞测序数据分析教程,涵盖从数据质控到细胞注释的全流程。通过R代码示例和可视化分析,帮助用户掌握单细胞RNA测序数据处理的核心技术,包括数据标准化、降维聚类和细胞类型注释,适用于生物信息学研究和临床数据分析。

weixin_29067143的博客 201

若依-单机器多服务器定时任务重复执行问题解决-分布式锁

若依-单机器多服务器定时任务重复执行问题解决-分布式锁

qq_56324983的博客 4921

华为S7700交换机Console密码重置全流程详解

本文详细解析了华为S7700交换机Console密码丢失后的重置全流程。通过进入BootROM菜单清除密码,并涵盖单/双主控场景操作、必备工具连接、常见问题排查及重置后的安全配置建议,帮助网络工程师掌握核心交换机的关键应急恢复技能,确保运维安全。

resnet7explorer的博客 542

Day01 Geant4学习

​ 用来记录粒子在每个step中的信息的,例如位置,能量,动量.例如,假设每一个粒子都有一个属于自己的id,会记录自己的轨迹状态信息就是track,当他发生反应时,就会产生新的id。​ 最终在新建的build文件夹中的vis.mac文件中设置,是自带的,如果有更高的需求可以自己去更改,但是一般都是写好的,设置好了图形界面的一些东西,呈现的自己建模的图形界面多大,需不需要网格什么的。从反应到结束的过程,其中也包括它产生的刺激粒子的反应到结束的过程,成为一个事件event。

LXS_357的博客 933

ajax检验前台表单数据库,表单保存时前端先通过ajax请求到服务器作检验(controller)...

前端请求://保存函比抖朋要插支一圈不者地数function tmpSave(){if(!checkInput()) //先做必输项校验,具体函数没写出{return;}//服务器校验(判断companyName在数据库是否存在)var companyName = $("#COMPANY_NAME").val();$.ajax({type: "POST",url: 'customer/isRep...

weixin_30456719的博客 328

Sharding Sphere JDBC使用Mybatis的saveBatch无法返回主键的问题

Sharding Sphere JDBC使用Mybatis的saveBatch无法返回主键的问题

HHCS231的博客 1837

ajax input name 重名,ajax验证重名的感想

Action层:Long companyId = detailBean.getId();String companyName = detailBean.getCompanyName().trim();boolean i***ist = companyTask.doCompanyNameCheck(companyName, companyId == null ? -1 : companyId);Da...

weixin_42170064的博客 361

MDIO接口协议与其详解——单片机

在单片机领域,通过MDIO接口可以与外部设备进行通信,实现对设备的控制和数据的读写。通过本文的介绍,你可以了解到MDIO接口协议的原理和使用方法,并参考源代码示例进行实际的开发和应用。具体的初始化方法与单片机的型号和开发环境有关,可以参考相应的单片机手册和开发工具的文档。(1)发送读取命令:向MDIO线发送读取命令,通常是发送一个特定的控制字节,用于指示要读取的寄存器地址。(1)发送写入命令:向MDIO线发送写入命令,通常是发送一个特定的控制字节,用于指示要写入的寄存器地址。二、MDIO接口协议使用方法。

web_class282的博客 2627

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP MM配置实战:如何让公司间STO(ZNB类型)一保存就自动生成交货单?

本文详细解析了SAP MM模块中实现公司间STO(ZNB类型)自动生成交货单的配置方法。通过主数据控制和事务配置联动,可大幅提升供应链效率,确保数据一致性。文章涵盖核心逻辑、分步配置指南、高级场景适配及运维监控,为企业实现库存调拨自动化提供完整解决方案。

weixin_33725807的博客 445

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

了解在页面上去数据库新增数据的思路以及数据走向

快速了解在页面上去数据库新增数据的思路以及数据走向 在编程这条路上行走,最复杂的代码都是有查询,新增,修改(更新),删除,这基本的四个操作来演绎出来的。那么现在,我就来为大家分享一下,我的个人理解新增的方法,以及思路。 要新增数据,我们要知道,我们要在哪新增数据,要新增一些什么数据,然后,我们要在新增之前要判断我们新增的数据是否跟之前的数据重复,如果重复,我们们就要给用户做出先对应的提示。 下面是...

qq_44540112的博客 507

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

测试中容易漏测的点,你踩过坑么?

在测试的过程中,有些测试点是在需求说明文档里明确提到的,比如果输入框的输入要求是什么、是否必填等等。对于有经验的测试人来说,有一些测试点,是我们在以往的测试经验中总结出来的,而对于初学者往往会忽略一些没有在需求中列明的点。对于不同模块的测试,我们需要着重注意的点也不一样,下面我们来总结一下注意点或者易错点。

qq_48811377的博客 974

DolphinScheduler 3.x 用户看过来:一个技巧,让你所有工作流自动继承“公司级”公共变量

本文介绍了DolphinScheduler 3.x企业级变量治理方案,通过自动配置和自定义变量管理,实现工作流变量的智能继承。该方案解决了传统变量管理的碎片化、变更滞后性和合规风险问题,显著提升数据团队协作效率,适用于金融、零售等行业的数据治理场景。

weixin_28730353的博客 296

AutoSimple:Excel自动化脚本工具,解放重复数据处理工作

在数据处理领域,自动化脚本技术正成为提升效率的关键手段,其核心原理是通过编程或配置模拟人工操作,实现任务的批量、准确执行。这项技术的核心价值在于将重复性劳动转化为可复用的数字流程,显著减少人为错误并释放人力资源。在办公自动化(OA)和数据处理场景中,尤其适用于规则明确、周期性强的表格操作任务,例如数据清洗、多表合并和报告生成。AutoSimple正是基于这一理念设计的工具,它通过降低使用门槛,让用户能快速构建自动化流程,高效应对多条件筛选、数据核对等高频需求,从而将Excel操作从繁琐的手动劳动中解放出来。

weixin_33738578的博客 721

Office RibbonX Editor:零编程定制Office功能区的终极免费指南

你是否厌倦了Office默认的功能区布局?是否希望为团队创建统一的操作界面却苦于缺乏编程知识?Office RibbonX Editor正是为你量身打造的免费开源解决方案!这款基于WPF开发的工具让普通用户也能轻松定制Microsoft Office的功能区、Backstage视图和上下文菜单,无需编写任何代码。🚀 ## 为什么你需要Office RibbonX Editor? ### 传统

gitblog_00890的博客 235

利用Claude实现Excel自动化:告别重复劳动,提升数据处理效率

在数据处理与办公自动化领域,Excel作为核心工具,其公式函数(如VLOOKUP、SUMIFS)与数据透视表是处理报表、核对信息的基础。其原理在于通过预设规则对结构化数据进行计算、匹配与汇总。掌握这些技能能显著提升数据清洗、报表生成等场景的效率,减少人工错误。然而,面对复杂逻辑、多表关联或批量文件操作时,传统方法往往耗时且易出错。此时,结合AI助手进行自动化处理成为新的技术价值点。通过自然语言交互,AI能理解业务需求,自动生成Python脚本或精准公式,将繁琐操作转化为一键执行。本文聚焦如何利用Claude

weixin_33968104的博客 335

Office RibbonX Editor:零编程定制Office界面的终极免费开源工具

你是否厌倦了Office默认的功能区布局?是否想为团队创建统一的操作界面却不知从何下手?Office RibbonX Editor正是为解决这些痛点而生的免费开源工具,让你无需编程基础,轻松定制Microsoft Office的功能区、Backstage视图和上下文菜单。这款基于WPF开发的开源编辑器是原始Custom UI Editor的重大升级,为普通用户和专业开发者都提供了强大的Office

gitblog_00829的博客 155

Office RibbonX Editor:零代码定制Office界面,工作效率翻倍的秘密武器 [特殊字符]

你是否厌倦了在Office中反复点击层层菜单寻找所需功能?是否梦想着拥有一个完全按照自己工作习惯定制的Office界面?Office RibbonX Editor正是你寻找的解决方案!这款免费开源工具让你无需编写一行代码,就能轻松定制Microsoft Office的功能区、Backstage视图和上下文菜单,彻底改变你的Office使用体验。✨ ## 为什么你需要Office界面定制工具?🤔

gitblog_01082的博客 135

SysTools重复文件清理工具:从哈希原理到实战避坑指南

在数据管理领域,重复文件是普遍存在的痛点,它们不仅浪费存储空间,更影响工作效率。其核心原理在于通过哈希算法(如MD5、SHA-1)为文件生成唯一的数字指纹,内容相同的文件其哈希值必然一致,从而实现精准比对。这项技术的价值在于将繁琐的人工比对自动化,提升数据治理效率,广泛应用于个人电脑优化、服务器存储清理及数字资产管理等场景。本文以SysTools Duplicates Finder & Remover为例,深入解析其基于哈希的重复判定逻辑与安全移除机制,并针对大文件扫描耗时、误删风险等常见问题提供解决方案,

weixin_34396902的博客 360
上一篇: 公司-->查看SQL 用web.xml文件
下一篇: 公司-->ajax获取数据
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值