|
@@ -61,6 +61,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
|
|
|
BigDecimal add(List<SyPreAssembledPackingListItem> items,String pid){
|
|
|
BigDecimal box=new BigDecimal(0);//获取总箱数
|
|
|
+ Map<String,BigDecimal> maps=new HashMap();
|
|
|
for (SyPreAssembledPackingListItem item : items){
|
|
|
List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
|
|
|
item.setSyPreAssembledPackingListId(pid);//获取主表id
|
|
@@ -114,9 +115,20 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
//syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()).negate());
|
|
|
//syItem.setIsReference(1);//标识已被参照
|
|
|
//syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
|
|
|
- updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
+ if(item1.getTotal().doubleValue()>0){
|
|
|
+ if(maps.containsKey(item.getSyDeclarationElementsItemId())){
|
|
|
+ maps.put(item1.getSyDeclarationElementsItemId(),maps.get(item1.getSyDeclarationElementsItemId()).add(item1.getTotal()));
|
|
|
+ }else{
|
|
|
+ maps.put(item1.getSyDeclarationElementsItemId(),item1.getTotal());
|
|
|
+ }
|
|
|
+ //updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ for (String key : maps.keySet()){
|
|
|
+ //updateQuantity(maps.get(key),key);
|
|
|
+ }
|
|
|
+
|
|
|
return box;
|
|
|
}
|
|
|
|
|
@@ -176,7 +188,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
item1.setSyPreAssembledPackingListId(pid);
|
|
|
item1.setId(oConvertUtils.id());//获取到随机id
|
|
|
syPreAssembledPackingListItemMapper.insert(item1);
|
|
|
- updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
+ //updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
}else{
|
|
|
QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
queryWrapper.eq("id", item1.getId());//子表id
|
|
@@ -184,7 +196,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
BigDecimal total=syPreAssembledPackingListItemMapper.selectOne(queryWrapper).getTotal();
|
|
|
total=total.subtract(item.getTotal());
|
|
|
syPreAssembledPackingListItemMapper.updateById(item1);//如果没修改成功就是新增数据
|
|
|
- updateQuantity(total.negate(),item1.getSyDeclarationElementsItemId());
|
|
|
+ //updateQuantity(total.negate(),item1.getSyDeclarationElementsItemId());
|
|
|
}
|
|
|
//这个构造器用来获取预装箱单里所有参照了改发运明细数量的合计
|
|
|
/*QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
|
|
@@ -294,12 +306,29 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public Integer delMain(String id) {
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
List<SyPreAssembledPackingListItem> items2=syPreAssembledPackingListItemMapper.selectAll(id);
|
|
|
+ Map<String,BigDecimal> maps=new HashMap();
|
|
|
for (SyPreAssembledPackingListItem item : items2){
|
|
|
if(item.getTotal()!=null){
|
|
|
- updateQuantity(item.getTotal().negate(),item.getSyDeclarationElementsItemId());
|
|
|
+ if(item.getTotal().doubleValue()>0){
|
|
|
+ if(maps.containsKey(item.getSyDeclarationElementsItemId())){
|
|
|
+ maps.put(item.getSyDeclarationElementsItemId(),maps.get(item.getSyDeclarationElementsItemId()).add(item.getTotal()));
|
|
|
+ }else{
|
|
|
+ maps.put(item.getSyDeclarationElementsItemId(),item.getTotal());
|
|
|
+ }
|
|
|
+ //updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ for (String key : maps.keySet()){
|
|
|
+ //updateQuantity(maps.get(key).negate(),key);
|
|
|
+ }
|
|
|
+ /*for (SyPreAssembledPackingListItem item : items2){
|
|
|
+ if(item.getTotal()!=null){
|
|
|
+ updateQuantity(item.getTotal().negate(),item.getSyDeclarationElementsItemId());
|
|
|
+ }
|
|
|
+ }*/
|
|
|
QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
|
|
|
queryWrapperCount.select("id");
|
|
|
queryWrapperCount.ne("del_Flag","0");
|
|
@@ -307,22 +336,6 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
List<Object> objs=syPreAssembledPackingListItemMapper.selectObjs(queryWrapperCount);
|
|
|
syPreAssembledPackingListItemMapper.deleteByMainId(id);//将删除状态更改为1
|
|
|
int row=syPreAssembledPackingListMapper.deleteId(id);//将删除状态更改为1
|
|
|
- //根据主表id获取所有的子表信息
|
|
|
- //问题:这样会查询到上次就已经删除的数据,数据会乱
|
|
|
- //思路:让上次被删除的数据避免被重用
|
|
|
-
|
|
|
- /*for(SyPreAssembledPackingListItem item : items2){//要根据这个去改变对应发运明细的剩余数量
|
|
|
- if(objs.indexOf(item.getId())!=-1){//如果这条数据已经被删除的数据就执行下条数据
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获取发育明细数据
|
|
|
- SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item.getSyDeclarationElementsItemId());
|
|
|
- //预装箱单装箱数量-x=剩余数量+x
|
|
|
- syItem.setSurplusQuantity(syItem.getSurplusQuantity().add(item.getTotal()));
|
|
|
- //超发数量=剩余数量-本次删除次数
|
|
|
- syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(item.getTotal()));
|
|
|
- syShippingDetailsItemMapper.updateById(syItem);//修改数据
|
|
|
- }*/
|
|
|
QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
queryWrapper.eq("sy_pre_assembled_packing_list_id",id);
|
|
|
List<SyLetterDepositItem> syLetterDepositItem=syLetterDepositItemMapper.selectList(queryWrapper);
|
|
@@ -343,6 +356,8 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
syLetterDepositMapper.update(null,wrapper1);
|
|
|
}
|
|
|
}
|
|
|
+ long endTime2 = System.currentTimeMillis();
|
|
|
+ System.out.println("删除时间:" + (endTime2 - startTime) + "ms");
|
|
|
return row;
|
|
|
}
|
|
|
|
|
@@ -545,6 +560,28 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
boolean bool=false;
|
|
|
List<SyPreAssembledPackingList> lists=new ArrayList<>();
|
|
|
List<SyPreAssembledPackingListItem> listItems=new ArrayList<>();
|
|
|
+
|
|
|
+ List<SyPreAssembledPackingList> lists2=new ArrayList<>();
|
|
|
+ //Map<String,>
|
|
|
+ List<String> ids=new ArrayList<>();
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
+ for (SyPreAssembledPackingList item : items1){
|
|
|
+ List<SyPreAssembledPackingListItem> listItems2=item.getSyPreAssembledPackingListItemList();
|
|
|
+ for (SyPreAssembledPackingListItem listItem : listItems2){
|
|
|
+ for (SizeTable sizeTable : listItem.getSizeTables()){
|
|
|
+ ids.add(sizeTable.getItemId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
+ queryWrapper.in("id",ids);
|
|
|
+ List<SyShippingDetailsItem> syItems=syShippingDetailsItemMapper.selectList(queryWrapper);//获取数据
|
|
|
+ Map<String,SyShippingDetailsItem> mapItems=new HashMap<>();
|
|
|
+ for (SyShippingDetailsItem item : syItems){
|
|
|
+ mapItems.put(item.getId(),item);
|
|
|
+ }
|
|
|
+ long endTime2 = System.currentTimeMillis();
|
|
|
+ System.out.println("批量查询时间:" + (endTime2 - startTime) + "ms");
|
|
|
try{
|
|
|
for(SyPreAssembledPackingList syPreAssembledPackingList : items1){
|
|
|
SimpleDateFormat sf = new SimpleDateFormat("yyMMddHHmmssSSS");
|
|
@@ -562,7 +599,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
syPreAssembledPackingList.setId(oConvertUtils.id());
|
|
|
//syPreAssembledPackingListMapper.insert(syPreAssembledPackingList);//往主表添加数据
|
|
|
List<SyPreAssembledPackingListItem> items=syPreAssembledPackingList.getSyPreAssembledPackingListItemList();
|
|
|
- Map<String,BigDecimal> maps=new HashMap<>();
|
|
|
+ //Map<String,BigDecimal> maps=new HashMap<>();
|
|
|
//System.out.println("items的长度\t"+items.size());
|
|
|
for (SyPreAssembledPackingListItem item : items){
|
|
|
// System.out.println("净重\t"+item.getTotalNetWeight());
|
|
@@ -592,7 +629,8 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
item1.setId(oConvertUtils.id());//获取到随机id
|
|
|
//item1.setRemainingQuantity(boxNumber);//剩余数量
|
|
|
//获取发育明细数据
|
|
|
- SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
|
|
|
+ //SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
|
|
|
+ SyShippingDetailsItem syItem=mapItems.get(size.getItemId());
|
|
|
if(syItem!=null){
|
|
|
item1.setPackId(syItem.getPackId());
|
|
|
item1.setUnitPrice(syItem.getSalesUnitPrice());//获取销售单价
|
|
@@ -626,14 +664,14 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
syItem.setExcessQuantity(item1.getTotal().subtract(syItem.getSurplusQuantity()));
|
|
|
//syItem.setIsReference(1);//标识已被参照
|
|
|
syShippingDetailsItemMapper.updateById(syItem);//修改发运明细*/
|
|
|
- if(item1.getTotal().doubleValue()>0){
|
|
|
+ /*if(item1.getTotal().doubleValue()>0){
|
|
|
if(maps.containsKey(item.getSyDeclarationElementsItemId())){
|
|
|
maps.put(item1.getSyDeclarationElementsItemId(),maps.get(item1.getSyDeclarationElementsItemId()).add(item1.getTotal()));
|
|
|
}else{
|
|
|
maps.put(item1.getSyDeclarationElementsItemId(),item1.getTotal());
|
|
|
}
|
|
|
//updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
syPreAssembledPackingList.setTotalPrice(syPreAssembledPackingList.getTotalPrice().add(item1.getTotalPrice()));//获取总价
|
|
|
if(size.getProportion()==0){
|
|
@@ -641,13 +679,14 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
}
|
|
|
SyPreAssembledPackingListItem item2=new SyPreAssembledPackingListItem();
|
|
|
BeanUtils.copyProperties(item1,item2);
|
|
|
+ item2.setPackId("测试文件");
|
|
|
listItems.add(item2);
|
|
|
//syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
|
|
|
}
|
|
|
}
|
|
|
- for (String key : maps.keySet()){
|
|
|
+ /* for (String key : maps.keySet()){
|
|
|
//updateQuantity(maps.get(key),key);
|
|
|
- }
|
|
|
+ }*/
|
|
|
SyShippingDetails syShippingDetails=syShippingDetailsMapper.selectById(syPreAssembledPackingList.getSyDeclarationElementsId());
|
|
|
if(syShippingDetails!=null){
|
|
|
syPreAssembledPackingList.setCustomer(syShippingDetails.getCustomer());
|
|
@@ -663,7 +702,6 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
bool=false;
|
|
|
}
|
|
|
|
|
|
- long startTime = System.currentTimeMillis();
|
|
|
syPreAssembledPackingListItemMapper.insertBatch(listItems);
|
|
|
long endTime = System.currentTimeMillis();
|
|
|
System.out.println("批量插入时间:" + (endTime - startTime) + "ms");
|
|
@@ -685,7 +723,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
String name="";
|
|
|
String ids="";
|
|
|
for (SyPreAssembledPackingListItem item :main.getSyPreAssembledPackingListItemList()){
|
|
|
- System.out.println("size\t"+item.getSizeTables());
|
|
|
+ //System.out.println("size\t"+item.getSizeTables());
|
|
|
total3=total3.add(item.getTotal());
|
|
|
int num2=0;
|
|
|
for (SizeTable size : item.getSizeTables()){
|
|
@@ -722,9 +760,6 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
//throw new JeecgBootException("该单据已被参照,请勿重复提交");
|
|
|
}
|
|
|
}
|
|
|
- System.out.println("本次数量\t"+total3);
|
|
|
- System.out.println("现有数量\t"+total2);
|
|
|
- System.out.println("原单据数量\t"+total1);
|
|
|
total4=total4.add(total2).add(total3);
|
|
|
if(total4.doubleValue()>total1.doubleValue()*1.9){//(本次数量+现有数量)>1.9*发货数量就报错
|
|
|
throw new JeecgBootException("本次导入数量+装箱单现有数量大于发货订单数量*1.9,请勿重复导入");
|
|
@@ -802,9 +837,60 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
@Override
|
|
|
public List<SyPreAssembledPackingList> queryById2(Map<String, List<String>> ids, List<String> allIds){
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
- System.out.println("idsmaps\t"+ids);
|
|
|
- List<SyPreAssembledPackingList> lists=syPreAssembledPackingListMapper.queryById2(allIds.toArray(new String[allIds.size()]));
|
|
|
- for (SyPreAssembledPackingList entity :lists){
|
|
|
+ String [] arraySizes= allIds.toArray(new String[allIds.size()]);
|
|
|
+ List<SyPreAssembledPackingList> lists=syPreAssembledPackingListMapper.queryById2(arraySizes);
|
|
|
+
|
|
|
+ List<SyPreAssembledPackingListItem> itemLists= syPreAssembledPackingListItemMapper.selectByMainIds(arraySizes);
|
|
|
+ List<SizeTable> sizeLists=syPreAssembledPackingListItemMapper.querySize3(arraySizes);//主表尺码
|
|
|
+ List<SizeTable> sizeLists2=syPreAssembledPackingListItemMapper.queryAllSize(arraySizes);//子表尺码
|
|
|
+
|
|
|
+ Map<String,List<SyPreAssembledPackingListItem>> maplItems=new HashMap<>();
|
|
|
+ Map<String,List<SizeTable>> mapMainSizes=new HashMap<>();//主表尺码
|
|
|
+ Map<String,List<SizeTable>> mapItemSizes=new HashMap<>();//子表尺码
|
|
|
+
|
|
|
+ for (SizeTable size : sizeLists2){//子表尺码
|
|
|
+ if(mapItemSizes.containsKey(size.getGroupId())){//有
|
|
|
+ mapItemSizes.get(size.getGroupId()).add(size);
|
|
|
+ }else{
|
|
|
+ List<SizeTable> items=new ArrayList<>();
|
|
|
+ items.add(size);
|
|
|
+ mapItemSizes.put(size.getGroupId(),items);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (SizeTable size : sizeLists){//主表尺码
|
|
|
+ if(mapMainSizes.containsKey(size.getGroupName())){//有
|
|
|
+ mapMainSizes.get(size.getGroupName()).add(size);
|
|
|
+ }else{
|
|
|
+ List<SizeTable> items=new ArrayList<>();
|
|
|
+ items.add(size);
|
|
|
+ mapMainSizes.put(size.getGroupName(),items);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println("mapMainSizes\n"+mapMainSizes);
|
|
|
+
|
|
|
+ for (SyPreAssembledPackingListItem item : itemLists){//子表获取尺码
|
|
|
+ if(mapItemSizes.containsKey(item.getGroupId())){
|
|
|
+ item.setSizeTables(mapItemSizes.get(item.getGroupId()));
|
|
|
+ }
|
|
|
+ if(maplItems.containsKey(item.getGroupName())){//有
|
|
|
+ maplItems.get(item.getGroupName()).add(item);
|
|
|
+ }else{
|
|
|
+ List<SyPreAssembledPackingListItem> items=new ArrayList<>();
|
|
|
+ items.add(item);
|
|
|
+ maplItems.put(item.getGroupName(),items);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (SyPreAssembledPackingList entity : lists){//主表获取子表数据
|
|
|
+ if(mapMainSizes.containsKey(entity.getGroupName())){
|
|
|
+ entity.setSizeTables(mapMainSizes.get(entity.getGroupName()));
|
|
|
+ }
|
|
|
+ if(maplItems.containsKey(entity.getGroupName())){
|
|
|
+ entity.setSyPreAssembledPackingListItemList(maplItems.get(entity.getGroupName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*for (SyPreAssembledPackingList entity :lists){
|
|
|
System.out.println("entity.getname\t"+entity.getGroupName());
|
|
|
List<String> idList=ids.get(entity.getGroupName());
|
|
|
String[] arrasId=idList.toArray(new String[idList.size()]);
|
|
@@ -836,7 +922,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
}
|
|
|
entity.setSyPreAssembledPackingListItemList(itemList);
|
|
|
//lists.add(entity);
|
|
|
- }
|
|
|
+ }*/
|
|
|
long endTime3 = System.currentTimeMillis();
|
|
|
System.out.println("查数据时间运行:" + (endTime3 - startTime) + "ms");
|
|
|
return lists;
|
|
@@ -876,6 +962,11 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
return lists;*/
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<SyPreAssembledPackingList> selectPage3(QueryWrapper<SyPreAssembledPackingListVo> queryWrapper) {
|
|
|
+ return syPreAssembledPackingListMapper.selectPage3(queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
public List<SizeTable> sort(List<SizeTable> sizes) {
|
|
|
int i=0;
|
|
|
for(SizeTable size : sizes){
|