From 4068eb1f7c50b37d816934b822116f45af182b0e Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 11 九月 2025 09:02:41 +0800 Subject: [PATCH] 供应商erp --- ruoyi-system/src/main/java/com/ruoyi/system/vo/PageInventoryListVo.java | 38 +++ ruoyi-system/pom.xml | 8 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 8 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpMaintenanceReminderMapper.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/service/TErpSupplierWarehousingService.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/query/TErpInventoryQuery.java | 21 + ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderDetailVo.java | 55 +++++ ruoyi-system/src/main/java/com/ruoyi/system/vo/InventoryDetailVo.java | 43 +++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java | 26 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java | 120 ++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/TErpMaintenanceReminderService.java | 8 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpMaintenanceReminderController.java | 49 ++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java | 105 +++++++++ ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderListVo.java | 45 ++++ ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierInventoryGoods.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpSupplierWarehousingMapper.java | 4 ruoyi-system/lib/lkl-java-sdk-1.0.7.jar | 0 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 4 ruoyi-system/src/main/resources/mapper/system/TErpMaintenanceReminderMapper.xml | 30 ++ ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierWarehousing.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/query/TErpMaintenanceReminderQuery.java | 25 ++ ruoyi-system/src/main/resources/mapper/system/TErpSupplierWarehousingMapper.xml | 16 + 23 files changed, 620 insertions(+), 11 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpMaintenanceReminderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpMaintenanceReminderController.java index b32d471..76fa5c4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpMaintenanceReminderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpMaintenanceReminderController.java @@ -1,8 +1,21 @@ package com.ruoyi.web.controller.api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.query.TErpMaintenanceReminderQuery; +import com.ruoyi.system.query.TErpProcurementQuery; +import com.ruoyi.system.service.TErpMaintenanceReminderService; +import com.ruoyi.system.service.TErpProcurementService; +import com.ruoyi.system.vo.TErpMaintenanceReminderDetailVo; +import com.ruoyi.system.vo.TErpMaintenanceReminderListVo; +import com.ruoyi.system.vo.TErpProcurementVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; /** * <p> @@ -14,7 +27,39 @@ */ @RestController @RequestMapping("/t-erp-maintenance-reminder") +@Api(tags = "erp保养提醒") public class TErpMaintenanceReminderController { + private final TErpMaintenanceReminderService erpMaintenanceReminderService; + private final TokenService tokenService; + + @Autowired + public TErpMaintenanceReminderController(TErpMaintenanceReminderService erpMaintenanceReminderService, TokenService tokenService) { + this.erpMaintenanceReminderService = erpMaintenanceReminderService; + this.tokenService = tokenService; + } + + + /** + * erp保养提醒分页列表 + */ + @ApiOperation(value = "erp保养提醒分页列表") + @PostMapping(value = "/pageList") + public R<PageInfo<TErpMaintenanceReminderListVo>> pageList(@RequestBody TErpMaintenanceReminderQuery query) { + SysUser user = tokenService.getLoginUser().getUser(); + return R.ok(erpMaintenanceReminderService.pageList(query,user)); + } + + + /** + * erp保养提醒详情 + */ + @ApiOperation(value = "erp保养提醒详情") + @GetMapping(value = "/detail/{id}") + public R<TErpMaintenanceReminderDetailVo> detail(@PathVariable String id) { + SysUser user = tokenService.getLoginUser().getUser(); + return R.ok(erpMaintenanceReminderService.detail(id,user)); + } + } 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 4495912..8ad41ca 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 @@ -8,12 +8,10 @@ import com.ruoyi.system.dto.WarehousingGoodsDto; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.query.TErpGoodsWarehouseQuery; +import com.ruoyi.system.query.TErpInventoryQuery; import com.ruoyi.system.query.ValidityPeriodWarningQuery; import com.ruoyi.system.service.TErpSupplierWarehousingService; -import com.ruoyi.system.vo.TErpGoodsVO; -import com.ruoyi.system.vo.TErpGoodsWarehouseLastVO; -import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO; -import com.ruoyi.system.vo.ValidityPeriodWarningVo; +import com.ruoyi.system.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -93,6 +91,26 @@ } + + + + @ApiOperation(value = "供应商 盘点") + @PostMapping(value = "/pageInventoryList") + public R<PageInfo<PageInventoryListVo>> pageInventoryList(@RequestBody TErpInventoryQuery query) { + SysUser user = tokenService.getLoginUser().getUser(); + return R.ok(erpSupplierWarehousingService.pageInventoryList(query,user)); + } + + @ApiOperation(value = "供应商 盘点详情") + @GetMapping(value = "/detailInventory/{id}") + public R<List<InventoryDetailVo>> detailInventory(@PathVariable String id) { + SysUser user = tokenService.getLoginUser().getUser(); + return R.ok(erpSupplierWarehousingService.detailInventory(id,user)); + } + + + + } diff --git a/ruoyi-system/lib/lkl-java-sdk-1.0.7.jar b/ruoyi-system/lib/lkl-java-sdk-1.0.7.jar new file mode 100644 index 0000000..aee89f3 --- /dev/null +++ b/ruoyi-system/lib/lkl-java-sdk-1.0.7.jar Binary files differ diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index 5adce03..cfbce26 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -17,6 +17,14 @@ <dependencies> <dependency> + <groupId>com.lkl.laop.sdk</groupId> + <artifactId>lkl-laop-java-sdk</artifactId> + <version>1.0.x</version> + <systemPath>${project.basedir}/lib/lkl-java-sdk-1.0.7.jar</systemPath> + <scope>system</scope> + </dependency> + + <dependency> <groupId>com.qcloud</groupId> <artifactId>cos_api</artifactId> <version>5.6.227</version> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index a7bf907..d76c928 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -176,4 +176,8 @@ void updatePassword(@Param("id") Long id,@Param("s") String s); long selectIdByPhone(@Param("phonenumber") String phonenumber); + + List<SysUser> selectBatchIds(@Param("personIds") List<Integer> personIds); + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpMaintenanceReminderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpMaintenanceReminderMapper.java index 270c5f7..9cf3d3d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpMaintenanceReminderMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpMaintenanceReminderMapper.java @@ -1,7 +1,14 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.model.TErpMaintenanceReminder; +import com.ruoyi.system.query.TErpMaintenanceReminderQuery; +import com.ruoyi.system.vo.TErpMaintenanceReminderListVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +20,5 @@ */ public interface TErpMaintenanceReminderMapper extends BaseMapper<TErpMaintenanceReminder> { + List<TErpMaintenanceReminderListVo> pageList(@Param("page") PageInfo<TErpMaintenanceReminderListVo> page, @Param("query") TErpMaintenanceReminderQuery query, @Param("user") SysUser user); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpSupplierWarehousingMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpSupplierWarehousingMapper.java index 2256448..70ddff6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpSupplierWarehousingMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpSupplierWarehousingMapper.java @@ -6,7 +6,9 @@ import com.ruoyi.system.model.TErpSupplierWarehousing; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.query.TErpGoodsWarehouseQuery; +import com.ruoyi.system.query.TErpInventoryQuery; import com.ruoyi.system.query.ValidityPeriodWarningQuery; +import com.ruoyi.system.vo.PageInventoryListVo; import com.ruoyi.system.vo.TErpGoodsVO; import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO; import com.ruoyi.system.vo.ValidityPeriodWarningVo; @@ -32,4 +34,6 @@ PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(@Param("pageInfo") PageInfo<ValidityPeriodWarningVo> pageInfo, @Param("query") ValidityPeriodWarningQuery query, @Param("user") SysUser user, @Param("time") LocalDateTime nineMonthLater); + List<PageInventoryListVo> pageInventoryList(@Param("pageInfo") PageInfo<PageInventoryListVo> pageInfo, @Param("query") TErpInventoryQuery query, @Param("user") SysUser user, @Param("sTime") String sTime, @Param("eTime") String eTime); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierInventoryGoods.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierInventoryGoods.java index e5ca508..8f1ffbc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierInventoryGoods.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierInventoryGoods.java @@ -54,5 +54,9 @@ @TableField("inventory_type") private Integer inventoryType; + @ApiModelProperty(value = "商品id") + @TableField("goods_id") + private String goodsId; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java index 9f5a707..9c9e189 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java @@ -54,5 +54,9 @@ @TableField("outbound_reason") private String outboundReason; + @ApiModelProperty(value = "商品id") + @TableField("goods_id") + private String goodsId; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierWarehousing.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierWarehousing.java index 4bcdb15..476e1a6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierWarehousing.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierWarehousing.java @@ -60,6 +60,6 @@ @ApiModelProperty(value = "入库单号") - @TableField("warehousing_no") - private String warehousingNo; + @TableField("warehouse_no") + private String warehouseNo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TErpInventoryQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TErpInventoryQuery.java new file mode 100644 index 0000000..a8aa496 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TErpInventoryQuery.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "erp盘点query") +public class TErpInventoryQuery extends BasePage { + + @ApiModelProperty(value = "仓库id") + private String warehouseId; + + @ApiModelProperty(value = "操作人") + private String createBy; + + @ApiModelProperty(value = "操作时间 2022-02-02 - 2023-06-06") + private String time; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TErpMaintenanceReminderQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TErpMaintenanceReminderQuery.java new file mode 100644 index 0000000..7c8b802 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TErpMaintenanceReminderQuery.java @@ -0,0 +1,25 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("保养提醒Query") +public class TErpMaintenanceReminderQuery extends BasePage { + @ApiModelProperty(value = "入库单号") + private String warehouseNo; + + @ApiModelProperty(value = "药品名称") + private String goodsName; + + @ApiModelProperty(value = "类型id") + private String typeId; + + @ApiModelProperty(value = "批次号") + private String batchNumber; + + @ApiModelProperty(value = "状态 1=未维护 2=已维护") + private Integer status; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpMaintenanceReminderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpMaintenanceReminderService.java index 6b00df0..618cd34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpMaintenanceReminderService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpMaintenanceReminderService.java @@ -1,7 +1,12 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.model.TErpMaintenanceReminder; +import com.ruoyi.system.query.TErpMaintenanceReminderQuery; +import com.ruoyi.system.vo.TErpMaintenanceReminderDetailVo; +import com.ruoyi.system.vo.TErpMaintenanceReminderListVo; /** * <p> @@ -13,4 +18,7 @@ */ public interface TErpMaintenanceReminderService extends IService<TErpMaintenanceReminder> { + PageInfo<TErpMaintenanceReminderListVo> pageList(TErpMaintenanceReminderQuery query, SysUser user); + + TErpMaintenanceReminderDetailVo detail(String id, SysUser user); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpSupplierWarehousingService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpSupplierWarehousingService.java index 11fa1af..de8134c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpSupplierWarehousingService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpSupplierWarehousingService.java @@ -7,6 +7,7 @@ import com.ruoyi.system.model.TErpSupplierWarehousing; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.query.TErpGoodsWarehouseQuery; +import com.ruoyi.system.query.TErpInventoryQuery; import com.ruoyi.system.query.ValidityPeriodWarningQuery; import com.ruoyi.system.vo.*; @@ -32,4 +33,9 @@ void warehousingGoods(@Valid List<WarehousingGoodsDto> dtos, SysUser user); PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(ValidityPeriodWarningQuery query, SysUser user); + + PageInfo<PageInventoryListVo> pageInventoryList(TErpInventoryQuery query, SysUser user); + + List<InventoryDetailVo> detailInventory(String id, SysUser user); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java index fd0e316..a9ec2a7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java @@ -1,10 +1,21 @@ package com.ruoyi.system.service.impl; -import com.ruoyi.system.model.TErpMaintenanceReminder; -import com.ruoyi.system.mapper.TErpMaintenanceReminderMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.lkl.laop.sdk.LKLSDK; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.mapper.*; +import com.ruoyi.system.model.*; +import com.ruoyi.system.query.TErpMaintenanceReminderQuery; import com.ruoyi.system.service.TErpMaintenanceReminderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.vo.TErpMaintenanceReminderDetailVo; +import com.ruoyi.system.vo.TErpMaintenanceReminderListVo; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +28,94 @@ @Service public class TErpMaintenanceReminderServiceImpl extends ServiceImpl<TErpMaintenanceReminderMapper, TErpMaintenanceReminder> implements TErpMaintenanceReminderService { + @Resource + private TErpGoodsTypeMapper erpGoodsTypeMapper; + + @Resource + private SysUserMapper sysUserMapper; + + @Resource + private TErpGoodsMapper erpGoodsMapper; + + @Resource + private TErpGoodsUnitMapper erpGoodsUnitMapper; + + @Resource + private TErpSupplierWarehousingBatchMapper erpSupplierWarehousingBatchMapper; + + @Resource + private TErpSupplierWarehousingMapper erpSupplierWarehousingMapper; + + @Resource + private TErpSupplierOutboundGoodsMapper erpSupplierOutboundGoodsMapper; + + @Override + public PageInfo<TErpMaintenanceReminderListVo> pageList(TErpMaintenanceReminderQuery query, SysUser user) { + PageInfo<TErpMaintenanceReminderListVo> page = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TErpMaintenanceReminderListVo> list = baseMapper.pageList(page, query, user); + if(list.isEmpty()){ + return page; + } + List<String> typeIds = list.stream().map(TErpMaintenanceReminderListVo::getTypeId).collect(Collectors.toList()); + if(!typeIds.isEmpty()){ + List<TErpGoodsType> typeList = erpGoodsTypeMapper.selectBatchIds(typeIds); + for (TErpMaintenanceReminderListVo tErpMaintenanceReminderListVo : list) { + typeList.stream().filter(t -> t.getId().equals(tErpMaintenanceReminderListVo.getTypeId())).findFirst().ifPresent(t -> tErpMaintenanceReminderListVo.setTypeName(t.getTypeName())); + } + } + List<Integer> personIds = list.stream().map(TErpMaintenanceReminderListVo::getMaintenancePersonId).collect(Collectors.toList()); + if(!personIds.isEmpty()){ + List<SysUser> userList = sysUserMapper.selectBatchIds(personIds); + for (TErpMaintenanceReminderListVo tErpMaintenanceReminderListVo : list) { + userList.stream().filter(t ->tErpMaintenanceReminderListVo.getMaintenancePersonId()!=null && t.getUserId().toString().equals(tErpMaintenanceReminderListVo.getMaintenancePersonId().toString())).findFirst().ifPresent(t -> tErpMaintenanceReminderListVo.setMaintenancePersonName(t.getUserName())); + } + } + page.setRecords( list); + return page; + } + + @Override + public TErpMaintenanceReminderDetailVo detail(String id, SysUser user) { + + + TErpMaintenanceReminderDetailVo tErpMaintenanceReminderDetailVo = new TErpMaintenanceReminderDetailVo(); + TErpMaintenanceReminder tErpMaintenanceReminder = baseMapper.selectById(id); + if(tErpMaintenanceReminder == null || tErpMaintenanceReminder.getMaintenanceType()!=1 || !tErpMaintenanceReminder.getClinicSupplierId().equals(user.getUserId().toString())){ + return tErpMaintenanceReminderDetailVo; + } + tErpMaintenanceReminderDetailVo.setId(tErpMaintenanceReminder.getId()); + tErpMaintenanceReminderDetailVo.setMaintenanceTime(tErpMaintenanceReminder.getMaintenanceTime()); + tErpMaintenanceReminderDetailVo.setMaintenanceRecord(tErpMaintenanceReminder.getMaintenanceRecord()); + tErpMaintenanceReminderDetailVo.setMaintenancePersonId(tErpMaintenanceReminder.getMaintenancePersonId()); + if(tErpMaintenanceReminder.getMaintenancePersonId()!=null){ + tErpMaintenanceReminderDetailVo.setMaintenancePersonName(sysUserMapper.selectUserById(Long.valueOf(tErpMaintenanceReminder.getMaintenancePersonId())).getUserName()); + } + tErpMaintenanceReminderDetailVo.setStatus(tErpMaintenanceReminder.getStatus()); + + String warehousingBatchId = tErpMaintenanceReminder.getWarehousingBatchId(); + if(warehousingBatchId != null){ + TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch = erpSupplierWarehousingBatchMapper.selectById(warehousingBatchId); + tErpMaintenanceReminderDetailVo.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber()); + TErpSupplierWarehousing tErpSupplierWarehousing = erpSupplierWarehousingMapper.selectById(tErpSupplierWarehousingBatch.getWarehousingId()); + if(tErpSupplierWarehousing!=null){ + String goodsId = tErpSupplierWarehousing.getGoodsId(); + if(goodsId != null){ + TErpGoods goods = erpGoodsMapper.selectById(goodsId); + tErpMaintenanceReminderDetailVo.setGoodsName(goods.getGoodsName()); + tErpMaintenanceReminderDetailVo.setQuasiNumber(goods.getQuasiNumber()); + tErpMaintenanceReminderDetailVo.setGoodsIdCode(goods.getGoodsIdCode()); + String packingUnitId = goods.getPackingUnitId(); + if(packingUnitId != null){ + TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(packingUnitId); + tErpMaintenanceReminderDetailVo.setUnitName(tErpGoodsUnit.getUnitName()); + } + } + } + List<TErpSupplierOutboundGoods> tErpSupplierOutboundGoods = erpSupplierOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getWarehousingBatchId, warehousingBatchId)); + int sum = tErpSupplierOutboundGoods.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum(); + tErpMaintenanceReminderDetailVo.setNumber(tErpSupplierWarehousingBatch.getWarehousingNumber()-sum); + + } + return tErpMaintenanceReminderDetailVo; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java index 3b84b01..18317e6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java @@ -11,10 +11,12 @@ import com.ruoyi.system.model.*; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.query.TErpGoodsWarehouseQuery; +import com.ruoyi.system.query.TErpInventoryQuery; import com.ruoyi.system.query.ValidityPeriodWarningQuery; import com.ruoyi.system.service.TErpSupplierWarehousingService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.vo.*; +import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -58,6 +60,15 @@ @Resource private TErpMaintenanceReminderMapper tErpMaintenanceReminderMapper; + + @Resource + private TErpSupplierInventoryGoodsMapper erpSupplierInventoryGoodsMapper; + + @Resource + private TErpSupplierOutboundMapper erpSupplierOutboundMapper; + + @Resource + private TErpGoodsUnitMapper erpGoodsUnitMapper; @Override @@ -195,7 +206,7 @@ TErpSupplierWarehousing tErpSupplierWarehousing = new TErpSupplierWarehousing(); // 当前年月日时分秒 String time = DateUtils.dateTimeNow(); - tErpSupplierWarehousing.setWarehousingNo("G"+time); + tErpSupplierWarehousing.setWarehouseNo("G"+time); tErpSupplierWarehousing.setSupplierId(user.getUserId().toString()); tErpSupplierWarehousing.setWarehouseId(dto.getWarehouseId()); tErpSupplierWarehousing.setGoodsId(dto.getGoodsId()); @@ -242,4 +253,111 @@ } + + @Override + public PageInfo<PageInventoryListVo> pageInventoryList(TErpInventoryQuery query, SysUser user) { + String sTime=null; + String eTime =null; + if(query.getTime()!=null && !query.getTime().isEmpty()){ + String[] split = query.getTime().split(" - "); + sTime = split[0] + " 00:00:00"; + eTime = split[1] + " 23:59:59"; + } + PageInfo<PageInventoryListVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<PageInventoryListVo> list = this.baseMapper.pageInventoryList(pageInfo,query,user,sTime,eTime); + if(list.isEmpty()){ + return pageInfo; + } + + + + List<String> collect = list.stream().map(PageInventoryListVo::getId).collect(Collectors.toList()); + List<TErpSupplierInventoryGoods> tErpSupplierInventoryGoods = erpSupplierInventoryGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierInventoryGoods>().in(TErpSupplierInventoryGoods::getInventoryId,collect)); + for (PageInventoryListVo pageInventoryListVo : list) { + // 盘盈 + BigDecimal add = BigDecimal.ZERO; + + // 盘亏 + BigDecimal subtract = BigDecimal.ZERO; + List<TErpSupplierInventoryGoods> tErpSupplierInventoryGoodsList = tErpSupplierInventoryGoods.stream().filter(t -> t.getInventoryId().equals(pageInventoryListVo.getId())).collect(Collectors.toList()); + for (TErpSupplierInventoryGoods tErpSupplierInventoryGoods1 : tErpSupplierInventoryGoodsList) { + if(tErpSupplierInventoryGoods1!=null){ + // 盘盈 查入库 + if(tErpSupplierInventoryGoods1.getInventoryType()==1){ + TErpSupplierWarehousing tErpSupplierWarehousing = erpSupplierWarehousingMapper.selectById(tErpSupplierInventoryGoods1.getWarehousingId()); + List<TErpSupplierWarehousingBatch> tErpSupplierWarehousingBatches = erpSupplierWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpSupplierWarehousingBatch>().eq(TErpSupplierWarehousingBatch::getWarehousingId, tErpSupplierWarehousing.getId())); + int sum = tErpSupplierWarehousingBatches.stream().mapToInt(TErpSupplierWarehousingBatch::getWarehousingNumber).sum(); + String goodsId = tErpSupplierWarehousing.getGoodsId(); + TErpGoods goods = erpGoodsMapper.selectById(goodsId); + BigDecimal multiply = goods.getSalesAmount().multiply(new BigDecimal(sum)); + add = add.add(multiply); + }else { + // 盘亏 查出库 + TErpSupplierOutbound tErpSupplierOutbound = erpSupplierOutboundMapper.selectById(tErpSupplierInventoryGoods1.getWarehousingId()); + + List<TErpSupplierOutboundGoods> tErpSupplierOutboundGoods = erpSupplierOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getOutboundId, tErpSupplierOutbound.getId())); + int sum = tErpSupplierOutboundGoods.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum(); + String goodsId = tErpSupplierOutbound.getGoodsId(); + TErpGoods goods = erpGoodsMapper.selectById(goodsId); + BigDecimal multiply = goods.getSalesAmount().multiply(new BigDecimal(sum)); + subtract = subtract.add(multiply); + } + } + } + int size = tErpSupplierInventoryGoodsList.stream().map(TErpSupplierInventoryGoods::getGoodsId).collect(Collectors.toSet()).size(); + pageInventoryListVo.setNum(size); + pageInventoryListVo.setTotalPrice(add.subtract(subtract)); + + } + + pageInfo.setRecords(list); + return pageInfo; + } + + @Override + public List<InventoryDetailVo> detailInventory(String id, SysUser user) { + ArrayList<InventoryDetailVo> inventoryDetailVos = new ArrayList<>(); + + List<TErpSupplierInventoryGoods> tErpSupplierInventoryGoods = erpSupplierInventoryGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierInventoryGoods>().eq(TErpSupplierInventoryGoods::getInventoryId, id)); + if(tErpSupplierInventoryGoods!=null && !tErpSupplierInventoryGoods.isEmpty()){ + for (TErpSupplierInventoryGoods tErpSupplierInventoryGood : tErpSupplierInventoryGoods) { + InventoryDetailVo inventoryDetailVo = new InventoryDetailVo(); + if(tErpSupplierInventoryGood.getInventoryType()==1){ + TErpSupplierWarehousing tErpSupplierWarehousing = erpSupplierWarehousingMapper.selectById(tErpSupplierInventoryGood.getWarehousingId()); + String goodsId = tErpSupplierWarehousing.getGoodsId(); + TErpGoods goods = erpGoodsMapper.selectById(goodsId); + inventoryDetailVo.setGoodsName(goods.getGoodsName()); + TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(goods.getPackingUnitId()); + inventoryDetailVo.setUnitName(tErpGoodsUnit.getUnitName()); + inventoryDetailVo.setWarehouseNo(tErpSupplierWarehousing.getWarehouseNo()); + TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch = erpSupplierWarehousingBatchMapper.selectById(tErpSupplierInventoryGood.getWarehousingBatchId()); + inventoryDetailVo.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber()); + + List<TErpSupplierWarehousingBatch> tErpSupplierWarehousingBatches = erpSupplierWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpSupplierWarehousingBatch>().eq(TErpSupplierWarehousingBatch::getBatchNumber, tErpSupplierWarehousingBatch.getBatchNumber())); + int sum = tErpSupplierWarehousingBatches.stream().mapToInt(TErpSupplierWarehousingBatch::getWarehousingNumber).sum(); + List<String> collect = tErpSupplierWarehousingBatches.stream().map(TErpSupplierWarehousingBatch::getId).collect(Collectors.toList()); + if(!collect.isEmpty()){ + List<TErpSupplierOutboundGoods> tErpSupplierOutboundGoods = erpSupplierOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getWarehousingBatchId, collect)); + int sum1 = tErpSupplierOutboundGoods.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum(); + sum = sum-sum1; + } + + // sum = 剩余库存 + inventoryDetailVo.setNowCount(sum); + inventoryDetailVo.setInventoryCount(tErpSupplierInventoryGood.getInventoryCount()); + inventoryDetailVo.setInventoryType(tErpSupplierInventoryGood.getInventoryType()); + inventoryDetailVo.setDamagedCount(tErpSupplierInventoryGood.getDamagedCount()); + } + inventoryDetailVos.add(inventoryDetailVo); + + } + + return inventoryDetailVos; + + + } + + + return Collections.emptyList(); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/InventoryDetailVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/InventoryDetailVo.java new file mode 100644 index 0000000..c57dfdd --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/InventoryDetailVo.java @@ -0,0 +1,43 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "盘点详情VO") +public class InventoryDetailVo { + + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品单位") + private String unitName; + + + @ApiModelProperty(value = "入库单号") + private String warehouseNo; + + + @ApiModelProperty(value = "入库批次") + private String batchNumber; + + @ApiModelProperty(value = "当前库存") + private Integer nowCount; + + @ApiModelProperty(value = "盘点数量") + private Integer inventoryCount; + + @ApiModelProperty(value = "盘点类型 1=盘盈 2=盘亏") + private Integer inventoryType; + + @ApiModelProperty(value = "破损数量") + private Integer damagedCount; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/PageInventoryListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PageInventoryListVo.java new file mode 100644 index 0000000..b0724a7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PageInventoryListVo.java @@ -0,0 +1,38 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "盘点分页VO") +public class PageInventoryListVo { + + + @ApiModelProperty(value = "盘点id") + private String id; + + + + @ApiModelProperty(value = "仓库名称") + private String warehouseName; + + + @ApiModelProperty(value = "品种数") + private Integer num; + + @ApiModelProperty(value = "总价格") + private BigDecimal totalPrice; + + @ApiModelProperty(value = "操作人") + private String createBy; + + + @ApiModelProperty(value = "操作时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createTime; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderDetailVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderDetailVo.java new file mode 100644 index 0000000..0eaa5d6 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderDetailVo.java @@ -0,0 +1,55 @@ +package com.ruoyi.system.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "保养提醒详情Vo") +public class TErpMaintenanceReminderDetailVo { + @ApiModelProperty(value = "保养id") + private String id; + + + @ApiModelProperty(value = "药品名称") + private String goodsName; + + @ApiModelProperty(value = "维护数量") + private Integer number; + + @ApiModelProperty(value = "国药准字号") + private String quasiNumber; + + @ApiModelProperty("商品标识码") + @TableField("goods_id_code") + private String goodsIdCode; + + @ApiModelProperty(value = "单位名称") + private String unitName; + + @ApiModelProperty(value = "批次号") + private String batchNumber; + + + @ApiModelProperty(value = "维护人id") + private Integer maintenancePersonId; + + @ApiModelProperty(value = "维护人名称") + private String maintenancePersonName; + + @ApiModelProperty(value = "维护时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime maintenanceTime; + + + @ApiModelProperty(value = "状态 1未维护 2已维护") + private Integer status; + + + @ApiModelProperty(value = "维护记录") + private String maintenanceRecord; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderListVo.java new file mode 100644 index 0000000..03d8ad8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderListVo.java @@ -0,0 +1,45 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "保养提醒Vo") +public class TErpMaintenanceReminderListVo { + @ApiModelProperty(value = "保养id") + private String id; + + @ApiModelProperty(value = "入库单号") + private String warehouseNo; + + @ApiModelProperty(value = "药品名称") + private String goodsName; + + @ApiModelProperty(value = "类型id") + private String typeId; + + @ApiModelProperty(value = "类型名称") + private String typeName; + + @ApiModelProperty(value = "批次号") + private String batchNumber; + + + @ApiModelProperty(value = "维护人id") + private Integer maintenancePersonId; + + @ApiModelProperty(value = "维护人名称") + private String maintenancePersonName; + + @ApiModelProperty(value = "维护时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime maintenanceTime; + + + +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index a36d1c1..98cbf0a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -225,6 +225,14 @@ <select id="selectAllList" resultType="com.ruoyi.common.core.domain.entity.SysUser"> select * from sys_user </select> + + <select id="selectBatchIds" resultType="com.ruoyi.common.core.domain.entity.SysUser"> + select * from sys_user where user_id in + <foreach collection="personIds" separator="," item="personId" open="(" close=")"> + #{personId} + </foreach> + </select> + <select id="pageList" resultType="com.ruoyi.system.vo.SysUserVO"> select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar, u.disable_remark AS disableRemark,u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, diff --git a/ruoyi-system/src/main/resources/mapper/system/TErpMaintenanceReminderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TErpMaintenanceReminderMapper.xml index bbcaae4..c2ecd35 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TErpMaintenanceReminderMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TErpMaintenanceReminderMapper.xml @@ -23,5 +23,35 @@ <sql id="Base_Column_List"> id, clinic_supplier_id, maintenance_type, warehousing_id, status, maintenance_person_id, maintenance_time, maintenance_record, create_time, update_time, create_by, update_by, disabled </sql> + <select id="pageList" resultType="com.ruoyi.system.vo.TErpMaintenanceReminderListVo"> + select t1.id, + t4.goods_name, + t4.type_id, + t2.batch_number, + t1.maintenance_person_id, + t1.maintenance_time, + t1.`status`, + t3.warehouse_no + from t_erp_maintenance_reminder t1 + LEFT JOIN t_erp_supplier_warehousing_batch t2 on t1.warehousing_batch_id = t2.id + left join t_erp_supplier_warehousing t3 on t2.warehousing_id = t3.id + left join t_erp_goods t4 on t3.goods_id = t4.id + where t1.disabled = 0 and t1.maintenance_type =1 and t1.clinic_supplier_id =#{user.userId} + <if test="query.warehouseNo != null and query.warehouseNo != ''"> + and t3.warehouse_no =#{query.warehouseNo} + </if> + <if test="query.goodsName != null and query.goodsName != ''"> + and t4.goods_name like concat('%',#{query.goodsName},'%') + </if> + <if test="query.typeId != null and query.typeId != '' "> + and t4.type_id = #{query.typeId} + </if> + <if test="query.batchNumber != null and query.batchNumber != ''"> + and t2.batch_number = #{query.batchNumber} + </if> + <if test="query.status != null "> + and t1.`status` = #{query.status} + </if> + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TErpSupplierWarehousingMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TErpSupplierWarehousingMapper.xml index 961f9dd..5ab14e4 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TErpSupplierWarehousingMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TErpSupplierWarehousingMapper.xml @@ -127,6 +127,22 @@ order by t1.expiry_date </select> + <select id="pageInventoryList" resultType="com.ruoyi.system.vo.PageInventoryListVo"> + select t1.id,t1.create_time,t2.user_name createBy,t3.warehouse_name + from t_erp_supplier_inventory t1 left join sys_user t2 on t1.create_id = t2.user_id + left join t_crm_warehouse t3 on t1.warehouse_id =t3.id + where t1.disabled = 0 and t1.supplier_id = #{user.userId} + <if test="query.warehouseId != null and query.warehouseId != ''"> + and t1.warehouse_id = #{query.warehouseId} + </if> + <if test="query.createBy != null and query.createBy != ''"> + and t2.user_name like concat('%',#{query.createBy},'%') + </if> + <if test="sTime != null and eTime !=null "> + and t1.create_time between #{sTime} and #{eTime} + </if> + order by t1.create_time desc + </select> </mapper> -- Gitblit v1.7.1