浏览代码

优化导入

huxy 2 年之前
父节点
当前提交
fefd161f62

+ 11 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/controller/SyPreAssembledPackingListController.java

@@ -981,7 +981,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
         Page<SyPreAssembledPackingListVo> page = new Page<SyPreAssembledPackingListVo>(1, 10000);
         Result result=new Result();
         try{
-            List<SyPreAssembledPackingListVo> pageLists = syPreAssembledPackingListService.selectPage2(page, queryWrapper).getRecords();
+            List<SyPreAssembledPackingListVo> pageLists = syPreAssembledPackingListService.selectPage2( queryWrapper);
             if(pageLists.size()==0){
                 result.setResult(null);
                 result.setMessage("导出失败!没有查询到数据");
@@ -990,12 +990,12 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
             }
             Map<String, List<String>> ids=new HashMap<>();
             for (SyPreAssembledPackingListVo vo : pageLists){
-                if(vo.getStatus().equals("0")){
+                /*if(vo.getStatus().equals("0")){
                     result.setCode(201);
                     result.setMessage("单据"+vo.getDocumentNo()+"未提交!");
                     result.setSuccess(false);
                     return result;
-                }//preDeliveryDate materialComposition
+                }//preDeliveryDate materialComposition*/
                 if(ids.containsKey(vo.getSmallPo()+"-"+vo.getPreDeliveryDate()+"-"+vo.getPrice()+"-"+vo.getMaterialComposition())){
                     ids.get(vo.getSmallPo()+"-"+vo.getPreDeliveryDate()+"-"+vo.getPrice()+"-"+vo.getMaterialComposition()).add(vo.getId());
                 }else{
@@ -1004,7 +1004,10 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                     ids.put(vo.getSmallPo()+"-"+vo.getPreDeliveryDate()+"-"+vo.getPrice()+"-"+vo.getMaterialComposition(),list);
                 }
             }
+            long startTime = System.currentTimeMillis();
             List<SyPreAssembledPackingList> temps=syPreAssembledPackingListService.queryById2(ids);
+            long endTime = System.currentTimeMillis();
+            System.out.println("查数据时间:" + (endTime - startTime) + "ms");
             String load="D:\\单证模板\\预装箱单列表导出test.xlsx";//事件
             int count = temps.size();//分几条sheet
             File file=new File(load);
@@ -1249,7 +1252,11 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                     for (int i=0;i<args3.length;i++){
                         Cell cell = row2.createCell(i);//横向
                         if(i>2&&i!=5&&args3[i].length()>0){
-                            cell.setCellValue(Double.parseDouble(args3[i]));
+                            if(args3[i]==null||args3[i].equals("null")){
+                                cell.setCellValue(0);
+                            }else{
+                                cell.setCellValue(Double.parseDouble(args3[i]));
+                            }
                         }else{
                             cell.setCellValue(args3[i]);
                         }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/entity/SyPreAssembledPackingListItem.java

@@ -499,4 +499,6 @@ public class SyPreAssembledPackingListItem implements Serializable {
 			grossWeight + ","+
 			totalGrossWeight;
 	}
+
+
 }

+ 6 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/SyPreAssembledPackingListItemMapper.java

@@ -38,10 +38,16 @@ public interface SyPreAssembledPackingListItemMapper extends BaseMapper<SyPreAss
 
 	public List<SizeTable> querySize2(@Param("groupId") String groupId, @Param("value2") String pid);
 
+	public List<SizeTable> queryAllSize(@Param("ids") String[] ids);
+
 	@InterceptorIgnore(tenantLine = "true")
 	public List<PackingLineVo> pushData(String id);
 
 	public List<SizeTable> querySize3(@Param("list")String[] ids);
 
 	public List<SyPreAssembledPackingListItem> selectByMainIds(@Param("list")String[] ids);
+
+	@InterceptorIgnore(tenantLine = "true")
+	public Integer insertBatch(@Param("list") List<SyPreAssembledPackingListItem> item);
+
 }

+ 94 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/xml/SyPreAssembledPackingListItemMapper.xml

@@ -175,7 +175,8 @@
 		total quantity,
 		box_Number,
 		total/box_number proportion,
-		sy_pre_assembled_packing_list_item.id itemId
+		sy_pre_assembled_packing_list_item.id itemId,
+		group_id
 			FROM sy_pre_assembled_packing_list_item
 			LEFT JOIN sizetable ON sy_pre_assembled_packing_list_item.`size`=sizetable.`size`
 			OR sy_pre_assembled_packing_list_item.`size`=sizetable.`alias`
@@ -184,6 +185,26 @@
 		order by sy_order_data_item_id
 	</select>
 
+	<!--预装箱单获取id的所有尺码并排序-->
+	<select id="queryAllSize" resultType="org.jeecg.modules.spapl.entity.SizeTable" >
+		SELECT sy_pre_assembled_packing_list_item.size,
+		alias,
+		total quantity,
+		box_Number,
+		total/box_number proportion,
+		sy_pre_assembled_packing_list_item.id itemId,
+		group_id
+			FROM sy_pre_assembled_packing_list_item
+			LEFT JOIN sizetable ON sy_pre_assembled_packing_list_item.`size`=sizetable.`size`
+			OR sy_pre_assembled_packing_list_item.`size`=sizetable.`alias`
+		WHERE  sy_pre_assembled_packing_list_id in
+		<foreach collection="ids" item="value" index="index" open="(" separator="," close=")">
+			#{value}
+		</foreach>
+		 and sy_pre_assembled_packing_list_item.del_flag=0
+		order by sy_order_data_item_id
+	</select>
+
 	<select id="querySize3" resultType="org.jeecg.modules.spapl.entity.SizeTable" >
 		SELECT size, sy_order_data_item_id itemId
 		FROM sy_pre_assembled_packing_list_item
@@ -300,4 +321,76 @@
 		order by starting_Box_Number+0 asc ,colour asc
 	</select>
 
+	<select id="insertBatch"   resultType="int">
+		  	insert into sy_pre_assembled_packing_list_item( id,
+			sy_pre_assembled_packing_list_id,
+			sy_declaration_elements_id,
+			sy_declaration_elements_item_id,
+			ac_set_no,
+			garment_factory,
+			hod,
+			style_no,
+			po_no,
+			item_code,
+			distribution_point,
+			prepack_sku,
+			size,
+			starting_box_number,
+			end_case_number,
+			colour,
+			pieces_box,
+			box_number,
+			total,
+			net_weight,
+			total_net_weight,
+			gross_weight,
+			total_gross_weight,
+			outer_box_length,
+			outer_box_width,
+			outer_box_height,
+			total_volume,
+			net_weight_too,
+			unit_price,
+			total_price,
+			sort,
+			create_by,
+			create_time,
+			update_by,
+			update_time,
+			pk_org,
+			del_flag,
+			memo,
+			with_code,
+			small_po,
+			inventory_name,
+			factory_unit_price,
+			master_Metering,
+			group_id,
+			inventory_Code,
+			plan_Quantity,
+			actual_Packing_Qty,
+			spur_or_sub_order,
+			sy_order_data_id,
+			sy_order_data_item_id,
+			inventory_ccode,
+			supplier_Code,
+			supplier,
+			ompo_Account,
+			ompo_Id,
+			ompo_Id_Item,
+			ymoney,
+			plan_Size,
+			order_Number,
+			remaining_Quantity,
+			salesman,
+			sales_Department,
+			customs_declaration_unit_price,
+			pack_id)
+			VALUES
+			<foreach collection="list" item="entity" index="index" separator="," >
+				(#{entity.id}, #{entity.syPreAssembledPackingListId}, #{entity.syDeclarationElementsId}, #{entity.syDeclarationElementsItemId}, #{entity.acSetNo}, #{entity.garmentFactory}, #{entity.hod}, #{entity.styleNo}, #{entity.poNo}, #{entity.itemCode}, #{entity.distributionPoint}, #{entity.prepackSku}, #{entity.size}, #{entity.startingBoxNumber}, #{entity.endCaseNumber}, #{entity.colour}, #{entity.piecesBox}, #{entity.boxNumber}, #{entity.total}, #{entity.netWeight}, #{entity.totalNetWeight}, #{entity.grossWeight}, #{entity.totalGrossWeight}, #{entity.outerBoxLength}, #{entity.outerBoxWidth}, #{entity.outerBoxHeight}, #{entity.totalVolume}, #{entity.netWeightToo}, #{entity.unitPrice}, #{entity.totalPrice}, #{entity.sort}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.pkOrg}, #{entity.delFlag}, #{entity.memo}, #{entity.withCode}, #{entity.smallPo}, #{entity.inventoryName}, #{entity.factoryUnitPrice}, #{entity.masterMetering}, #{entity.groupId}, #{entity.inventoryCode}, #{entity.planQuantity}, #{entity.actualPackingQty}, #{entity.spurOrSubOrder}, #{entity.syOrderDataId}, #{entity.syOrderDataItemId}, #{entity.inventoryCcode}, #{entity.supplierCode}, #{entity.supplier}, #{entity.ompoAccount}, #{entity.ompoId}, #{entity.ompoIdItem}, #{entity.ymoney}, #{entity.planSize}, #{entity.orderNumber}, #{entity.remainingQuantity}, #{entity.salesman}, #{entity.salesDepartment}, #{entity.customsDeclarationUnitPrice}, #{entity.packId})
+			</foreach>
+
+	</select>
+
 </mapper>

+ 5 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/service/impl/SyPreAssembledPackingListItemServiceImpl.java

@@ -9,10 +9,7 @@ import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListItemService;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -122,4 +119,8 @@ public class SyPreAssembledPackingListItemServiceImpl extends ServiceImpl<SyPreA
 		return sizes;
 	}
 
+	public boolean saveBatch(List<SyPreAssembledPackingListItem> entityList ) {
+		syPreAssembledPackingListItemMapper.insertBatch(entityList);
+		return  true;
+	}
 }

+ 56 - 35
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/service/impl/SyPreAssembledPackingListServiceImpl.java

@@ -398,8 +398,8 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 	}
 
 	@Override
-	public IPage<SyPreAssembledPackingListVo> selectPage2(IPage<SyPreAssembledPackingListVo> page, QueryWrapper<SyPreAssembledPackingListVo> queryWrapper) {
-		return syPreAssembledPackingListMapper.selectPage2(page,queryWrapper);
+	public List<SyPreAssembledPackingListVo> selectPage2( QueryWrapper<SyPreAssembledPackingListVo> queryWrapper) {
+		return syPreAssembledPackingListMapper.selectPage2(queryWrapper);
 	}
 
 	@Override
@@ -639,8 +639,10 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 						if(size.getProportion()==0){
 							item1.setTotal(null);//该尺码件数
 						}
-						listItems.add(item1);
-						syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
+						SyPreAssembledPackingListItem item2=new SyPreAssembledPackingListItem();
+						BeanUtils.copyProperties(item1,item2);
+						listItems.add(item2);
+						//syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
 					}
 				}
 				for (String key : maps.keySet()){
@@ -652,8 +654,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 					syPreAssembledPackingList.setSyOrderDataId(syShippingDetails.getSyOrderDataId());
 				}
 				lists.add(syPreAssembledPackingList);
-				//syPreAssembledPackingListItemService.saveBatch(listItems);
-				syPreAssembledPackingListMapper.insert(syPreAssembledPackingList);//修改汇总数据
+				//syPreAssembledPackingListMapper.insert(syPreAssembledPackingList);//修改汇总数据
 			}
 			bool=true;
 		}catch (Exception e){
@@ -661,9 +662,12 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 			e.getMessage();
 			bool=false;
 		}
-		//System.out.println("listItem"+listItems);
-		//System.out.println("lists"+lists);
-		//saveBatch(lists);
+
+		long startTime = System.currentTimeMillis();
+		syPreAssembledPackingListItemMapper.insertBatch(listItems);
+		long endTime = System.currentTimeMillis();
+		System.out.println("批量插入时间:" + (endTime - startTime) + "ms");
+		saveBatch(lists);
 		return bool;
 	}
 
@@ -673,17 +677,16 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 	@Override
 	public String excelTest(List<SyPreAssembledPackingList> mains) {
 		String strs="";
-		int num=1;
 		for(SyPreAssembledPackingList main : mains){
 			BigDecimal total1=new BigDecimal("0");
 			BigDecimal total2=new BigDecimal("0");
 			BigDecimal total3=new BigDecimal("0");
 			BigDecimal total4=new BigDecimal("0");//(本次数量+现有数量)>1.9*发货数量就报错
 			String name="";
+			String ids="";
 			for (SyPreAssembledPackingListItem item :main.getSyPreAssembledPackingListItemList()){
 				System.out.println("size\t"+item.getSizeTables());
 				total3=total3.add(item.getTotal());
-				String ids="";
 				int num2=0;
 				for (SizeTable size : item.getSizeTables()){
 					ids+=""+size.getItemId()+",";//获取出运明细子表id
@@ -695,35 +698,38 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 							name=item.getStyleNo()+"-"+item.getSmallPo();
 						}
 					}
+					num2++;
 				}
-				if(!ids.equals("")){
-					ids=ids.substring(0,ids.length()-1);
-					QueryWrapper queryWrapper=new QueryWrapper();
-					queryWrapper.in("id", Arrays.asList(ids.split(",")));
-					queryWrapper.select("sum(shipment_Quantity) as shipment_Quantity");
-					SyShippingDetailsItem syshippings=syShippingDetailsItemMapper.selectOne(queryWrapper);
-					if(syshippings!=null){
-						total1=syshippings.getShipmentQuantity();
-					}else{
-						throw new JeecgBootException("该单据在上游未找到");
-					}
-					queryWrapper=new QueryWrapper();
-					queryWrapper.in("sy_declaration_elements_item_id", Arrays.asList(ids.split(",")));
-					queryWrapper.eq("del_flag","0");
-					queryWrapper.select("sum(total) as total");
-					SyPreAssembledPackingListItem sypre=syPreAssembledPackingListItemMapper.selectOne(queryWrapper);
-					if(sypre!=null){;
-						total2=sypre.getTotal();
-						//throw new JeecgBootException("该单据已被参照,请勿重复提交");
-					}
+			}
+			if(!ids.equals("")){
+				ids=ids.substring(0,ids.length()-1);
+				QueryWrapper queryWrapper=new QueryWrapper();
+				queryWrapper.in("id", Arrays.asList(ids.split(",")));
+				queryWrapper.select("sum(shipment_Quantity) as shipment_Quantity");
+				SyShippingDetailsItem syshippings=syShippingDetailsItemMapper.selectOne(queryWrapper);
+				if(syshippings!=null){
+					total1=syshippings.getShipmentQuantity();
+				}else{
+					throw new JeecgBootException("该单据在上游未找到");
+				}
+				queryWrapper=new QueryWrapper();
+				queryWrapper.in("sy_declaration_elements_item_id", Arrays.asList(ids.split(",")));
+				queryWrapper.eq("del_flag","0");
+				queryWrapper.select("sum(total) as total");
+				SyPreAssembledPackingListItem sypre=syPreAssembledPackingListItemMapper.selectOne(queryWrapper);
+				if(sypre!=null){;
+					total2=sypre.getTotal();
+					//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,请勿重复导入");
 			}
 			strs+=name+"的原单据数量"+total1.intValue()+",已参照数量"+total2.intValue()+",本次数量"+total3.intValue()+";";
-			num++;
 		}
 		return strs;
 	}
@@ -795,7 +801,9 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 
 	@Override
 	public List<SyPreAssembledPackingList>  queryById2(Map<String, List<String>> ids){
+		long startTime = System.currentTimeMillis();
 		List<SyPreAssembledPackingList> lists=new ArrayList<>();
+		System.out.println("ids.size\t"+ids.size());
 		for (String key : ids.keySet()){
 			List<String> idList=ids.get(key);
 			String[] arrasId=idList.toArray(new String[idList.size()]);
@@ -811,14 +819,27 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 			}
 			list1.setSizeTables(sizeTables);
 			List<SyPreAssembledPackingListItem> itemList= syPreAssembledPackingListItemMapper.selectByMainIds(arrasId);
+			System.out.println("itemList.size\t"+itemList.size());
+			List<SizeTable> sizes=syPreAssembledPackingListItemMapper.queryAllSize(arrasId);
+			System.out.println("sizes.size\t"+itemList.size());
+			Map<String,List<SizeTable>> map=new HashMap<>();
+			for (SizeTable sizeTable : sizes){
+				if(map.containsKey(sizeTable.getGroupId())){
+					map.get(sizeTable.getGroupId()).add(sizeTable);
+				}else{
+					List<SizeTable> sizes1=new ArrayList<>();
+					sizes1.add(sizeTable);
+					map.put(sizeTable.getGroupId(),sizes1);
+				}
+			}
 			for(SyPreAssembledPackingListItem spaplItem : itemList){
-				List<SizeTable> sizes=syPreAssembledPackingListItemMapper.querySize2(spaplItem.getGroupId(),spaplItem.getSyPreAssembledPackingListId());
-				sizes=sort(sizes);
-				spaplItem.setSizeTables(sizes);
+				spaplItem.setSizeTables(map.get(spaplItem.getGroupId()));
 			}
 			list1.setSyPreAssembledPackingListItemList(itemList);
 			lists.add(list1);
 		}
+		long endTime3 = System.currentTimeMillis();
+		System.out.println("查数据时间运行:" + (endTime3 - startTime) + "ms");
 		return lists;
 	}
 

+ 3 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/util/InterfaceConnUtils.java

@@ -73,6 +73,8 @@ public class InterfaceConnUtils {
         HttpClient httpClient = new DefaultHttpClient();
         //获取token的Url
         String tokenUrl=tokenIp;
+        log.info(url);
+        log.info(tokenIp);
         try {
             HttpPost hpGetToken=new HttpPost(tokenUrl);
             //调用接口
@@ -81,7 +83,7 @@ public class InterfaceConnUtils {
             String resultTokenStr = EntityUtils.toString(response.getEntity());
             JSONObject tokenjb=JSONObject.parseObject(resultTokenStr);
             token=tokenjb.getString("access_token");
-           // System.out.println("token:"+token);
+            System.out.println("token:"+token);
         } catch (Exception e) {
             e.printStackTrace();
         }