Browse Source

面辅料导出修改

huxy 2 years ago
parent
commit
962034d1b2

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

@@ -5,6 +5,7 @@ import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.io.IOException;
 import java.lang.reflect.Array;
+import java.math.BigDecimal;
 import java.net.URLDecoder;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -84,13 +85,14 @@ public class SyPackingListFabricController {
 	private ISyPackingListFabricItemService syPackingListFabricItemService;
 	
 	/**
-	 * 分页列表查询
 	 *
+	 * 分页列表查询
 	 * @param syPackingListFabric
 	 * @param pageNo
 	 * @param pageSize
 	 * @param req
 	 * @return
+	 *
 	 */
 	@AutoLog(value = "装箱单-面辅料-分页列表查询")
 	@ApiOperation(value="装箱单-面辅料-分页列表查询", notes="装箱单-面辅料-分页列表查询")
@@ -509,8 +511,6 @@ public class SyPackingListFabricController {
 			 } catch (Exception e) {
 				 log.error(e.getMessage(),e);
 				 return Result.error("文件导入失败:"+e.getMessage());
-			 } finally {
-
 			 }
 		 }
 		 return Result.OK("文件导入失败!");
@@ -569,6 +569,17 @@ public class SyPackingListFabricController {
 		return Result.OK(massage);
 	}
 
+
+	 public static boolean isNumeric(String str) {
+		 String bigStr;
+		 try {
+			 bigStr = new BigDecimal(str).toString();
+		 } catch (Exception e) {
+			 return false;//异常 说明包含非数字。
+		 }
+		 return true;
+	 }
+
 	 @AutoLog(value = "装箱单面辅料JSON")
 	 @ApiOperation(value="装箱单面辅料JSON", notes="装箱单面辅料JSON")
 	 @GetMapping(value = "/pushSplt")
@@ -645,11 +656,7 @@ public class SyPackingListFabricController {
 	 @RequestMapping(value = "/exportXls")
 	 public Result<SyPackingListFabric> exportXls(HttpServletRequest request,HttpServletResponse response,SyPackingListFabric syPackingListFabric) {
 		 long startTime = System.currentTimeMillis();
-		 /*要计算的程序部分*/
-		 /* SyPackingListFabric syPackingListFabric=new SyPackingListFabric();
-		 if(oConvertUtils.isNotEmpty(id)){
-			 syPackingListFabric.setId(id);
-		 }*/
+		 System.out.println("开始导出");
 		 Result result=new Result();
 		 try{
 			 QueryWrapper<SyPackingListFabric> queryWrapper =  new QueryWrapper<>(); //QueryGenerator.initQueryWrapper(syPackingListFabric, request.getParameterMap());
@@ -667,14 +674,15 @@ public class SyPackingListFabricController {
 			 }
 			 queryWrapper.eq("a.del_flag","0");
 			 Page<SyPackingListFabric> page = new Page<SyPackingListFabric>(1, 10000);
-			 List<SyPackingListFabric> packingListFabrics = syPackingListFabricService.selectPage(page, queryWrapper).getRecords();
+			// List<SyPackingListFabric> packingListFabrics = syPackingListFabricService.selectPage(page, queryWrapper).getRecords();
+
+			 List<SyPackingListFabric> packingListFabrics  =syPackingListFabricService.selectByList(page, queryWrapper);//进行合并
 			 if(packingListFabrics.size()==0){
 				 result.setResult(null);
 				 result.setMessage("导出失败!没有查询到数据");
 				 result.setSuccess(false);
 				 return result;
 			 }
-			 packingListFabrics=syPackingListFabricService.selectByList(packingListFabrics);
 			 long endTime = System.currentTimeMillis();
 			 System.out.println("查询子表后程序运行时间:" + (endTime - startTime) + "ms");
 			 String load="D:\\单证模板\\面辅料.xlsx";
@@ -683,11 +691,10 @@ public class SyPackingListFabricController {
 			 TemplateExportParams templateExcelConstants=new TemplateExportParams(file.getAbsolutePath(),true,"面辅料");
 			 List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
 			 Map<Integer, List<Map<String, Object>>> maps = new HashMap<Integer, List<Map<String, Object>>>();
-			 for (int i = 1; i <=count ; i++) {
-				 List<SyPackingListFabric> exportList=new ArrayList<>();
-				 exportList.add(packingListFabrics.get(i-1));
-				 SyPackingListFabric exportList2=packingListFabrics.get(i-1);
+			 for (int i = 0; i <count ; i++) {
+				 SyPackingListFabric exportList2=packingListFabrics.get(i);
 				 Map<String, Object> map = new HashMap<String, Object>();
+				 //map.put("entity", packingListFabrics);//主表数据
 				 map.put("entity", exportList2);//主表数据
 				 map.put("maps", exportList2.getSyPackingListFabricItem());//子表数据
 				 listMap.add(map);
@@ -695,7 +702,8 @@ public class SyPackingListFabricController {
 			 maps.put(0,listMap);
 			 templateExcelConstants.setColForEach(true);
 			 Workbook workbook = ExcelExportUtil.exportExcelClone(maps,templateExcelConstants);
-			 for(int i=0;i<packingListFabrics.size();i++){
+			// Workbook workbook = ExcelExportUtil.exportExcel(maps,templateExcelConstants);
+			 for(int i=0;i<count;i++){
 				 workbook.setSheetName(i,"面辅料"+(i+1));
 			 }
 			 //refreshSheet(workbook,temps);//配置某列数据
@@ -707,7 +715,6 @@ public class SyPackingListFabricController {
 			 result.setSuccess(true);
 		 }catch (Exception e){
 		 	e.printStackTrace();
-			 System.err.println("message\t"+e.getMessage());
 			 result.setResult(null);
 			 result.setMessage(e.getMessage());
 			 result.setSuccess(false);

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabricItem.java

@@ -408,10 +408,10 @@ public class SyPackingListFabricItem implements Serializable {
 		}else{
 			kaoClothWeight=new BigDecimal(strs[20] );//拷布重
 		}
-		if(strs[22]==null||strs[22].equals("")){
+		if(strs[22]==null||strs[22].equals("")){//
 			actualDeclaredQuantity=new BigDecimal(0);//实际报关数量
 		}else{
-			actualDeclaredQuantity=new BigDecimal(strs[22] );//实际报关数量
+			actualDeclaredQuantity=new BigDecimal(strs[22]);//实际报关数量
 		}
 		mannerOfPacking=strs[23];//包装方式
 		treatmentMethod=strs[24];//处理方式

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

@@ -33,6 +33,8 @@ public interface SyPackingListFabricMapper extends BaseMapper<SyPackingListFabri
 
     IPage<SyPackingListFabric> queryMain(IPage<SyPackingListFabric> page, @Param("ew") QueryWrapper<SyPackingListFabric> queryWrapper);
 
+    IPage<SyPackingListFabric> queryMain2(IPage<SyPackingListFabric> page, @Param("ew") QueryWrapper<SyPackingListFabric> queryWrapper);
+
     public SyShippingOrder querySyShippingOrder(String SyPackingListTailoringId);
     //获取供应商,区分来源
     List<Map<String,Object>> getOM_MOMaterials(@Param("id")String id,@Param("cinvCode")String cinvCode);

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

@@ -116,12 +116,13 @@
 	</select>
 
 	<select id="selectByMainId2" parameterType="java.lang.String" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabricItem">
-		SELECT
-			*
-		FROM `sy_packing_list_fabric_item`
-		where del_flag=0 and
+		SELECT a.create_time ,a.create_by ,a.garment_Factory,b.* FROM
+		sy_packing_list_fabric a LEFT JOIN
+		sy_packing_list_fabric_item b ON
+		a.id=b.sy_packing_list_fabric_id and a.del_flag=0
+		WHERE b.del_flag=0 and
 		sy_packing_list_fabric_id=#{value}
-		order by group_id desc
+		ORDER BY group_id,b.elements_Id,declaration_Name,plan_Lot_Number
 	</select>
 
 	<select id="getList"   resultType="org.jeecg.modules.splfi.entity.SyPackingListFabricItem">
@@ -132,7 +133,7 @@
 		<foreach collection="ids" item="value" index="index" open="(" separator="," close=")">
 			#{value}
 		</foreach>
-		order by group_id desc
+		ORDER BY group_id,elements_Id,declaration_Name,plan_Lot_Number
 	</select>
 
 	<!--<select id="getu8Data"  resultMap="genderIsosid">-->

+ 12 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricMapper.xml

@@ -106,6 +106,18 @@
 		order by a.create_time desc
 	</select>
 
+    <select id="queryMain2" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabric">
+		SELECT
+			a.*
+		FROM `sy_packing_list_fabric` a
+		/*left join sy_packing_list_fabric_item b
+		on a.id=b.sy_packing_list_fabric_id*/
+		/*and b.del_flag*/
+		${ew.customSqlSegment}
+		group by a.id
+		order by a.create_time desc
+	</select>
+
     <select id="selectById2" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabric">
 		SELECT
 			a.*,

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

@@ -60,7 +60,7 @@ public interface ISyPackingListFabricService extends IService<SyPackingListFabri
 	public SyPackingListFabric selectById(String id);
 
 	//根据id获取主表子表汇总数据
-	public List<SyPackingListFabric> selectByList(List<SyPackingListFabric> syPackingListFabrics);
+	public List<SyPackingListFabric> selectByList(IPage<SyPackingListFabric> page,QueryWrapper<SyPackingListFabric> queryWrapper);
 
 	//分页查询
 	IPage<SyPackingListFabric> selectPage(IPage<SyPackingListFabric> page,QueryWrapper<SyPackingListFabric> queryWrapper);

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

@@ -290,29 +290,48 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		return syPackingListFabric;
 	}
 
+	//面辅料导出,集装箱号、外销发票号相同进行合并
 	@Override
-	public List<SyPackingListFabric> selectByList(List<SyPackingListFabric> syPackingListFabrics) {
-		ArrayList arrayList=new ArrayList();
-		for (SyPackingListFabric item : syPackingListFabrics){
-			arrayList.add(item.getId());
-		}
-		System.out.println(arrayList);
-		List<SyPackingListFabricItem> items= syPackingListFabricItemMapper.getList(arrayList.toArray());
-		Map<String,List<SyPackingListFabricItem>> maps=new HashMap<>();
-		for(SyPackingListFabricItem item : items){
-			if(!maps.containsKey(item.getSyPackingListFabricId())){
-				maps.put(item.getSyPackingListFabricId(),new ArrayList<SyPackingListFabricItem>());
-				maps.get(item.getSyPackingListFabricId()).add(item);
+	public List<SyPackingListFabric> selectByList(IPage<SyPackingListFabric> page,QueryWrapper<SyPackingListFabric> queryWrapper) {
+		 //传搜索条件
+		List <SyPackingListFabric> packingListFabrics =syPackingListFabricMapper.queryMain(page,queryWrapper).getRecords();//查询
+		System.out.println("查询到"+packingListFabrics.size()+"条数据");
+		List <SyPackingListFabric> arrayLists=new ArrayList();//最终返回数据
+		Map<String,SyPackingListFabric> maps=new HashMap<>();
+		for (SyPackingListFabric main : packingListFabrics){//获取子表数据
+			List<SyPackingListFabricItem> items=syPackingListFabricItemMapper.selectByMainId2(main.getId());
+			if(items.size()>0){
+				/*for(SyPackingListFabricItem item : items){
+					item.setCreateBy(main.getCreateBy());//获取制单人
+					item.setCreateTime(main.getCreateTime());//获取制单时间
+				}
+				System.out.println("createtime\t"+main.getCreateTime());
+				System.out.println("createby\t"+main.getCreateBy());*/
+				main.setSyPackingListFabricItem(items);
+			}
+			if(main.getContainerNumber()!=null){
+				main.setContainerNumber("");
+			}
+			if(main.getExportInvoiceNo()!=null){
+				main.setExportInvoiceNo("");
+			}
+			if(maps.containsKey(main.getContainerNumber()+main.getExportInvoiceNo())){//有相同的外销发票号和集装箱号
+				SyPackingListFabric syPackingListFabric= maps.get(main.getContainerNumber()+main.getExportInvoiceNo());
+				items.addAll(syPackingListFabric.getSyPackingListFabricItem());
+				syPackingListFabric.setSyPackingListFabricItem(items);
+
 			}else{
-				maps.get(item.getSyPackingListFabricId()).add(item);
+				maps.put(main.getContainerNumber()+main.getExportInvoiceNo(),main);
 			}
 		}
-		for (SyPackingListFabric syPackingListFabric :syPackingListFabrics){
-			syPackingListFabric.setSyPackingListFabricItem(maps.get(syPackingListFabric.getId()));
+		for (String key : maps.keySet()){
+			arrayLists.add(maps.get(key));
 		}
-		return syPackingListFabrics;
+
+		return arrayLists;
 	}
 
+	//主页查询
 	@Override
 	public IPage<SyPackingListFabric> selectPage(IPage<SyPackingListFabric> page, QueryWrapper<SyPackingListFabric> queryWrapper) {
 		return syPackingListFabricMapper.queryMain(page,queryWrapper);
@@ -400,6 +419,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					syPackingListFabric.setGarmentFactory(item.getGarmentFactory());//主表的成衣
 					syPackingListFabric.setCustomerAbbreviation(item.getCustomerAbbreviation());//客户简称
 					s1.setPrice(item.getSalesUnitPrice());//销售单价
+					s1.setGroupId(oConvertUtils.getId());//分组id
 					s1.setInventoryCcode(item.getInventoryCcode());//物料分类
 					s1.setMasterMetering(item.getMasterMetering());//单位
 					syPackingListFabric.setSyDeclarationElementsId(item.getShippingDetailsId());//出运明细主表id
@@ -1426,7 +1446,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 						queryWrapper2.last("limit 1");
 						SyShippingDetailsItem syShippingDetailsItem = syShippingDetailsItemMapper.selectOne(queryWrapper2);
 						if (syShippingDetailsItem != null) {
-							sy1.setInventoryCcode(syShippingDetailsItem.getInventoryCcode()); 
+							sy1.setInventoryCcode(syShippingDetailsItem.getInventoryCcode());
 							String elementsId = syShippingDetailsItem.getElementsId();//申报要素id
 							if (oConvertUtils.isNotEmpty(elementsId)) {
 								SyDeclarationElements syDeclarationElements = syDeclarationElementsMapper.selectById(elementsId);