Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

fenghaifu 2 yıl önce
ebeveyn
işleme
326fc176bd

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/SyPackingListFabricItemMapper.java

@@ -22,6 +22,8 @@ import org.jeecg.modules.splt.vo.SyPackingListTailoringVo;
 public interface SyPackingListFabricItemMapper extends BaseMapper<SyPackingListFabricItem> {
 
 	public boolean deleteByMainId(String mainId);
+
+	public boolean deleteById(String id);
     
 	public List<SyPackingListFabricItem> selectByMainId(String mainId);
 

+ 6 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricItemMapper.xml

@@ -5,12 +5,17 @@
 	<delete id="deleteByMainId" parameterType="java.lang.String">
 		update sy_packing_list_fabric_item set del_flag=1 where sy_packing_list_fabric_id=#{value}
 	</delete>
+
+	<delete id="deleteById" parameterType="java.lang.String">
+		update sy_packing_list_fabric_item set del_flag=1 where id=#{value}
+	</delete>
 	
 	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabricItem">
 		SELECT * 
 		FROM  sy_packing_list_fabric_item
 		WHERE
-			 sy_packing_list_fabric_id = #{id} 		
+			 sy_packing_list_fabric_id = #{id}
+			 and del_flag=0
 	</select>
 
 	<select id="getSyShippingDetailsData" parameterType="java.lang.String" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabricItem">

+ 64 - 52
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java

@@ -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){