价格库查询API
This commit is contained in:
parent
f0288c563b
commit
f3e95505a5
@ -9,13 +9,13 @@ import com.yem.em.utils.SubRelationUtils;
|
||||
import com.yem.or.utils.OrderUtils;
|
||||
import com.yem.rf.utils.RFUtils;
|
||||
import com.yem.wm.utils.DynamicObjectUtil;
|
||||
import com.yem.wm.utils.RptUtil;
|
||||
import com.yem.wm.utils.YEM;
|
||||
import com.yem.wm.utils.groupfunc.GroupTopOneFunction;
|
||||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.algo.Row;
|
||||
import kd.bos.algo.sql.tree.OrderBy;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.entity.OrmLocaleValue;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiController;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiParam;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
|
||||
@ -538,8 +538,8 @@ public class AssepcDynamic {
|
||||
@ApiPostMapping("/assepcdynamic/colorlibrary")
|
||||
public CustomApiResult<Object> colorlibrary(@NotNull @ApiParam("产品类型") String modnumber,
|
||||
@NotNull @ApiParam("物料编码") String material,
|
||||
@NotNull @ApiParam("页码") int page,
|
||||
@NotNull @ApiParam("每一页个数") int number) {
|
||||
@ApiParam("页码") int page,
|
||||
@ApiParam("每一页个数") int number) {
|
||||
material = material.trim();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
QFilter qFilter = new QFilter("yem_productclass.number", QCP.equals, modnumber + "PJ");
|
||||
@ -701,4 +701,73 @@ public class AssepcDynamic {
|
||||
rowMap.put("rows", rows);
|
||||
return CustomApiResult.success(rowMap);
|
||||
}
|
||||
|
||||
@ApiPostMapping("/assepcdynamic/page/pricelib")
|
||||
public CustomApiResult<Object> queryPriceLibPage(@ApiParam("产品机型") String type, @ApiParam("每页个数") int pageSize, @ApiParam("页码") int pageNum) {
|
||||
String algoKey = this.getClass().getName();
|
||||
HashMap<Object, Object> resMap = Maps.newHashMap();
|
||||
|
||||
QFilter qFilter = RFUtils.getBaseQFilter();
|
||||
qFilter.and("yem_productclass.number", QCP.equals, type + "PJ");
|
||||
|
||||
ArrayList<String> selectfields = Lists.newArrayList();
|
||||
selectfields.add("id");
|
||||
selectfields.add("yem_bizdate");
|
||||
selectfields.add("yem_bd_products.id products_id");
|
||||
selectfields.add("yem_accessory entry_id");
|
||||
selectfields.add("yem_accessory.yem_material.id yem_material_id");
|
||||
selectfields.add("yem_accessory.yem_material.number yem_material_number");
|
||||
selectfields.add("yem_accessory.yem_material.name yem_material_name");
|
||||
selectfields.add("yem_accessory.yem_materialename yem_material_ename");
|
||||
selectfields.add("yem_accessory.yem_material.modelnum yem_material_modelnum");
|
||||
selectfields.add("yem_accessory.yem_standsalesprice price");
|
||||
|
||||
|
||||
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_pricelibrary", String.join(",", selectfields), qFilter.toArray());
|
||||
DataSet origin = dataSet.copy();
|
||||
dataSet = dataSet.orderBy(new String[]{"yem_bizdate DESC"})
|
||||
.groupBy(new String[]{"yem_material_id"})
|
||||
.agg(new GroupTopOneFunction(), "entry_id", "entry_id")
|
||||
.finish();
|
||||
dataSet = dataSet.select("entry_id ordered_entry_id");
|
||||
dataSet = dataSet.leftJoin(origin)
|
||||
.on("ordered_entry_id", "entry_id")
|
||||
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(origin))
|
||||
.finish();
|
||||
dataSet = dataSet.orderBy(new String[]{"yem_bizdate DESC"});
|
||||
ArrayList<Object> rows = Lists.newArrayList();
|
||||
|
||||
DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet.copy());
|
||||
resMap.put("total", collection.size());
|
||||
dataSet.close();
|
||||
if (pageSize > collection.size()) {
|
||||
pageSize = collection.size();
|
||||
}
|
||||
for (DynamicObject dynamicObject : collection) {
|
||||
HashMap<String, Object> map = Maps.newHashMap();
|
||||
map.put("yem_bizdate", dynamicObject.get("yem_bizdate"));
|
||||
map.put("yem_material_id", dynamicObject.get("yem_material_id"));
|
||||
map.put("yem_material_number", dynamicObject.get("yem_material_number"));
|
||||
map.put("yem_material_name", dynamicObject.get("yem_material_name"));
|
||||
map.put("yem_material_ename", dynamicObject.get("yem_material_ename"));
|
||||
map.put("yem_material_modelnum", dynamicObject.get("yem_material_modelnum"));
|
||||
map.put("price", dynamicObject.get("price"));
|
||||
rows.add(map);
|
||||
}
|
||||
resMap.put("rows", getPageData(rows, pageSize, pageNum));
|
||||
int totalPage = (int) Math.ceil((double) rows.size() / pageSize);
|
||||
if (pageNum > totalPage) {
|
||||
pageNum = totalPage;
|
||||
}
|
||||
resMap.put("pageSize", pageSize);
|
||||
resMap.put("pageNum", pageNum);
|
||||
resMap.put("isLastPage", pageNum == totalPage);
|
||||
return CustomApiResult.success(resMap);
|
||||
}
|
||||
|
||||
public static List<Object> getPageData(List<Object> rows, int pageSize, int pageNum) {
|
||||
int startIndex = (pageNum - 1) * pageSize;
|
||||
int endIndex = Math.min(startIndex + pageSize, rows.size());
|
||||
return rows.subList(startIndex, endIndex);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user