|
@@ -41,6 +41,7 @@ import org.jeecg.modules.splfi.entity.SyPackingListFabric;
|
|
|
import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
|
|
|
import org.jeecg.modules.splfi.mapper.SyPackingListFabricItemMapper;
|
|
|
import org.jeecg.modules.splfi.mapper.SyPackingListFabricMapper;
|
|
|
+import org.jeecg.modules.splfi.service.ISyPackingListFabricItemService;
|
|
|
import org.jeecg.modules.splfi.service.ISyPackingListFabricService;
|
|
|
import org.jeecg.modules.splfi.vo.SyPackingListFabricPage;
|
|
|
import org.jeecg.modules.splt.entity.SyPackingListTailoring;
|
|
@@ -306,67 +307,75 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
|
|
|
syPackingListFabricMapper.updateById(syPackingListFabric);
|
|
|
|
|
|
//1.先删除子表数据
|
|
|
- syPackingListFabricItemMapper.deleteByMainId(syPackingListFabric.getId());
|
|
|
-
|
|
|
+ //syPackingListFabricItemMapper.deleteByMainId(syPackingListFabric.getId());
|
|
|
+ List<SyPackingListFabricItem> items=syPackingListFabricItemMapper.selectByMainId(syPackingListFabric.getId());
|
|
|
+ List<SyPackingListFabricItem> items2=new ArrayList<>();
|
|
|
+ Map<String,SyPackingListFabricItem> maps=new HashMap<>();
|
|
|
+ for (SyPackingListFabricItem item : syPackingListFabricItemList){
|
|
|
+ maps.put(item.getId(),item);
|
|
|
+ }
|
|
|
//2.子表数据重新插入
|
|
|
- for(SyPackingListFabricItem entity:syPackingListFabricItemList) {
|
|
|
- entity.setDelFlag("0");
|
|
|
- //外键设置
|
|
|
- entity.setSyPackingListFabricId(syPackingListFabric.getId());
|
|
|
-
|
|
|
- /*if((entity.getInventoryCcode().indexOf("03")!=-1&&!entity.getInventoryCcode().equals("0399")) ||
|
|
|
- (entity.getInventoryCcode().indexOf("02")!=-1&&!entity.getInventoryCcode().equals("0299"))||
|
|
|
- (entity.getInventoryCcode().indexOf("04")!=-1&&!entity.getInventoryCcode().equals("0499"))){
|
|
|
- if(entity.getMeter()!=null){//前端计算米数
|
|
|
- entity.setActualDeclaredQuantity(entity.getMeter());//修改报关数量
|
|
|
- }
|
|
|
- }
|
|
|
- if(entity.getMasterMetering()!=null&&entity.getMasterMetering().equals("KG")){//计算总价
|
|
|
- if(entity.getNetWeight()!=null){
|
|
|
- entity.setTotalPrice(entity.getNetWeight().multiply(entity.getPrice()));//净重*单价
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(entity.getActualDeclaredQuantity()!=null){
|
|
|
- entity.setTotalPrice(entity.getActualDeclaredQuantity().multiply(entity.getPrice()));//实际报关数量*单价
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
- entity.setInventoryQuantity(entity.getActualDeclaredQuantity());//入库数量=实际报关数量
|
|
|
- if(entity.getIsAdd()>0){//大于1就是新增数据
|
|
|
- entity.setId(null);
|
|
|
- syPackingListFabricItemMapper.insert(entity);
|
|
|
- if(entity.getMasterMetering()==null){
|
|
|
- throw new JeecgBootException("没有单位无法保存");
|
|
|
- }
|
|
|
- if(entity.getMasterMetering().equals("KG")){
|
|
|
- //updateQuantity(entity.getNetWeight(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
+ int i=0;
|
|
|
+ for(SyPackingListFabricItem entity : items) {
|
|
|
+ if(maps.containsKey(entity.getId())){
|
|
|
+ //entity.setDelFlag("0");
|
|
|
+ //外键设置
|
|
|
+ //entity.setSyPackingListFabricId(syPackingListFabric.getId());
|
|
|
+ SyPackingListFabricItem entity1=maps.get(entity.getId());
|
|
|
+ entity.setInventoryQuantity(entity.getActualDeclaredQuantity());//入库数量=实际报关数量
|
|
|
+ if(entity.getIsAdd()>0){//大于1就是新增数据
|
|
|
+ entity.setId(null);
|
|
|
+ syPackingListFabricItemMapper.insert(entity);
|
|
|
+ if(entity.getMasterMetering()==null){
|
|
|
+ throw new JeecgBootException("没有单位无法保存");
|
|
|
+ }
|
|
|
+ if(entity.getMasterMetering().equals("KG")){
|
|
|
+ updateQuantity(entity.getNetWeight(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
+ }else{
|
|
|
+ updateQuantity(entity.getActualDeclaredQuantity(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
+ }
|
|
|
}else{
|
|
|
- //updateQuantity(entity.getActualDeclaredQuantity(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
+ if(entity.getMasterMetering().equals("KG")){//根据净重
|
|
|
+ /*QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
+ queryWrapper.eq("id", entity.getId());//子表id
|
|
|
+ queryWrapper.select("net_Weight as netWeight");//获取实际报关数量合计*/
|
|
|
+ BigDecimal netWeight=new BigDecimal("0");
|
|
|
+ if(entity.getNetWeight()!=null){
|
|
|
+ netWeight=entity.getNetWeight();
|
|
|
+ }
|
|
|
+ netWeight=netWeight.subtract(entity1.getNetWeight());
|
|
|
+ //syPackingListFabricItemMapper.updateById(entity1);
|
|
|
+ if(netWeight.doubleValue()!=0){
|
|
|
+ System.out.println("第"+i+"次修改出运明细");
|
|
|
+ i++;
|
|
|
+ updateQuantity(netWeight.negate(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
+ }
|
|
|
+ }else{//根据实际报关数量
|
|
|
+ BigDecimal actualDeclaredQuantity=new BigDecimal("0");
|
|
|
+ if(entity.getActualDeclaredQuantity()!=null){
|
|
|
+ actualDeclaredQuantity=entity.getActualDeclaredQuantity();
|
|
|
+ }
|
|
|
+ actualDeclaredQuantity=actualDeclaredQuantity.subtract(entity1.getActualDeclaredQuantity());
|
|
|
+ //syPackingListFabricItemMapper.updateById(entity1);
|
|
|
+ if(actualDeclaredQuantity.doubleValue()!=0){
|
|
|
+ System.out.println("第"+i+"次修改出运明细");
|
|
|
+ i++;
|
|
|
+ updateQuantity(actualDeclaredQuantity.negate(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ items2.add(entity1);//获取所有子表
|
|
|
}
|
|
|
}else{
|
|
|
- if(entity.getMasterMetering().equals("KG")){//根据净重
|
|
|
- QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
- queryWrapper.eq("id", entity.getId());//子表id
|
|
|
- queryWrapper.select("net_Weight as netWeight");//获取实际报关数量合计
|
|
|
- BigDecimal netWeight=syPackingListFabricItemMapper.selectOne(queryWrapper).getNetWeight();
|
|
|
- netWeight=netWeight.subtract(entity.getNetWeight());
|
|
|
- syPackingListFabricItemMapper.updateById(entity);
|
|
|
- //updateQuantity(netWeight.negate(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
- }else{//根据实际报关数量
|
|
|
- QueryWrapper queryWrapper=new QueryWrapper();
|
|
|
- queryWrapper.eq("id", entity.getId());//子表id
|
|
|
- queryWrapper.select("actual_Declared_Quantity as actualDeclaredQuantity");//获取实际报关数量合计
|
|
|
- BigDecimal actualDeclaredQuantity=syPackingListFabricItemMapper.selectOne(queryWrapper).getActualDeclaredQuantity();
|
|
|
- actualDeclaredQuantity=actualDeclaredQuantity.subtract(entity.getActualDeclaredQuantity());
|
|
|
- syPackingListFabricItemMapper.updateById(entity);
|
|
|
- //updateQuantity(actualDeclaredQuantity.negate(),entity.getSyShippingDetailsItemId(),entity.getMasterMetering());
|
|
|
- }
|
|
|
-
|
|
|
+ syPackingListFabricItemMapper.deleteById(entity.getId());
|
|
|
}
|
|
|
}
|
|
|
+ syPackingListFabricItemService.updateBatchById(items2);
|
|
|
return syPackingListFabric;
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISyPackingListFabricItemService syPackingListFabricItemService;
|
|
|
+
|
|
|
/**
|
|
|
* 删除 将del_flag改为1
|
|
|
* @param id
|
|
@@ -483,7 +492,10 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
|
|
|
@Override
|
|
|
public SyPackingListFabric selectById(String id) {
|
|
|
SyPackingListFabric syPackingListFabric= syPackingListFabricMapper.selectById(id);
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
List<SyPackingListFabricItem> items=syPackingListFabricItemMapper.selectByMainId2(id);
|
|
|
+ long endTime = System.currentTimeMillis();
|
|
|
+ System.out.println("查询子表的时间:" + (endTime - startTime) + "ms");
|
|
|
for (SyPackingListFabricItem page : items){
|
|
|
if(page!=null&&page.getComposition()!=null){
|
|
|
if(page.getComposition().indexOf(" ")>0){
|