Ver código fonte

面辅料推送和尺码排序

huxy 2 anos atrás
pai
commit
ab420604ad

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

@@ -111,6 +111,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                                                                      HttpServletRequest req) {
         //System.out.println("当前登录用户:"+((LoginUser)SecurityUtils.getSubject().getPrincipal()).getRealname());
         QueryWrapper<SyPreAssembledPackingListVo> queryWrapper =new QueryWrapper<>();//初始化
+        long startTime = System.currentTimeMillis();
         queryWrapper.eq("a.del_flag","0");//默认查询未删除
         if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getId())){//查询id
             queryWrapper.eq("a.id",syPreAssembledPackingListVo.getId());
@@ -168,6 +169,8 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
         }
         Page<SyPreAssembledPackingListVo> page = new Page<SyPreAssembledPackingListVo>(pageNo, pageSize);
         IPage<SyPreAssembledPackingListVo> pageList = syPreAssembledPackingListService.selectPage(page, queryWrapper);
+        long endTime3 = System.currentTimeMillis();
+        System.out.println("查数据时间运行:" + (endTime3 - startTime) + "ms");
         return Result.OK(pageList);
     }
 

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

@@ -128,13 +128,14 @@
 	</select>
 
 	<select id="selectSize" resultType="org.jeecg.modules.spapl.entity.SizeTable" parameterType="java.lang.String">
-		SELECT * FROM  sizetable WHERE num&gt;=(SELECT num FROM sizetable WHERE  size=#{begin} or alias=#{begin})
+		SELECT * FROM  sizetable
+		WHERE num&gt;=(SELECT num FROM sizetable WHERE  size=#{begin} or alias=#{begin})
 		AND num&lt;=(SELECT num FROM sizetable WHERE size=#{end} or alias=#{end}) order by num
 	</select>
 
 	<!--获取所有id的所有尺码去重并排序-->
 	<select id="querySizes" resultType="org.jeecg.modules.spapl.entity.SizeTable" parameterType="java.lang.String">
-		SELECT DISTINCT sy_shipping_details_item.size
+		SELECT DISTINCT sy_shipping_details_item.size,sizetable.num
 		FROM sy_shipping_details_item
 		LEFT JOIN sizetable
 		ON sy_shipping_details_item.`size`=sizetable.`size`
@@ -143,13 +144,13 @@
 		AND sy_shipping_details_item.size IS NOT NULL
 		and sy_shipping_details_item.del_flag=0
 		and sy_shipping_details_item.group_id=#{groupId}
-		ORDER BY sy_order_data_item_id
+		ORDER BY num
 	</select>
 
 
 	<!--获取所有id的所有尺码去重并排序2-->
 	<select id="querySizes2" resultType="org.jeecg.modules.spapl.entity.SizeTable" parameterType="java.lang.String">
-		SELECT DISTINCT sy_pre_assembled_packing_list_item.size,alias
+		SELECT DISTINCT sy_pre_assembled_packing_list_item.size,sizetable.num
 		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`
@@ -162,6 +163,7 @@
 		SELECT
 		sy_pre_assembled_packing_list_item.size,
 		sy_pre_assembled_packing_list_id as id,
+		sizetable.num,
 		id as itemId,
 		sy_order_data_item_id,
 		total quantity,
@@ -175,13 +177,14 @@
 			#{value}
 		</foreach>
 		 and sy_pre_assembled_packing_list_item.del_flag=0
-		ORDER BY sy_order_data_item_id
+		ORDER BY num
 	</select>
 
 	<select id="queryAllSizes2" resultType="org.jeecg.modules.spapl.entity.SizeTable" parameterType="java.lang.String">
 		SELECT DISTINCT
 		sy_pre_assembled_packing_list_item.size,
-		sy_pre_assembled_packing_list_id as id
+		sy_pre_assembled_packing_list_id as id,
+		num
 		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`
@@ -190,13 +193,14 @@
 			#{value}
 		</foreach>
 		and sy_pre_assembled_packing_list_item.del_flag=0
-		ORDER BY sy_order_data_item_id
+		ORDER BY num
 	</select>
 
 	<!--参照发育明细获取id的所有尺码并排序-->
 	<select id="querySize" resultType="org.jeecg.modules.spapl.entity.SizeTable" >
 		SELECT 	sy_shipping_details_item.size,
 		sizetable.alias,
+		sizetable.num,
 		sy_shipping_details_item.shipment_Quantity quantity,
 		sy_shipping_details_item.shipment_Quantity/sy_shipping_details_item.box_Number proportion,
 		sy_shipping_details_item.id itemId
@@ -206,7 +210,7 @@
 		WHERE shipping_details_id=#{value}
 			and sy_shipping_details_item.group_id=#{groupId}
 			and sy_shipping_details_item.del_flag=0
-		ORDER BY sy_order_data_item_id
+		ORDER BY num
 	</select>
 
 	<!--预装箱单获取id的所有尺码并排序-->
@@ -216,6 +220,7 @@
 		box_Number,
 		total quantity,
 		total/box_number proportion,
+		sizetable.num,
 		sy_pre_assembled_packing_list_item.id itemId,
 		group_id
 			FROM sy_pre_assembled_packing_list_item
@@ -223,7 +228,7 @@
 			OR sy_pre_assembled_packing_list_item.`size`=sizetable.`alias`
 		WHERE group_id=#{groupId} and sy_pre_assembled_packing_list_id=#{value2}
 		 and sy_pre_assembled_packing_list_item.del_flag=0
-		order by sy_order_data_item_id
+		order by num
 	</select>
 
 	<!--预装箱单获取id的所有尺码并排序-->
@@ -232,6 +237,7 @@
 		alias,
 		total quantity,
 		box_Number,
+		num,
 		sy_order_data_item_id,
 		total/box_number proportion,
 		sy_pre_assembled_packing_list_item.id itemId,
@@ -244,22 +250,24 @@
 			#{value}
 		</foreach>
 		 and sy_pre_assembled_packing_list_item.del_flag=0
-		order by sy_order_data_item_id
+		order by num
 	</select>
 
 	<select id="querySize3" resultType="org.jeecg.modules.spapl.entity.SizeTable" >
-		SELECT DISTINCT b.size, b.sy_order_data_item_id itemId,
+		SELECT DISTINCT b.size, b.sy_order_data_item_id itemId,num,
 		CONCAT(b.small_po,b.hod,b.unit_price,d.material_composition) groupName
 		FROM sy_pre_assembled_packing_list_item b
 		left join sy_shipping_details_item d
 		on	b.sy_declaration_elements_item_id=d.id
+		left join sizetable f
+		on b.size=f.size
 		WHERE b.sy_pre_assembled_packing_list_id in
 		<foreach collection="list" item="value" index="index" open="(" separator="," close=")">
 			#{value}
 		</foreach>
 		and b.del_flag=0  /*b.small_po,b.hod,b.unit_price,d.material_composition*/
 		/*group by b.small_po,b.hod,b.unit_price,d.material_composition*/
-		order by itemId
+		order by num
 	</select>
 
 

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

@@ -308,12 +308,6 @@
 
     <select id="queryById2" resultType="org.jeecg.modules.spapl.entity.SyPreAssembledPackingList" parameterType="java.lang.String">
         SELECT
-        SUM(a.total) total,/*件数*/
-        SUM(a.total_Boxes) total_Boxes,/*件数*/
-        SUM(a.total_net_weight) totalnetweight,/*总净重*/
-        SUM(a.total_gross_weight) totalgrossweight,/*总毛重*/
-        SUM(a.total_volume) totalvolume,/*总体积*/
-        SUM(a.total_price) totalprice,
         a.item_Number item_Number,
         b.small_Po order_Number,
         SUBSTRING(b.hod,1,10)  hod,

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

@@ -1133,24 +1133,24 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}
 			}
 			int num1=1;
-			Map<String,BigDecimal> bigDecimalMap=new HashMap<>();
+			Map<String,BigDecimal> bigDecimalMap=new HashMap<>();//k:委外采购订单id v:合计数量
 			Map<String,Boolean> booleanMap=new HashMap<>();
 			if(mapt.get("account").equals("901")){//901账套
 				for (SyPackingListFabricItem item : main.getSyPackingListFabricItem()){
 					//System.out.println("inventoryCcode\t"+item.getInventoryCcode());
 					if(item.getInventoryCcode().indexOf("04")!=-1||item.getInventoryCcode().indexOf("03")!=-1){
-						booleanMap.put(item.getOmpoIdItem(),false);
-						if(bigDecimalMap.containsKey(item.getOmpoIdItem())){//再次
+						booleanMap.put(item.getInventoryCode(),false);
+						if(bigDecimalMap.containsKey(item.getInventoryCode())){//再次
 							if(item.getMasterMetering().equals("KG")){
-								bigDecimalMap.put(item.getOmpoIdItem(),bigDecimalMap.get(item.getOmpoIdItem()).add(item.getNetWeight()));
+								bigDecimalMap.put(item.getInventoryCode(),bigDecimalMap.get(item.getInventoryCode()).add(item.getNetWeight()));
 							}else{
-								bigDecimalMap.put(item.getOmpoIdItem(),item.getActualDeclaredQuantity().add(item.getActualDeclaredQuantity()));
+								bigDecimalMap.put(item.getInventoryCode(),item.getActualDeclaredQuantity().add(item.getActualDeclaredQuantity()));
 							}
 						}else{//初次
 							if(item.getMasterMetering().equals("KG")){
-								bigDecimalMap.put(item.getOmpoIdItem(),item.getNetWeight());
+								bigDecimalMap.put(item.getInventoryCode(),item.getNetWeight());
 							}else{
-								bigDecimalMap.put(item.getOmpoIdItem(),item.getActualDeclaredQuantity());
+								bigDecimalMap.put(item.getInventoryCode(),item.getActualDeclaredQuantity());
 							}
 						}
 					}
@@ -1158,12 +1158,12 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}
 			}
 			for (SyPackingListFabricItem item : main.getSyPackingListFabricItem()){
-				if(mapt.get("account").equals("901")&&booleanMap.containsKey(item.getOmpoIdItem())){
-					System.out.println("ompoIdItem\t"+item.getOmpoIdItem());
-					if(booleanMap.get(item.getOmpoIdItem())){//为true就退出循环
+				if(mapt.get("account").equals("901")&&booleanMap.containsKey(item.getInventoryCode())){
+					System.out.println("inventoryCode\t"+item.getInventoryCode());
+					if(booleanMap.get(item.getInventoryCode())){//为true就退出循环
 						continue;
 					}else{
-						booleanMap.put(item.getOmpoIdItem(),true);
+						booleanMap.put(item.getInventoryCode(),true);
 					}
 				}
 				JSONObject mapItem=new JSONObject();
@@ -1371,10 +1371,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}
 
 				if(mapt.get("account").equals("901")&&(item.getInventoryCcode().indexOf("04")!=-1||item.getInventoryCcode().indexOf("03")!=-1)){
-					System.out.println("bigDecimalMap\n"+bigDecimalMap);
-					System.out.println("数量\n"+bigDecimalMap.get(item.getOmpoIdItem()));
-					mapItem.put("IQUANTITY",bigDecimalMap.get(item.getOmpoIdItem()));//入库单数量
-					mapItem5.put("IQUANTITY",bigDecimalMap.get(item.getOmpoIdItem()));//采购单数量
+					mapItem.put("IQUANTITY",bigDecimalMap.get(item.getInventoryCode()));//入库单数量
+					mapItem5.put("IQUANTITY",bigDecimalMap.get(item.getInventoryCode()));//采购单数量
 				}
 
 				//mapItem.put("INUM",orderDataItem.get("inum"));//明细ID(采购订单行ID/委外订单行ID)

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

@@ -20,6 +20,8 @@ public interface SyPackingListTailoringItemMapper extends BaseMapper<SyPackingLi
 
 	public boolean deleteByMainId(String mainId);
 
+	public boolean deleteByGroupId(String groupId);
+
 	public List<SyPackingListTailoringItem> selectByMainId(String mainId);
 
 	public List<SyPackingListTailoringItem> querySpaplItemId(String id);

+ 9 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/xml/syPackingListTailoringItemMapper.xml

@@ -6,6 +6,11 @@
 		update sy_packing_list_tailoring_item set del_flag='1' where
 		sy_packing_list_tailoring_id = #{id}
 	</update>
+
+	<update id="deleteByGroupId" parameterType="java.lang.String">
+		update sy_packing_list_tailoring_item set del_flag='1' where
+		group_id= #{id}
+	</update>
 	
 	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoringItem">
 		SELECT * 
@@ -188,22 +193,22 @@
 
 	<select id="size" resultType="org.jeecg.modules.spapl.entity.SizeTable">
        SELECT sy_packing_list_tailoring_item.size,alias,total quantity,box_Number,total/box_Number proportion,
-		sy_packing_list_tailoring_item.id itemId
+		sy_packing_list_tailoring_item.id itemId,num
 			FROM sy_packing_list_tailoring_item
 			LEFT JOIN sizetable ON sy_packing_list_tailoring_item.`size`=sizetable.`size`
 			OR sy_packing_list_tailoring_item.`size`=sizetable.`alias`
 		WHERE group_id=#{group_id} AND
 		sy_packing_list_tailoring_id=#{id}
-		ORDER BY sy_order_data_item_id
+		ORDER BY num
 	</select>
 
 	<select id="sizes" resultType="org.jeecg.modules.spapl.entity.SizeTable">
-       SELECT DISTINCT sy_packing_list_tailoring_item.size,alias
+       SELECT DISTINCT sy_packing_list_tailoring_item.size,alias,num
 		 FROM sy_packing_list_tailoring_item
 		 LEFT JOIN sizetable ON sy_packing_list_tailoring_item.`size`=sizetable.`size`
 		 OR sy_packing_list_tailoring_item.`size`=sizetable.`alias`
 		 WHERE sy_packing_list_tailoring_id =#{value}
-		 ORDER BY sy_order_data_item_id
+		 ORDER BY num
 	</select>
 
 	<select id="getList" parameterType="java.lang.String" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoringItem">

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

@@ -66,47 +66,61 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 	@Autowired
 	private SyShippingOrderItemMapper syShippingOrderItemMapper;//托书主表
 
-	BigDecimal update(List<SyPackingListTailoringItem> items,String pid){
-		BigDecimal box=new BigDecimal(0);//获取总箱数
+	void update(List<SyPackingListTailoringItem> items,String pid){
+		List<SyPackingListTailoringItem> items3=new ArrayList<>();
+		List<SyPackingListTailoringItem> items2=syPackingListTailoringItemMapper.selectByMainId(pid);//获取主表所有数据
+		Map<String,SyPackingListTailoringItem> maps=new HashMap<>();
 		for (SyPackingListTailoringItem item : items){
-			List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
-			BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
-			box=box.add(boxNumber1);//合计
-			item.setGroupId(oConvertUtils.id());
-			item.setDelFlag("0");//删除
-			for (SizeTable size : sizes){
-				if(size.getProportion()==null){
-					size.setProportion(0);
-				}
-				SyPackingListTailoringItem item1=item;
-				item1.setSize(size.getSize());//获取尺码信息
-				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
-				item1.setTotal(boxNumber);//该尺码件数
-
-				item1.setActualPackingQty(boxNumber);
-				item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
-
-				//item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
-				item1.setId(size.getItemId());//从尺码表中获取到id
-				// 获取到预装箱单子表id
-				SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId());
-				//获取预装箱单子表id
-				item1.setSyPreAssembledPackingListItemId(splt.getSyPreAssembledPackingListItemId());
-				if(size.getProportion()==0){
-					item1.setTotal(null);//该尺码件数
-				}
-				if(item.getIsAdd()>0){
-					item1.setSyPackingListTailoringId(pid);
-					item1.setId(oConvertUtils.id());//获取到随机id
-					syPackingListTailoringItemMapper.insert(item1);
-					continue;
-				}
-				syPackingListTailoringItemMapper.updateById(item1);
-			//	typeConversion(item1);//调用方法同步修改托书数据
+			maps.put(item.getGroupId(),item);//
+		}
+		for (SyPackingListTailoringItem item2 : items2){
+			if(maps.containsKey(item2.getGroupId())){//有这个分组id
+				SyPackingListTailoringItem item=maps.get(item2.getGroupId());
+				List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
+				BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
+				//box=box.add(boxNumber1);//合计
+				item.setGroupId(oConvertUtils.id());
+				item.setDelFlag("0");//删除
+				for (SizeTable size : sizes){
+					if(size.getProportion()==null){
+						size.setProportion(0);
+					}
+					SyPackingListTailoringItem item1=item;
+					item1.setSize(size.getSize());//获取尺码信息
+					BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
+					item1.setTotal(boxNumber);//该尺码件数
 
+					item1.setActualPackingQty(boxNumber);
+					item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
+
+					//item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
+					item1.setId(size.getItemId());//从尺码表中获取到id
+					// 获取到预装箱单子表id
+					//SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId());
+					SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId());
+					//获取预装箱单子表id
+					item1.setSyPreAssembledPackingListItemId(splt.getSyPreAssembledPackingListItemId());
+					if(size.getProportion()==0){
+						item1.setTotal(null);//该尺码件数
+					}
+					if(item.getIsAdd()>0){
+						item1.setSyPackingListTailoringId(pid);
+						item1.setId(oConvertUtils.id());//获取到随机id
+						syPackingListTailoringItemMapper.insert(item1);
+						continue;
+					}else{
+						syPackingListTailoringItemMapper.updateById(item1);
+						SyPackingListTailoringItem item3=maps.get(item2.getGroupId());
+						BeanUtils.copyProperties(item1,item3);
+						items3.add(item3);
+					}
+					//	typeConversion(item1);//调用方法同步修改托书数据
+				}
+			}else{
+				syPackingListTailoringItemMapper.deleteByGroupId(item2.getGroupId());
 			}
 		}
-		return box;
+		syPackingListTailoringItemService.updateBatchById(items3);
 	}
 
 	//获取流水号
@@ -450,14 +464,17 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		/*if(!syPackingListTailoringMapper.selectById(syPackingListTailoring.getId()).getState().equals("0")){
 			throw new JeecgBootException("单据已提交不能修改!");
 		}*/
+		long startTime = System.currentTimeMillis();
 		List<SyPackingListTailoringItem> items=syPackingListTailoring.getSyPackingListTailoringItemList();
 		syPackingListTailoringMapper.updateById(syPackingListTailoring);//修改主表数据
 		syPackingListTailoringItemMapper.deleteByMainId(syPackingListTailoring.getId());//将子表的删除状态都变成1
 		if(syPackingListTailoring.getSyPackingListTailoringItemList()!=null){
-			BigDecimal box= update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId());
-			syPackingListTailoring.setTotalBoxes(box);
-			syPackingListTailoringMapper.updateById(syPackingListTailoring);
+			update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId());
+			//syPackingListTailoring.setTotalBoxes(box);
+			//syPackingListTailoringMapper.updateById(syPackingListTailoring);
 		}
+		long endTime3 = System.currentTimeMillis();
+		System.out.println("查数据时间运行:" + (endTime3 - startTime) + "ms");
 		return syPackingListTailoring;
 	}