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)); } } 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)); } } ruoyi-system/lib/lkl-java-sdk-1.0.7.jarBinary files differ
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> 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); } 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); } 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); } 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; } 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; } 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; } ruoyi-system/src/main/java/com/ruoyi/system/query/TErpInventoryQuery.java
New file @@ -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; } ruoyi-system/src/main/java/com/ruoyi/system/query/TErpMaintenanceReminderQuery.java
New file @@ -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; } 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); } 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); } 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; } } 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(); } } ruoyi-system/src/main/java/com/ruoyi/system/vo/InventoryDetailVo.java
New file @@ -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; } ruoyi-system/src/main/java/com/ruoyi/system/vo/PageInventoryListVo.java
New file @@ -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; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderDetailVo.java
New file @@ -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; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderListVo.java
New file @@ -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; } 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, 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> 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>