Ver Fonte

面辅料导入添加验证

huxy há 2 anos atrás
pai
commit
57a37fae60

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

@@ -630,7 +630,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 					}
 				}
 			}
-			strs+="第"+num+"页原单据数量"+total1+",已参照数量"+total2+",本次数量"+total3+"\n";
+			strs+="第"+num+"页原单据数量"+total1+",已参照数量"+total2+",本次数量"+total3+"";
 			num++;
 		}
 		System.out.println("strs\n"+strs);

+ 57 - 7
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/controller/SyPackingListFabricController.java

@@ -499,6 +499,58 @@ public class SyPackingListFabricController {
 	  return Result.OK("文件导入失败!");
 	}
 
+	 /**
+	  * 通过excel导入数据
+	  *
+	  * @param request
+	  * @param response
+	  * @return
+	  */
+	 @RequestMapping(value = "/importExcel2", method = RequestMethod.POST)
+	 public Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response) {
+		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			 MultipartFile file = entity.getValue();// 获取上传文件对象
+			 ImportParams params = new ImportParams();
+			 //params.setTitleRows(1);//注释后就能读取数据了
+			 //params.setHeadRows(1);
+			 params.setNeedSave(true);
+			 try {
+				 List<SyPackingListFabricVo> list = ExcelImportUtil.importExcel(file.getInputStream(), SyPackingListFabricVo.class, params);
+				 Map<String,SyPackingListFabric> maps=new HashMap<>();
+				 for (SyPackingListFabricVo vo : list) {
+					 SyPackingListFabricItem po =new SyPackingListFabricItem();
+					 BeanUtils.copyProperties(vo,po);
+					 if(!maps.containsKey(vo.getSyShippingDetailsId())){
+						 SyPackingListFabric main =new SyPackingListFabric();
+						 main.setGarmentFactory(vo.getTheGarmentFactory());//成衣工厂
+						 main.setSyPackingListFabricItem(new ArrayList<>());
+						 main.getSyPackingListFabricItem().add(po);
+						 maps.put(vo.getSyShippingDetailsId(),main);
+					 }else{
+						 maps.get(vo.getSyShippingDetailsId()).getSyPackingListFabricItem().add(po);
+					 }
+				 }
+				 String strs=syPackingListFabricService.excelTest(maps);
+				 if(strs!=null){
+					 return Result.OK(strs);
+				 }
+				 return Result.OK("文件导入成功!数据行数:" + list.size());
+			 } catch (Exception e) {
+				 log.error(e.getMessage(),e);
+				 return Result.error("文件导入失败:"+e.getMessage());
+			 } finally {
+				 try {
+					 file.getInputStream().close();
+				 } catch (IOException e) {
+					 e.printStackTrace();
+				 }
+			 }
+		 }
+		 return Result.OK("文件导入失败!");
+	 }
+
 	@AutoLog(value = "手动同步辅料数据")
 	@ApiOperation(value="手动同步辅料数据", notes="手动同步辅料数据")
 	@GetMapping(value = "/getU8Data")
@@ -510,7 +562,7 @@ public class SyPackingListFabricController {
 	 @AutoLog(value = "装箱单面辅料JSON")
 	 @ApiOperation(value="装箱单面辅料JSON", notes="装箱单面辅料JSON")
 	 @GetMapping(value = "/pushSplt")
-	 public JSONObject pushSplt(String id) {
+	 public List pushSplt(String id) {
 		 List list=new ArrayList();
 		 SyPackingListFabric syPackingListFabric= syPackingListFabricService.getById(id);
 		 QueryWrapper queryWrapper=new QueryWrapper();
@@ -519,14 +571,13 @@ public class SyPackingListFabricController {
 		 for (SyPackingListFabricItem item : items){
 		 	item.setCreateTime(null);
 		 }
-		 System.out.println("items\n"+items);
 		 syPackingListFabric.setSyPackingListFabricItem(items);
 		 syPackingListFabric.setCreateTime(null);
 		 list.add(syPackingListFabric);
-		 Gson userGson = new GsonBuilder().create();
-		 JSONObject jsonObjec=new JSONObject();
-		 jsonObjec.put("splfi", userGson.toJson(JSONObject.toJSON(list)));
-		 return jsonObjec;
+		// Gson userGson = new GsonBuilder().create();
+		// //JSONObject jsonObjec=new JSONObject();
+		// jsonObjec.put("splfi", userGson.toJson(JSONObject.toJSON(list)));
+		 return list;
 	 }
 
 	 @AutoLog(value = "测试接收功能")
@@ -552,7 +603,6 @@ public class SyPackingListFabricController {
 					 }
 					 for(SyPackingListFabric syPackingListFabric : packingListFabrics){
 						if(syPackingListFabric==null||syPackingListFabric.getSyDeclarationElementsId()==null){
-							System.out.println("SyPackingListFabric\n"+syPackingListFabric);
 							result.setSuccess(false);
 							result.success("未获取到发运明细的id");
 							return result;

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

@@ -74,4 +74,6 @@ public interface ISyPackingListFabricService extends IService<SyPackingListFabri
     void saveList(List<SyPackingListFabric> syPackingListFabrics);
 
     boolean excelAdd(Map<String,SyPackingListFabric> maps);
+
+	String excelTest(Map<String, SyPackingListFabric> maps);
 }

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

@@ -11,6 +11,7 @@ import org.jeecg.modules.documents.seclarationElements.entity.SyDeclarationEleme
 import org.jeecg.modules.documents.seclarationElements.entity.SyDeclarationElementsItem;
 import org.jeecg.modules.documents.seclarationElements.mapper.SyDeclarationElementsItemMapper;
 import org.jeecg.modules.documents.seclarationElements.mapper.SyDeclarationElementsMapper;
+import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetails;
 import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
 import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsItemMapper;
@@ -21,13 +22,16 @@ import org.jeecg.modules.openApi.service.IDxpDataPlanService;
 import org.jeecg.modules.openApi.service.ISenYuDataSourceOne;
 import org.jeecg.modules.openApi.service.ISenYuDataSourceThree;
 import org.jeecg.modules.openApi.service.ISenYuDataSourceTwo;
+import org.jeecg.modules.spapl.entity.SizeTable;
 import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
 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.ISyPackingListFabricService;
 import org.jeecg.modules.splt.entity.SyPackingListTailoring;
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.util.JsonChangeUtils;
 import org.jeecg.modules.system.util.oConvertUtils;
@@ -541,6 +545,47 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		return bool;
 	}
 
+	@Override
+	public String excelTest(Map<String, SyPackingListFabric> maps) {
+		String strs="";
+		int num=1;
+		for(SyPackingListFabric main : maps.values()){
+			BigDecimal total1=new BigDecimal("0");
+			BigDecimal total2=new BigDecimal("0");
+			BigDecimal total3=new BigDecimal("0");
+			String ids="";
+			for (SyPackingListFabricItem item :main.getSyPackingListFabricItem()){
+				total3=total3.add(item.getActualDeclaredQuantity());
+				ids+=item.getSyShippingDetailsItemId()+",";//获取出运明细子表id
+			}
+			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 syShippingDetails=syShippingDetailsItemMapper.selectOne(queryWrapper);
+				if(syShippingDetails==null){
+					throw new JeecgBootException("该单据在上游未找到");
+				}else{
+					total1=syShippingDetails.getShipmentQuantity();
+				}
+				queryWrapper=new QueryWrapper();
+				queryWrapper.in("sy_Shipping_Details_Item_Id", Arrays.asList(ids.split(",")));
+				queryWrapper.select("sum(actual_Declared_Quantity) as actual_Declared_Quantity");
+				SyPackingListFabricItem syPackingListFabricItem=syPackingListFabricItemMapper.selectOne(queryWrapper);
+				if(syPackingListFabricItem!=null){
+					total2=syPackingListFabricItem.getActualDeclaredQuantity();
+					System.out.println("syPackingListFabricItem为\t"+syPackingListFabricItem.getActualDeclaredQuantity());//报关数量
+					//throw new JeecgBootException("该单据已被成衣参照!请勿重复操作");
+				}
+			}
+			strs+="第"+num+"页原单据数量"+total1+",已参照数量"+total2+",本次数量"+total3+";";
+			num++;
+		}
+		System.out.println("strs\n"+strs);
+		return strs;
+	}
+
 	//@Override
 	//@Transactional
 	@Scheduled(fixedRate=1000*60*300)

+ 19 - 12
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java

@@ -910,21 +910,28 @@ public class SyPackingListTailoringController {
 	 public Result<?> importExcel3(HttpServletRequest request, HttpServletResponse response) throws IOException {
 		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
 		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-			 MultipartFile file = entity.getValue();// 获取上传文件对象
-			 System.out.println("文件是否为空--isfile\t"+file.isEmpty());
-			 System.out.println("文件全称--fileName\t"+file.getOriginalFilename());
-			 System.out.println("文件类型--fileType\t"+file.getContentType());
-			 System.out.println("文件大小--fileSize\t"+file.getSize()/1024+"KB");
-			 InputStream inputStream=file.getInputStream();
-			 Workbook workbook=new XSSFWorkbook(inputStream);
-			 refreshSheet1(workbook);
+		 try{
+			 String str="";
+			 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+				 MultipartFile file = entity.getValue();// 获取上传文件对象
+				 System.out.println("文件是否为空--isfile\t"+file.isEmpty());
+				 System.out.println("文件全称--fileName\t"+file.getOriginalFilename());
+				 System.out.println("文件类型--fileType\t"+file.getContentType());
+				 System.out.println("文件大小--fileSize\t"+file.getSize()/1024+"KB");
+				 InputStream inputStream=file.getInputStream();
+				 Workbook workbook=new XSSFWorkbook(inputStream);
+				 str+=refreshSheet1(workbook);
+			 }
+			 return Result.OK(str);
+		 }
+		 catch (Exception e){
+			 e.printStackTrace();
+			 return Result.error("文件导入失败"+e.getMessage());
 		 }
-		 return Result.OK("文件导入成功!");
 	 }
 
 
-	 private void refreshSheet1(Workbook workbook1) {
+	 private String refreshSheet1(Workbook workbook1) {
 		 List<SyPackingListTailoring> mains=new ArrayList<>();
 		 Iterator sheets=workbook1.sheetIterator();
 		 int num=0;
@@ -980,7 +987,7 @@ public class SyPackingListTailoringController {
 			 main.setSyPackingListTailoringItemList(items);
 			 mains.add(main);
 		 }
-		 syPackingListTailoringService.test(mains);//新增
+		 return syPackingListTailoringService.test(mains);//新增
 	 }
 
 	 @AutoLog(value = "装箱单成衣JSON")

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -586,7 +586,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					}
 				}
 			}
-			strs+="第"+num+"页原单据数量"+total1+",已参照数量"+total2+",本次数量"+total3+"\n";
+			strs+="第"+num+"页原单据数量"+total1+",已参照数量"+total2+",本次数量"+total3+"";
 			num++;
 		}
 		System.out.println("strs\n"+strs);