fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java
@@ -7,7 +7,10 @@ */ public class Constant { /** * ç³»ç»åç§° */ public static final String APP_NAME = "igdss"; /** * é¨é¨ç±»å */ fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/RedisConst.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,228 @@ package com.fzzy.igds.constant; /** * Redisç¼å使ç¨çç³»ç»å¸¸éé ç½® 主è¦ç¨äºé 置系ç»ç¼åçKEYé ç½® */ public class RedisConst { /** * æ ¹æ®ç»ç»ç¼ç æå»ºå®é 使ç¨çKEY * * @param key1 ç»ç»ç¼ç * @param key2 ç¼åKEY * @return */ public static String buildKey(String key1, String key2) { return Constant.APP_NAME + ":" + key1 + ":" + key2; } /** * ä¸å±ç»æçKEY * * @param key1 * @param key2 * @param tag * @return */ public static String buildKey(String key1, String key2, String tag) { return Constant.APP_NAME + ":" + key1 + ":" + key2 + ":" + tag; } /** * åå±ç»æçKEY * * @param companyId * @param key * @param tag1 * @param tag2 * @return */ public static String buildKey(String companyId, String key, String tag1, String tag2) { return Constant.APP_NAME + ":" + companyId + ":" + key + ":" + tag1 + ":" + tag2; } /** * å建设å¤å表çKEYï¼ä»¥åæºä¸ºåç»å建 * * @param companyId * @param key * @param tag1 * @return */ public static String buildDeviceKey(String companyId, String key, String tag1) { return Constant.APP_NAME + ":" + companyId + ":" + key + ":" + tag1; } /** * æ ¹æ®ç¼åKEYçåç¼çæç¼åKEy * * @param prefix * @param bizId */ public static String buildKeyByPrefix(String prefix, String bizId) { if (null == bizId) return Constant.APP_NAME + ":" + prefix; return Constant.APP_NAME + ":" + prefix + ":" + bizId; } /** * åå ¸è¡¨ç¼åé ç½® */ public static final String KEY_DIC_TRIGGER = "KEY_DIC_TRIGGER"; /** * ä»åºå表KEY */ public static final String KEY_DEPOT = "DEPOT_DATA"; /** * ä»åºåæ°å表KEY */ public static final String KEY_DEPOT_CONF = "DEPOT_CONF"; /** * åæºå表KEY */ public static final String KEY_DEVICE_SER_LIST = "SER_LIST"; /** * 设å¤å表 */ public static final String KEY_DEVICE_LIST = "DEVICE_LIST"; /** * å个è²å·å§ */ public static final String KEY_DEVICE = "DEVICE"; /** * 设å¤å表 */ public static final String KEY_DEVICE_IOT_LIST = "DEVICE_IOT_LIST"; /** * ä»åºååæºçå¤å¯¹å¤å ³ç³»éå */ public static final String KEY_DEPOT_SER_LIST = "DEPOT_SER_LIST"; /** * 建çç©ä¿¡æ¯ */ public static final String KEY_BUILDING_LIST = "BUILDING_LIST"; /** * æ§è¡å½ä»¤KEYåç¼ */ public static final String KEY_ORDER_PRE = "ORDER"; /** * ææ°ç²®æ ä¿¡æ¯ç¼åå表ï¼ç¨äºåæ¾å½åææ°çç²®æ ä¿¡æ¯ */ public static final String KEY_GRAIN = "GRAIN_DATA"; /** * ææ°æ°ä½ä¿¡æ¯ç¼åå表 */ public static final String KEY_GAS_DATA = "GAS_DATA"; /** * ç³»ç»é ç½®KEY */ public static final String KEY_SYS_CONF = "SYS_CONF"; /** * ç²®åºç温湿度信æ¯ç¼å */ public static final String KEY_DEPOT_TH_PREFIX = "DEPOT_TH_PREFIX"; /** * ä»¥åæºæè ä»åºä¸ºåä½åå¨ç仿¸©ä»æ¹¿ç¼åæ æ ç¾ */ public static final String KEY_T_TH = "T_TH"; /** * åæ¾æ°è±¡ä¿¡æ¯çKEY */ public static final String KEY_WEATHER_INFO = "WEATHER_INFO"; /** * æ ¹æ®ä»åºç¼ç åæ¾ææ°çè½èæ°æ®ä¿¡æ¯ */ public static final String KEY_ES_DATA_MAP = "ES_DATA_MAP"; /** * ç³»ç»ä¸ç»ç»å表 */ public static final String KEY_DEPT_LIST = "DEPT_LIST"; /** * å¶æ°®æºé ç½®å表 */ public static final String KEY_N2_CONF_LIST = "N2_CONF_LIST"; /** * ææ°æ°åä¿¡æ¯ç¼åå表 */ public static final String KEY_PRESSURE_DATA = "PRESSURE_DATA"; /** * ç³»ç»é ç½®çæåæºä¿¡æ¯ç¼å */ public static final String KEY_CAMERA_LIST = "CAMERA_LIST"; /** * ä¸ç»´é ç½®å ³èä¿¡æ¯key */ public static final String KEY_THREE_CONF = "THREE_CONF"; /** * 临æ¶ç¼åKEYåç¼ */ public static final String KEY_TEMP_PREFIX = "TEMP_"; /** * æ°éçæµåæ°å表KEY--åä¸ªè®¾å¤ */ public static final String KEY_QUANTITY_CONF = "QUANTITY_CONF"; /** * ä»åºè´¨éå·¡æ£æ°æ®ç¼å */ public static final String KEY_DEPOT_QUALITY = "DEPOT_QUALITY"; /** * ä»åºæ¶²ä½æ°æ®ç¼å */ public static final String KEY_DEPOT_HEIGHT = "DEPOT_HEIGHT"; /** * ä»åºç©èç½å ³iotè®¾å¤æ¸©æ¹¿åº¦ç¼åkey */ public static final String KEY_IOT_DEPOT_TEMP_HUM = "IOT_DEPOT_TEMP_HUM"; /** * å个æ°éæ£æµæå¡ */ public static final String PREFIX_QUANTITY_SER = "QUANTITY_SER"; /** * è¦åé ç½®å表KEY */ public static final String KEY_WARN_CONF = "WARN_CONF"; /** * é¨ç£è®¾å¤é ç½®å表 */ public static final String KEY_DOOR_SENSOR_LIST = "DOOR_SENSOR_LIST"; /** * ææåæºç¼ååç¼ */ public static final String CACHE_KEY_PRE = "SNAP_SER"; /** * AI设å¤ç¼åkey */ public static final String KEY_AI_SER = "AI_SER"; } fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DepotRepository.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package com.fzzy.igds.repository; import com.fzzy.igds.domain.Depot; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @Description * @Author CZT * @Date 2025/11/27 13:39 */ @Service public interface DepotRepository extends JpaRepository<Depot, String> { /** * æ ¹æ®ç»ç»ç¼ç è·åä»åºè´§ä½ä¿¡æ¯ * * @param companyId * @return */ @Query("from Depot where companyId =:companyId order by orderNum") List<Depot> getDepotByCompanyId(@Param("companyId") String companyId); /** * æ ¹æ®ç»ç»ç¼ç ååºåºç¼ç è·åä»åºè´§ä½ä¿¡æ¯ * * @param companyId * @param deptId * @return */ @Query("from Depot where companyId =:companyId and deptId =:deptId order by orderNum") List<Depot> getDepot(@Param("companyId") String companyId, @Param("deptId") String deptId); /** * æ ¹æ®ç»ç»ç¼ç åä»åºç¼ç è·åä»åºè´§ä½ä¿¡æ¯ * @param companyId * @param id * @return */ @Query("from Depot where companyId =:companyId and id =:id") Depot getDepotById(@Param("companyId") String companyId, @Param("id") String id); /** * æ´æ°ä»åºç¶æ * @param status * @param depotId */ @Transactional @Modifying @Query("update Depot set depotStatus =:status where id =:depotId") void updateDepotStatus(@Param("status") String status, @Param("depotId") String depotId); /** * æ ¹æ®idsè·åä»åº * * @param list * @return */ @Query("from Depot where id IN :list order by orderNum") List<Depot> getDepotByIds(@Param("list") List<String> list); /** * æ´æ°ä»åºå¨é * @param weight * @param depotId */ @Transactional @Modifying @Query("update Depot set storageReal =:weight where id =:depotId") void updateDepotStorage(@Param("weight") Double weight, @Param("depotId") String depotId); } fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DepotStoreRepository.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.fzzy.igds.repository; import com.fzzy.igds.domain.DepotStore; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; /** * @Description * @Author CZT * @Date 2025/11/27 13:44 */ @Service public interface DepotStoreRepository extends JpaRepository<DepotStore, String>, JpaSpecificationExecutor<DepotStore> { /** * æ ¹æ®ä»åºç¼ç è·åæå䏿¡æ°æ® * @param depotId * @param end * @return */ @Query("from DepotStore where depotId =:depotId and createDate <:end order by createDate desc") List<DepotStore> getDataByDepotId(@Param("depotId") String depotId,@Param("end") Date end); } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,251 @@ package com.fzzy.igds.service; import com.fzzy.igds.constant.RedisConst; import com.fzzy.igds.domain.Depot; import com.fzzy.igds.domain.DepotStore; import com.fzzy.igds.repository.DepotRepository; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.SysDeptMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; /** * @Description * @Author CZT * @Date 2025/11/27 13:43 */ @Slf4j @Service public class DepotService { @Resource private DepotRepository depotRepository; @Resource private RedisCache redisCache; @Resource private SysDeptMapper deptMapper; @Resource private DepotStoreService depotStoreService; /** * jpaæ¥è¯¢ä»åºå表 * @param companyId * @param deptId * @return */ public List<Depot> getData(String companyId, String deptId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } if (StringUtils.isEmpty(deptId)) { deptId = ContextUtil.subDeptId(null); } return depotRepository.getDepot(companyId, deptId); } /** * jpaæ¥è¯¢ä»åºå表 * @param ids * @return */ public List<Depot> getDepotByIds(List<String> ids) { if (null == ids ||ids.isEmpty()) { return null; } return depotRepository.getDepotByIds(ids); } /** * jpaä¿åæ´æ°ä»åºä¿¡æ¯ * @param depot */ public void saveDepot(Depot depot) { if (StringUtils.isEmpty(depot.getCompanyId())) { depot.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(depot.getDeptId())) { depot.setDeptId(ContextUtil.subDeptId(null)); } if(null == depot.getOrderNum()){ depot.setOrderNum(1); } depotRepository.save(depot); flushCache(depot.getCompanyId()); } /** * jpaæ´æ°ä»åºç¶æ * @param depotId * @param status */ public void updateDepotStatus(String depotId, String status) { if (StringUtils.isEmpty(depotId)) { return; } depotRepository.updateDepotStatus(status, depotId); } /** * jpaå é¤ä»åºè´§ä½ä¿¡æ¯ * @param depot */ public void deleteDepot(Depot depot) { depotRepository.delete(depot); //å é¤é ç½®ç¼å this.delCacheDepot(depot, depot.getCompanyId()); } /** * å·æ°ä»åºè´§ä½ç¼å * @param companyId */ public void flushCache(String companyId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } List<Depot> list = depotRepository.getDepotByCompanyId(companyId); this.setCacheDepotList(list, companyId); } /** * 设置ç¼å * @param list * @param companyId */ public void setCacheDepotList(List<Depot> list, String companyId) { if (null == list) return; String key; for (Depot depot : list) { key = RedisConst.buildKey(companyId, RedisConst.KEY_DEPOT, depot.getId()); redisCache.setCacheObject(key, depot); } } /** * å é¤ç¼åä¿¡æ¯ * @param depot * @param companyId */ public void delCacheDepot(Depot depot, String companyId) { if (null == depot) { return; } if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } String key = RedisConst.buildKey(companyId, RedisConst.KEY_DEPOT, depot.getId()); redisCache.deleteObject(key); } /** * è·åç¼å-æ ¹æ®ç»ç»ç¼ç è·åä»åºéå * @param companyId * @return */ public List<Depot> getCacheDepotList(String companyId) { if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEPOT) + "*"; Collection<String> keys = redisCache.keys(patten); if (null == keys) { return null; } List<Depot> list = new ArrayList<>(); for (String key : keys) { list.add((Depot) redisCache.getCacheObject(key)); } //ç¼åè·å为空ï¼åæ¥è¯¢æ°æ®åº if(list.size() < 1){ list = depotRepository.getDepotByCompanyId(companyId); setCacheDepotList(list, companyId); } //éæ°æåº Collections.sort(list, (p1, p2) -> p1.getOrderNum() - p2.getOrderNum()); return list; } /** * è·åç¼å-æ ¹æ®ç»ç»ç¼ç ååºåºç¼ç è·åä»åºéå * @param companyId * @param deptId * @return */ public List<Depot> getCacheDepotList(String companyId, String deptId) { if (StringUtils.isEmpty(deptId)) { return null; } List<Depot> list = getCacheDepotList(companyId); if(null == list || list.isEmpty()){ return null; } List<Depot> result = new ArrayList<>(); for (Depot depot : list) { if (deptId.equals(depot.getDeptId())) { result.add(depot); } } //éæ°æåº Collections.sort(result, (p1, p2) -> p1.getOrderNum() - p2.getOrderNum()); return result; } /** * è·åä»åºä¿¡æ¯-æ ¹æ®ä»åºç¼ç è·åç¼åä¿¡æ¯ * @param companyId * @param depotId * @return */ public Depot getCacheDepot(String companyId, String depotId) { if (StringUtils.isEmpty(depotId)) { return null; } if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } String key = RedisConst.buildKey(companyId, RedisConst.KEY_DEPOT, depotId); Depot depot = redisCache.getCacheObject(key); if(null == depot){ depot = depotRepository.getDepotById(companyId, depotId); redisCache.setCacheObject(key, depot); } return depot; } /** * æ ¹æ®åºåä¿¡æ¯æ´æ°ä»åºä¿¡æ¯ * @param data */ public void updateByStore(DepotStore data) { Depot depot = this.getCacheDepot(data.getCompanyId(), data.getDepotId()); if (null == depot) { return; } depot.setStorageReal(data.getStorageReal()); depot.setDepotStatus(data.getDepotStatus()); depot.setFoodLevel(data.getFoodLevel()); depot.setFoodLocation(data.getFoodLocation()); depot.setFoodVariety(data.getFoodVariety()); depot.setFoodType(data.getFoodType()); depot.setFoodYear(data.getFoodYear()); if (null != data.getStoreDate()) { depot.setStoreDate(data.getStoreDate()); } this.saveDepot(depot); } } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotStoreService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,103 @@ package com.fzzy.igds.service; import com.fzzy.igds.domain.DepotStore; import com.fzzy.igds.repository.DepotRepository; import com.fzzy.igds.repository.DepotStoreRepository; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * @Description * @Author CZT * @Date 2025/11/27 13:44 */ @Slf4j @Service public class DepotStoreService { @Resource private DepotStoreRepository depotStoreRepository; @Resource private DepotRepository depotRepository; /** * JPAå页æ¥è¯¢æ°æ® * * @param specification * @param pageable * @return */ public Page<DepotStore> findAll(Specification<DepotStore> specification, Pageable pageable) { return depotStoreRepository.findAll(specification, pageable); } /** * JPAæ´æ°ä¿åæ°æ® * * @param data */ public void saveDepotStore(DepotStore data) { if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(data.getDeptId())) { data.setDeptId(ContextUtil.subDeptId(null)); } data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); data.setId(data.getDepotId() + "_" + DateFormatUtils.format(data.getStoreDate(), "yyyyMMddHHmmss") + "_" + DateFormatUtils.format(data.getUpdateTime(), "yyyyMMddHHmmss")); data.setCreateTime(new Date()); data.setRemark("ç³»ç»çæ"); depotStoreRepository.save(data); } /** * JPAå 餿°æ® * * @param data * @return */ public String delDepotStore(DepotStore data) { depotStoreRepository.delete(data); return null; } /** * JPAè·åä»åºæå䏿¡åºåæ°æ® * * @param depotId * @param time * @return */ public DepotStore getLastData(String depotId, Date time) { List<DepotStore> list = depotStoreRepository.getDataByDepotId(depotId, time); if (null == list || list.isEmpty()) { return null; } return list.get(0); } public void addDepotStore(DepotStore store, boolean updateDepot) { if (null == store.getUpdateTime()) store.setUpdateTime(new Date()); if (null == store.getId()) store.setId(ContextUtil.generateId()); depotStoreRepository.save(store); if (updateDepot) { depotRepository.updateDepotStorage(store.getStorageReal(), store.getDepotId()); } } } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysUserService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.fzzy.igds.service; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.SysUserMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * @Description * @Author CZT * @Date 2024/11/22 18:03 */ @Slf4j @Service public class SysUserService { @Resource private SysUserMapper userMapper; /** * æ ¹æ®ç»ç»ç¼ç ï¼è·åç¨æ·å表 * @param companyId * @return */ public List<SysUser> getUser(String companyId) { if(StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } SysUser sysUser = new SysUser(); sysUser.setCompanyId(companyId); return userMapper.selectUserList(sysUser); } /** * æ ¹æ®ç»å½åç§°ï¼è·åç¨æ·ä¿¡æ¯ * @param loginName * @return */ public SysUser getUserByLoginName(String loginName) { return userMapper.selectUserByLoginName(loginName); } } fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
@@ -22,6 +22,9 @@ private static final AtomicLong sequence = new AtomicLong(0); private static String lastTimestamp = ""; //å ¨å±ç¨æ·å®æ¶åå¨é¨é¨ public static Map<String, String> contextUserDept = new HashMap<>(); /** * çæé¡ºåºIDï¼å¹´ææ¥æ¶åç§æ¯«ç§(17ä½) + åºåå·(4ä½) = 21ä½ * @@ -60,6 +63,36 @@ } public static String getLoginUserName() { return ShiroUtils.getUserName() ; SysUser user = ShiroUtils.getSysUser(); return null == user ? "ç³»ç»" : user.getUserName(); } public static SysUser getLoginUser() { return ShiroUtils.getSysUser(); } public static String subDeptId(SysUser user) { if (null == user) { user = getLoginUser(); } if (null == user) { return getCompanyId() + "001"; } //ä»å ¨å±è·åï¼å¦ææååå ¨å±çé»è®¤ï¼å¦ææ²¡æååèªå·±æå± if (null != contextUserDept.get(user.getLoginName())) { return contextUserDept.get(user.getLoginName()); } if (null == user.getDeptId()) { return user.getCompanyId(); } return user.getDeptId().toString(); } public static void updateSubDept(String userId, String deptId) { if (null == deptId) return; contextUserDept.put(userId, deptId); } } fzzy-igdss-view/src/main/java/com/fzzy/igds/Company.view.xml
@@ -230,7 +230,7 @@ <ClientEvent name="onClick">view.get("#dsMain").flushAsync();
 </ClientEvent> <Property name="caption">å·æ°</Property> <Property name="exClassName">btn-q2</Property> <Property name="exClassName">btn4</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-refresh</Property> </ToolBarButton> fzzy-igdss-view/src/main/java/com/fzzy/igds/Depot.view.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,488 @@ <?xml version="1.0" encoding="UTF-8"?> <ViewConfig> <Arguments/> <Context/> <Model> <DataType name="dataTypeUser"> <Property name="creationType">com.ruoyi.common.core.domain.entity.SysUser</Property> <PropertyDef name="loginName"> <Property name="dataType">String</Property> <Property name="label">ç¨æ·å</Property> </PropertyDef> <PropertyDef name="userName"> <Property name="dataType">String</Property> <Property name="label">䏿å</Property> </PropertyDef> </DataType> </Model> <View layout="padding:10"> <ClientEvent name="onReady">
 /**
 * æ¥è¯¢
 */
 query = function(){
 view.get("#dataSetdepot").flushAsync();
 }
</ClientEvent> <Property name="packages">font-awesome,css-common</Property> <DataSet id="dataSetdepot"> <Property name="dataProvider">depotPR#getData</Property> <Property name="dataType">[dtDepot]</Property> </DataSet> <DataSet id="dataSetUser"> <Property name="dataType">[dataTypeUser]</Property> <Property name="dataProvider">sysUserPR#loadUser</Property> </DataSet> <Container> <Property name="className">c-param</Property> <ToolBar> <ToolBarButton> <ClientEvent name="onClick">view.get("#dataSetdepot").insert();
 view.get("#depotdialog").show();
 view.get("#oneId").set("readOnly",false);
 view.get("#twoId").set("readOnly",false);</ClientEvent> <Property name="caption">æ°å¢</Property> <Property name="exClassName">btn1</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-plus</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var select = view.get("#dataGridDepot").get("selection");
 if(select){
 view.get("#depotdialog").show();
 view.get("#oneId").set("readOnly",true);
 view.get("#twoId").set("readOnly",true); }else{
 $notify("è¯·éæ©éè¦ä¿®æ¹çä»åºâ¦â¦");
 }</ClientEvent> <Property name="caption">ä¿®æ¹</Property> <Property name="exClassName">btn2</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-pencil-square-o</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var select = view.get("#dataGridDepot").get("selection");
 if(select){
 view.get("#deleteAjaxAction").set("parameter",select).execute();
 query();
 }else{
 $notify("è¯·éæ©éè¦å é¤çä»åºâ¦â¦");
 }</ClientEvent> <Property name="caption">å é¤</Property> <Property name="exClassName">btn3</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-times</Property> </ToolBarButton> <ToolBarButton> <Property name="caption">å·æ°ç¼å</Property> <Property name="exClassName">btn4</Property> <Property name="iconClass">fa fa-refresh</Property> <Property name="width">100</Property> <Property name="action">ajaxRefreshCache</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var url = "com.fzzy.igds.sys.DepotStore.d";
 var panelId = window.frameElement.getAttribute('data-id'); window.parent.$.modal.openTab("åºå管ç", url, false, panelId);</ClientEvent> <Property name="caption">åºå管ç</Property> <Property name="iconClass">fa fa-book</Property> <Property name="exClassName">btn1</Property> <Property name="width">100</Property> </ToolBarButton> </ToolBar> <DataGrid id="dataGridDepot" layoutConstraint="padding:8"> <ClientEvent name="onDataRowClick">view.get("#dataGridDepot").set("selection",arg.data);</ClientEvent> <Property name="dataSet">dataSetdepot</Property> <Property name="selectionMode">singleRow</Property> <Property name="readOnly">true</Property> <RowSelectorColumn/> <RowNumColumn/> <DataColumn name="id"> <Property name="property">id</Property> <Property name="align">center</Property> <Property name="width">160</Property> </DataColumn> <DataColumn name="name"> <Property name="property">name</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="depotStatus"> <Property name="property">depotStatus</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodVariety"> <Property name="property">foodVariety</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodType"> <Property name="property">foodType</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodLevel"> <Property name="property">foodLevel</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="storageReal"> <Property name="property">storageReal</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodYear"> <Property name="property">foodYear</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodLocation"> <Property name="property">foodLocation</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="storeDate"> <Property name="property">storeDate</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="storeKeeperName"> <Property name="property">storeKeeperName</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="depotType"> <Property name="property">depotType</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="updateBy"> <Property name="property">updateBy</Property> <Property name="align">center</Property> <Property name="width">100</Property> </DataColumn> <DataColumn name="updateTime"> <Property name="property">updateTime</Property> <Property name="align">center</Property> <Property name="width">160</Property> </DataColumn> </DataGrid> </Container> <Dialog id="depotdialog" layout="regionPadding:8"> <Property name="iconClass">fa fa-tasks</Property> <Property name="caption">ä»åºä¿¡æ¯</Property> <Property name="width">1200</Property> <Property name="closeable">false</Property> <Buttons> <Button id="btnOK"> <ClientEvent name="onClick">//åæ¶æäº¤åå²ä¹¦
 var data = view.get("#dataSetdepot.data:#");
 view.get("#updateactionSave").execute(function(result){
 if(result){
 $notify(result);
 }else{
 self.get("parent").hide();
 query();
 }
 });</ClientEvent> <Property name="caption">ä¿å</Property> <Property name="iconClass">fa fa-check-circle</Property> <Property name="exClassName">btn1</Property> <Property name="width">120</Property> </Button> <Button> <ClientEvent name="onClick">var cur = view.get("#dataSetdepot.data:#");
 if(cur) cur.cancel();
 self.get("parent").hide();</ClientEvent> <Property name="caption">åæ¶</Property> <Property name="exClassName">btn3</Property> <Property name="iconClass">fa fa-times-circle</Property> <Property name="width">120</Property> </Button> </Buttons> <Children> <FieldSet layout="padding:5"> <Property name="caption">åºæ¬ä¿¡æ¯</Property> <Buttons/> <Children> <AutoForm> <Property name="dataSet">dataSetdepot</Property> <Property name="readOnly">false</Property> <Property name="labelSeparator"> : </Property> <Property name="labelAlign">right</Property> <Property name="cols">*,*,*,*,*,*</Property> <Property name="labelWidth">80</Property> <AutoFormElement id="oneId" layoutConstraint="colSpan:2"> <Property name="name">id</Property> <Property name="property">id</Property> <Editor> <TextEditor> <Property name="blankText">-- ç³»ç»èªå¨çæ --</Property> </TextEditor> </Editor> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">name</Property> <Property name="property">name</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">deptId</Property> <Property name="property">deptId</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">storageMax</Property> <Property name="property">storageMax</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">storeType</Property> <Property name="property">storeType</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">createBy</Property> <Property name="property">createBy</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">depotStatus</Property> <Property name="property">depotStatus</Property> <Property name="trigger">autoMappingDropDown2</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">depotType</Property> <Property name="property">depotType</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">createTime</Property> <Property name="property">createTime</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">storeKeeperName</Property> <Property name="property">storeKeeperName</Property> <Property name="trigger">triggerUserList</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">orderNum</Property> <Property name="property">orderNum</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">updateBy</Property> <Property name="property">updateBy</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:4"> <Property name="name">remark</Property> <Property name="property">remark</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">updateTime</Property> <Property name="property">updateTime</Property> <Editor/> </AutoFormElement> </AutoForm> </Children> </FieldSet> <FieldSet layout="padding:5"> <Property name="caption">å¨ç²®ä¿¡æ¯</Property> <Buttons/> <Children> <AutoForm> <Property name="dataSet">dataSetdepot</Property> <Property name="readOnly">false</Property> <Property name="labelSeparator"> : </Property> <Property name="labelAlign">right</Property> <Property name="cols">*,*,*,*,*,*</Property> <Property name="labelWidth">80</Property> <AutoFormElement id="twoId" layoutConstraint="colSpan:2"> <Property name="name">storageReal</Property> <Property name="property">storageReal</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">foodVariety</Property> <Property name="property">foodVariety</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">foodType</Property> <Property name="property">foodType</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">foodLevel</Property> <Property name="property">foodLevel</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">foodYear</Property> <Property name="property">foodYear</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">foodLocation</Property> <Property name="property">foodLocation</Property> <Property name="trigger">ddFoodOrigin</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">storeDate</Property> <Property name="property">storeDate</Property> <Editor/> </AutoFormElement> <Label> <Property name="text"></Property> <Property name="style"> <Property name="color">blue</Property> <Property name="padding-left">50px</Property> </Property> </Label> <Label layoutConstraint="colSpan:3"> <Property name="text">说æï¼1ãå®é å¨éè°æ´è¯·ä½¿ç¨âåºå管çâåè½ï¼</Property> <Property name="style"> <Property name="color">blue</Property> <Property name="padding-left">50px</Property> </Property> </Label> </AutoForm> </Children> </FieldSet> <FieldSet layout="padding:5"> <Property name="caption">è´¨æ£ä¿¡æ¯</Property> <Buttons/> <Children> <AutoForm> <Property name="dataSet">dataSetdepot</Property> <Property name="readOnly">false</Property> <Property name="labelSeparator"> : </Property> <Property name="labelAlign">right</Property> <Property name="cols">*,*,*,*,*,*</Property> <Property name="labelWidth">80</Property> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">perWet</Property> <Property name="property">perWet</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">perImpurity</Property> <Property name="property">perImpurity</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">bulkWeight</Property> <Property name="property">bulkWeight</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">checkDate</Property> <Property name="property">checkDate</Property> <Editor/> </AutoFormElement> <Label> <Property name="text"></Property> <Property name="style"> <Property name="color">blue</Property> <Property name="padding-left">50px</Property> </Property> </Label> <Label layoutConstraint="colSpan:3"> <Property name="text">说æï¼å¨å¤ç²®è´¨æ£ä¿¡æ¯ä¼æ ¹æ®è´¨é管ç èªå¨åæ¥æ´æ°</Property> <Property name="style"> <Property name="color">blue</Property> <Property name="padding-left">50px</Property> </Property> </Label> </AutoForm> </Children> </FieldSet> </Children> <Tools/> </Dialog> <UpdateAction id="updateactionSave"> <Property name="executingMessage">æ£å¨æ§è¡ä¸..</Property> <Property name="dataResolver">depotPR#saveOrUpdate</Property> <UpdateItem> <Property name="dataSet">dataSetdepot</Property> <Property name="dataPath">[#current]</Property> <Property name="alias">data</Property> </UpdateItem> </UpdateAction> <AjaxAction id="deleteAjaxAction"> <Property name="successMessage">å 餿å</Property> <Property name="service">depotPR#deletedepot</Property> <Property name="executingMessage">æ£å¨å é¤</Property> </AjaxAction> <AjaxAction id="ajaxRefreshCache"> <Property name="service">depotPR#flushCache</Property> <Property name="successMessage">å·æ°æåï¼</Property> <Property name="confirmMessage">ç¡®å®è¦å·æ°ç¼åä¹ï¼</Property> </AjaxAction> <YearDropDown id="yearDropDown1"/> <DataSetDropDown id="triggerUserList"> <Property name="dataSet">dataSetUser</Property> <Property name="property">userName</Property> <Property name="assignmentMap">storeKeeperName=userName,storeKeeper=loginName</Property> </DataSetDropDown> <CustomDropDown id="ddFoodOrigin"> <Property name="minHeight">500</Property> <Property name="assignmentMap">foodLocation=name</Property> <Property name="minWidth">500</Property> <Container layout="regionPadding:5"> <DataSet id="dsFoodOrigin"> <Property name="dataProvider">dicAreaPR#pageList</Property> <Property name="parameter"></Property> <Property name="pageSize">30</Property> <Property name="dataType">[dtArea]</Property> </DataSet> <Container layout="hbox regionPadding:5"> <TextEditor id="key2"> <Property name="blankText"> -- åç§° --</Property> <Property name="width">200</Property> </TextEditor> <Button> <ClientEvent name="onClick">var key = view.get("#key2.value");
 view.get("#dsFoodOrigin").set("parameter",{key:key}).flushAsync();</ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="iconClass">fa fa-search</Property> </Button> <Button> <ClientEvent name="onClick">var data = view.get("#dsFoodOrigin.data:#");
 if(data){
 view.get("#ddFoodOrigin").close(data.toJSON());
 }</ClientEvent> <Property name="iconClass">fa fa-check</Property> <Property name="caption">ç¡®å®</Property> </Button> </Container> <DataGrid> <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsFoodOrigin.data:#");
 if(data){
 view.get("#ddFoodOrigin").close(data.toJSON());
 }</ClientEvent> <Property name="dataSet">dsFoodOrigin</Property> <Property name="readOnly">true</Property> <DataColumn name="code"> <Property name="property">code</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="name"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">name</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="simple"> <Property name="property">simple</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> </DataGrid> <DataPilot layoutConstraint="bottom"> <Property name="dataSet">dsFoodOrigin</Property> </DataPilot> </Container> </CustomDropDown> <ListDropDown id="listOri"> <Property name="items">ä¸,å,西,å,ä¸å,ä¸å,西å,西å</Property> </ListDropDown> </View> </ViewConfig> fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,102 @@ package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.fzzy.igds.domain.Depot; import com.fzzy.igds.service.DepotService; import com.fzzy.igds.utils.ContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; /** * @Description * @Author CZT * @Date 2025/11/27 13:57 */ @Slf4j @Component public class DepotPR { @Resource private DepotService depotService; /** * depotPR#getData * @return */ @DataProvider public List<Depot> getData(){ return depotService.getData(null, null); } /** * depotPR#saveOrUpdate * @param data * @return */ @DataResolver @Transactional public String saveOrUpdate(Depot data) { Depot depot = new Depot(); BeanUtils.copyProperties(data, depot); depotService.saveDepot(depot); depotService.flushCache(null); return null; } /** * depotPR#deleteDepot * @param data */ @Expose @Transactional public void deleteDepot(Depot data) { Depot depot = new Depot(); BeanUtils.copyProperties(data, depot); depotService.deleteDepot(depot); } /** * depotPR#flushCache */ @Expose public void flushCache() { depotService.flushCache(null); } /** * ${dorado.getDataProvider("depotPR#getAllCache").getResult()} * @return */ @DataProvider public List<Depot> getAllCache() { return depotService.getCacheDepotList(null, ContextUtil.subDeptId(null)); } /** * depotPR#ajaxGetAllCache * @return */ @Expose public List<Depot> ajaxGetAllCache() { return depotService.getCacheDepotList(null, ContextUtil.subDeptId(null)); } /** * depotPR#getDepot è·åä»åºä¿¡æ¯ * * @param depotId * @return */ @Expose public Depot getDepot(String depotId) { return depotService.getCacheDepot(null, depotId); } } fzzy-igdss-view/src/main/java/com/fzzy/igds/Dept.view.xml
@@ -163,7 +163,7 @@ <ClientEvent name="onClick">view.get("#dsMain").flushAsync();
 </ClientEvent> <Property name="caption">å·æ°</Property> <Property name="exClassName">btn-q2</Property> <Property name="exClassName">btn4</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-refresh</Property> </ToolBarButton> @@ -231,16 +231,18 @@ view.get("#dialogMain").hide();
 }
 });</ClientEvent> <Property name="caption">ç¡®å®</Property> <Property name="caption">ä¿å</Property> <Property name="iconClass">fa fa-check-circle</Property> <Property name="exClassName">btn1</Property> <Property name="iconClass">fa fa-check</Property> <Property name="width">120</Property> </Button> <Button> <ClientEvent name="onClick">view.get("#dsMain.data:#").cancel();
 self.get("parent").hide();</ClientEvent> <Property name="caption">åæ¶</Property> <Property name="exClassName">btn3</Property> <Property name="iconClass">fa fa-times</Property> <Property name="iconClass">fa fa-times-circle</Property> <Property name="width">120</Property> </Button> </Buttons> <Children> fzzy-igdss-view/src/main/java/com/fzzy/igds/SysUserPR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.fzzy.igds.service.SysUserService; import com.ruoyi.common.core.domain.entity.SysUser; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * @Description ç¨æ·ä¿¡æ¯ * @Author CZT * @Date 2025/11/27 14:40 */ @Component public class SysUserPR { @Resource private SysUserService sysUserService; /** * sysUserPR#loadUser * @return */ @DataProvider public List<SysUser> loadUser() { return sysUserService.getUser(null); } } fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -148,4 +148,289 @@ <Property name="required">false</Property> </PropertyDef> </DataType> <DataType name="dtDepot"> <Property name="creationType">com.fzzy.igds.domain.Depot</Property> <PropertyDef name="id"> <Property></Property> <Property name="label">ä»åºç¼å·</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="companyId"> <Property></Property> <Property name="label">ç»ç»ç¼ç </Property> </PropertyDef> <PropertyDef name="deptId"> <Property></Property> <Property name="label">æå±ååº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getData").getResult()}</Property> <Property name="keyProperty">deptId</Property> <Property name="valueProperty">deptName</Property> </Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="name"> <Property></Property> <Property name="label">ä»åºåç§°</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="depotType"> <Property></Property> <Property name="label">仿¿ç±»å</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerDepotType").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="depotStatus"> <Property></Property> <Property name="label">ä»åºç¶æ</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerDepotStatus").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="storeType"> <Property></Property> <Property name="label">å¨ç²®æ¹å¼</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerStoreType").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="storageMax"> <Property name="dataType">Double</Property> <Property name="label">设计å¨é</Property> <Property name="displayFormat">#0.0 KG</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="storageReal"> <Property name="dataType">Double</Property> <Property name="label">å®é å¨é</Property> <Property name="displayFormat">#0.0 KG</Property> <Property name="required">false</Property> </PropertyDef> <PropertyDef name="foodType"> <Property></Property> <Property name="label">ç²®é£æ§è´¨</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_TYPE_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="foodVariety"> <Property></Property> <Property name="label">ç²®é£åç§</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="foodLevel"> <Property></Property> <Property name="label">ç²®é£ç级</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerFoodLevel").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="foodLocation"> <Property></Property> <Property name="label">ç²®é£äº§å°</Property> </PropertyDef> <PropertyDef name="foodLocationId"> <Property></Property> <Property name="label">ç²®é£äº§å°</Property> </PropertyDef> <PropertyDef name="foodYear"> <Property></Property> <Property name="label">ç²®é£å¹´ä»½</Property> </PropertyDef> <PropertyDef name="perWet"> <Property name="dataType">Double</Property> <Property name="label">æ°´å</Property> <Property name="displayFormat">0.0 %</Property> </PropertyDef> <PropertyDef name="perImpurity"> <Property name="dataType">Double</Property> <Property name="label">æè´¨</Property> <Property name="displayFormat">0.0 %</Property> </PropertyDef> <PropertyDef name="bulkWeight"> <Property name="dataType">Double</Property> <Property name="label">容é</Property> <Property name="displayFormat">0.0 g/L</Property> </PropertyDef> <PropertyDef name="storeKeeper"> <Property></Property> <Property name="label">ä¿ç®¡å</Property> </PropertyDef> <PropertyDef name="storeKeeperName"> <Property></Property> <Property name="label">ä¿ç®¡å</Property> </PropertyDef> <PropertyDef name="storeDate"> <Property name="dataType">Date</Property> <Property name="label">å ¥åºæ¥æ</Property> </PropertyDef> <PropertyDef name="checkDate"> <Property name="dataType">Date</Property> <Property name="label">è´¨æ£æ¥æ</Property> </PropertyDef> <PropertyDef name="remark"> <Property></Property> <Property name="label">夿³¨ä¿¡æ¯</Property> </PropertyDef> <PropertyDef name="orderNum"> <Property name="dataType">Integer</Property> <Property name="label">顺åºå·</Property> </PropertyDef> <PropertyDef name="createTime"> <Property name="dataType">DateTime</Property> <Property name="label">å建æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="createBy"> <Property></Property> <Property name="label">å建人</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateTime"> <Property name="dataType">DateTime</Property> <Property name="label">æ´æ°æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateBy"> <Property></Property> <Property name="label">æ´æ°äºº</Property> <Property name="readOnly">true</Property> </PropertyDef> </DataType> <DataType name="dtDepotStore"> <Property name="creationType">com.fzzy.igds.domain.DepotStore</Property> <PropertyDef name="id"> <Property></Property> </PropertyDef> <PropertyDef name="companyId"> <Property></Property> <Property name="label">ç»ç»ç¼ç </Property> </PropertyDef> <PropertyDef name="deptId"> <Property></Property> <Property name="label">æå±ååº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getData").getResult()}</Property> <Property name="keyProperty">deptId</Property> <Property name="valueProperty">deptName</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> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="foodType"> <Property></Property> <Property name="label">ç²®é£æ§è´¨</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_TYPE_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="foodVariety"> <Property></Property> <Property name="label">ç²®é£åç§</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="foodLevel"> <Property></Property> <Property name="label">ç²®é£ç级</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerFoodLevel").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="foodLocationId"> <Property></Property> <Property name="label">ç²®é£äº§å°</Property> </PropertyDef> <PropertyDef name="foodLocation"> <Property></Property> <Property name="label">ç²®é£äº§å°</Property> </PropertyDef> <PropertyDef name="foodYear"> <Property></Property> <Property name="label">æ¶è´§å¹´åº¦</Property> </PropertyDef> <PropertyDef name="depotStatus"> <Property></Property> <Property name="label">ä»åºç¶æ</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerDepotStatus").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="storeDate"> <Property name="dataType">DateTime</Property> <Property name="label">å ¥ä»æ¶é´</Property> </PropertyDef> <PropertyDef name="fullDate"> <Property name="dataType">Date</Property> <Property name="label">å°ä»æ¥æ</Property> </PropertyDef> <PropertyDef name="outDate"> <Property name="label">åºä»å®ææ¶é´</Property> <Property name="dataType">DateTime</Property> </PropertyDef> <PropertyDef name="storageReal"> <Property name="dataType">Double</Property> <Property name="label">å®é å¨é</Property> <Property name="displayFormat">#,##0 KG</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="remark"> <Property></Property> <Property name="label">夿³¨</Property> </PropertyDef> <PropertyDef name="createTime"> <Property name="dataType">DateTime</Property> <Property name="label">å建æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="createBy"> <Property></Property> <Property name="label">å建人</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateTime"> <Property name="dataType">DateTime</Property> <Property name="label">æ´æ°æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateBy"> <Property></Property> <Property name="label">æ´æ°äºº</Property> <Property name="readOnly">true</Property> </PropertyDef> </DataType> </Model>