From 8c132142d0ee8b72372e589c6b1856fbd6e1f21e Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期三, 21 一月 2026 17:04:54 +0800
Subject: [PATCH] 仓库列表优化
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java | 175 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 103 insertions(+), 72 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java
index 36fbb15..1ce91a6 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java
@@ -1,13 +1,14 @@
package com.fzzy.igds.service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.mapper.DepotMapper;
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;
@@ -23,41 +24,54 @@
public class DepotService {
@Resource
- private DepotRepository depotRepository;
+ private DepotMapper depotMapper;
@Resource
private RedisCache redisCache;
/**
- * jpa鏌ヨ浠撳簱鍒楄〃
+ * 鏌ヨ搴撳尯涓嬩粨搴撳垪琛�
+ *
* @param companyId
* @param deptId
+ * @param idDesc 鏄惁ID鍊掑簭鎺掑垪
* @return
*/
- public List<Depot> getData(String companyId, String deptId) {
-
+ public List<Depot> getData(String companyId, String deptId, boolean idDesc) {
if (StringUtils.isEmpty(companyId)) {
companyId = ContextUtil.getCompanyId();
}
- if (StringUtils.isEmpty(deptId)) {
- deptId = ContextUtil.subDeptId(null);
+
+ QueryWrapper<Depot> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("company_id", companyId);
+ if(StringUtils.isNotBlank(deptId)){
+ queryWrapper.likeRight("dept_id", deptId);
}
- return depotRepository.getDepot(companyId, deptId);
+
+ if(idDesc){
+ //ID鍊掑簭
+ queryWrapper.orderByDesc("id");
+ }else {
+ //搴忓彿姝e簭
+ queryWrapper.orderByAsc("order_num");
+ }
+
+ return depotMapper.selectList(queryWrapper);
}
/**
- * jpa鏌ヨ浠撳簱鍒楄〃
- * @param ids
- * @return
+ * 鏍规嵁搴撳瓨琛ㄤ俊鎭紝鏇存柊浠撳簱搴撳瓨
+ * @param data
*/
- public List<Depot> getDepotByIds(List<String> ids) {
- if (null == ids ||ids.isEmpty()) {
- return null;
- }
- return depotRepository.getDepotByIds(ids);
+ public void updateByDepotStore(DepotStore data) {
+ UpdateWrapper<Depot> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", data.getDepotId()).set("storage_real", data.getStorageReal());
+
+ depotMapper.update(null, updateWrapper);
}
/**
- * jpa淇濆瓨鏇存柊浠撳簱淇℃伅
+ * 淇濆瓨鏇存柊浠撳簱淇℃伅
+ *
* @param depot
*/
public void saveDepot(Depot depot) {
@@ -67,38 +81,42 @@
if (StringUtils.isEmpty(depot.getDeptId())) {
depot.setDeptId(ContextUtil.subDeptId(null));
}
+ //榛樿椤哄簭鍙�
+ if (null == depot.getOrderNum()) {
+ depot.setOrderNum(1);
+ }
//涓婚敭ID
if (StringUtils.isEmpty(depot.getId())) {
depot.setId(getStrId(depot.getDeptId()));
depot.setCreateBy(ContextUtil.getLoginUserName());
depot.setCreateTime(new Date());
+ depotMapper.insert(depot);
+ }else {
+ depot.setUpdateBy(ContextUtil.getLoginUserName());
+ depot.setUpdateTime(new Date());
+ depotMapper.updateById(depot);
}
- //榛樿椤哄簭鍙�
- if(null == depot.getOrderNum()){
- depot.setOrderNum(1);
- }
- depot.setUpdateBy(ContextUtil.getLoginUserName());
- depot.setUpdateTime(new Date());
- depotRepository.save(depot);
flushCache(depot.getCompanyId());
}
/**
* 鑾峰彇涓婚敭ID
+ *
* @param deptId
* @param deptId
*/
public String getStrId(String deptId) {
- List<Depot> depots = depotRepository.getDepotMaxId(deptId);
+ List<Depot> depots = this.getData(null, deptId, true);
String oldOrderId = null;
- if(null != depots && depots.size() > 0){
+ if (null != depots && depots.size() > 0) {
oldOrderId = depots.get(0).getId().substring(deptId.length());
}
return deptId + ContextUtil.getOrderId(oldOrderId, 3);
}
/**
- * jpa鏇存柊浠撳簱鐘舵��
+ * 鏇存柊浠撳簱鐘舵��
+ *
* @param depotId
* @param status
*/
@@ -106,15 +124,19 @@
if (StringUtils.isEmpty(depotId)) {
return;
}
- depotRepository.updateDepotStatus(status, depotId);
+
+ UpdateWrapper<Depot> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", depotId).set("depot_status", status);
+ depotMapper.update(null, updateWrapper);
}
/**
- * jpa鍒犻櫎浠撳簱璐т綅淇℃伅
+ * 鍒犻櫎浠撳簱璐т綅淇℃伅
+ *
* @param depot
*/
public void deleteDepot(Depot depot) {
- depotRepository.delete(depot);
+ depotMapper.deleteById(depot);
//鍒犻櫎閰嶇疆缂撳瓨
this.delCacheDepot(depot, depot.getCompanyId());
@@ -122,6 +144,7 @@
/**
* 鍒锋柊浠撳簱璐т綅缂撳瓨
+ *
* @param companyId
*/
public void flushCache(String companyId) {
@@ -129,13 +152,14 @@
companyId = ContextUtil.getCompanyId();
}
- List<Depot> list = depotRepository.getDepotByCompanyId(companyId);
+ List<Depot> list = this.getData(companyId,null, false);
this.setCacheDepotList(list, companyId);
}
/**
* 璁剧疆缂撳瓨
+ *
* @param list
* @param companyId
*/
@@ -150,6 +174,7 @@
/**
* 鍒犻櫎缂撳瓨淇℃伅
+ *
* @param depot
* @param companyId
*/
@@ -157,7 +182,7 @@
if (null == depot) {
return;
}
- if(StringUtils.isEmpty(companyId)){
+ if (StringUtils.isEmpty(companyId)) {
companyId = ContextUtil.getCompanyId();
}
String key = RedisConst.buildKey(companyId, RedisConst.KEY_DEPOT, depot.getId());
@@ -166,37 +191,39 @@
/**
* 鑾峰彇缂撳瓨-鏍规嵁缁勭粐缂栫爜鑾峰彇浠撳簱闆嗗悎
+ *
* @param companyId
* @return
*/
public List<Depot> getCacheDepotList(String companyId) {
- if(StringUtils.isEmpty(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));
+
+ String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEPOT) + "*";
+ Collection<String> keys = redisCache.keys(patten);
+ if (null != keys) {
+ for (String key : keys) {
+ list.add((Depot) redisCache.getCacheObject(key));
+ }
}
+
//缂撳瓨鑾峰彇涓虹┖锛屽垯鏌ヨ鏁版嵁搴�
- if(list.size() < 1){
- list = depotRepository.getDepotByCompanyId(companyId);
+ if (list.isEmpty()) {
+ list = this.getData(companyId,null, false);
setCacheDepotList(list, companyId);
}
-
- //閲嶆柊鎺掑簭
- Collections.sort(list, (p1, p2) -> p1.getOrderNum() - p2.getOrderNum());
+ if(!list.isEmpty()){
+ //閲嶆柊鎺掑簭
+ Collections.sort(list, (p1, p2) -> p1.getOrderNum() - p2.getOrderNum());
+ }
return list;
}
/**
* 鑾峰彇缂撳瓨-鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦粨搴撻泦鍚�
+ *
* @param companyId
* @param deptId
* @return
@@ -206,7 +233,7 @@
return null;
}
List<Depot> list = getCacheDepotList(companyId);
- if(null == list || list.isEmpty()){
+ if (null == list || list.isEmpty()) {
return null;
}
List<Depot> result = new ArrayList<>();
@@ -215,13 +242,16 @@
result.add(depot);
}
}
- //閲嶆柊鎺掑簭
- Collections.sort(result, (p1, p2) -> p1.getOrderNum() - p2.getOrderNum());
+ if(!result.isEmpty()){
+ //閲嶆柊鎺掑簭
+ Collections.sort(list, (p1, p2) -> p1.getOrderNum() - p2.getOrderNum());
+ }
return result;
}
/**
* 鑾峰彇浠撳簱淇℃伅-鏍规嵁浠撳簱缂栫爜鑾峰彇缂撳瓨淇℃伅
+ *
* @param companyId
* @param depotId
* @return
@@ -230,40 +260,41 @@
if (StringUtils.isEmpty(depotId)) {
return null;
}
- if(StringUtils.isEmpty(companyId)){
+ 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);
+ if (null == depot) {
+ depot = depotMapper.selectById(depotId);
redisCache.setCacheObject(key, depot);
}
return depot;
}
/**
- * 鏍规嵁搴撳瓨淇℃伅鏇存柊浠撳簱淇℃伅
- * @param data
+ * 鑾峰彇浠撳簱淇℃伅-鏍规嵁浠撳簱鍚嶇О鑾峰彇浠撳簱ID
+ *
+ * @param deptId
+ * @return
*/
- public void updateByStore(DepotStore data) {
-
- Depot depot = this.getCacheDepot(data.getCompanyId(), data.getDepotId());
- if (null == depot) {
- return;
+ public String getDepotId(String deptId, String depotName) {
+ if (StringUtils.isEmpty(deptId)) {
+ return null;
+ }
+ if (StringUtils.isEmpty(depotName)) {
+ return null;
}
- 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());
+ List<Depot> depotList = getCacheDepotList(ContextUtil.getCompanyId(), deptId);
+ if(null == depotList || depotList.isEmpty()){
+ return null;
}
-
- this.saveDepot(depot);
+ for (Depot depot : depotList) {
+ if(depotName.equals(depot.getName())){
+ return depot.getId();
+ }
+ }
+ return null;
}
}
--
Gitblit v1.9.3