|
@@ -73,7 +73,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
SyPreAssembledPackingListItem item1=item;
|
|
|
BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
|
|
|
item1.setTotal(boxNumber);//该尺码件数
|
|
|
- item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
|
|
|
+ //item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
|
|
|
item1.setSize(size.getSize());//获取尺码
|
|
|
item1.setActualPackingQty(size.getQuantity());//获取该尺码计划装箱数量
|
|
|
|
|
@@ -109,11 +109,12 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
item1.setMasterMetering(syItem.getMasterMetering());
|
|
|
syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
|
|
|
//原剩余数量-预装箱单装箱数量=新剩余数量
|
|
|
- syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
|
|
|
+ //syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
|
|
|
//超发数量
|
|
|
- syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()).negate());
|
|
|
+ //syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()).negate());
|
|
|
//syItem.setIsReference(1);//标识已被参照
|
|
|
- syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
|
|
|
+ //syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
|
|
|
+ updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
}
|
|
|
}
|
|
|
return box;
|
|
@@ -137,7 +138,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
|
|
|
item1.setTotal(boxNumber);//该尺码件数
|
|
|
|
|
|
- item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
|
|
|
+ //item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
|
|
|
item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价 箱数*单价-->件数*单价
|
|
|
//item1.setBoxNumber(boxNumber);//获取箱数
|
|
|
//boxNumber=boxNumber.divide(item.getPiecesBox(),6,BigDecimal.ROUND_HALF_UP);
|
|
@@ -175,8 +176,15 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
item1.setSyPreAssembledPackingListId(pid);
|
|
|
item1.setId(oConvertUtils.id());//获取到随机id
|
|
|
syPreAssembledPackingListItemMapper.insert(item1);
|
|
|
+ updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
}else{
|
|
|
+ QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
+ queryWrapper.eq("id", item1.getId());//子表id
|
|
|
+ queryWrapper.select("total as total");//获取实际报关数量合计
|
|
|
+ BigDecimal total=syPreAssembledPackingListItemMapper.selectOne(queryWrapper).getTotal();
|
|
|
+ total=total.subtract(item.getTotal());
|
|
|
syPreAssembledPackingListItemMapper.updateById(item1);//如果没修改成功就是新增数据
|
|
|
+ updateQuantity(total.negate(),item1.getSyDeclarationElementsItemId());
|
|
|
}
|
|
|
//这个构造器用来获取预装箱单里所有参照了改发运明细数量的合计
|
|
|
/*QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
|
|
@@ -251,10 +259,10 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
if(!syPreAssembledPackingListMapper.selectById(syPreAssembledPackingList.getId()).getStatus().equals("0")){
|
|
|
throw new JeecgBootException("单据已提交不能修改!");
|
|
|
}
|
|
|
- List<SyPreAssembledPackingListItem> items=syPreAssembledPackingList.getSyPreAssembledPackingListItemList();
|
|
|
+ //List<SyPreAssembledPackingListItem> items=syPreAssembledPackingList.getSyPreAssembledPackingListItemList();
|
|
|
syPreAssembledPackingListMapper.updateById(syPreAssembledPackingList);//修改主表数据
|
|
|
- List<SyPreAssembledPackingListItem> items2=syPreAssembledPackingListItemMapper.selectAll(syPreAssembledPackingList.getId());
|
|
|
- for(SyPreAssembledPackingListItem item : items2){//要根据这个去改变对应发运明细的剩余数量
|
|
|
+ // List<SyPreAssembledPackingListItem> items2=syPreAssembledPackingListItemMapper.selectAll(syPreAssembledPackingList.getId());
|
|
|
+ /*for(SyPreAssembledPackingListItem item : items2){//要根据这个去改变对应发运明细的剩余数量
|
|
|
if(item.getSyDeclarationElementsItemId()==null){
|
|
|
continue;
|
|
|
}
|
|
@@ -265,14 +273,14 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
BigDecimal total=syPreAssembledPackingListItemMapper.selectOne(queryWrapperCount).getTotal();
|
|
|
//获取发育明细数据
|
|
|
SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item.getSyDeclarationElementsItemId());
|
|
|
- if(syItem!=null){
|
|
|
+ *//*if(syItem!=null){
|
|
|
//发货-预装箱单数量=剩余数量
|
|
|
syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(total));
|
|
|
//预装箱单数量-发货=超发数量
|
|
|
syItem.setExcessQuantity(total.subtract(syItem.getSurplusQuantity()));
|
|
|
syShippingDetailsItemMapper.updateById(syItem);//修改数据
|
|
|
- }
|
|
|
- }
|
|
|
+ }*//*
|
|
|
+ }*/
|
|
|
syPreAssembledPackingListItemMapper.deleteByMainId(syPreAssembledPackingList.getId());//将子表的删除状态都变成1
|
|
|
if(syPreAssembledPackingList.getSyPreAssembledPackingListItemList()!=null){
|
|
|
BigDecimal box= update(syPreAssembledPackingList.getSyPreAssembledPackingListItemList(),syPreAssembledPackingList.getId());
|
|
@@ -286,6 +294,10 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public Integer delMain(String id) {
|
|
|
+ List<SyPreAssembledPackingListItem> items2=syPreAssembledPackingListItemMapper.selectAll(id);
|
|
|
+ for (SyPreAssembledPackingListItem item : items2){
|
|
|
+ updateQuantity(item.getTotal().negate(),item.getSyDeclarationElementsItemId());
|
|
|
+ }
|
|
|
QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
|
|
|
queryWrapperCount.select("id");
|
|
|
queryWrapperCount.ne("del_Flag","0");
|
|
@@ -296,7 +308,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
//根据主表id获取所有的子表信息
|
|
|
//问题:这样会查询到上次就已经删除的数据,数据会乱
|
|
|
//思路:让上次被删除的数据避免被重用
|
|
|
- List<SyPreAssembledPackingListItem> items2=syPreAssembledPackingListItemMapper.selectAll(id);
|
|
|
+
|
|
|
/*for(SyPreAssembledPackingListItem item : items2){//要根据这个去改变对应发运明细的剩余数量
|
|
|
if(objs.indexOf(item.getId())!=-1){//如果这条数据已经被删除的数据就执行下条数据
|
|
|
continue;
|
|
@@ -519,7 +531,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public boolean add(List<SyPreAssembledPackingList> items1) {
|
|
|
+ public boolean excelAdd(List<SyPreAssembledPackingList> items1) {
|
|
|
boolean bool=false;
|
|
|
try{
|
|
|
|
|
@@ -562,7 +574,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
item1.setTotal(boxNumber);//该尺码件数
|
|
|
syPreAssembledPackingList.setTotal(syPreAssembledPackingList.getTotal().add(boxNumber));
|
|
|
item1.setActualPackingQty(size.getQuantity());//获取该尺码计划装箱数量
|
|
|
- item1.setRemainingQuantity(boxNumber);//剩余数量
|
|
|
+ //item1.setRemainingQuantity(boxNumber);//剩余数量
|
|
|
item1.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
|
|
|
item1.setSort(size.getNum());//获取序号
|
|
|
item1.setId(oConvertUtils.id());//获取到随机id
|
|
@@ -597,11 +609,12 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
syPreAssembledPackingList.setItemNumber(syItem.getItemNumber());
|
|
|
syPreAssembledPackingList.setSpurOrSubOrder(syItem.getPurOrSubOrder());
|
|
|
//原剩余数量-预装箱单装箱数量=新剩余数量
|
|
|
- syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
|
|
|
+ /*syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
|
|
|
//超发数量
|
|
|
syItem.setExcessQuantity(item1.getTotal().subtract(syItem.getSurplusQuantity()));
|
|
|
//syItem.setIsReference(1);//标识已被参照
|
|
|
- syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
|
|
|
+ syShippingDetailsItemMapper.updateById(syItem);//修改发运明细*/
|
|
|
+ updateQuantity(item1.getTotal(),item1.getSyDeclarationElementsItemId());
|
|
|
}
|
|
|
syPreAssembledPackingList.setTotalPrice(syPreAssembledPackingList.getTotalPrice().add(item1.getTotalPrice()));//获取总价
|
|
|
if(size.getProportion()==0){
|
|
@@ -627,7 +640,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String test(List<SyPreAssembledPackingList> mains) {
|
|
|
+ public String excelTest(List<SyPreAssembledPackingList> mains) {
|
|
|
String strs="";
|
|
|
int num=1;
|
|
|
for(SyPreAssembledPackingList main : mains){
|
|
@@ -694,4 +707,45 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
|
|
|
}
|
|
|
return ids;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 增删改都会调用的方法,用来计算剩余数量和超发数量
|
|
|
+ * @param quantity 本次数量
|
|
|
+ * @param syShippingDetailsItemId 出运明细id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public void updateQuantity(BigDecimal quantity,String syShippingDetailsItemId){
|
|
|
+ QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
+ queryWrapper.eq("sy_declaration_elements_item_id", syShippingDetailsItemId);//出运明细id
|
|
|
+ queryWrapper.eq("del_flag", "0");//未删除
|
|
|
+ queryWrapper.select("sum(total) as total");//获取现有数量合计
|
|
|
+ BigDecimal total=new BigDecimal("0");
|
|
|
+ if(syPreAssembledPackingListItemMapper.selectOne(queryWrapper)!=null){
|
|
|
+ total=syPreAssembledPackingListItemMapper.selectOne(queryWrapper).getTotal();
|
|
|
+ }
|
|
|
+ System.out.println("本次数量\t"+quantity);
|
|
|
+ System.out.println("总数\t"+total);
|
|
|
+ total=total.add(quantity);
|
|
|
+ System.out.println("总数减后\t"+total);
|
|
|
+ SyShippingDetailsItem item=syShippingDetailsItemMapper.selectById(syShippingDetailsItemId);
|
|
|
+ BigDecimal packSurplus=item.getShipmentQuantity();//获取出运明细发货数量
|
|
|
+
|
|
|
+ BigDecimal remainingQuantity=packSurplus.subtract(total);//重新计算剩余数量
|
|
|
+ BigDecimal excessQuantity=new BigDecimal("0");//超发数量默认为0
|
|
|
+
|
|
|
+ if(total.doubleValue()>packSurplus.doubleValue()){//参照数量大于剩余数量就进行计算
|
|
|
+ excessQuantity=total.subtract(packSurplus);//
|
|
|
+ }
|
|
|
+ item.setPackSurplus(remainingQuantity);//出运明细剩余数量
|
|
|
+ item.setExcessQuantity(excessQuantity);//出运明细超发数量
|
|
|
+ syShippingDetailsItemMapper.updateById(item);
|
|
|
+
|
|
|
+ /*UpdateWrapper updateWrapper=new UpdateWrapper();
|
|
|
+ updateWrapper.set("remaining_Quantity",remainingQuantity);
|
|
|
+ updateWrapper.set("excess_Quantity",excessQuantity);
|
|
|
+ updateWrapper.eq("sy_declaration_elements_item_id",syShippingDetailsItemId);
|
|
|
+ return syPreAssembledPackingListItemMapper.update(null,updateWrapper);*/
|
|
|
+ }
|
|
|
}
|