xuhy
6 天以前 1d6f916b5254a31a086f897acb0d4a5913a3e332
Merge remote-tracking branch 'origin/master'
16个文件已修改
7个文件已添加
631 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpMaintenanceReminderController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpSupplierWarehousingController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/lib/lkl-java-sdk-1.0.7.jar 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/pom.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpMaintenanceReminderMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpSupplierWarehousingMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierInventoryGoods.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierWarehousing.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TErpInventoryQuery.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TErpMaintenanceReminderQuery.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TErpMaintenanceReminderService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TErpSupplierWarehousingService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/InventoryDetailVo.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/PageInventoryListVo.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderDetailVo.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpMaintenanceReminderListVo.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TErpMaintenanceReminderMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TErpSupplierWarehousingMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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.jar
Binary 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>