|
@@ -9,6 +9,7 @@ import org.jeecg.common.util.oConvertUtils;
|
|
|
import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
|
|
|
import org.jeecg.modules.documents.letterDeposit.mapper.SyLetterDepositItemMapper;
|
|
|
import org.jeecg.modules.documents.letterDeposit.mapper.SyLetterDepositMapper;
|
|
|
+import org.jeecg.modules.documents.letterDeposit.service.ISyLetterDepositItemService;
|
|
|
import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetails;
|
|
|
import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
|
|
|
import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
|
|
@@ -133,10 +134,82 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
return box;
|
|
|
}
|
|
|
|
|
|
- BigDecimal update(List<SyPreAssembledPackingListItem> items,String pid){
|
|
|
- BigDecimal box=new BigDecimal(0);//获取总箱数
|
|
|
+ void update(List<SyPreAssembledPackingListItem> items,String pid){
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
+ List<SyPreAssembledPackingListItem> items3=new ArrayList<>();
|
|
|
+ List<SyPreAssembledPackingListItem> items2=syPreAssembledPackingListItemService.selectByMainId(pid);//获取主表所有数据
|
|
|
+ //syPreAssembledPackingListItemMapper.deleteByMainId(pid);//将子表的删除状态都变成1
|
|
|
+ Map<String,SyPreAssembledPackingListItem> maps=new HashMap<>();
|
|
|
for (SyPreAssembledPackingListItem item : items){
|
|
|
+ maps.put(item.getGroupId(),item);//
|
|
|
+ }
|
|
|
+ for (SyPreAssembledPackingListItem item2 : items2){
|
|
|
+ if(maps.containsKey(item2.getGroupId())){//有这个分组id
|
|
|
+ SyPreAssembledPackingListItem item=maps.get(item2.getGroupId());
|
|
|
+ List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
|
|
|
+ BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
|
|
|
+ item.setActualPackingQty(item.getTotal());//计划装箱数量
|
|
|
+ if(item.getIsAdd()>0){
|
|
|
+ item.setGroupId(org.jeecg.modules.system.util.oConvertUtils.getId());//分组id
|
|
|
+ }
|
|
|
+ //box=box.add(boxNumber1);//合计
|
|
|
+ item.setDelFlag("0");
|
|
|
+ for (SizeTable size : sizes){
|
|
|
+ if(size.getProportion()==null){
|
|
|
+ size.setProportion(0);
|
|
|
+ }
|
|
|
+ SyPreAssembledPackingListItem item1=item;
|
|
|
+ item1.setSize(size.getSize());//获取尺码信息
|
|
|
+ BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
|
|
|
+ item1.setTotal(boxNumber);//该尺码件数
|
|
|
+ item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价 箱数*单价-->件数*单价
|
|
|
+ item1.setId(size.getItemId());//从尺码表中获取到id
|
|
|
+ if(size.getProportion()==0){
|
|
|
+ item1.setTotal(null);//该尺码件数
|
|
|
+ }
|
|
|
+ if(item.getIsAdd()>0){//如果为0就添加数据
|
|
|
+ String syDeclarationElementsItemId=syPreAssembledPackingListItemMapper.selectById(item1.getId()).getSyDeclarationElementsItemId();
|
|
|
+ item1.setSyDeclarationElementsItemId(syDeclarationElementsItemId);
|
|
|
+ SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
|
|
|
+ if(syItem!=null){
|
|
|
+ //获取委外/采购订单子表Id
|
|
|
+ item1.setOmpoId(syItem.getOmpoId());
|
|
|
+ item1.setOmpoIdItem(syItem.getOmpoIdItem());
|
|
|
+ item1.setOmpoAccount(syItem.getOmpoAccount());
|
|
|
+ item1.setSyOrderDataId(syItem.getSyOrderDataId());
|
|
|
+ item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());
|
|
|
+ item1.setOrderNumber(syItem.getOrderNumber());//获取订单号
|
|
|
+ item1.setSupplierCode(syItem.getSupplierCode());
|
|
|
+ item1.setSupplier(syItem.getSupplier());
|
|
|
+ //获取订单子表id
|
|
|
+ //item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());
|
|
|
+ }
|
|
|
+ item1.setSyPreAssembledPackingListId(pid);
|
|
|
+ item1.setId(oConvertUtils.id());//获取到随机id
|
|
|
+ syPreAssembledPackingListItemMapper.insert(item1);
|
|
|
+ }else{
|
|
|
+ SyPreAssembledPackingListItem item3=new SyPreAssembledPackingListItem();
|
|
|
+ BeanUtils.copyProperties(item1,item3);
|
|
|
+ items3.add(item3);
|
|
|
+ //syPreAssembledPackingListItemMapper.updateById(item1);//如果没修改成功就是新增数据
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ syPreAssembledPackingListItemMapper.deleteByGroupId(item2.getGroupId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ long startTime2 = System.currentTimeMillis();
|
|
|
+ typeConversion(items3);//修改预托书数量
|
|
|
+ syPreAssembledPackingListItemService.updateBatchById(items3);
|
|
|
+ long endTime = System.currentTimeMillis();
|
|
|
+ System.out.println("全程的时间:" + (endTime - startTime) + "ms");
|
|
|
+ System.out.println("update的时间:" + (endTime - startTime2) + "ms");
|
|
|
+ //return new BigDecimal("0");
|
|
|
+
|
|
|
+ //syPreAssembledPackingListItemMapper.deleteByMainId(pid);//将子表的删除状态都变成1
|
|
|
+ //BigDecimal box=new BigDecimal(0);//获取总箱数
|
|
|
+ /*for (SyPreAssembledPackingListItem item : items){
|
|
|
List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
|
|
|
BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
|
|
|
item.setActualPackingQty(item.getTotal());//计划装箱数量
|
|
@@ -192,20 +265,20 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
syPreAssembledPackingListItemMapper.insert(item1);
|
|
|
//updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
}else{
|
|
|
- /*QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
+ *//*QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
queryWrapper.eq("id", item1.getId());//子表id
|
|
|
queryWrapper.select("total as total");//获取实际报关数量合计
|
|
|
BigDecimal total=new BigDecimal("0");
|
|
|
if(syPreAssembledPackingListItemMapper.selectOne(queryWrapper)!=null){
|
|
|
total=syPreAssembledPackingListItemMapper.selectOne(queryWrapper).getTotal().subtract(item.getTotal());
|
|
|
//total=total.subtract(item.getTotal());
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
|
|
|
syPreAssembledPackingListItemMapper.updateById(item1);//如果没修改成功就是新增数据
|
|
|
//updateQuantity(total.negate(),item1.getSyDeclarationElementsItemId());
|
|
|
}
|
|
|
//这个构造器用来获取预装箱单里所有参照了改发运明细数量的合计
|
|
|
- /*QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
|
|
|
+ *//*QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
|
|
|
queryWrapperCount.select("COALESCE(sum(total),0) total");
|
|
|
queryWrapperCount.eq("del_Flag","0");
|
|
|
queryWrapperCount.eq("sy_Declaration_Elements_Item_Id",item1.getSyDeclarationElementsItemId());
|
|
@@ -218,13 +291,10 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
//标识已被参照
|
|
|
//syItem.setIsReference(1); 由预托书回写
|
|
|
syShippingDetailsItemMapper.updateById(syItem);//修改发运明细发货数量和超出数量,如不需要就注释
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
typeConversion(item1);//修改预托书数量
|
|
|
}
|
|
|
- }
|
|
|
- long endTime = System.currentTimeMillis();
|
|
|
- System.out.println("保存的时间:" + (endTime - startTime) + "ms");
|
|
|
- return box;
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
|
|
@@ -301,10 +371,10 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
syShippingDetailsItemMapper.updateById(syItem);//修改数据
|
|
|
}*//*
|
|
|
}*/
|
|
|
- syPreAssembledPackingListItemMapper.deleteByMainId(syPreAssembledPackingList.getId());//将子表的删除状态都变成1
|
|
|
if(syPreAssembledPackingList.getSyPreAssembledPackingListItemList()!=null){
|
|
|
- BigDecimal box= update(syPreAssembledPackingList.getSyPreAssembledPackingListItemList(),syPreAssembledPackingList.getId());
|
|
|
- syPreAssembledPackingList.setTotalBoxes(box);//主表的总箱数
|
|
|
+ //BigDecimal box= update(syPreAssembledPackingList.getSyPreAssembledPackingListItemList(),syPreAssembledPackingList.getId());
|
|
|
+ update(syPreAssembledPackingList.getSyPreAssembledPackingListItemList(),syPreAssembledPackingList.getId());
|
|
|
+ //syPreAssembledPackingList.setTotalBoxes(box);//主表的总箱数
|
|
|
syPreAssembledPackingListMapper.updateById(syPreAssembledPackingList);//修改主表总箱数
|
|
|
}
|
|
|
return syPreAssembledPackingList;
|
|
@@ -545,19 +615,40 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
return "true";
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISyLetterDepositItemService syLetterDepositItemService;
|
|
|
+
|
|
|
@Override
|
|
|
- public SyLetterDepositItem typeConversion(SyPreAssembledPackingListItem syPreAssembledPackingListItem) {
|
|
|
+ public void typeConversion(List<SyPreAssembledPackingListItem> syPreAssembledPackingListItems) {
|
|
|
+ List<String> ids=new ArrayList<>();
|
|
|
+ Map<String,SyPreAssembledPackingListItem> maps=new HashMap<>();
|
|
|
+ for (SyPreAssembledPackingListItem item : syPreAssembledPackingListItems){
|
|
|
+ ids.add(item.getId());
|
|
|
+ maps.put(item.getGroupId(),item);
|
|
|
+ }
|
|
|
QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
- queryWrapper.eq("sy_pre_assembled_packing_list_item_id",syPreAssembledPackingListItem.getId());
|
|
|
+ queryWrapper.in("sy_pre_assembled_packing_list_item_id",ids);
|
|
|
queryWrapper.eq("del_flag","0");//未删除的数据
|
|
|
- SyLetterDepositItem syLetterDepositItem=syLetterDepositItemMapper.selectOne(queryWrapper);//问题点
|
|
|
- if(syLetterDepositItem!=null){
|
|
|
+ List<SyLetterDepositItem> syLetterDepositItems=syLetterDepositItemMapper.selectList(queryWrapper);//问题点
|
|
|
+ /*SyPreAssembledPackingListItem item3=new SyPreAssembledPackingListItem();
|
|
|
+ BeanUtils.copyProperties(item1,item3);*/
|
|
|
+ for (SyLetterDepositItem syLetterDepositItem : syLetterDepositItems){
|
|
|
+ if(maps.containsKey(syLetterDepositItem.getSyPreAssembledPackingListItemId())){
|
|
|
+ String id=syLetterDepositItem.getId();//保存预托书id防止覆盖
|
|
|
+ BeanUtils.copyProperties(maps.get(syLetterDepositItem.getSyPreAssembledPackingListItemId()), syLetterDepositItem);
|
|
|
+ syLetterDepositItem.setId(id);//重新赋值
|
|
|
+ //syLetterDepositItemMapper.updateById(syLetterDepositItem);//修改预托书数据
|
|
|
+ }
|
|
|
+ }
|
|
|
+ syLetterDepositItemService.updateBatchById(syLetterDepositItems);
|
|
|
+ //SyLetterDepositItem syLetterDepositItem=
|
|
|
+ /*if(syLetterDepositItem!=null){
|
|
|
String id=syLetterDepositItem.getId();//保存预托书id防止覆盖
|
|
|
BeanUtils.copyProperties(syPreAssembledPackingListItem, syLetterDepositItem);
|
|
|
syLetterDepositItem.setId(id);//重新赋值
|
|
|
syLetterDepositItemMapper.updateById(syLetterDepositItem);//修改预托书数据
|
|
|
- }
|
|
|
- return syLetterDepositItem;
|
|
|
+ }*/
|
|
|
+ //return void;
|
|
|
}
|
|
|
|
|
|
|