From 2a9b952d21b3ef9cf63e4618a8e5afdf8a5f32bc Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 19 九月 2025 09:17:23 +0800 Subject: [PATCH] 拉卡拉支付 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java | 11 +++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpGoodsMapper.java | 3 + ruoyi-system/src/main/resources/mapper/system/TErpGoodsMapper.xml | 35 +++++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java | 43 +++++++++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/TErpGoodsService.java | 3 + 5 files changed, 95 insertions(+), 0 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java index b03ad96..14793b8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java @@ -26,6 +26,7 @@ import javax.validation.Valid; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -158,6 +159,16 @@ SysUser user = tokenService.getLoginUser().getUser(); return R.ok(erpGoodsService.pageInventoryGoodsPageList(query,user)); } + @ApiOperation(value = "有效期预警商品选择") + @GetMapping(value = "/pageInventoryGoodsList") + public R<List<TErpGoodsInventoryVO>> pageInventoryGoodsList(@RequestParam String warehouseId,@RequestParam(required = false)String batchNumber) { + SysUser user = tokenService.getLoginUser().getUser(); + List<TErpGoodsInventoryVO> tErpGoodsInventoryVOS = erpGoodsService.pageInventoryGoodsList(warehouseId, user); + if(batchNumber!=null && !"".equals(batchNumber)){ + tErpGoodsInventoryVOS = tErpGoodsInventoryVOS.stream().filter(e->e.getBatchNumber().equals(batchNumber)).collect(Collectors.toList()); + } + return R.ok(tErpGoodsInventoryVOS); + } @ApiOperation(value = "供应商 确认盘点") @PostMapping(value = "/inventoryGoods") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpGoodsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpGoodsMapper.java index 6916c7d..4e50f2b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpGoodsMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpGoodsMapper.java @@ -28,4 +28,7 @@ List<TErpGoodsVO> listExport(@Param("query") TErpGoodsQuery query, @Param("user") SysUser user); List<TErpGoodsInventoryVO> pageInventoryGoodsPageList(@Param("query") TErpGoodsInventoryQuery query, @Param("pageInfo") PageInfo<TErpGoodsInventoryVO> pageInfo, @Param("user") SysUser user, @Param("supplierClinicId") String supplierClinicId, @Param("time") Date time); + + List<TErpGoodsInventoryVO> pageInventoryGoodsList(@Param("warehouseId") String warehouseId, @Param("user") SysUser user, @Param("supplierClinicId") String supplierClinicId, @Param("endDate") Date endDate); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpGoodsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpGoodsService.java index e0eb8ff..ce1c278 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpGoodsService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpGoodsService.java @@ -49,4 +49,7 @@ void inventoryGoods(InventoryDto dto, SysUser user); + List<TErpGoodsInventoryVO> pageInventoryGoodsList(@Valid String warehouseId, SysUser user); + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java index 8a4daf9..0472c89 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java @@ -174,6 +174,49 @@ pageInfo.setRecords(list); return pageInfo; } + @Override + public List<TErpGoodsInventoryVO> pageInventoryGoodsList(String warehouseId, SysUser user) { + Integer roleType = user.getRoleType(); + String supplierClinicId = null; + if(roleType == 4){ + // 供应商 + TCrmSupplier crmSupplier = crmSupplierMapper.selectOne(Wrappers.lambdaQuery(TCrmSupplier.class) + .eq(TCrmSupplier::getUserId, user.getUserId()) + .last("LIMIT 1")); + supplierClinicId =crmSupplier.getId(); + } + if(roleType == 5){ + // 诊所 + TCrmClinic crmClinic = crmClinicMapper.selectOne(Wrappers.lambdaQuery(TCrmClinic.class) + .eq(TCrmClinic::getUserId, user.getUserId()) + .last("LIMIT 1")); + supplierClinicId =crmClinic.getId(); + } + + // 当前时间一个月后 + Date endDate = DateUtils.addMonths(DateUtils.getNowDate(), 1); + + List<TErpGoodsInventoryVO> list = this.baseMapper.pageInventoryGoodsList(warehouseId, user,supplierClinicId,endDate); + if (list.isEmpty()) { + return list; + } + List<String> typeIds = list.stream().map(TErpGoodsInventoryVO::getTypeId).collect(Collectors.toList()); + if (!typeIds.isEmpty()) { + List<TErpGoodsType> typeList = erpGoodsTypeMapper.selectBatchIds(typeIds); + for (TErpGoodsInventoryVO tErpGoodsVO : list) { + typeList.stream().filter(t -> t.getId().equals(tErpGoodsVO.getTypeId())).findFirst().ifPresent(t -> tErpGoodsVO.setTypeName(t.getTypeName())); + tErpGoodsVO.setTypeName(tErpGoodsVO.getTypeName()); + } + } + List<String> packingUnitId = list.stream().map(TErpGoodsInventoryVO::getPackingUnitId).collect(Collectors.toList()); + if (!packingUnitId.isEmpty()) { + List<TErpGoodsUnit> tErpGoodsUnits = erpGoodsUnitMapper.selectBatchIds(packingUnitId); + for (TErpGoodsInventoryVO tErpGoodsVO : list) { + tErpGoodsUnits.stream().filter(t -> t.getId().equals(tErpGoodsVO.getPackingUnitId())).findFirst().ifPresent(t -> tErpGoodsVO.setPackingUnitName(t.getUnitName())); + } + } + return list; + } @Override public void inventoryGoods(InventoryDto dto, SysUser user) { diff --git a/ruoyi-system/src/main/resources/mapper/system/TErpGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TErpGoodsMapper.xml index 1085a50..8a547e1 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TErpGoodsMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TErpGoodsMapper.xml @@ -164,5 +164,40 @@ where (o.warehousing_number -o.outbound_count) >0 order by o.create_time desc </select> + <select id="pageInventoryGoodsList" resultType="com.ruoyi.system.vo.TErpGoodsInventoryVO"> + select * from ( + SELECT t1.id,t2.warehouse_no, + t3.goods_name, + t4.supplier_name, + t3.type_id, + t3.packing_unit_id, + t3.quasi_number, + t3.goods_id_code, + t1.batch_number, + coalesce(sum(t5.outbound_count),0) as outbound_count, + t1.warehousing_number, + t2.create_time, + t1.warehousing_number - coalesce(sum(t5.outbound_count),0) as num, + t2.unit_amount as sales_amount, + t1.expiry_date + from t_erp_supplier_warehousing_batch t1 + LEFT JOIN t_erp_supplier_warehousing t2 on t1.warehousing_id = t2.id + LEFT JOIN t_erp_goods t3 on t2.goods_id = t3.id + LEFT JOIN t_crm_supplier t4 on t3.supplier_clinic_id = t4.id + LEFT JOIN t_erp_supplier_outbound_goods t5 on t5.warehousing_batch_id =t1.id + where t2.disabled = 0 and t2.warehouse_id = #{warehouseId} + and #{time} > t1.expiry_date + <if test="user.roleType !=null and user.roleType ==4"> + and t3.supplier_clinic_id =#{supplierClinicId} and t3.goods_source=1 + </if> + <if test="user.roleType !=null and user.roleType ==5"> + and t3.supplier_clinic_id =#{supplierClinicId} and t3.goods_source=2 + </if> + + GROUP BY t1.id + ) as o + where (o.warehousing_number -o.outbound_count) >0 + order by o.create_time desc + </select> </mapper> -- Gitblit v1.7.1