ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
@@ -101,6 +101,18 @@ } /** * erp采购管理分页列表 */ @ApiOperation(value = "erp采购管理分页列表--仓库专用") @PostMapping(value = "/pageListWarehouse") public R<PageInfo<TErpProcurementVo>> pageListWarehouse(@RequestBody TErpProcurementQuery query) { SysUser user = tokenService.getLoginUser().getUser(); return R.ok(erpProcurementService.pageListWarehouse(query,user)); } @ApiOperation(value = "erp采购管理详情") @GetMapping(value = "/detail") @@ -169,6 +181,27 @@ return R.ok( erpProcurementService.detailProcurement(clinicSupplierId, user, id)); } @ApiOperation(value = "采购详情--仓库角色专用") @GetMapping(value = "/detailProcurementWarehouse/{id}") public R<DetailProcurementVO> detailProcurementWarehouse(@PathVariable String id) { SysUser user = tokenService.getLoginUser().getUser(); Integer roleType = user.getRoleType(); String clinicSupplierId=null; if(roleType == 5){ // 诊所 TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) .eq(TCrmClinic::getUserId, user.getUserId()) .last("LIMIT 1")); clinicSupplierId = crmClinic.getId(); } return R.ok( erpProcurementService.detailProcurementWarehouse(clinicSupplierId, user, id)); } @ApiOperation(value = "采购草稿") @GetMapping(value = "/getProcurementDraft") public R<ArrayList<DetailProcurementNextVO>> getProcurementDraft() { ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.java
@@ -28,4 +28,6 @@ List<TErpGoodsVO> inventoryNotEnoughList(@Param("user") SysUser user); List<TErpProcurementVo> pageListWarehouse(@Param("query") TErpProcurementQuery query, @Param("pageInfo") PageInfo<TErpProcurementVo> pageInfo, @Param("user") SysUser user, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("supplierClinicId") String supplierClinicId); } ruoyi-system/src/main/java/com/ruoyi/system/model/TErpProcurement.java
@@ -48,6 +48,11 @@ @TableField("pay_number") private String payNumber; @ApiModelProperty(value = "物流单号") @TableField("logistics_number") private String logisticsNumber; @ApiModelProperty(value = "支付流水号") @TableField("pay_transaction_id") private String payTransactionId; ruoyi-system/src/main/java/com/ruoyi/system/model/TErpProcurementGoods.java
@@ -58,7 +58,7 @@ @TableField("purchase_price") private BigDecimal purchasePrice; @ApiModelProperty(value = "售价") @ApiModelProperty(value = "售价(诊所采购价)") @TableField("sales_amount") private BigDecimal salesAmount; ruoyi-system/src/main/java/com/ruoyi/system/query/TErpProcurementQuery.java
@@ -14,6 +14,9 @@ @ApiModelProperty(value = "诊所名称") private String clinicName; @ApiModelProperty(value = "物流单号") private String logisticsNo; @ApiModelProperty(value = "时间 2022-02-02 - 2023-03-03") private String time; ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java
@@ -28,6 +28,8 @@ PageInfo<TErpProcurementVo> pageList(TErpProcurementQuery query, SysUser user); PageInfo<TErpProcurementVo> pageListWarehouse(TErpProcurementQuery query, SysUser user); TErpProcurementDetailVo detail(String id, SysUser user, String goodsName); ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
@@ -88,7 +88,6 @@ private TErpProcurementGoodsService erpProcurementGoodsService; @Override public PageInfo<TErpProcurementVo> pageList(TErpProcurementQuery query, SysUser user) { @@ -153,6 +152,64 @@ } @Override public PageInfo<TErpProcurementVo> pageListWarehouse(TErpProcurementQuery query, SysUser user) { Integer roleType = user.getRoleType(); String supplierClinicId = null; if (roleType == 6) { // 供应商 TCrmSupplier crmSupplier = crmSupplierMapper.selectOne(Wrappers.lambdaQuery(TCrmSupplier.class) .eq(TCrmSupplier::getUserId, user.getUserId()) .last("LIMIT 1")); supplierClinicId = crmSupplier.getId(); 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<TErpProcurementVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TErpProcurementVo> list = this.baseMapper.pageListWarehouse(query, pageInfo, user, sTime, eTime, supplierClinicId); // if (list.isEmpty()) { // return pageInfo; // } // List<String> ids = list.stream().map(TErpProcurementVo::getId).collect(Collectors.toList()); // List<TErpProcurementGoods> tErpProcurementGoods = erpProcurementGoodsMapper.selectList // (new LambdaQueryWrapper<TErpProcurementGoods>().in(TErpProcurementGoods::getProcurementId, ids)); // List<TSysCommission> tSysCommissions = new ArrayList<>(); // if (!tErpProcurementGoods.isEmpty()) { // List<String> collect = tErpProcurementGoods.stream().map(TErpProcurementGoods::getId).collect(Collectors.toList()); // tSysCommissions = sysCommissionMapper.selectList(new LambdaQueryWrapper<TSysCommission>().in(TSysCommission::getTErpProcurementGoodsId, collect)); // } // for (TErpProcurementVo tErpProcurementVo : list) { // List<TErpProcurementGoods> collect = tErpProcurementGoods.stream().filter(e -> e.getProcurementId().equals(tErpProcurementVo.getId())).collect(Collectors.toList()); // int size = collect.stream().map(TErpProcurementGoods::getGoodsId).collect(Collectors.toSet()).size(); // tErpProcurementVo.setTypeNum(size); // BigDecimal reduce = collect.stream().map(TErpProcurementGoods::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add); // tErpProcurementVo.setTotalPrice(reduce); // if (!collect.isEmpty()) { // List<String> collect1 = collect.stream().map(TErpProcurementGoods::getId).collect(Collectors.toList()); // List<TSysCommission> collect2 = tSysCommissions.stream().filter(e -> collect1.contains(e.getTErpProcurementGoodsId())).collect(Collectors.toList()); // BigDecimal reduce1 = collect2.stream().filter(e -> e.getType() == 1).map(TSysCommission::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); // BigDecimal reduce2 = collect2.stream().filter(e -> e.getType() == 2).map(TSysCommission::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); // tErpProcurementVo.setPlatformMoney(reduce1); // tErpProcurementVo.setSupplierMoney(reduce2); // } // // } pageInfo.setRecords(list); return pageInfo; } return null; } @Override public TErpProcurementDetailVo detail(String id, SysUser user, String goodsName) { Integer roleType = user.getRoleType(); @@ -213,7 +270,7 @@ tErpProcurementDetailNextVo.setNum(tErpProcurementGood.getPurchaseCount()); tErpProcurementDetailNextVo.setTotalPrice(tErpProcurementGood.getTotalPrice()); tErpProcurementDetailNextVo.setQuasiNumber(tErpProcurementGood.getQuasiNumber()); tErpProcurementDetailNextVo.setPurchasePrice(tErpProcurementGood.getPurchasePrice()); tErpProcurementDetailNextVo.setPurchasePrice(tErpProcurementGood.getSalesAmount()); List<TSysCommission> tSysCommissions = sysCommissionMapper.selectList(new LambdaQueryWrapper<TSysCommission>().eq(TSysCommission::getTErpProcurementGoodsId, tErpProcurementGood.getId())); @@ -335,7 +392,7 @@ tErpProcurementGoods.setUnitName(tErpGoodsUnit.getUnitName()); tErpProcurementGoods.setPurchasePrice(dto.getGoodsSalesAmount()); tErpProcurementGoods.setSalesAmount(dto.getSalesAmount()); tErpProcurementGoods.setTotalPrice(dto.getSalesAmount().multiply(new BigDecimal(dto.getPurchaseCount()))); tErpProcurementGoods.setTotalPrice(dto.getGoodsSalesAmount().multiply(new BigDecimal(dto.getPurchaseCount()))); tErpProcurementGoods.setPurchaseCount(dto.getPurchaseCount()); tErpProcurementGoods.setSupplierId(supplierClinicId); @@ -370,6 +427,10 @@ TCrmSupplier supplier = crmSupplierMapper.selectById(tErpProcurement.getSupplierId()); detailProcurementVO.setSupplierName(supplier.getSupplierName()); detailProcurementVO.setUserName(sysUserMapper.selectUserById(Long.valueOf(tErpProcurement.getCreateId())).getUserName()); TCrmClinic tCrmClinic = crmClinicMapper.selectById(tErpProcurement.getClinicId()); detailProcurementVO.setClinicName(tCrmClinic.getClinicName()); detailProcurementVO.setClinicAddress(tCrmClinic.getClinicAddress()); detailProcurementVO.setLogisticsNumber(tErpProcurement.getLogisticsNumber()); List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new QueryWrapper<TErpProcurementGoods>().eq("procurement_id", id)); ArrayList<DetailProcurementNextVO> detailProcurementNextVOS = new ArrayList<>(); for (TErpProcurementGoods tErpProcurementGoods : list) { @@ -381,6 +442,7 @@ detailProcurementNextVO.setNum(tErpProcurementGoods.getPurchaseCount()); detailProcurementNextVO.setTotalPrice(tErpProcurement.getPayMoney()); detailProcurementNextVO.setId(tErpProcurementGoods.getId()); detailProcurementNextVO.setPurchasePrice(tErpProcurementGoods.getPurchasePrice()); detailProcurementNextVOS.add(detailProcurementNextVO); } detailProcurementVO.setList(detailProcurementNextVOS); ruoyi-system/src/main/java/com/ruoyi/system/vo/DetailProcurementVO.java
@@ -27,6 +27,17 @@ @ApiModelProperty(value = "发货时间") private LocalDateTime sendTime; @ApiModelProperty(value = "诊所名称") private String clinicName; @ApiModelProperty(value = "诊所地址") private String clinicAddress; @ApiModelProperty(value = "物流单号") private String logisticsNumber; @ApiModelProperty(value = "采购二级详情") private List<DetailProcurementNextVO> list; ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpProcurementVo.java
@@ -26,6 +26,17 @@ @ApiModelProperty(value = "诊所名称") private String clinicName; @ApiModelProperty(value = "诊所地址") private String clinicAddress; @ApiModelProperty(value = "物流单号") private String logisticsNo; @ApiModelProperty(value = "发货时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime sendTime; @ApiModelProperty(value = "供应商名称") private String supplierName; ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml
@@ -77,5 +77,35 @@ and o.warning_inventory > (o.allNum-o.outNum) order by o.create_time desc </select> <select id="pageListWarehouse" resultType="com.ruoyi.system.vo.TErpProcurementVo"> select t1.id, t1.procurement_code, t2.clinic_name, t2.clinic_address, t1.logistics_no, t1.send_time, t1.clinic_id, t1.status from t_erp_procurement t1 left JOIN t_crm_clinic t2 on t1.clinic_id = t2.id where t1.disabled = 0 and t1.status in(3,4,5) and t1.supplier_id =#{supplierClinicId} <if test="query.procurementCode != null and query.procurementCode != ''"> and t1.procurement_code = #{query.procurementCode} </if> <if test="query.clinicName != null and query.clinicName != ''"> and t2.clinic_name like concat('%',#{query.clinicName},'%') </if> <if test="query.logisticsNo != null and query.logisticsNo != ''"> and t1.logistics_no = #{query.logisticsNo} </if> <if test="sTime != null and eTime != ''"> and t1.create_time between #{sTime} and #{eTime} </if> <if test="query.status != null"> and t1.status = #{query.status} </if> </select> </mapper>