起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3612|回复: 5

[结贴] 获取date的

[复制链接]

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
发表于 2017-3-7 16:50:59 | 显示全部楼层 |阅读模式
我在保存方法里面加上了一些重复判断的条件,抛出了throws Exception的异常
前端有错误提示,关闭错误提示后,重新修改后,再次提交,
Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );   
Iterator<Row> rowsNew = table.iterator(com.justep.system.data.ModifyState.NEW );   
这2个集合里面取不到刚重新提交的数据,这个应该怎么处理?

public static int saveCO_XM(List insertRange,List deleteRange,List updateRange,String concept,String dataModel,String fnModel,String readOnly,String notNull,Table table) throws Exception{
                logger.info("保存项目");
                //获得所有更改的行
        Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );   
            String currentGH = ContextHelper.getOperator().getCode();        //获取当前登录人
        Timestamp currentDate = com.justep.system.util.CommonUtils.getCurrentDateTime();                //获取当前时间
        int countNum = 0;
        while (rows.hasNext()){
                Row row = rows.next();  
                try{
                    row.setValue("fUpdatePerson",currentGH); //给列赋值
                    row.setDateTime("fUpdateTime", currentDate);
                        }catch(Exception e){
                                logger.info("无更新人更新时间的列");
                        }
                String fID = row.getString("CO_XM");
                String fFYDM = row.getString("fFYDM");
                countNum = workinghoursService.judgefFYDM( fFYDM, fID);
        }
        if(countNum>0){
                throw new Exception("费用代码重复,请重新输入!");
        }
        //获得所有新增的行
        Iterator<Row> rowsNew = table.iterator(com.justep.system.data.ModifyState.NEW );   
        while (rowsNew.hasNext()){
                Row rowNew = rowsNew.next();  
                try{
                        rowNew.setValue("fCreatePerson",currentGH); //给列赋值
                        rowNew.setDateTime("fCreationTime", currentDate);
                        rowNew.setValue("fUpdatePerson",currentGH); //给列赋值
                        rowNew.setDateTime("fUpdateTime", currentDate);
                        }catch(Exception e){
                                logger.info("无创建人创建时间更新人更新时间的列");
                        }
                String fID = rowNew.getString("CO_XM");
                String fFYDM = rowNew.getString("fFYDM");
                countNum = workinghoursService.judgefFYDM( fFYDM, fID);
        }
        if(countNum>0){
                throw new Exception("费用代码重复,请重新输入!");
        }
                return BizData.save(table, concept, insertRange, deleteRange, updateRange, readOnly, notNull, dataModel, fnModel);
        }

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-3-7 17:28:55 | 显示全部楼层
在控制台中以XML格式输出table变量中的内容,看看是什么

System.out.println(new com.justep.system.transform.Table2Row().transform(table,null).asXML());
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-3-14 11:14:32 | 显示全部楼层
还有一个关于组织架构的问题,是啥原因?
//在这个里面我确实是取到了变更的行,发现这里取到的数据已经有变化了
Iterator<Row> editIterator = table.iterator(ModifyState.EDIT);
while (editIterator.hasNext()){
                Row row = editIterator.next();  
                String sBMFYDM = row.getString("sBMFYDM");
                String orgID = row.getString("SA_OPOrg");
                countNum = judgefFYDM( sBMFYDM,orgID);
                if(countNum>0){
                    throw new Exception("部门费用代码重复,请重新输入!");
            }else{
//现在没有办法我这里加了一个更新的操作,但是其他的字段还是没有处理好
                    String mysql = "UPDATE SA_OPORG SET sBMFYDM='"+sBMFYDM+"' WHERE sID='"+orgID+"'";
                    logger.info("mysql:"+mysql.toString());
                    SQL.executeUpdate(mysql.toString(),null,"/system/data");
            }
        }

//在下面的updateOrgs方法里面,并没有进行update操作,这个是啥原因?
Collection<Org> editOrgs = OrgHelper.getOrgsByIterator(editIterator).values();
                OrgHelper.updateOrgs(editOrgs);

现在没有办法我这里加了一个更新的操作,但是其他的字段还是没有处理好




回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-3-14 11:46:20 | 显示全部楼层
Iterator<Row> editIterator = table.iterator(ModifyState.EDIT);
while (editIterator.hasNext()){里面获取到了就不需要自己用sql处理,平台就可以的save就可以执行的啊
判断唯一可以参考
http://bbs.wex5.com/forum.php?mod=viewthread&tid=93423


组织机构的是值执行了updateOrgs后数据没变化吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-3-14 18:22:10 | 显示全部楼层
1、不需要自己用sql处理,平台就可以的save就可以执行的,问题是现在平台没有执行,所以我才加了这么一个SQL在这里,也没办法进行定位了
2、我的唯一验证有点不一样,目前按照这个方法是可以了,不过不确定你提供的这个方法是否可行
表A和表B里面都有字段C,这个字段C在这2个表里面都不能重复,平台可以实现吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-3-15 09:32:08 | 显示全部楼层
1.这样的不需要重写saveAction就可以,可以在saveAction的执行前事件中获取到值然后做判断,抛出异常就可以
http://bbs.wex5.com/forum.php?mo ... 6&pid=164970552
2.这样的只用修改平台的案例中action中的实现,去两个表中查数据看看两个中是否有就可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-3 05:28 , Processed in 0.099559 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表