| fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SuperInventoryReportData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SuperInventoryReportParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/DepotStore.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-view/src/main/java/com/fzzy/igds/SuperInventoryReport.view.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| fzzy-igdss-view/src/main/java/com/fzzy/igds/SuperInventoryReportPR.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SuperInventoryReportData.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.fzzy.igds.data; import lombok.Data; import java.io.Serializable; /** *ç管åºåæ¥è¡¨æ°æ® * * @author sgj * @date 2025/12/19 */ @Data public class SuperInventoryReportData implements Serializable { private static final long serialVersionUID = 1L; /** * æ¶å¨å ¬å¸ */ private String customerName; /** * æå±åºåº */ private String deptId; /** * æå±ä»åº */ private String depotId; /** * æåæ°é(åä½KG) */ private Double initialWeight = 0.0; /** * å ¥åºæ°é(åä½KG) */ private Double recordInWeight = 0.0; /** * åå ¥æ°é(åä½KG) */ private Double changeInWeight = 0.0; /** * åºåºæ°é(åä½KG) */ private Double recordOutWeight = 0.0; /** * ååºæ°é(åä½KG) */ private Double changeOutWeight = 0.0; /** * æèæ°é(åä½KG) */ private Double lossWeight = 0.0; /** * ææ«æ°é(åä½KG) */ private Double finalWeight = 0.0; } fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SuperInventoryReportParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.fzzy.igds.data; import lombok.Data; /** *ç管åºåæ¥è¡¨æ¥è¯¢å®ä½ç±» * * @author sgj * @date 2025/12/19 */ @Data public class SuperInventoryReportParam extends IgdsBaseParam { // æ¶å¨å ¬å¸ private String customerName; private String title; private String timeDesc; private String createUser; private String createTime; } fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/DepotStore.java
@@ -56,8 +56,8 @@ @TableField("food_level") private String foodLevel; @Column(name = "food_locationId", columnDefinition = "varchar(40) COMMENT 'ç²®é£äº§å°'") @TableField("food_locationId") @Column(name = "food_location_id", columnDefinition = "varchar(40) COMMENT 'ç²®é£äº§å°'") @TableField("food_location_id") private String foodLocationId; @Column(name = "food_location", columnDefinition = "varchar(40) COMMENT 'ç²®é£äº§å°'") fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,282 @@ package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.data.SuperInventoryReportData; import com.fzzy.igds.data.SuperInventoryReportParam; import com.fzzy.igds.domain.*; import com.fzzy.igds.mapper.*; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * ç管åºåæ¥è¡¨Service * * @author sgj * @date 2025/12/19 */ @Slf4j @Service public class SuperInventoryReportService { @Resource private DepotStoreMapper depotStoreMapper; @Resource private InoutRecordMapper inoutRecordMapper; @Resource private InoutStockChangeMapper inoutStockChangeMapper; @Resource private CoreCompanyMapper coreCompanyMapper; @Resource private InoutLossOverMapper inoutLossOverMapper; @Resource private CoreDeptService coreDeptService; @Resource private DepotService depotService; /** * æ¥è¯¢æ¥è¡¨æ°æ® * * @author sgj * @date 2025/12/19 * @param param */ public List<SuperInventoryReportData> listSuperInventoryReportData(SuperInventoryReportParam param) { //1.è·åæ¥è¯¢å¾èµ·æ¢æ¶é´ï¼å¦ææ²¡æåï¼é»è®¤æªæ¢æ¶é´ä¸ºå½å¤©ï¼èµ·å§æ¶é´ä¸º30天å Date end = new Date(); Date start = DateUtil.getNewByDay(end, -30); if (null == param.getStart()) { param.setStart(DateUtil.getCurZero(start)); } if (null == param.getEnd()) { param.setEnd(DateUtil.getCurZero(end)); } //é»è®¤ç»ç»ç¼ç String companyId = ContextUtil.getCompanyId(); //é»è®¤åºåºç¼ç String deptId = ContextUtil.subDeptId(null); param.setCompanyId(companyId); if (StringUtils.isEmpty(param.getDeptId())) { param.setDeptId(deptId); } //region åå§åéè¦èå´çæ°æ® Map<String, SuperInventoryReportData> resultMap = new HashMap<>(); //æ¥è¯¢å½åç¨æ·ä¸å±çææåºåº List<Dept> deptList = coreDeptService.getDeptData(); if (null == deptList || deptList.isEmpty()) { return new ArrayList<>(); } //é¢å è½½ææé¨é¨ä¸çä»åºä¿¡æ¯ï¼åå°é夿¥è¯¢ Map<String, List<Depot>> deptDepotsMap = new HashMap<>(); Map<String, Company> companyCache = new HashMap<>(); for (Dept dept : deptList) { //è·ååºåºä¸ææä»åº List<Depot> depotList = depotService.getData(companyId, dept.getId(), true); if (null == depotList || depotList.isEmpty()) { continue; } deptDepotsMap.put(dept.getId(), depotList); //ç¼åå ¬å¸ä¿¡æ¯ int deptIdLength = dept.getId().length(); String companyCode = dept.getId().substring(0, deptIdLength - 3); if (!companyCache.containsKey(companyCode)) { Company company = coreCompanyMapper.selectById(companyCode); companyCache.put(companyCode, company); } } //æå»ºç»ææ°æ® for (Map.Entry<String, List<Depot>> entry : deptDepotsMap.entrySet()) { String deptIdKey = entry.getKey(); Company company = companyCache.get(deptIdKey.substring(0, deptIdKey.length() - 3)); for (Depot depot : entry.getValue()) { //åºåºç¼ç +ä»åºç¼ç ç»æå¯ä¸é® String key = deptIdKey + "_" + depot.getId(); SuperInventoryReportData data = new SuperInventoryReportData(); data.setCustomerName(Optional.ofNullable(company) .map(Company::getId) .orElse("-")); data.setDeptId(deptIdKey); data.setDepotId(depot.getId()); resultMap.put(key, data); } } //endregion if (resultMap.isEmpty()) { return new ArrayList<>(); } //2.æ¥è¯¢æ¶é´èå´å çåç§æ°æ® List<DepotStore> depotStores = queryDepotStores(param); List<InoutRecord> inoutRecords = queryInoutRecords(param); List<InoutStockChange> inoutStockChanges = queryInoutStockChanges(param); List<InoutLossOver> inoutLossOvers = queryInoutLossOvers(param); //3. æ°æ®åç»é¢å¤çï¼æé«åç»æ¥æ¾æç Map<String, List<DepotStore>> storeGroupMap = depotStores.stream() .collect(Collectors.groupingBy(store -> store.getDeptId() + "_" + store.getDepotId())); Map<String, List<InoutRecord>> recordGroupMap = inoutRecords.stream() .collect(Collectors.groupingBy(record -> record.getDeptId() + "_" + record.getDepotId())); //4. æ ¹æ®åºåºãä»åºä¸ºå¯ä¸é®ï¼ç»è£ æ¥è¡¨æ°æ® Date todayZero = DateUtil.getCurZero(new Date()); boolean isEndDateBeforeToday = param.getEnd().before(todayZero); for (SuperInventoryReportData data : resultMap.values()) { String dataKey = data.getDeptId() + "_" + data.getDepotId(); //è·ååºåæ°æ® List<DepotStore> depotStoreList = storeGroupMap.getOrDefault(dataKey, new ArrayList<>()); if (depotStoreList.isEmpty()) { continue; } //æåºåºåæ°æ® depotStoreList.sort(Comparator.comparing(DepotStore::getCreateTime)); //è·ååºå ¥åºè®°å½ List<InoutRecord> recordList = recordGroupMap.getOrDefault(dataKey, new ArrayList<>()); Map<Boolean, List<InoutRecord>> recordPartition = recordList.stream() .collect(Collectors.partitioningBy(record -> Constant.TYPE_IN.equals(record.getType()))); List<InoutRecord> recordInList = recordPartition.get(true); List<InoutRecord> recordOutList = recordPartition.get(false); //è·åå仿°æ® Map<Boolean, List<InoutStockChange>> stockChangePartition = inoutStockChanges.stream() .filter(change -> data.getDeptId().equals(change.getDeptId())) .collect(Collectors.partitioningBy(change -> data.getDepotId().equals(change.getDepotIdIn()))); List<InoutStockChange> stockChangeInList = new ArrayList<>(); List<InoutStockChange> stockChangeOutList = new ArrayList<>(); //åå ¥æ°æ® stockChangeInList.addAll(stockChangePartition.get(true).stream() .filter(change -> data.getDepotId().equals(change.getDepotIdIn())) .collect(Collectors.toList())); //ååºæ°æ® stockChangeOutList.addAll(stockChangePartition.get(false).stream() .filter(change -> data.getDepotId().equals(change.getDepotIdOut())) .collect(Collectors.toList())); //æçæ°æ® List<InoutLossOver> lossOverList = inoutLossOvers.stream() .filter(loss -> data.getDeptId().equals(loss.getDeptId()) && data.getDepotId().equals(loss.getDepotId())) .collect(Collectors.toList()); //计ç®å项ç»è®¡æ°æ® double sumRecordIn = recordInList.stream() .mapToDouble(InoutRecord::getRecordWeight) .sum(); double sumRecordOut = recordOutList.stream() .mapToDouble(InoutRecord::getRecordWeight) .sum(); double sumStockChangeIn = stockChangeInList.stream() .mapToDouble(InoutStockChange::getNumber) .sum(); double sumStockChangeOut = stockChangeOutList.stream() .mapToDouble(InoutStockChange::getNumber) .sum(); double sumLossOver = lossOverList.stream() .mapToDouble(lossOver -> Constant.TYPE_LOSS.equals(lossOver.getType()) ? -lossOver.getAmount() : lossOver.getAmount()) .sum(); //è®¡ç®æåææ«éé Double initialWeight = depotStoreList.get(0).getStorageReal(); Double finalWeight; if (isEndDateBeforeToday) { //å¦ææªæ¢æ¶é´ä¸ºæ¨å¤©ï¼å½å¤©ç0ç¹0å0ç§0毫ç§ï¼åä¹åï¼åæå䏿¡æ°æ®ä¸ºææ«æ°é finalWeight = depotStoreList.get(depotStoreList.size() - 1).getStorageReal(); } else { //å¦ææªæ¢æ¶é´ä¸ºä»å¤©åä¹åï¼åéè¦ç»åå ¥åºåºè®°å½æ°æ®æ¥è®¡ç®ææ«æ°éï¼è§åï¼ææ«æ°é = æåæ°é + å ¥åºæ°é - åºåºæ°é + åå ¥æ°é - ååºæ°é+ æçæ°æ® finalWeight = initialWeight + sumRecordIn - sumRecordOut + sumStockChangeIn - sumStockChangeOut + sumLossOver; } //è®¾ç½®æ°æ® data.setInitialWeight(initialWeight); data.setRecordInWeight(sumRecordIn); data.setChangeInWeight(sumStockChangeIn); data.setRecordOutWeight(sumRecordOut); data.setChangeOutWeight(sumStockChangeOut); data.setLossWeight(sumLossOver); data.setFinalWeight(finalWeight); } return new ArrayList<>(resultMap.values()); } /** * æ¥è¯¢åºåæ°æ® */ private List<DepotStore> queryDepotStores(SuperInventoryReportParam param) { QueryWrapper<DepotStore> depotStoreQueryWrapper = new QueryWrapper<>(); depotStoreQueryWrapper.eq("company_id", param.getCompanyId()); depotStoreQueryWrapper.eq("dept_id", param.getDeptId()); depotStoreQueryWrapper.between("create_time", param.getStart(), param.getEnd()); depotStoreQueryWrapper.orderByAsc("create_time"); return depotStoreMapper.selectList(depotStoreQueryWrapper); } /** * æ¥è¯¢åºå ¥åºè®°å½æ°æ® */ private List<InoutRecord> queryInoutRecords(SuperInventoryReportParam param) { QueryWrapper<InoutRecord> inoutRecordQueryWrapper = new QueryWrapper<>(); inoutRecordQueryWrapper.eq("company_id", param.getCompanyId()); inoutRecordQueryWrapper.eq("dept_id", param.getDeptId()); inoutRecordQueryWrapper.between("create_time", param.getStart(), param.getEnd()); inoutRecordQueryWrapper.orderByAsc("create_time"); return inoutRecordMapper.selectList(inoutRecordQueryWrapper); } /** * æ¥è¯¢å仿°æ® */ private List<InoutStockChange> queryInoutStockChanges(SuperInventoryReportParam param) { QueryWrapper<InoutStockChange> inoutStockChangeQueryWrapper = new QueryWrapper<>(); inoutStockChangeQueryWrapper.eq("company_id", param.getCompanyId()); inoutStockChangeQueryWrapper.eq("dept_id", param.getDeptId()); inoutStockChangeQueryWrapper.between("create_time", param.getStart(), param.getEnd()); inoutStockChangeQueryWrapper.orderByAsc("create_time"); return inoutStockChangeMapper.selectList(inoutStockChangeQueryWrapper); } /** * æ¥è¯¢æçæ°æ® */ private List<InoutLossOver> queryInoutLossOvers(SuperInventoryReportParam param) { QueryWrapper<InoutLossOver> inoutLossOverQueryWrapper = new QueryWrapper<>(); inoutLossOverQueryWrapper.eq("company_id", param.getCompanyId()); inoutLossOverQueryWrapper.eq("dept_id", param.getDeptId()); inoutLossOverQueryWrapper.between("create_time", param.getStart(), param.getEnd()); inoutLossOverQueryWrapper.orderByAsc("create_time"); return inoutLossOverMapper.selectList(inoutLossOverQueryWrapper); } } fzzy-igdss-view/src/main/java/com/fzzy/igds/SuperInventoryReport.view.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,287 @@ <?xml version="1.0" encoding="UTF-8"?> <ViewConfig> <Arguments/> <Context/> <Model> <DataType name="dtMain"> <Property name="creationType">com.fzzy.igds.data.SuperInventoryReportData</Property> <PropertyDef name="customerName"> <Property name="label">æ¶å¨å ¬å¸</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("companyPR#getData").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">dwmc</Property> </Property> </PropertyDef> <PropertyDef name="deptId"> <Property name="label">æå±åºåº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">kqmc</Property> </Property> </PropertyDef> <PropertyDef name="depotId"> <Property name="label">æå±ä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="initialWeight"> <Property name="label">æåæ°é</Property> <Property name="displayFormat">0.0 KG</Property> <Property name="dataType">Double</Property> </PropertyDef> <PropertyDef name="recordInWeight"> <Property name="label">å ¥åºæ°é</Property> <Property name="dataType">Double</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="changeInWeight"> <Property name="label">åå ¥æ°é</Property> <Property name="dataType">Double</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="recordOutWeight"> <Property name="label">åºåºæ°é</Property> <Property name="dataType">Double</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="changeOutWeight"> <Property name="label">ååºæ°é</Property> <Property name="dataType">Double</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="lossWeight"> <Property name="label">æèæ°é</Property> <Property name="dataType">Double</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="finalWeight"> <Property name="label">ææ«æ°é</Property> <Property name="dataType">Double</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> </DataType> <DataType name="dtQuery"> <Property name="creationType">com.fzzy.igds.data.SuperInventoryReportParam</Property> <PropertyDef name="deptId"> <Property></Property> <Property name="label">æå±åºåº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">kqmc</Property> </Property> </PropertyDef> <PropertyDef name="depotId"> <Property></Property> <Property name="label">è£ å¸ä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="start"> <Property name="label">å¼å§æ¶é´</Property> <Property name="dataType">Date</Property> </PropertyDef> <PropertyDef name="end"> <Property name="label">æªæ¢æ¶é´</Property> <Property name="dataType">Date</Property> </PropertyDef> <PropertyDef name="customerName"> <Property></Property> <Property name="label">æ¶å¨å ¬å¸</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("companyPR#getData").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">dwmc</Property> </Property> </PropertyDef> <PropertyDef name="timeDesc"> <Property></Property> <Property name="label">æ¶é´</Property> </PropertyDef> <PropertyDef name="title"> <Property></Property> </PropertyDef> <PropertyDef name="createUser"> <Property name="label">å建人</Property> </PropertyDef> <PropertyDef name="createTime"> <Property name="label">å建æ¶é´</Property> </PropertyDef> </DataType> </Model> <View layout="padding:10"> <ClientEvent name="onReady">var deptId = window.parent.DEPT_ID;//ç¶é¡µé¢ä¸çååºç¼ç 
 
 
 //é»è®¤æ¥è¯¢æ¥è¯¢ææ¡ä»¶
 view.get("#dsQuery").insert({
 deptId:deptId
 });
 
 query = function(){
 var data = view.get("#dsQuery.data");
 view.get("#dsQuery").set("parameter",data).flushAsync();
 };
 query();</ClientEvent> <Property name="packages">font-awesome,css-common</Property> <DataSet id="dsMain"> <Property name="dataType">[dtMain]</Property> <Property name="dataProvider">superInventoryReportPR#getReportData</Property> <Property name="loadMode">manual</Property> </DataSet> <DataSet id="dsQuery"> <Property name="dataType">dtQuery</Property> <Property></Property> <Property name="loadMode">manual</Property> <Property name="dataProvider">superInventoryReportPR#getQuery</Property> </DataSet> <Container> <Property name="className">c-param</Property> <AutoForm> <Property name="cols">*,*,*,*,90,90,140</Property> <Property name="dataSet">dsQuery</Property> <Property name="labelSeparator">ï¼</Property> <Property name="labelAlign">right</Property> <Property name="labelWidth">110</Property> <Property name="exClassName">bg-color</Property> <AutoFormElement> <Property name="property">customerName</Property> <Property name="name">customerName</Property> </AutoFormElement> <AutoFormElement> <Property name="name">deptId</Property> <Property name="property">deptId</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">start</Property> <Property name="property">start</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">end</Property> <Property name="property">end</Property> <Editor/> </AutoFormElement> <Button> <ClientEvent name="onClick">var data = view.get("#dsQuery.data");
 view.get("#dsMain").set("parameter",data).flushAsync();</ClientEvent> <Property name="caption">æç´¢</Property> <Property name="exClassName">btn-q1</Property> <Property name="iconClass">fa fa-search</Property> </Button> <Button> <ClientEvent name="onClick">view.get("#dsQuery").flushAsync();</ClientEvent> <Property name="exClassName">btn-q2</Property> <Property name="iconClass">fa fa-refresh</Property> <Property name="caption">éç½®</Property> </Button> <Button layoutConstraint="left"> <Property name="caption">导åºEXCEL</Property> <Property name="exClassName">btn-q2</Property> <Property name="width">140</Property> <Property name="iconClass">fa fa-file-excel-o</Property> </Button> </AutoForm> </Container> <Container> <Property name="className">c-data</Property> <AutoForm id="autoForm1" layoutConstraint="top"> <Property name="cols">*,*,*,*</Property> <Property name="dataSet">dsQuery</Property> <Property name="labelAlign">right</Property> <Property name="showHint">false</Property> <Property name="labelWidth">120</Property> <AutoFormElement layoutConstraint="colSpan:4"> <Property name="name">title</Property> <Property name="property">title</Property> <Property name="showLabel">false</Property> <Property name="editorType">Label</Property> <Property name="style"> <Property name="font">bold 30px Georgia, serif;</Property> <Property name="text-align">center</Property> </Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">timeDesc</Property> <Property name="property">timeDesc</Property> <Property name="editorType">Label</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="visible">false</Property> <Property name="name">depotId</Property> <Property name="property">depotId</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">createUser</Property> <Property name="property">createUser</Property> <Property name="editorType">Label</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">createTime</Property> <Property name="property">createTime</Property> <Property name="editorType">Label</Property> <Editor/> </AutoFormElement> </AutoForm> <DataGrid id="dataGridMain" layoutConstraint="padding:8"> <Property name="dataSet">dsMain</Property> <Property name="readOnly">true</Property> <Property name="highlightCurrentRow">false</Property> <Property name="hideMode">visibility</Property> <Property name="headerRowHeight">30</Property> <Property name="rowHeight">50</Property> <RowNumColumn/> <DataColumn name="customerName"> <Property name="property">customerName</Property> </DataColumn> <DataColumn name="deptId"> <Property name="property">deptId</Property> </DataColumn> <DataColumn name="depotId"> <Property name="property">depotId</Property> </DataColumn> <DataColumn name="initialWeight"> <Property name="property">initialWeight</Property> </DataColumn> <DataColumn name="recordInWeight"> <Property name="property">recordInWeight</Property> </DataColumn> <DataColumn name="changeInWeight"> <Property name="property">changeInWeight</Property> </DataColumn> <DataColumn name="recordOutWeight"> <Property name="property">recordOutWeight</Property> </DataColumn> <DataColumn name="changeOutWeight"> <Property name="property">changeOutWeight</Property> </DataColumn> <DataColumn name="lossWeight"> <Property name="property">lossWeight</Property> </DataColumn> <DataColumn name="finalWeight"> <Property name="property">finalWeight</Property> </DataColumn> </DataGrid> <ToolBar id="tool" layoutConstraint="bottom"> <Fill/> <DataPilot layoutConstraint="right"> <Property name="itemCodes">pageSize,pages</Property> <Property name="dataSet">dsMain</Property> </DataPilot> </ToolBar> </Container> </View> </ViewConfig> fzzy-igdss-view/src/main/java/com/fzzy/igds/SuperInventoryReportPR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.fzzy.igds.data.SuperInventoryReportData; import com.fzzy.igds.data.SuperInventoryReportParam; import com.fzzy.igds.service.SuperInventoryReportService; import com.fzzy.igds.service.SysDeptService; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.ruoyi.common.core.domain.entity.SysDept; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * åºåæ¥è¡¨ * * @author sgj * @date 2025/12/22 */ @Component public class SuperInventoryReportPR { @Resource private SuperInventoryReportService superInventoryReportService; @Resource private SysDeptService sysDeptService; /** * superInventoryReportPR#getQuery * * @return */ @DataProvider public SuperInventoryReportParam getQuery() { SuperInventoryReportParam result = new SuperInventoryReportParam(); SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null)); result.setTitle("åºåæ¥è¡¨"); if (null != subDept) { result.setTitle(subDept.getDeptName() + "åºåæ¥è¡¨"); result.setDeptId(String.valueOf(subDept.getDeptId())); } result.setTimeDesc("æ£æµæ¶é´"); result.setEnd(new Date()); Date start = DateUtil.getNewByDay(new Date(), -30); result.setStart(start); result.setTimeDesc( DateFormatUtils.format(start, "yyyy-MM-dd") + " æªè³ï¼" + DateFormatUtils.format(new Date(), "yyyy-MM-dd")); result.setCreateUser(ContextUtil.getLoginUserName()); result.setCreateTime(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")); return result; } /** * superInventoryReportPR#getReportData * * @param param */ @DataProvider public List<SuperInventoryReportData> getReportData(SuperInventoryReportParam param) { if (null == param) { param = new SuperInventoryReportParam(); } List<SuperInventoryReportData> superInventoryReportData = superInventoryReportService.listSuperInventoryReportData(param); return superInventoryReportData; } }