| 
									
										
										
										
											2025-09-25 10:10:16 +00:00
										 |  |  | package tqq9.lc123.cloud.app.plugin.utils;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import kd.bos.dataentity.entity.DynamicObject;
 | 
					
						
							|  |  |  | import kd.bos.orm.query.QFilter;
 | 
					
						
							|  |  |  | import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
					
						
							|  |  |  | import org.apache.poi.util.ArrayUtil;
 | 
					
						
							|  |  |  | import scala.Dynamic;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import java.util.ArrayList;
 | 
					
						
							| 
									
										
										
										
											2025-10-29 09:08:33 +00:00
										 |  |  | import java.util.Date;
 | 
					
						
							| 
									
										
										
										
											2025-09-25 10:10:16 +00:00
										 |  |  | import java.util.List;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * 基础数据匹配查询
 | 
					
						
							|  |  |  |  */
 | 
					
						
							|  |  |  | public class BaseDataMatchUtils {
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							|  |  |  |      * 根据商品编码查询物料信息
 | 
					
						
							|  |  |  |      * @param goodsNumber   商品编码
 | 
					
						
							|  |  |  |      * @return
 | 
					
						
							|  |  |  |      */
 | 
					
						
							|  |  |  |     public static DynamicObject goodsMatchMaterial(String goodsNumber){
 | 
					
						
							|  |  |  |         QFilter f = new QFilter("number", "=", goodsNumber);
 | 
					
						
							|  |  |  |         DynamicObject[] goodsArr = BusinessDataServiceHelper.load("tqq9_goodspackage", "id,number,name,tqq9_mater", new QFilter[]{f});
 | 
					
						
							|  |  |  |         if(goodsArr != null && goodsArr.length > 0){
 | 
					
						
							|  |  |  |             return goodsArr[0].getDynamicObject("tqq9_mater");
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |         return null;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							| 
									
										
										
										
											2025-10-29 09:08:33 +00:00
										 |  |  |      *
 | 
					
						
							|  |  |  |      * @param materialNumber
 | 
					
						
							|  |  |  |      * @param lotNumber
 | 
					
						
							|  |  |  |      * @param producedate
 | 
					
						
							|  |  |  |      * @param expirydate
 | 
					
						
							|  |  |  |      * @param isauto
 | 
					
						
							| 
									
										
										
										
											2025-09-25 10:10:16 +00:00
										 |  |  |      * @return
 | 
					
						
							|  |  |  |      */
 | 
					
						
							| 
									
										
										
										
											2025-10-29 09:08:33 +00:00
										 |  |  |     public static DynamicObject[] materialMatchGoods(String materialNumber, String lotNumber, Date producedate, Date expirydate, boolean isauto){
 | 
					
						
							| 
									
										
										
										
											2025-09-25 10:10:16 +00:00
										 |  |  |         QFilter f1 = new QFilter("tqq9_mater.number", "=", materialNumber);
 | 
					
						
							|  |  |  |         QFilter f2 = new QFilter("tqq9_entry.tqq9_lot.number", "=", lotNumber);
 | 
					
						
							| 
									
										
										
										
											2025-10-29 09:08:33 +00:00
										 |  |  |         QFilter f3 = new QFilter("tqq9_entry.producedate", "=", producedate);
 | 
					
						
							|  |  |  |         QFilter f4 = new QFilter("tqq9_entry.expirydate", "=", expirydate);
 | 
					
						
							|  |  |  |         QFilter f5 = new QFilter("tqq9_isauto", "=", isauto);
 | 
					
						
							|  |  |  |         DynamicObject[] goodsA = null;
 | 
					
						
							|  |  |  |         if(isauto){
 | 
					
						
							|  |  |  |             // 只取自动封装的商品
 | 
					
						
							|  |  |  |             goodsA = BusinessDataServiceHelper.load("tqq9_goodspackage",
 | 
					
						
							|  |  |  |                     "id,number,name,tqq9_mater.baseunit,tqq9_mater.modelnum,tqq9_isauto",
 | 
					
						
							|  |  |  |                     new QFilter[]{f1, f2, f3, f4, f5});
 | 
					
						
							|  |  |  |         }else{
 | 
					
						
							|  |  |  |             // 取所有的商品
 | 
					
						
							|  |  |  |             goodsA = BusinessDataServiceHelper.load("tqq9_goodspackage",
 | 
					
						
							|  |  |  |                     "id,number,name,tqq9_mater.baseunit,tqq9_mater.modelnum,tqq9_isauto",
 | 
					
						
							|  |  |  |                     new QFilter[]{f1, f2, f3, f4});
 | 
					
						
							|  |  |  |         }
 | 
					
						
							| 
									
										
										
										
											2025-09-25 10:10:16 +00:00
										 |  |  |         if(goodsA != null && goodsA.length > 0){
 | 
					
						
							|  |  |  |             List<DynamicObject> goodsList = new ArrayList<>();
 | 
					
						
							|  |  |  |             for (DynamicObject goods : goodsA) {
 | 
					
						
							|  |  |  |                 goodsList.add(goods);
 | 
					
						
							|  |  |  |             }
 | 
					
						
							|  |  |  |             // 或预先分配大小(性能更优)
 | 
					
						
							|  |  |  |             DynamicObject[] goodsArr = goodsList.toArray(new DynamicObject[goodsList.size()]);
 | 
					
						
							|  |  |  |             return goodsArr;
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return null;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							|  |  |  |      * 总仓匹配--外部仓库对应金蝶仓库
 | 
					
						
							|  |  |  |      * @param wmsWhNumber   外部WMS系统仓库编码
 | 
					
						
							|  |  |  |      * @return
 | 
					
						
							|  |  |  |      */
 | 
					
						
							|  |  |  |     public static DynamicObject getKDWarehouse(String wmsWhNumber){
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return null;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /**
 | 
					
						
							|  |  |  |      * 总仓匹配--金蝶仓库查找对应的外部wms仓库编码
 | 
					
						
							|  |  |  |      * @param kdWhNumber
 | 
					
						
							|  |  |  |      * @return
 | 
					
						
							|  |  |  |      */
 | 
					
						
							|  |  |  |     public static String getOutWarehouse(String kdWhNumber){
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return null;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }
 |