嘘~ 正在从服务器偷取页面 . . .

轴承清洗测试及问题修改


轴承清洗测试及问题修改

问题1

遇到的问题:

  • 轴承座号存在父节点和子节点,在调用之前写的方法的时候取得是轴承座号的父节点,但是根据这个父节点无法在清洗记录里查找到数据,一个父节点可能对应的是两个子节点或者四个父节点。

解决问题思路:

  • 在装配记录中轴承座号是以父节点存在的,但清洗的时候是根据classify获取到轴承座号对应的子节点来进行清洗记录的创建,所以可以把调用的方法放在循环创建子节点对应的方法中,循环在cleanfrequency创建或者新增子节点的数据。

解决措施:

图1

  • 红框1:根据父节点查找到classify中对应的子节点,然后进行清洗记录的新建
  • 红框2:调用CopyCleanout方法获取子节点进行在cleanfrequency表中的创建或更新
  • 红框3:原来是想要根据子节点获取到对应的父节点,再调用CopyCleanout方法,但是牵扯到轴承更换的问题。轴承更换是在清洗记录里对子节点的轴承进行更换,后续要根据是否更换(isreplace)来对清洗次数和使用里程进行关操作,所以这部分代码不适用。

问题2

遇到的问题:

  • 轴承更换之后根据需求要将此轴承对应的清洗记录清空,将该轴承对应的使用里程清空。

解决问题思路:

  • 在轴承更换之后,将cleanfrequency中该轴承对应的清洗记录次数清零,轴承的使用里程稍微麻烦一点,在轴承清洗提示的时候轴承的使用里程是从assembly中取出来,然后赋值给明细表,清洗记录里边的轴承使用里程是有明细表获取到的,所以在轴承更换之后要清空的是assembly中的使用里程。
  • 首先在cleanout中有一个detailid,根据这个id可以在明细表中查询到对应的数据,然后明细表中有一个assemblyid字段,根据这个字段又可以在assembly中查询到对应的数据,最后进行对使用里程的清零操作就可以了。

解决措施:

图2

补充:

  • 最初要修改的使用里程错认为明细表里的使用里程,整理了一下根据现有信息从明细表里查询数据的方法。

1.

AssemblyDetailS assemblyDetailS = new AssemblyDetailS();
		 assemblyDetailS.setId(cleanout.getDetailid());
		 List<AssemblyDetail> assemblydlist = assemblyDetailS.fetchList(assemblyDetailDao, AssemblyDetail.class);
		 AssemblyDetail assemblyDetail = null;
		 if(assemblydlist!=null && assemblydlist.size()==1) {
			 assemblyDetail = assemblydlist.get(0);
		 }
		 if(assemblyDetail!=null) {
			 assemblyDetail.setUsemileage(String.valueOf(0));
		 }

2.

List<AssemblyDetail> assemblydlist = assemblyDetailDao.search(cleanout.getDetailid());
AssemblyDetail assemblyDetail = null; 
if(assemblydlist!=null && assemblydlist.size()==1) {
 assemblyDetail = assemblydlist.get(0);
}
if(assemblyDetail!=null) {
 assemblyDetail.setUsemileage(String.valueOf(0));
}
         

3.

AssemblyDetail findshuju2 = assemblyDetailDao.findOne(cleanout.getDetailid());

问题3

遇到的问题:

  • 怎么样获取轴承更换之后轴承的清洗次数?在轴承更换之后,清洗次数以及清零。但我写的sql语句是根据轴承座号获取对应清洗记录里的数据有多少条,再给cleanfrequency中的清洗次数赋值,但是在轴承更换之后,之前的清洗数据还会存在记录表里。

解决问题思路:

  • 新建的这张数据库表就是要对创建的数据进行一个操作,从一开始调用CopyCleanout方法,若表中没有该轴承座号对应的数据,那么久新创建一条,如果已有该轴承座号对应的数据那么在进行判断轴承是否更换过,若更换过则给清洗次数和使用里程清零,若没有则直接对查出来的数据进行清洗次数的加1。

解决措施:

cleanfrequencyService.CopyCleanout(bearingnumber,cleanout);

图三

  • 调用的方法这里除了要传一个轴承座号之外,还需要传一个isreplace字段,所以增加了一个入参,而在清洗操作是调用的方法只需要传一个轴承座号,所以另一个参数置空。
  • 红框2是初始化数据用到的方法,一旦要清洗的轴承座号数据在cleanfrequency中存在,那么只需要在清洗操作调用红框1方法是给cleantimes增1。

文章作者: 张纯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张纯 !
  目录