修改信息

	public int modifyMiss(RESINFO bean, List<MISSINGISTEMS> missings, List<MISSINGISTEMS> missList) throws Exception {
		int result = StatusType.DEFAULT ;  

    	RESINFO resinfo = new RESINFO();
    	resinfo.setID(bean.getID());
    	resinfo = this.bean(resinfo);

    	List<MISSINGISTEMS> missingModify = new ArrayList<MISSINGISTEMS>();//存储添加和删除的缺件信息
    	List<MISSINGISTEMS> missingDel = new ArrayList<MISSINGISTEMS>();//存储删除的缺件信息列表
    	List<MISSINGISTEMS> missingAdd = new ArrayList<MISSINGISTEMS>();//存储添加进来的缺件信息列表

    	if (NoneType.isNullOrEmpty(missings) && NoneType.isNullOrEmpty(missList)) {//说明修改前后都没有缺件
    		result = this.daoProvider().modify(bean);

		}else if (NoneType.isNullOrEmpty(missings) && !NoneType.isNullOrEmpty(missList) ) {//修改前没有缺件,修改后存在缺件

			for(MISSINGISTEMS missingistems : missList ){
    			missingistems.setID(KeyGenerator.instance().getKey());
    			missingistems.setRESID(resinfo.getID());
    		}

    		this.daoProvider(false).batchInsert(missList);
    		result = this.daoProvider().modify(bean);

		}else if (!NoneType.isNullOrEmpty(missings) && NoneType.isNullOrEmpty(missList)) {//修改后删除全部的缺件
			this.daoProvider(false).batchDelete(missings);
			result = this.daoProvider().modify(bean);

		}else {
			missingModify = getDiffrent(missings, missList);//找到新增和删除掉的缺件

			for(MISSINGISTEMS miss : missingModify){

				if (NoneType.isNullOrEmpty(miss.getID())) {//找到新增的缺件信息
					missingAdd.add(miss);

				}else{
					missingDel.add(miss);
				}
			}

			for(MISSINGISTEMS missing : missingAdd ){
				missing.setID(KeyGenerator.instance().getKey());
				missing.setRESID(resinfo.getID());
    		}

			if(!NoneType.isNullOrEmpty(missingAdd)){
				this.daoProvider(false).batchInsert(missingAdd);
			}

			if(!NoneType.isNullOrEmpty(missingDel)){
				this.daoProvider(false).batchDelete(missingDel);
			}

			result = this.daoProvider().modify(bean);
		}

        return result ;
	}

	/**
     * 获取两个List的不同元素
     * @param missings 表示修改前的缺件信息列表
     * @param missList 表示修改后的缺件信息列表
     * @return
     */
    private static List<MISSINGISTEMS> getDiffrent(List<MISSINGISTEMS> missings, List<MISSINGISTEMS> missList) {
    	List<MISSINGISTEMS> missingistems = new ArrayList<MISSINGISTEMS>();

    	for(MISSINGISTEMS miss : missList){

    		if (NoneType.isNullOrEmpty(miss.getID())) {//找到新增的缺件信息
				missingistems.add(miss);
			}
    	}

    	for(MISSINGISTEMS missing : missings){

    		if(!missList.contains(missing)){//找到删除掉的缺件信息
    			missingistems.add(missing);
    		}
    	}

        return missingistems;
    }
}

  

原文地址:https://www.cnblogs.com/singworld/p/9927249.html

时间: 2024-12-24 12:22:20

修改信息的相关文章

DataGridView控件选中单元格、直接在控件中修改信息

                                                           原文取自个人博客:www.jycoder.com欢迎访问 一,获取DataGridView控件中的当前单元格 若要与DataGridView进行交互,通常要求用编程的方式发现哪个单元格出于活动状态.如果需要更改单元格,可通过DataGridView控件的CurrentCell属性来获取当前单元格的信息: 语法如下: Public DataGridViewCell CurrentC

学生学籍管理系统_学生登陆系统查询与修改信息

SCx.java package studentManage; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class SCx extends JFrame implements ActionListener { static SCx s; static JLabel label1 = new JLabel("学号:"); static JText

微信电脑版怎么修改信息提示音

微信电脑版修改信息提示音的方法如下: 1.安装最新版的电脑微信 微信文件安装在 D:/software/weChat文件夹中 2.安装eXeScope软件,这个网上可以找到. 3.电脑微信关闭状态,打开eXeScope.exe文件. 4.打开微信根目录,找到WeChatResource.dll文件 5.用eXeScope打开WeChatResource.dll,并如图找到wave中的118.118就是微信的通知文件. 6.找到我们想要更改的铃声.并重命名为118.wav 7.导入我们新的铃声文件

修改信息,一些对于不需要改的字段处理

如:我们编辑好一条数据,然后进行发布操作,这样在商城就能进行购买. 修改:编辑资源保存的时候进行逻辑判断 是否发布和资源状态两个字段不需要改变. 如下面方法: /// <summary>        ///     编辑资源信息        /// </summary>        [AbpAuthorize(ResourceAppPermissions.Resource_EditResource)]        public virtual async Task Upda

vue的模糊查询和下拉菜单修改信息------------学习记录

HTML代码<div id="box"> <div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-heade

angulr小例子,增加修改信息

<!DOCTYPE html> <html> <head> <title>测试</title> <meta charset="utf-8"> <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body>

virtualbox/vbox硬件级虚拟机系统 去虚拟化 批量启动克隆修改信息工具 超能版

virtualbox/vbox硬件级虚拟机系统https://item.taobao.com/item.htm?id=588413759988QQ:1311190882 1.全自动安装虚拟机2.批量克隆(完全克隆和链接克隆)3.批量修改4.支持自动共享文件夹给虚拟机使用5.支持文件拖放到虚拟机内部6.主机与虚拟机直接文字自由复制黏贴7.超级NAT功能在NAT模式下,每个虚拟机可以指定不同的网段IP地址,如:虚拟机A的内网IP地址192.168.2.x 虚拟机B的内网IP地址192.168.3.x

学生信息管理系统修改

北京工业大学耿丹学院 c语言设计课程报告   课程设计名称:高级语言程序设计 专业班级:计算机科学与技术1 姓名:吴双 学号:150809201   2016年5月10日 一 对c语言指针链表的体会 ------------------------ 二 修改学生信息管理系统 ------------------------ 三 体会 ------------------------ 一 对c语言指针链表的体会 1.指针 简单来说,指针是一个存储计算机内存地址的变量. 用 int *ptr 这种形

银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能

========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 取钱功能通过修改用户信息中的余额实现 修改用户信息 要先获取用户信息 ,再把修改后的信息保存到List中,同时必须删除原有的用户信息. ========项目功能需求============= 该银行管理系统可以实现 以下主要几个功能 用户注册   注册成功才能进行用户登录 用户登录  登录成功后