Quellcode durchsuchen

产品调库相关

HuRongxin vor 1 Monat
Ursprung
Commit
30d6b4077e

+ 0 - 5
ruoyi-admin/src/main/java/org/dromara/web/controller/ProductStockController.java

@@ -81,11 +81,6 @@ public class ProductStockController extends BaseController {
         return toAjax(productStockService.insertByBo(bo));
     }
 
-    @PostMapping("/getProductStock")
-    public R<Long> getBySettlementId(@RequestBody ProductStockBo bo) {
-        return R.ok(productStockService.getProductStock(bo.getProductId(),bo.getLocationId()));
-    }
-
     /**
      * 修改产品库存
      */

+ 5 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/bo/ProductDispatchRecordBo.java

@@ -9,6 +9,9 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 产品调库记录业务对象 product_dispatch_record
  *
@@ -161,5 +164,7 @@ public class ProductDispatchRecordBo extends BaseEntity {
      */
     private String status;
 
+    List<Date> dateRange;
+
 
 }

+ 6 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ProductDispatchRecordVo.java

@@ -199,5 +199,11 @@ public class ProductDispatchRecordVo implements Serializable {
     @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
     private String status;
 
+    private Long createBy;
+
+    private String createByName;
+
+    private Date createTime;
+
 
 }

+ 0 - 3
ruoyi-admin/src/main/java/org/dromara/web/service/IProductStockService.java

@@ -49,9 +49,6 @@ public interface IProductStockService {
      */
     Boolean insertByBo(ProductStockBo bo);
 
-    //根据产品id与库位 查询库存
-    Long getProductStock(Long productId, Long locationId);
-
     /**
      * 修改产品库存
      *

+ 36 - 21
ruoyi-admin/src/main/java/org/dromara/web/service/impl/ProductDispatchRecordServiceImpl.java

@@ -12,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.domain.SysUser;
+import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.web.domain.*;
 import org.dromara.web.domain.bo.ProductInOutRecordBo;
 import org.dromara.web.mapper.ProductStockMapper;
@@ -21,10 +23,8 @@ import org.dromara.web.domain.vo.ProductDispatchRecordVo;
 import org.dromara.web.mapper.ProductDispatchRecordMapper;
 import org.dromara.web.service.IProductDispatchRecordService;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -40,6 +40,8 @@ public class ProductDispatchRecordServiceImpl implements IProductDispatchRecordS
 
     private final ProductDispatchRecordMapper baseMapper;
 
+    private final SysUserMapper userMapper;
+
     private final ProductStockMapper productStockMapper;
 
     /**
@@ -64,6 +66,17 @@ public class ProductDispatchRecordServiceImpl implements IProductDispatchRecordS
     public TableDataInfo<ProductDispatchRecordVo> queryPageList(ProductDispatchRecordBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<ProductDispatchRecord> lqw = buildQueryWrapper(bo);
         Page<ProductDispatchRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        List<ProductDispatchRecordVo> records = result.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            Set<Long> userList = CollUtil.newHashSet();
+            records.forEach(v->{
+                userList.add(v.getCreateBy());
+            });
+            Map<Long, String> userMap = userMapper.selectList(Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId, SysUser::getUserName).in(SysUser::getUserId, userList)).stream().collect(Collectors.toMap(k1 -> k1.getUserId(), k2 -> k2.getUserName(), (k1, k2) -> k1));
+            records.forEach(v->{
+                v.setCreateByName(userMap.get(v.getCreateBy()));
+            });
+        }
         return TableDataInfo.build(result);
     }
 
@@ -81,32 +94,34 @@ public class ProductDispatchRecordServiceImpl implements IProductDispatchRecordS
 
     private LambdaQueryWrapper<ProductDispatchRecord> buildQueryWrapper(ProductDispatchRecordBo bo) {
         Map<String, Object> params = bo.getParams();
+        List<Date> dateRange = bo.getDateRange();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+        List<SysUser> userList = userMapper.selectList(Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId, SysUser::getUserName));
+        Map<String, Long> userMap = userList.stream().collect(Collectors.toMap(k1 -> String.valueOf(k1.getUserName()), k2 -> k2.getUserId(), (k1, k2) -> k1));
         LambdaQueryWrapper<ProductDispatchRecord> lqw = Wrappers.lambdaQuery();
-        lqw.orderByAsc(ProductDispatchRecord::getId);
+        lqw.orderByDesc(ProductDispatchRecord::getCreateTime);
         lqw.eq(StringUtils.isNotBlank(bo.getDispatchType()), ProductDispatchRecord::getDispatchType, bo.getDispatchType());
-        lqw.eq(StringUtils.isNotBlank(bo.getSerialNo()), ProductDispatchRecord::getSerialNo, bo.getSerialNo());
-        lqw.eq(bo.getOutDeptId() != null, ProductDispatchRecord::getOutDeptId, bo.getOutDeptId());
-        lqw.like(StringUtils.isNotBlank(bo.getOutDeptName()), ProductDispatchRecord::getOutDeptName, bo.getOutDeptName());
-        lqw.eq(bo.getInDeptId() != null, ProductDispatchRecord::getInDeptId, bo.getInDeptId());
-        lqw.like(StringUtils.isNotBlank(bo.getInDeptName()), ProductDispatchRecord::getInDeptName, bo.getInDeptName());
         lqw.eq(bo.getOutLocationId() != null, ProductDispatchRecord::getOutLocationId, bo.getOutLocationId());
         lqw.like(StringUtils.isNotBlank(bo.getOutLocationName()), ProductDispatchRecord::getOutLocationName, bo.getOutLocationName());
         lqw.eq(bo.getInLocationId() != null, ProductDispatchRecord::getInLocationId, bo.getInLocationId());
         lqw.like(StringUtils.isNotBlank(bo.getInLocationName()), ProductDispatchRecord::getInLocationName, bo.getInLocationName());
-        lqw.eq(StringUtils.isNotBlank(bo.getPreUnit()), ProductDispatchRecord::getPreUnit, bo.getPreUnit());
-        lqw.eq(bo.getNum() != null, ProductDispatchRecord::getNum, bo.getNum());
-        lqw.eq(StringUtils.isNotBlank(bo.getUnit()), ProductDispatchRecord::getUnit, bo.getUnit());
-        lqw.eq(bo.getStockNum() != null, ProductDispatchRecord::getStockNum, bo.getStockNum());
         lqw.eq(bo.getProductId() != null, ProductDispatchRecord::getProductId, bo.getProductId());
         lqw.like(StringUtils.isNotBlank(bo.getProductName()), ProductDispatchRecord::getProductName, bo.getProductName());
         lqw.eq(StringUtils.isNotBlank(bo.getProductType()), ProductDispatchRecord::getProductType, bo.getProductType());
-        lqw.eq(StringUtils.isNotBlank(bo.getProductNo()), ProductDispatchRecord::getProductNo, bo.getProductNo());
-        lqw.like(StringUtils.isNotBlank(bo.getSpecsName()), ProductDispatchRecord::getSpecsName, bo.getSpecsName());
-        lqw.eq(StringUtils.isNotBlank(bo.getProductBatchNo()), ProductDispatchRecord::getProductBatchNo, bo.getProductBatchNo());
-        lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), ProductDispatchRecord::getAttachment, bo.getAttachment());
-        lqw.eq(bo.getSpecs() != null, ProductDispatchRecord::getSpecs, bo.getSpecs());
-        lqw.eq(StringUtils.isNotBlank(bo.getSpecsUnit()), ProductDispatchRecord::getSpecsUnit, bo.getSpecsUnit());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ProductDispatchRecord::getStatus, bo.getStatus());
+        if (StringUtils.isNotBlank(bo.getSearchValue())) {
+            lqw.and(wrapper -> wrapper.like(ProductDispatchRecord::getCreateBy, userMap.get(bo.getSearchValue()))
+                .or().like(ProductDispatchRecord::getProductNo, bo.getSearchValue())
+                .or().like(ProductDispatchRecord::getProductName, bo.getSearchValue()));
+        }
+        if (dateRange != null && dateRange.size() == 2) {
+            String startTime = sdf.format(dateRange.get(0)) + " 00:00:00";  // 开始时间
+            String endTime = sdf.format(dateRange.get(1)) + " 23:59:59";    // 结束时间
+            if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
+                lqw.between(ProductDispatchRecord::getCreateTime, startTime, endTime);
+
+            }
+        }
         return lqw;
     }
 

+ 0 - 11
ruoyi-admin/src/main/java/org/dromara/web/service/impl/ProductStockServiceImpl.java

@@ -102,17 +102,6 @@ public class ProductStockServiceImpl implements IProductStockService {
         return flag;
     }
 
-    @Override
-    public Long getProductStock(Long productId, Long locationId) {
-        Long stockNum=0L;
-        List<ProductStockVo> stockVoList = baseMapper.selectVoList(new LambdaQueryWrapper<ProductStock>().eq(ProductStock::getProductId, productId).eq(ProductStock::getLocationId, locationId));
-        if (CollUtil.isNotEmpty(stockVoList)
-        ){
-            stockNum=stockVoList.get(0).getStockNum();
-        }
-        return stockNum;
-    }
-
     /**
      * 修改产品库存
      *