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; import java.util.Date; 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; } /** * * @param materialNumber * @param lotNumber * @param producedate * @param expirydate * @param isauto * @return */ public static DynamicObject[] materialMatchGoods(String materialNumber, String lotNumber, Date producedate, Date expirydate, boolean isauto){ QFilter f1 = new QFilter("tqq9_mater.number", "=", materialNumber); QFilter f2 = new QFilter("tqq9_entry.tqq9_lot.number", "=", lotNumber); 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}); } if(goodsA != null && goodsA.length > 0){ List 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; } }