ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java
@@ -8,7 +8,6 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.R; @@ -20,21 +19,15 @@ import com.ruoyi.system.dto.TErpGoodsInfoSaveDto; import com.ruoyi.system.dto.TErpGoodsUpdateStatusDto; import com.ruoyi.system.importExcel.TErpGoodsExcel; import com.ruoyi.system.model.TErpGoods; import com.ruoyi.system.model.TErpGoodsType; import com.ruoyi.system.model.TErpGoodsUnit; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.service.TErpGoodsService; import com.ruoyi.system.service.TErpGoodsTypeService; import com.ruoyi.system.service.TErpGoodsUnitService; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TErpGoodsVO; import com.ruoyi.web.controller.tool.ImportExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -47,9 +40,10 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** @@ -70,13 +64,23 @@ private final TokenService tokenService; private final TErpGoodsTypeService erpGoodsTypeService; private final TErpGoodsUnitService erpGoodsUnitService; private final TErpSupplierWarehousingBatchService erpSupplierWarehousingBatchService; private final TErpSupplierWarehousingService erpSupplierWarehousingService; private final TErpSupplierOutboundGoodsService erpSupplierOutboundGoodsService; private final TErpMaintenanceReminderService erpMaintenanceReminderService; @Autowired public TErpGoodsController(TErpGoodsService erpGoodsService, TokenService tokenService, TErpGoodsTypeService erpGoodsTypeService, TErpGoodsUnitService erpGoodsUnitService) { public TErpGoodsController(TErpGoodsService erpGoodsService, TokenService tokenService, TErpGoodsTypeService erpGoodsTypeService, TErpGoodsUnitService erpGoodsUnitService, TErpSupplierWarehousingBatchService erpSupplierWarehousingBatchService, TErpSupplierWarehousingService erpSupplierWarehousingService, TErpSupplierOutboundGoodsService erpSupplierOutboundGoodsService, TErpMaintenanceReminderService erpMaintenanceReminderService) { this.erpGoodsService = erpGoodsService; this.tokenService = tokenService; this.erpGoodsTypeService = erpGoodsTypeService; this.erpGoodsUnitService = erpGoodsUnitService; this.erpSupplierWarehousingBatchService = erpSupplierWarehousingBatchService; this.erpSupplierWarehousingService = erpSupplierWarehousingService; this.erpSupplierOutboundGoodsService = erpSupplierOutboundGoodsService; this.erpMaintenanceReminderService = erpMaintenanceReminderService; } @@ -140,8 +144,39 @@ @ApiOperation(value = "供应商完善商品") @PostMapping(value = "/saveDataInfo") public R<Boolean> saveDataInfo(@RequestBody @Valid TErpGoodsInfoSaveDto dto) { SysUser user = tokenService.getLoginUser().getUser(); TErpGoods goods = erpGoodsService.getById(dto.getId()); BeanUtils.copyProperties(dto,goods); if(goods.getMaintenanceInterval()!=null){ List<TErpSupplierWarehousing> list = erpSupplierWarehousingService.list(new LambdaQueryWrapper<TErpSupplierWarehousing>().eq(TErpSupplierWarehousing::getGoodsId, dto.getId())); if(!list.isEmpty()){ List<TErpSupplierWarehousingBatch> tErpSupplierWarehousingBatches = erpSupplierWarehousingBatchService.list(new LambdaQueryWrapper<TErpSupplierWarehousingBatch>().in(TErpSupplierWarehousingBatch::getWarehousingId, list.stream().map(TErpSupplierWarehousing::getId).collect(Collectors.toList()))); for (TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch : tErpSupplierWarehousingBatches) { List<TErpSupplierOutboundGoods> list1 = erpSupplierOutboundGoodsService.list(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getWarehousingBatchId, tErpSupplierWarehousingBatch.getId())); if(!list1.isEmpty()){ int sum = list1.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum(); if (tErpSupplierWarehousingBatch.getWarehousingNumber()-sum>0) { // 生成保养单 TErpMaintenanceReminder tErpMaintenanceReminder = new TErpMaintenanceReminder(); tErpMaintenanceReminder.setClinicSupplierId(user.getUserId().toString()); tErpMaintenanceReminder.setMaintenanceType(1); tErpMaintenanceReminder.setWarehousingBatchId(tErpSupplierWarehousingBatch.getId()); Integer day = Integer.valueOf(goods.getMaintenanceInterval()); // 当前时间+day天 LocalDateTime time1 = LocalDateTime.now().plusDays(day); tErpMaintenanceReminder.setMaintenanceTime(time1); erpMaintenanceReminderService.save(tErpMaintenanceReminder); } } } } } return R.ok(erpGoodsService.updateById(goods)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.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.TErpGoodsQuery; import com.ruoyi.system.query.TErpProcurementQuery; import com.ruoyi.system.service.TErpProcurementService; import com.ruoyi.system.service.TErpSupplierWarehousingService; import com.ruoyi.system.vo.TErpGoodsVO; import com.ruoyi.system.vo.TErpProcurementDetailVo; 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-procurement") @Api(tags = "erp采购管理") public class TErpProcurementController { private final TErpProcurementService erpProcurementService; private final TokenService tokenService; @Autowired public TErpProcurementController(TErpProcurementService erpProcurementService, TokenService tokenService) { this.erpProcurementService = erpProcurementService; this.tokenService = tokenService; } /** * erp采购管理分页列表 */ @ApiOperation(value = "erp采购管理分页列表") @PostMapping(value = "/pageList") public R<PageInfo<TErpProcurementVo>> pageList(@RequestBody TErpProcurementQuery query) { SysUser user = tokenService.getLoginUser().getUser(); return R.ok(erpProcurementService.pageList(query,user)); } @ApiOperation(value = "erp采购管理详情") @GetMapping(value = "/detail") public R<TErpProcurementDetailVo> detail(@RequestParam String id, String goodsName) { SysUser user = tokenService.getLoginUser().getUser(); return R.ok(erpProcurementService.detail(id,user,goodsName)); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysCommissionController.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.web.controller.api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 前端控制器 * </p> * * @author administrator * @since 2025-09-09 */ @RestController @RequestMapping("/tSysCommission") public class TSysCommissionController { } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.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.TErpProcurement; import com.ruoyi.system.query.TErpProcurementQuery; import com.ruoyi.system.vo.TErpProcurementVo; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +20,6 @@ */ public interface TErpProcurementMapper extends BaseMapper<TErpProcurement> { List<TErpProcurementVo> pageList(@Param("query") TErpProcurementQuery query, @Param("pageInfo") PageInfo<TErpProcurementVo> pageInfo, @Param("user") SysUser user, @Param("sTime") String sTime, @Param("eTime") String eTime); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysCommissionMapper.java
New file @@ -0,0 +1,17 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.model.TSysCommission; /** * <p> * Mapper 接口 * </p> * * @author administrator * @since 2025-09-09 */ public interface TSysCommissionMapper extends BaseMapper<TSysCommission> { } ruoyi-system/src/main/java/com/ruoyi/system/model/TErpMaintenanceReminder.java
@@ -38,9 +38,9 @@ @TableField("maintenance_type") private Integer maintenanceType; @ApiModelProperty(value = "入库id") @TableField("warehousing_id") private String warehousingId; @ApiModelProperty(value = "入库批次id") @TableField("warehousing_batch_id") private String warehousingBatchId; @ApiModelProperty(value = "状态 1=未维护 2=已维护") @TableField("status") ruoyi-system/src/main/java/com/ruoyi/system/model/TErpProcurement.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -54,5 +55,13 @@ @TableField("status") private Integer status; @ApiModelProperty(value = "发送时间") @TableField("send_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime sendTime; @ApiModelProperty(value = "入库操作人") private String warehousingUserId; } ruoyi-system/src/main/java/com/ruoyi/system/model/TErpProcurementGoods.java
@@ -70,4 +70,8 @@ @TableField("total_price") private BigDecimal totalPrice; @ApiModelProperty(value = "供应商id") @TableField("supplier_id") private String supplierId; } ruoyi-system/src/main/java/com/ruoyi/system/model/TSysCommission.java
New file @@ -0,0 +1,56 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; /** * <p> * * </p> * * @author administrator * @since 2025-09-09 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_sys_commission") public class TSysCommission extends Model<TSysCommission> { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; /** * 1平台 2供应商 */ private Integer type; /** * 平台0 其他供应商id */ @TableField("object_id") private String objectId; /** * 分佣金额 */ private BigDecimal money; /** * t_erp_procurement_goods表id */ @TableField("t_erp_procurement_goods_id") private String tErpProcurementGoodsId; } ruoyi-system/src/main/java/com/ruoyi/system/query/TErpProcurementQuery.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 TErpProcurementQuery extends BasePage { @ApiModelProperty(value = "采购单号") private String procurementCode; @ApiModelProperty(value = "诊所名称") private String clinicName; @ApiModelProperty(value = "时间 2022-02-02 - 2023-03-03") private String time; @ApiModelProperty(value = "发起人") private String userName; @ApiModelProperty(value = "状态 1=草稿 2=待支付 3=待发货 4=已发货 5=已入库 6=已取消") private Integer status; } ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java
@@ -1,7 +1,13 @@ 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.TErpProcurement; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.query.TErpProcurementQuery; import com.ruoyi.system.vo.TErpProcurementDetailVo; import com.ruoyi.system.vo.TErpProcurementVo; /** * <p> @@ -13,4 +19,9 @@ */ public interface TErpProcurementService extends IService<TErpProcurement> { PageInfo<TErpProcurementVo> pageList(TErpProcurementQuery query, SysUser user); TErpProcurementDetailVo detail(String id, SysUser user, String goodsName); } ruoyi-system/src/main/java/com/ruoyi/system/service/TSysCommissionService.java
New file @@ -0,0 +1,17 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.model.TSysCommission; /** * <p> * 服务类 * </p> * * @author administrator * @since 2025-09-09 */ public interface TSysCommissionService extends IService<TSysCommission> { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
@@ -1,10 +1,25 @@ package com.ruoyi.system.service.impl; import com.ruoyi.system.model.TErpProcurement; import com.ruoyi.system.mapper.TErpProcurementMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.TErpGoodsQuery; import com.ruoyi.system.query.TErpProcurementQuery; import com.ruoyi.system.service.TErpProcurementService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.vo.TErpProcurementDetailNextVo; import com.ruoyi.system.vo.TErpProcurementDetailVo; import com.ruoyi.system.vo.TErpProcurementVo; import com.ruoyi.system.vo.ValidityPeriodWarningVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -17,4 +32,111 @@ @Service public class TErpProcurementServiceImpl extends ServiceImpl<TErpProcurementMapper, TErpProcurement> implements TErpProcurementService { @Resource private TErpProcurementGoodsMapper erpProcurementGoodsMapper; @Resource private TSysCommissionMapper sysCommissionMapper; @Resource private TCrmClinicMapper crmClinicMapper; @Resource private SysUserMapper sysUserMapper; @Override public PageInfo<TErpProcurementVo> pageList(TErpProcurementQuery 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<TErpProcurementVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TErpProcurementVo> list = this.baseMapper.pageList(query,pageInfo,user,sTime,eTime); 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).eq(TErpProcurementGoods::getSupplierId, user.getUserId())); 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; } @Override public TErpProcurementDetailVo detail(String id, SysUser user, String goodsName) { TErpProcurementDetailVo tErpProcurementVo = new TErpProcurementDetailVo(); TErpProcurement tErpProcurement = this.getById(id); tErpProcurementVo.setId(id); tErpProcurementVo.setProcurementCode(tErpProcurement.getProcurementCode()); tErpProcurementVo.setClinicId(tErpProcurement.getClinicId()); TCrmClinic tCrmClinic = crmClinicMapper.selectById(tErpProcurement.getClinicId()); tErpProcurementVo.setClinicName(tCrmClinic.getClinicName()); tErpProcurementVo.setUserName(tCrmClinic.getPersonChargeName()); SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(tErpProcurement.getCreateId())); tErpProcurementVo.setUserName(sysUser.getNickName()); tErpProcurementVo.setCreateTime(tErpProcurement.getCreateTime()); tErpProcurementVo.setUpdateTime(tErpProcurement.getUpdateTime()); if(tErpProcurement.getWarehousingUserId()!=null){ SysUser sysUser1 = sysUserMapper.selectUserById(Long.valueOf(tErpProcurement.getWarehousingUserId())); tErpProcurementVo.setOperName(sysUser1.getNickName()); } tErpProcurementVo.setStatus(tErpProcurement.getStatus()); tErpProcurementVo.setSendTime(tErpProcurement.getSendTime()); List<TErpProcurementGoods> tErpProcurementGoods = erpProcurementGoodsMapper.selectList(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, id).like(goodsName != null && !goodsName.isEmpty(), TErpProcurementGoods::getGoodsName, goodsName).eq(TErpProcurementGoods::getSupplierId, user.getUserId())); if(tErpProcurementGoods.isEmpty()){ return tErpProcurementVo; } ArrayList<TErpProcurementDetailNextVo> tErpProcurementDetailNextVos = new ArrayList<>(); for (TErpProcurementGoods tErpProcurementGood : tErpProcurementGoods) { TErpProcurementDetailNextVo tErpProcurementDetailNextVo = new TErpProcurementDetailNextVo(); tErpProcurementDetailNextVo.setGoodsName(tErpProcurementGood.getGoodsName()); tErpProcurementDetailNextVo.setUnitName(tErpProcurementGood.getUnitName()); tErpProcurementDetailNextVo.setNum(tErpProcurementGood.getPurchaseCount()); tErpProcurementDetailNextVo.setTotalPrice(tErpProcurementGood.getTotalPrice()); tErpProcurementDetailNextVo.setQuasiNumber(tErpProcurementGood.getQuasiNumber()); List<TSysCommission> tSysCommissions = sysCommissionMapper.selectList(new LambdaQueryWrapper<TSysCommission>().eq(TSysCommission::getTErpProcurementGoodsId, tErpProcurementGood.getId())); if(!tSysCommissions.isEmpty()){ BigDecimal reduce = tSysCommissions.stream().filter(e -> e.getType() == 1).map(TSysCommission::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); tErpProcurementDetailNextVo.setPlatformMoney(reduce); BigDecimal reduce1 = tSysCommissions.stream().filter(e -> e.getType() == 2).map(TSysCommission::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); tErpProcurementDetailNextVo.setSupplierMoney(reduce1); } tErpProcurementDetailNextVos.add(tErpProcurementDetailNextVo); } tErpProcurementVo.setList(tErpProcurementDetailNextVos); return tErpProcurementVo; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java
@@ -56,6 +56,9 @@ @Resource private TCrmWarehouseMapper crmWarehouseMapper; @Resource private TErpMaintenanceReminderMapper tErpMaintenanceReminderMapper; @Override public PageInfo<TErpGoodsVO> pageList(TErpGoodsQuery query, SysUser user) { @@ -211,6 +214,19 @@ tErpSupplierWarehousingBatch.setProductionDate(warehousingGoodsNextDto.getProductionDate().atStartOfDay()); tErpSupplierWarehousingBatch.setExpiryDate(warehousingGoodsNextDto.getExpiryDate().atStartOfDay()); erpSupplierWarehousingBatchMapper.insert(tErpSupplierWarehousingBatch); if(goods.getMaintenanceInterval()!=null){ TErpMaintenanceReminder tErpMaintenanceReminder = new TErpMaintenanceReminder(); tErpMaintenanceReminder.setClinicSupplierId(user.getUserId().toString()); tErpMaintenanceReminder.setMaintenanceType(1); tErpMaintenanceReminder.setWarehousingBatchId(tErpSupplierWarehousingBatch.getId()); Integer day = Integer.valueOf(goods.getMaintenanceInterval()); // 当前时间+day天 LocalDateTime time1 = LocalDateTime.now().plusDays(day); tErpMaintenanceReminder.setMaintenanceTime(time1); tErpMaintenanceReminderMapper.insert(tErpMaintenanceReminder); } } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysCommissionServiceImpl.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.mapper.TSysCommissionMapper; import com.ruoyi.system.model.TSysCommission; import com.ruoyi.system.service.TSysCommissionService; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author administrator * @since 2025-09-09 */ @Service public class TSysCommissionServiceImpl extends ServiceImpl<TSysCommissionMapper, TSysCommission> implements TSysCommissionService { } ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpProcurementDetailNextVo.java
New file @@ -0,0 +1,40 @@ package com.ruoyi.system.vo; import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.TableField; 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 TErpProcurementDetailNextVo { @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "单位") private String unitName; @ApiModelProperty(value = "数量") private Integer num; @ApiModelProperty(value = "总价") private BigDecimal totalPrice=BigDecimal.ZERO; @ApiModelProperty(value = "供应商金额") private BigDecimal supplierMoney=BigDecimal.ZERO; @ApiModelProperty(value = "平台金额") private BigDecimal platformMoney=BigDecimal.ZERO; @ApiModelProperty(value = "国药准字号") private String quasiNumber; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpProcurementDetailVo.java
New file @@ -0,0 +1,46 @@ package com.ruoyi.system.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @Data @ApiModel(value = "采购单详情一级Vo") public class TErpProcurementDetailVo { @ApiModelProperty(value = "采购单id") private String id; @ApiModelProperty(value = "采购单号") private String procurementCode; @ApiModelProperty(value = "诊所id") private String clinicId; @ApiModelProperty(value = "诊所名称") private String clinicName; @ApiModelProperty(value = "发起时间") private LocalDateTime createTime; @ApiModelProperty(value = "发起人") private String userName; @ApiModelProperty(value = "操作人") private String operName; @ApiModelProperty(value = "操作时间") private LocalDateTime updateTime; @ApiModelProperty(value = "发货时间") private LocalDateTime sendTime; @ApiModelProperty(value = "状态 1=草稿 2=待支付 3=待发货 4=已发货 5=已入库 6=已取消") private Integer status; @ApiModelProperty(value = "采购单详情二级") private List<TErpProcurementDetailNextVo> list; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TErpProcurementVo.java
New file @@ -0,0 +1,53 @@ package com.ruoyi.system.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @Data @ApiModel(value = "采购单Vo") public class TErpProcurementVo { @ApiModelProperty(value = "采购单id") private String id; @ApiModelProperty(value = "采购单号") private String procurementCode; @ApiModelProperty(value = "诊所id") private String clinicId; @ApiModelProperty(value = "诊所名称") private String clinicName; private Integer typeNum; @ApiModelProperty(value = "总价") private BigDecimal totalPrice=BigDecimal.ZERO; @ApiModelProperty(value = "供应商金额") private BigDecimal supplierMoney=BigDecimal.ZERO; @ApiModelProperty(value = "平台金额") private BigDecimal platformMoney=BigDecimal.ZERO; @ApiModelProperty(value = "发起时间") private LocalDateTime createTime; @ApiModelProperty(value = "发起人") private String userName; @ApiModelProperty(value = "状态 1=草稿 2=待支付 3=待发货 4=已发货 5=已入库 6=已取消") private Integer status; private String tErpProcurementGoodsId; } ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml
@@ -23,4 +23,38 @@ id, clinic_id, procurement_code, pay_money, pay_number, pay_transaction_id, status, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TErpProcurementVo"> select t1.id, t1.procurement_code, t1.clinic_id, t3.clinic_name, sum(t2.total_price) as totalPrice, t1.create_time, t2.id tErpProcurementGoodsId, t4.user_name, t1.status from t_erp_procurement t1 left JOIN t_erp_procurement_goods t2 on t1.id = t2.procurement_id LEFT JOIN t_crm_clinic t3 on t1.clinic_id = t3.id left JOIN sys_user t4 on t1.create_id = t4.user_id where t1.disabled = 0 and t2.supplier_id =#{user.userId} <if test="query.procurementCode != null and query.procurementCode != ''"> and t1.procurement_code = #{query.procurementCode} </if> <if test="query.clinicName != null and query.clinicName != ''"> and t3.clinic_name like concat('%',#{query.clinicName},'%') </if> <if test="query.userName != null and query.userName != ''"> and t4.user_name like concat('%',#{query.userName},'%') </if> <if test="query.status != null"> and t1.status = #{query.status} </if> <if test="sTime != null"> and t1.create_time between #{sTime} and #{eTime} </if> </select> </mapper> ruoyi-system/src/main/resources/mapper/system/TSysCommissionMapper.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.system.mapper.TSysCommissionMapper"> </mapper>