问题遇到的现象和发生背景
执行下面的查询返回语句时,批量插入就不插数据了,注释掉后面的查询返回就正常插入数据
问题相关代码,请勿粘贴截图
if(sub.getStation().equals("1")){
//更新工步表
{List<sumbmiteVO> list = pWorkOrderService.selectunitname(sub);
if(null == list || list.size() ==0 ){
throw new RuntimeException("没有查到工步信息,无法插入!");
}
List<POrderUnitStep> pOrderUnitSteps = new ArrayList<>();
for (sumbmiteVO vo : list) {
POrderUnitStep pOrderUnitStep=new POrderUnitStep();
String uuid = IdentityGenerator.getUuid();
pOrderUnitStep.setId(uuid);
pOrderUnitStep.setUnitCode(vo.getUNITCODE());
pOrderUnitStep.setStepCode(vo.getStepCode());
pOrderUnitSteps.add(pOrderUnitStep);
}
pOrderUnitStepService.insertBatch(pOrderUnitSteps);}
//更新检查项点表
List<sumbmiteVO> list1= pWorkOrderService.selectstepitem(sub);
if(null == list1 || list1.size() ==0 ){
throw new RuntimeException("没有查到项点信息,无法插入!");
}
List<PStepItemRel> pStepItemRels =new ArrayList<>();
for (sumbmiteVO item : list1){
String uuid = IdentityGenerator.getUuid();
PStepItemRel pStepItemRel =new PStepItemRel();
pStepItemRel.setId(uuid);
pStepItemRel.setUnitCode(item.getUNITCODE());
pStepItemRel.setStepCode(item.getStepCode());
pStepItemRels.add(pStepItemRel);
}
pStepItemRelService.insertBatch(pStepItemRels);
//数据返回
JSONObject sumbmite = new JSONObject();
JSONObject stepinfo = new JSONObject();
JSONObject stepinfo2 = new JSONObject();
JSONObject stepinfo1 = new JSONObject();
//返回工步信息
List<sumbmiteVO> fhgb=pWorkOrderDao.fanstepcode(sumbmiteVO.getWorkOrderCode(),sub.getStation());
if(null == fhgb || fhgb.size() ==0 ){
throw new RuntimeException("没有查到工步信息!");
}
sumbmiteVO step1=fhgb.get(0);
sumbmiteVO step2=fhgb.get(1);
stepinfo1.put("stepName1",step1.getStepName());
stepinfo2.put("stepName2",step2.getStepName());
//返回项点信息
JSONArray array = new JSONArray();
List<sumbmiteVO> list2=pWorkOrderDao.fansitem(sumbmiteVO.getWorkOrderCode(),sub.getStation(),step1.getStepName());
if(null == list2 || list2.size() ==0 ){
throw new RuntimeException("没有查到项点信息!");
}
for (sumbmiteVO jcxd : list2) {
JSONObject item = new JSONObject();
item.put("ItemCode",jcxd.getItemCode());
item.put("ItemName",jcxd.getItemName());
array.add(item);
}
//工具返回
JSONArray gongju = new JSONArray();
List<sumbmiteVO> list3=pWorkOrderDao.fangongju(sumbmiteVO.getWorkOrderCode());
if(null == list3 || list3.size() ==0 ){
throw new RuntimeException("没有查到工具信息!");
}
for (sumbmiteVO gj : list3) {
JSONObject item = new JSONObject();
item.put("item_type",gj.getItemType());
item.put("TOOL_CODE",gj.getTOOLCODE());
gongju.add(item);
}
stepinfo1.put("TOOlist",gongju);
stepinfo1.put("itemList" ,array);
stepinfo.put("stepinfo1",stepinfo1);
stepinfo.put("stepinfo2",stepinfo2);
sumbmite.put("stepinfo",stepinfo);
return sumbmite;
}
运行结果及报错内容
直接运行没有任何报错 批量插入也正常执行(运行日志显示update:1)实际没有插入数据
我的解答思路和尝试过的方法
把批量插入后面的语句注释掉后,数据库便有数据插入