|
@@ -66,47 +66,61 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
@Autowired
|
|
|
private SyShippingOrderItemMapper syShippingOrderItemMapper;//托书主表
|
|
|
|
|
|
- BigDecimal update(List<SyPackingListTailoringItem> items,String pid){
|
|
|
- BigDecimal box=new BigDecimal(0);//获取总箱数
|
|
|
+ void update(List<SyPackingListTailoringItem> items,String pid){
|
|
|
+ List<SyPackingListTailoringItem> items3=new ArrayList<>();
|
|
|
+ List<SyPackingListTailoringItem> items2=syPackingListTailoringItemMapper.selectByMainId(pid);//获取主表所有数据
|
|
|
+ Map<String,SyPackingListTailoringItem> maps=new HashMap<>();
|
|
|
for (SyPackingListTailoringItem item : items){
|
|
|
- List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
|
|
|
- BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
|
|
|
- box=box.add(boxNumber1);//合计
|
|
|
- item.setGroupId(oConvertUtils.id());
|
|
|
- item.setDelFlag("0");//删除
|
|
|
- for (SizeTable size : sizes){
|
|
|
- if(size.getProportion()==null){
|
|
|
- size.setProportion(0);
|
|
|
- }
|
|
|
- SyPackingListTailoringItem item1=item;
|
|
|
- item1.setSize(size.getSize());//获取尺码信息
|
|
|
- BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
|
|
|
- item1.setTotal(boxNumber);//该尺码件数
|
|
|
-
|
|
|
- item1.setActualPackingQty(boxNumber);
|
|
|
- item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价 箱数*单价-->件数*单价
|
|
|
-
|
|
|
- //item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
|
|
|
- item1.setId(size.getItemId());//从尺码表中获取到id
|
|
|
- // 获取到预装箱单子表id
|
|
|
- SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId());
|
|
|
- //获取预装箱单子表id
|
|
|
- item1.setSyPreAssembledPackingListItemId(splt.getSyPreAssembledPackingListItemId());
|
|
|
- if(size.getProportion()==0){
|
|
|
- item1.setTotal(null);//该尺码件数
|
|
|
- }
|
|
|
- if(item.getIsAdd()>0){
|
|
|
- item1.setSyPackingListTailoringId(pid);
|
|
|
- item1.setId(oConvertUtils.id());//获取到随机id
|
|
|
- syPackingListTailoringItemMapper.insert(item1);
|
|
|
- continue;
|
|
|
- }
|
|
|
- syPackingListTailoringItemMapper.updateById(item1);
|
|
|
- // typeConversion(item1);//调用方法同步修改托书数据
|
|
|
+ maps.put(item.getGroupId(),item);//
|
|
|
+ }
|
|
|
+ for (SyPackingListTailoringItem item2 : items2){
|
|
|
+ if(maps.containsKey(item2.getGroupId())){//有这个分组id
|
|
|
+ SyPackingListTailoringItem item=maps.get(item2.getGroupId());
|
|
|
+ List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
|
|
|
+ BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
|
|
|
+ //box=box.add(boxNumber1);//合计
|
|
|
+ item.setGroupId(oConvertUtils.id());
|
|
|
+ item.setDelFlag("0");//删除
|
|
|
+ for (SizeTable size : sizes){
|
|
|
+ if(size.getProportion()==null){
|
|
|
+ size.setProportion(0);
|
|
|
+ }
|
|
|
+ SyPackingListTailoringItem item1=item;
|
|
|
+ item1.setSize(size.getSize());//获取尺码信息
|
|
|
+ BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
|
|
|
+ item1.setTotal(boxNumber);//该尺码件数
|
|
|
|
|
|
+ item1.setActualPackingQty(boxNumber);
|
|
|
+ item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价 箱数*单价-->件数*单价
|
|
|
+
|
|
|
+ //item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
|
|
|
+ item1.setId(size.getItemId());//从尺码表中获取到id
|
|
|
+ // 获取到预装箱单子表id
|
|
|
+ //SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId());
|
|
|
+ SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId());
|
|
|
+ //获取预装箱单子表id
|
|
|
+ item1.setSyPreAssembledPackingListItemId(splt.getSyPreAssembledPackingListItemId());
|
|
|
+ if(size.getProportion()==0){
|
|
|
+ item1.setTotal(null);//该尺码件数
|
|
|
+ }
|
|
|
+ if(item.getIsAdd()>0){
|
|
|
+ item1.setSyPackingListTailoringId(pid);
|
|
|
+ item1.setId(oConvertUtils.id());//获取到随机id
|
|
|
+ syPackingListTailoringItemMapper.insert(item1);
|
|
|
+ continue;
|
|
|
+ }else{
|
|
|
+ syPackingListTailoringItemMapper.updateById(item1);
|
|
|
+ SyPackingListTailoringItem item3=maps.get(item2.getGroupId());
|
|
|
+ BeanUtils.copyProperties(item1,item3);
|
|
|
+ items3.add(item3);
|
|
|
+ }
|
|
|
+ // typeConversion(item1);//调用方法同步修改托书数据
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ syPackingListTailoringItemMapper.deleteByGroupId(item2.getGroupId());
|
|
|
}
|
|
|
}
|
|
|
- return box;
|
|
|
+ syPackingListTailoringItemService.updateBatchById(items3);
|
|
|
}
|
|
|
|
|
|
//获取流水号
|
|
@@ -450,14 +464,17 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
/*if(!syPackingListTailoringMapper.selectById(syPackingListTailoring.getId()).getState().equals("0")){
|
|
|
throw new JeecgBootException("单据已提交不能修改!");
|
|
|
}*/
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
List<SyPackingListTailoringItem> items=syPackingListTailoring.getSyPackingListTailoringItemList();
|
|
|
syPackingListTailoringMapper.updateById(syPackingListTailoring);//修改主表数据
|
|
|
syPackingListTailoringItemMapper.deleteByMainId(syPackingListTailoring.getId());//将子表的删除状态都变成1
|
|
|
if(syPackingListTailoring.getSyPackingListTailoringItemList()!=null){
|
|
|
- BigDecimal box= update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId());
|
|
|
- syPackingListTailoring.setTotalBoxes(box);
|
|
|
- syPackingListTailoringMapper.updateById(syPackingListTailoring);
|
|
|
+ update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId());
|
|
|
+ //syPackingListTailoring.setTotalBoxes(box);
|
|
|
+ //syPackingListTailoringMapper.updateById(syPackingListTailoring);
|
|
|
}
|
|
|
+ long endTime3 = System.currentTimeMillis();
|
|
|
+ System.out.println("查数据时间运行:" + (endTime3 - startTime) + "ms");
|
|
|
return syPackingListTailoring;
|
|
|
}
|
|
|
|