供应商列表

This commit is contained in:
sxu 2025-04-01 13:53:14 +08:00
parent 07875a6089
commit 4deca312e6
14 changed files with 1235 additions and 110 deletions

View File

@ -4,11 +4,9 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bonus.canteen.core.drp.api.DrpAuthorityApi;
import com.bonus.canteen.core.drp.dto.DrpSupplierAddDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierEditDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierEditStatusDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierPageDTO;
import com.bonus.canteen.core.drp.dto.*;
import com.bonus.canteen.core.drp.service.DrpSupplierService;
import com.bonus.canteen.core.drp.vo.DrpMaterialSupplierVO;
import com.bonus.canteen.core.drp.vo.DrpSupplierPageVO;
import com.bonus.common.core.web.domain.AjaxResult;
import com.github.pagehelper.page.PageMethod;
@ -133,16 +131,20 @@ public class DrpSupplierController {
// Long supplierId = (Long)leRequest.getContent();
// return this.drpSupplierService.getMainInfoById(supplierId);
// }
//
// @PostMapping({"/getMaterialSupplierPage"})
// @RequiresAuthentication
// @ApiOperation("获取原料供应商分页")
// public PageVO<DrpMaterialSupplierVO> getMaterialSupplier(@RequestBody LeRequest<DrpMaterialInfoDTO> leRequest) {
// DrpMaterialInfoDTO content = (DrpMaterialInfoDTO)leRequest.getContent();
// content.setAreaIdList(this.drpAuthorityApi.authAreaList(content.getAreaIdList()));
// return PageVO.of(this.drpSupplierService.getMaterialSupplier(content));
// }
//
@PostMapping({"/getMaterialSupplierPage"})
@ApiOperation("获取原料供应商分页")
public Page<DrpMaterialSupplierVO> getMaterialSupplier(@RequestBody DrpMaterialInfoDTO dto) {
try {
dto.setAreaIdList(this.drpAuthorityApi.authAreaList(dto.getAreaIdList()));
Page<DrpMaterialSupplierVO> resultPage = (Page<DrpMaterialSupplierVO>)this.drpSupplierService.getMaterialSupplier(dto);
return resultPage;
} catch (Exception e) {
log.error(e.toString(), e);
return null;
}
}
// @PostMapping({"/bidMaterialSupplier"})
// @RequiresAuthentication
// @ApiOperation("原料绑定供应商")

View File

@ -0,0 +1,133 @@
package com.bonus.canteen.core.drp.dto;
import com.bonus.canteen.core.common.page.PageDTO;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
public class DrpMaterialInfoDTO extends PageDTO {
@ApiModelProperty("关键字")
private String key;
@ApiModelProperty("类别id集合")
private List<Long> categoryIdList;
@ApiModelProperty("仓库id")
private Long warehouseId;
private String metadataValue;
@ApiModelProperty("仓库类别")
private Integer warehouseType;
@ApiModelProperty("原料类型(1原料2商品)")
private Integer materialType;
@ApiModelProperty("区域id列表")
private List<Long> areaIdList;
@ApiModelProperty("区域ID")
private Long areaId;
@ApiModelProperty("食堂ID")
private Long canteenId;
@ApiModelProperty("配置类型(1按货品名称2按货品类别)")
private Integer configType;
@ApiModelProperty("食堂名称")
private String canteenName;
@ApiModelProperty("导出字段")
private List<String> exportCols;
public String getKey() {
return this.key;
}
public List<Long> getCategoryIdList() {
return this.categoryIdList;
}
public Long getWarehouseId() {
return this.warehouseId;
}
public String getMetadataValue() {
return this.metadataValue;
}
public Integer getWarehouseType() {
return this.warehouseType;
}
public Integer getMaterialType() {
return this.materialType;
}
public List<Long> getAreaIdList() {
return this.areaIdList;
}
public Long getAreaId() {
return this.areaId;
}
public Long getCanteenId() {
return this.canteenId;
}
public Integer getConfigType() {
return this.configType;
}
public String getCanteenName() {
return this.canteenName;
}
public List<String> getExportCols() {
return this.exportCols;
}
public void setKey(final String key) {
this.key = key;
}
public void setCategoryIdList(final List<Long> categoryIdList) {
this.categoryIdList = categoryIdList;
}
public void setWarehouseId(final Long warehouseId) {
this.warehouseId = warehouseId;
}
public void setMetadataValue(final String metadataValue) {
this.metadataValue = metadataValue;
}
public void setWarehouseType(final Integer warehouseType) {
this.warehouseType = warehouseType;
}
public void setMaterialType(final Integer materialType) {
this.materialType = materialType;
}
public void setAreaIdList(final List<Long> areaIdList) {
this.areaIdList = areaIdList;
}
public void setAreaId(final Long areaId) {
this.areaId = areaId;
}
public void setCanteenId(final Long canteenId) {
this.canteenId = canteenId;
}
public void setConfigType(final Integer configType) {
this.configType = configType;
}
public void setCanteenName(final String canteenName) {
this.canteenName = canteenName;
}
public void setExportCols(final List<String> exportCols) {
this.exportCols = exportCols;
}
public String toString() {
String var10000 = this.getKey();
return "DrpMaterialInfoDTO(key=" + var10000 + ", categoryIdList=" + String.valueOf(this.getCategoryIdList()) + ", warehouseId=" + this.getWarehouseId() + ", metadataValue=" + this.getMetadataValue() + ", warehouseType=" + this.getWarehouseType() + ", materialType=" + this.getMaterialType() + ", areaIdList=" + String.valueOf(this.getAreaIdList()) + ", areaId=" + this.getAreaId() + ", canteenId=" + this.getCanteenId() + ", configType=" + this.getConfigType() + ", canteenName=" + this.getCanteenName() + ", exportCols=" + String.valueOf(this.getExportCols()) + ")";
}
}

View File

@ -0,0 +1,33 @@
package com.bonus.canteen.core.drp.dto;
import io.swagger.annotations.ApiModelProperty;
public class MaterialAndUnitDTO {
@ApiModelProperty("货品id")
private Long materialId;
@ApiModelProperty("单位id")
private Long unitId;
public Long getMaterialId() {
return this.materialId;
}
public Long getUnitId() {
return this.unitId;
}
public MaterialAndUnitDTO setMaterialId(final Long materialId) {
this.materialId = materialId;
return this;
}
public MaterialAndUnitDTO setUnitId(final Long unitId) {
this.unitId = unitId;
return this;
}
public String toString() {
Long var10000 = this.getMaterialId();
return "MaterialAndUnitDTO(materialId=" + var10000 + ", unitId=" + this.getUnitId() + ")";
}
}

View File

@ -0,0 +1,37 @@
package com.bonus.canteen.core.drp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bonus.canteen.core.drp.dto.DrpMaterialInfoDTO;
import com.bonus.canteen.core.drp.dto.MaterialAndUnitDTO;
import com.bonus.canteen.core.drp.model.DrpMaterialWinBidRecords;
import com.bonus.canteen.core.drp.vo.DrpLastOrderGoodsVO;
import com.bonus.canteen.core.drp.vo.DrpMaterialBidRecordsSupplierVO;
import com.bonus.canteen.core.drp.vo.DrpMaterialSupplierVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DrpMaterialWinBidRecordsMapper extends BaseMapper<DrpMaterialWinBidRecords> {
// List<DrpMaterialBidRecordsPageVO> listMaterialUnit(@Param("content") DrpMaterialBidRecordsPageDTO content);
//
// List<DrpMaterialSupplierWinRecordsVO> listSupplierWinRecords(@Param("supplierId") Long supplierId, @Param("materialIdList") List<Long> materialIdList, @Param("materialInquiryId") String materialInquiryId);
//
// List<DrpMaterialSupplierWinRecordsVO> listSupplierWinRecordsBySupplier(@Param("supplierId") Long supplierId, @Param("materialIdList") List<Long> materialIdList);
//
// List<DrpMaterialBidRecordsSupplierVO> listSupplierPriceByMaterialId(@Param("materialId") Long materialId);
//
// List<DrpMaterialBidRecordsSupplierVO> listSupplierPriceByMaterialIdLast(@Param("materialId") Long materialId);
List<DrpMaterialBidRecordsSupplierVO> listSupplierPriceByMaterialIdList(@Param("materialIdList") List<Long> materialIdList);
// DrpLastOrderGoodsVO getLastOrderGoodsPrice(@Param("materialId") Long materialId, @Param("unitId") Long unitId);
//
// List<DrpMarketPriceVO> getMarketPrice(@Param("materialId") Long materialId, @Param("unitId") Long unitId);
//
// List<DrpMarketPriceVO> getMarketPriceList(@Param("materialAndUnitDTOS") List<MaterialAndUnitDTO> materialAndUnitDTOS, @Param("areaId") Long areaId);
List<DrpMaterialSupplierVO> getMaterialSupplier(@Param("content") DrpMaterialInfoDTO content);
List<DrpLastOrderGoodsVO> getLastOrderGoodsPriceList(@Param("materialAndUnitDTOS") List<MaterialAndUnitDTO> materialAndUnitDTOS, @Param("areaId") Long areaId);
}

View File

@ -2,8 +2,10 @@ package com.bonus.canteen.core.drp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bonus.canteen.core.drp.dto.DrpMaterialInfoDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierPageDTO;
import com.bonus.canteen.core.drp.model.DrpSupplier;
import com.bonus.canteen.core.drp.vo.DrpMaterialSupplierVO;
import com.bonus.canteen.core.drp.vo.DrpSupplierPageVO;
import com.bonus.canteen.core.drp.vo.DrpSupplierVO;
import org.apache.ibatis.annotations.Mapper;
@ -40,6 +42,6 @@ public interface DrpSupplierMapper extends BaseMapper<DrpSupplier> {
// DrpSupplierTotalVO queryTotal();
//
// List<DrpSupplierVO> listSupplierNew(@Param("content") DrpSupplierQueryDTO content, @Param("status") Integer status, @Param("delFlag") Integer delFlag);
//
// List<DrpMaterialSupplierVO> getCategorySupplier(@Param("content") DrpMaterialInfoDTO content);
List<DrpMaterialSupplierVO> getCategorySupplier(@Param("content") DrpMaterialInfoDTO content);
}

View File

@ -0,0 +1,178 @@
package com.bonus.canteen.core.drp.model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
@ApiModel(
value = "DrpMaterialWinBidRecords对象",
description = "原料中标记录表"
)
public class DrpMaterialWinBidRecords {
@ApiModelProperty("记录ID")
private Long recordId;
@ApiModelProperty("原料id")
private Long materialId;
@ApiModelProperty("中标价")
private Integer winPrice;
@ApiModelProperty("中标日期")
private LocalDateTime winDate;
@ApiModelProperty("中标供应商")
private Long winSupplierId;
@TableField(
value = "crby",
fill = FieldFill.INSERT
)
@ApiModelProperty("创建人")
private String crby;
@TableField(
value = "crtime",
fill = FieldFill.INSERT
)
@ApiModelProperty("创建时间")
private LocalDateTime crtime;
@TableField(
value = "upby",
fill = FieldFill.UPDATE
)
@ApiModelProperty("更新人")
private String upby;
@TableField(
value = "uptime",
fill = FieldFill.UPDATE
)
@ApiModelProperty("更新时间")
private LocalDateTime uptime;
@ApiModelProperty("农贸市场价格")
private Long farmersMarketPrice;
@ApiModelProperty("中标价格有效期开始")
private LocalDateTime bidValidityStartTime;
@ApiModelProperty("中标价格有效期结束")
private LocalDateTime bidValidityEndTime;
@ApiModelProperty("货品招标单号")
private String materialInquiryId;
public Long getRecordId() {
return this.recordId;
}
public Long getMaterialId() {
return this.materialId;
}
public Integer getWinPrice() {
return this.winPrice;
}
public LocalDateTime getWinDate() {
return this.winDate;
}
public Long getWinSupplierId() {
return this.winSupplierId;
}
public String getCrby() {
return this.crby;
}
public LocalDateTime getCrtime() {
return this.crtime;
}
public String getUpby() {
return this.upby;
}
public LocalDateTime getUptime() {
return this.uptime;
}
public Long getFarmersMarketPrice() {
return this.farmersMarketPrice;
}
public LocalDateTime getBidValidityStartTime() {
return this.bidValidityStartTime;
}
public LocalDateTime getBidValidityEndTime() {
return this.bidValidityEndTime;
}
public String getMaterialInquiryId() {
return this.materialInquiryId;
}
public DrpMaterialWinBidRecords setRecordId(final Long recordId) {
this.recordId = recordId;
return this;
}
public DrpMaterialWinBidRecords setMaterialId(final Long materialId) {
this.materialId = materialId;
return this;
}
public DrpMaterialWinBidRecords setWinPrice(final Integer winPrice) {
this.winPrice = winPrice;
return this;
}
public DrpMaterialWinBidRecords setWinDate(final LocalDateTime winDate) {
this.winDate = winDate;
return this;
}
public DrpMaterialWinBidRecords setWinSupplierId(final Long winSupplierId) {
this.winSupplierId = winSupplierId;
return this;
}
public DrpMaterialWinBidRecords setCrby(final String crby) {
this.crby = crby;
return this;
}
public DrpMaterialWinBidRecords setCrtime(final LocalDateTime crtime) {
this.crtime = crtime;
return this;
}
public DrpMaterialWinBidRecords setUpby(final String upby) {
this.upby = upby;
return this;
}
public DrpMaterialWinBidRecords setUptime(final LocalDateTime uptime) {
this.uptime = uptime;
return this;
}
public DrpMaterialWinBidRecords setFarmersMarketPrice(final Long farmersMarketPrice) {
this.farmersMarketPrice = farmersMarketPrice;
return this;
}
public DrpMaterialWinBidRecords setBidValidityStartTime(final LocalDateTime bidValidityStartTime) {
this.bidValidityStartTime = bidValidityStartTime;
return this;
}
public DrpMaterialWinBidRecords setBidValidityEndTime(final LocalDateTime bidValidityEndTime) {
this.bidValidityEndTime = bidValidityEndTime;
return this;
}
public DrpMaterialWinBidRecords setMaterialInquiryId(final String materialInquiryId) {
this.materialInquiryId = materialInquiryId;
return this;
}
public String toString() {
Long var10000 = this.getRecordId();
return "DrpMaterialWinBidRecords(recordId=" + var10000 + ", materialId=" + this.getMaterialId() + ", winPrice=" + this.getWinPrice() + ", winDate=" + String.valueOf(this.getWinDate()) + ", winSupplierId=" + this.getWinSupplierId() + ", crby=" + this.getCrby() + ", crtime=" + String.valueOf(this.getCrtime()) + ", upby=" + this.getUpby() + ", uptime=" + String.valueOf(this.getUptime()) + ", farmersMarketPrice=" + this.getFarmersMarketPrice() + ", bidValidityStartTime=" + String.valueOf(this.getBidValidityStartTime()) + ", bidValidityEndTime=" + String.valueOf(this.getBidValidityEndTime()) + ", materialInquiryId=" + this.getMaterialInquiryId() + ")";
}
}

View File

@ -0,0 +1,34 @@
package com.bonus.canteen.core.drp.po;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
public class DrpSupplierModel implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("供应商id")
private Long supplierId;
@ApiModelProperty("供应商")
private String supplierName;
public Long getSupplierId() {
return this.supplierId;
}
public String getSupplierName() {
return this.supplierName;
}
public void setSupplierId(final Long supplierId) {
this.supplierId = supplierId;
}
public void setSupplierName(final String supplierName) {
this.supplierName = supplierName;
}
public String toString() {
Long var10000 = this.getSupplierId();
return "DrpSupplierModel(supplierId=" + var10000 + ", supplierName=" + this.getSupplierName() + ")";
}
}

View File

@ -2,11 +2,9 @@ package com.bonus.canteen.core.drp.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bonus.canteen.core.drp.dto.DrpSupplierAddDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierEditDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierEditStatusDTO;
import com.bonus.canteen.core.drp.dto.DrpSupplierPageDTO;
import com.bonus.canteen.core.drp.dto.*;
import com.bonus.canteen.core.drp.model.DrpSupplier;
import com.bonus.canteen.core.drp.vo.DrpMaterialSupplierVO;
import com.bonus.canteen.core.drp.vo.DrpSupplierPageVO;
import java.util.List;
@ -34,9 +32,9 @@ public interface DrpSupplierService extends IService<DrpSupplier> {
// Map<Long, List<DrpSupplierVO>> supplierByMaterialId(DrpSupplierDTO content);
//
// DrpSupplierTotalVO getTotal();
//
// List<DrpMaterialSupplierVO> getMaterialSupplier(DrpMaterialInfoDTO content);
//
List<DrpMaterialSupplierVO> getMaterialSupplier(DrpMaterialInfoDTO content);
// void bidMaterialSupplier(DrpBidMaterialSupplierDTO content);
//
// List<DrpMaterialSupplierVO> getMaterialSupplierByMaterialId(List<Long> content);

View File

@ -17,22 +17,18 @@ import com.bonus.canteen.core.drp.constant.DrpBusinessConstants;
import com.bonus.canteen.core.drp.constant.DrpQuantityMainFlagEnum;
import com.bonus.canteen.core.drp.constant.DrpSupplierStatusEnum;
import com.bonus.canteen.core.drp.dto.*;
import com.bonus.canteen.core.drp.mapper.DrpSupplierCategoryMapper;
import com.bonus.canteen.core.drp.mapper.DrpSupplierDeliverMapper;
import com.bonus.canteen.core.drp.mapper.DrpSupplierMapper;
import com.bonus.canteen.core.drp.mapper.DrpSupplierQualificationMapper;
import com.bonus.canteen.core.drp.mapper.*;
import com.bonus.canteen.core.drp.model.DrpSupplier;
import com.bonus.canteen.core.drp.model.DrpSupplierCategory;
import com.bonus.canteen.core.drp.model.DrpSupplierDeliver;
import com.bonus.canteen.core.drp.model.DrpSupplierQualification;
import com.bonus.canteen.core.drp.po.CategoryModel;
import com.bonus.canteen.core.drp.po.DrpSupplierModel;
import com.bonus.canteen.core.drp.service.DrpSupplierCategoryService;
import com.bonus.canteen.core.drp.service.DrpSupplierDeliverService;
import com.bonus.canteen.core.drp.service.DrpSupplierQualificationService;
import com.bonus.canteen.core.drp.service.DrpSupplierService;
import com.bonus.canteen.core.drp.vo.DrpSupplierDeliverVO;
import com.bonus.canteen.core.drp.vo.DrpSupplierPageVO;
import com.bonus.canteen.core.drp.vo.DrpSupplierQualificationDetailPageVO;
import com.bonus.canteen.core.drp.vo.*;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.houqin.constant.DelFlagEnum;
import com.bonus.common.houqin.i18n.I18n;
@ -83,9 +79,9 @@ public class DrpSupplierServiceImpl extends ServiceImpl<DrpSupplierMapper, DrpSu
// @Autowired
// @Lazy
// private DrpIntoDetailMapper drpIntoDetailMapper;
// @Autowired
// @Lazy
// private DrpMaterialWinBidRecordsMapper drpMaterialWinBidRecordsMapper;
@Autowired
@Lazy
private DrpMaterialWinBidRecordsMapper drpMaterialWinBidRecordsMapper;
// @Autowired
// @Lazy
// private DrpMenuMaterialSupplierMapper drpMenuMaterialSupplierMapper;
@ -486,54 +482,57 @@ public class DrpSupplierServiceImpl extends ServiceImpl<DrpSupplierMapper, DrpSu
this.drpSupplierCategoryService.saveBatch(supplierCategoryList);
}
// public List<DrpMaterialSupplierVO> getMaterialSupplier(DrpMaterialInfoDTO content) {
// List drpMaterialSupplierList;
// if (!ObjectUtil.isNull(content.getConfigType()) && !ObjectUtil.equal(content.getConfigType(), 1)) {
// PageMethod.startPage(content);
// drpMaterialSupplierList = ((DrpSupplierMapper)this.baseMapper).getCategorySupplier(content);
// } else {
// PageMethod.startPage(content);
// drpMaterialSupplierList = this.drpMaterialWinBidRecordsMapper.getMaterialSupplier(content);
// if (CollUtil.isEmpty(drpMaterialSupplierList)) {
// return drpMaterialSupplierList;
// }
//
// List<DrpMaterialBidRecordsSupplierVO> drpMaterialBidRecordsSupplierVOS = this.drpMaterialWinBidRecordsMapper.listSupplierPriceByMaterialIdList((List)drpMaterialSupplierList.stream().map(DrpMaterialSupplierVO::getMaterialId).collect(Collectors.toList()));
// Map<Long, List<DrpMaterialBidRecordsSupplierVO>> collect = (Map)drpMaterialBidRecordsSupplierVOS.stream().collect(Collectors.groupingBy(DrpMaterialBidRecordsSupplierVO::getMaterialId));
// List<MaterialAndUnitDTO> materialAndUnitDTOS = (List)drpMaterialSupplierList.stream().map((d) -> {
// return (new MaterialAndUnitDTO()).setMaterialId(d.getMaterialId()).setUnitId(d.getUnitId());
// }).collect(Collectors.toList());
// List<DrpLastOrderGoodsVO> lastOrderGoodsPriceList = this.drpMaterialWinBidRecordsMapper.getLastOrderGoodsPriceList(materialAndUnitDTOS, content.getAreaId());
// Map<String, DrpLastOrderGoodsVO> orderGoodsVOMap = (Map)lastOrderGoodsPriceList.stream().collect(Collectors.toMap((d) -> {
// Long var10000 = d.getMaterialId();
// return "" + var10000 + "-" + d.getUnitId();
// }, Function.identity(), (k1, k2) -> {
// return k1;
// }));
// if (CollUtil.isNotEmpty(drpMaterialSupplierList)) {
// drpMaterialSupplierList.forEach((d) -> {
// List<DrpMaterialBidRecordsSupplierVO> detailList = (List)collect.get(d.getMaterialId());
// List<DrpSupplierModel> nearestSupplierList = Lists.newArrayList();
// if (CollUtil.isNotEmpty(detailList)) {
// detailList.forEach((e) -> {
// DrpSupplierModel drpSupplierModel = new DrpSupplierModel();
// drpSupplierModel.setSupplierId(e.getWinSupplierId());
// drpSupplierModel.setSupplierName(e.getWinSupplierName());
// nearestSupplierList.add(drpSupplierModel);
// });
// }
//
// d.setNearestSupplierList(nearestSupplierList);
// Long var10001 = d.getMaterialId();
// DrpLastOrderGoodsVO drpLastOrderGoodsVO = (DrpLastOrderGoodsVO)orderGoodsVOMap.get("" + var10001 + "-" + d.getUnitId());
// d.setLastOrderGoods(drpLastOrderGoodsVO);
// });
// }
// }
//
// return drpMaterialSupplierList;
// }
//
public List<DrpMaterialSupplierVO> getMaterialSupplier(DrpMaterialInfoDTO content) {
List<DrpMaterialSupplierVO> drpMaterialSupplierList;
if (!ObjectUtil.isNull(content.getConfigType()) && !ObjectUtil.equal(content.getConfigType(), 1)) {
PageMethod.startPage(content);
drpMaterialSupplierList = ((DrpSupplierMapper)this.baseMapper).getCategorySupplier(content);
} else {
PageMethod.startPage(content);
drpMaterialSupplierList = this.drpMaterialWinBidRecordsMapper.getMaterialSupplier(content);
if (CollUtil.isEmpty(drpMaterialSupplierList)) {
return drpMaterialSupplierList;
}
List<DrpMaterialBidRecordsSupplierVO> drpMaterialBidRecordsSupplierVOS =
this.drpMaterialWinBidRecordsMapper.listSupplierPriceByMaterialIdList((List)drpMaterialSupplierList.stream()
.map(DrpMaterialSupplierVO::getMaterialId).collect(Collectors.toList()));
Map<Long, List<DrpMaterialBidRecordsSupplierVO>> collect = (Map)drpMaterialBidRecordsSupplierVOS.stream()
.collect(Collectors.groupingBy(DrpMaterialBidRecordsSupplierVO::getMaterialId));
List<MaterialAndUnitDTO> materialAndUnitDTOS = (List)drpMaterialSupplierList.stream().map((d) -> {
return (new MaterialAndUnitDTO()).setMaterialId(d.getMaterialId()).setUnitId(d.getUnitId());
}).collect(Collectors.toList());
List<DrpLastOrderGoodsVO> lastOrderGoodsPriceList = this.drpMaterialWinBidRecordsMapper.getLastOrderGoodsPriceList(materialAndUnitDTOS, content.getAreaId());
Map<String, DrpLastOrderGoodsVO> orderGoodsVOMap = (Map)lastOrderGoodsPriceList.stream().collect(Collectors.toMap((d) -> {
Long var10000 = d.getMaterialId();
return "" + var10000 + "-" + d.getUnitId();
}, Function.identity(), (k1, k2) -> {
return k1;
}));
if (CollUtil.isNotEmpty(drpMaterialSupplierList)) {
drpMaterialSupplierList.forEach((d) -> {
List<DrpMaterialBidRecordsSupplierVO> detailList = (List)collect.get(d.getMaterialId());
List<DrpSupplierModel> nearestSupplierList = Lists.newArrayList();
if (CollUtil.isNotEmpty(detailList)) {
detailList.forEach((e) -> {
DrpSupplierModel drpSupplierModel = new DrpSupplierModel();
drpSupplierModel.setSupplierId(e.getWinSupplierId());
drpSupplierModel.setSupplierName(e.getWinSupplierName());
nearestSupplierList.add(drpSupplierModel);
});
}
d.setNearestSupplierList(nearestSupplierList);
Long var10001 = d.getMaterialId();
DrpLastOrderGoodsVO drpLastOrderGoodsVO = (DrpLastOrderGoodsVO)orderGoodsVOMap.get("" + var10001 + "-" + d.getUnitId());
d.setLastOrderGoods(drpLastOrderGoodsVO);
});
}
}
return drpMaterialSupplierList;
}
// public void bidMaterialSupplier(DrpBidMaterialSupplierDTO content) {
// if (CollUtil.isNotEmpty(content.getMaterialIdList())) {
// content.getMaterialIdList().forEach((materialId) -> {

View File

@ -0,0 +1,80 @@
package com.bonus.canteen.core.drp.vo;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
public class DrpLastOrderGoodsVO {
@ApiModelProperty("最近一次采购价格")
private Integer lastOrderGoodsPrice;
@ApiModelProperty("最近一次采购日期")
private LocalDateTime lastOrderGoodsDate;
@ApiModelProperty("最近一次采购供应商")
private Long lastOrderGoodsSupplierId;
@ApiModelProperty("最近一次采购供应商名称")
private String lastOrderGoodsSupplierName;
private String orderGoodsId;
private Long materialId;
private Long unitId;
public Integer getLastOrderGoodsPrice() {
return this.lastOrderGoodsPrice;
}
public LocalDateTime getLastOrderGoodsDate() {
return this.lastOrderGoodsDate;
}
public Long getLastOrderGoodsSupplierId() {
return this.lastOrderGoodsSupplierId;
}
public String getLastOrderGoodsSupplierName() {
return this.lastOrderGoodsSupplierName;
}
public String getOrderGoodsId() {
return this.orderGoodsId;
}
public Long getMaterialId() {
return this.materialId;
}
public Long getUnitId() {
return this.unitId;
}
public void setLastOrderGoodsPrice(final Integer lastOrderGoodsPrice) {
this.lastOrderGoodsPrice = lastOrderGoodsPrice;
}
public void setLastOrderGoodsDate(final LocalDateTime lastOrderGoodsDate) {
this.lastOrderGoodsDate = lastOrderGoodsDate;
}
public void setLastOrderGoodsSupplierId(final Long lastOrderGoodsSupplierId) {
this.lastOrderGoodsSupplierId = lastOrderGoodsSupplierId;
}
public void setLastOrderGoodsSupplierName(final String lastOrderGoodsSupplierName) {
this.lastOrderGoodsSupplierName = lastOrderGoodsSupplierName;
}
public void setOrderGoodsId(final String orderGoodsId) {
this.orderGoodsId = orderGoodsId;
}
public void setMaterialId(final Long materialId) {
this.materialId = materialId;
}
public void setUnitId(final Long unitId) {
this.unitId = unitId;
}
public String toString() {
Integer var10000 = this.getLastOrderGoodsPrice();
return "DrpLastOrderGoodsVO(lastOrderGoodsPrice=" + var10000 + ", lastOrderGoodsDate=" + String.valueOf(this.getLastOrderGoodsDate()) + ", lastOrderGoodsSupplierId=" + this.getLastOrderGoodsSupplierId() + ", lastOrderGoodsSupplierName=" + this.getLastOrderGoodsSupplierName() + ", orderGoodsId=" + this.getOrderGoodsId() + ", materialId=" + this.getMaterialId() + ", unitId=" + this.getUnitId() + ")";
}
}

View File

@ -0,0 +1,135 @@
package com.bonus.canteen.core.drp.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
@ApiModel
public class DrpMaterialBidRecordsSupplierVO {
@ApiModelProperty("中标价")
private Integer winPrice;
@ApiModelProperty("中标日期")
private LocalDateTime winDate;
@ApiModelProperty("中标供应商id")
private Long winSupplierId;
@ApiModelProperty("中标供应商")
private String winSupplierName;
@ApiModelProperty("中标价格有效期开始")
private LocalDateTime bidValidityStartTime;
@ApiModelProperty("中标价格有效期结束")
private LocalDateTime bidValidityEndTime;
@ApiModelProperty("货品招标单号")
private String materialInquiryId;
@ApiModelProperty("货品id")
private Long materialId;
@ApiModelProperty("货品名称")
private String materialName;
@ApiModelProperty("货品编码")
private String materialCode;
@ApiModelProperty("货品单位")
private String unitName;
@ApiModelProperty("货品类别")
private String categoryName;
public Integer getWinPrice() {
return this.winPrice;
}
public LocalDateTime getWinDate() {
return this.winDate;
}
public Long getWinSupplierId() {
return this.winSupplierId;
}
public String getWinSupplierName() {
return this.winSupplierName;
}
public LocalDateTime getBidValidityStartTime() {
return this.bidValidityStartTime;
}
public LocalDateTime getBidValidityEndTime() {
return this.bidValidityEndTime;
}
public String getMaterialInquiryId() {
return this.materialInquiryId;
}
public Long getMaterialId() {
return this.materialId;
}
public String getMaterialName() {
return this.materialName;
}
public String getMaterialCode() {
return this.materialCode;
}
public String getUnitName() {
return this.unitName;
}
public String getCategoryName() {
return this.categoryName;
}
public void setWinPrice(final Integer winPrice) {
this.winPrice = winPrice;
}
public void setWinDate(final LocalDateTime winDate) {
this.winDate = winDate;
}
public void setWinSupplierId(final Long winSupplierId) {
this.winSupplierId = winSupplierId;
}
public void setWinSupplierName(final String winSupplierName) {
this.winSupplierName = winSupplierName;
}
public void setBidValidityStartTime(final LocalDateTime bidValidityStartTime) {
this.bidValidityStartTime = bidValidityStartTime;
}
public void setBidValidityEndTime(final LocalDateTime bidValidityEndTime) {
this.bidValidityEndTime = bidValidityEndTime;
}
public void setMaterialInquiryId(final String materialInquiryId) {
this.materialInquiryId = materialInquiryId;
}
public void setMaterialId(final Long materialId) {
this.materialId = materialId;
}
public void setMaterialName(final String materialName) {
this.materialName = materialName;
}
public void setMaterialCode(final String materialCode) {
this.materialCode = materialCode;
}
public void setUnitName(final String unitName) {
this.unitName = unitName;
}
public void setCategoryName(final String categoryName) {
this.categoryName = categoryName;
}
public String toString() {
Integer var10000 = this.getWinPrice();
return "DrpMaterialBidRecordsSupplierVO(winPrice=" + var10000 + ", winDate=" + String.valueOf(this.getWinDate()) + ", winSupplierId=" + this.getWinSupplierId() + ", winSupplierName=" + this.getWinSupplierName() + ", bidValidityStartTime=" + String.valueOf(this.getBidValidityStartTime()) + ", bidValidityEndTime=" + String.valueOf(this.getBidValidityEndTime()) + ", materialInquiryId=" + this.getMaterialInquiryId() + ", materialId=" + this.getMaterialId() + ", materialName=" + this.getMaterialName() + ", materialCode=" + this.getMaterialCode() + ", unitName=" + this.getUnitName() + ", categoryName=" + this.getCategoryName() + ")";
}
}

View File

@ -0,0 +1,163 @@
package com.bonus.canteen.core.drp.vo;
import com.bonus.canteen.core.drp.po.DrpSupplierModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
public class DrpMaterialSupplierVO {
@ApiModelProperty("货品id")
private Long materialId;
@ApiModelProperty("货品编号")
private String materialCode;
@ApiModelProperty("货品名称")
private String materialName;
@ApiModelProperty("货品类别")
private Long categoryId;
@ApiModelProperty("区域id")
private Long areaId;
@ApiModelProperty("区域名称")
private String areaName;
@ApiModelProperty("货品类别名称")
private String categoryName;
@ApiModelProperty("单位id")
private Long unitId;
@ApiModelProperty("单位名称")
private String unitName;
@ApiModelProperty("供应商id")
private Long supplierId;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("最近中标供应商")
private List<DrpSupplierModel> nearestSupplierList;
@ApiModelProperty("备选供应商列表")
private String alternativeSupplier;
@ApiModelProperty("最近一次送货信息")
private DrpLastOrderGoodsVO lastOrderGoods;
@ApiModelProperty("是否供应 1是 2否")
private Integer ifSupply;
public Long getMaterialId() {
return this.materialId;
}
public String getMaterialCode() {
return this.materialCode;
}
public String getMaterialName() {
return this.materialName;
}
public Long getCategoryId() {
return this.categoryId;
}
public Long getAreaId() {
return this.areaId;
}
public String getAreaName() {
return this.areaName;
}
public String getCategoryName() {
return this.categoryName;
}
public Long getUnitId() {
return this.unitId;
}
public String getUnitName() {
return this.unitName;
}
public Long getSupplierId() {
return this.supplierId;
}
public String getSupplierName() {
return this.supplierName;
}
public List<DrpSupplierModel> getNearestSupplierList() {
return this.nearestSupplierList;
}
public String getAlternativeSupplier() {
return this.alternativeSupplier;
}
public DrpLastOrderGoodsVO getLastOrderGoods() {
return this.lastOrderGoods;
}
public Integer getIfSupply() {
return this.ifSupply;
}
public void setMaterialId(final Long materialId) {
this.materialId = materialId;
}
public void setMaterialCode(final String materialCode) {
this.materialCode = materialCode;
}
public void setMaterialName(final String materialName) {
this.materialName = materialName;
}
public void setCategoryId(final Long categoryId) {
this.categoryId = categoryId;
}
public void setAreaId(final Long areaId) {
this.areaId = areaId;
}
public void setAreaName(final String areaName) {
this.areaName = areaName;
}
public void setCategoryName(final String categoryName) {
this.categoryName = categoryName;
}
public void setUnitId(final Long unitId) {
this.unitId = unitId;
}
public void setUnitName(final String unitName) {
this.unitName = unitName;
}
public void setSupplierId(final Long supplierId) {
this.supplierId = supplierId;
}
public void setSupplierName(final String supplierName) {
this.supplierName = supplierName;
}
public void setNearestSupplierList(final List<DrpSupplierModel> nearestSupplierList) {
this.nearestSupplierList = nearestSupplierList;
}
public void setAlternativeSupplier(final String alternativeSupplier) {
this.alternativeSupplier = alternativeSupplier;
}
public void setLastOrderGoods(final DrpLastOrderGoodsVO lastOrderGoods) {
this.lastOrderGoods = lastOrderGoods;
}
public void setIfSupply(final Integer ifSupply) {
this.ifSupply = ifSupply;
}
public String toString() {
Long var10000 = this.getMaterialId();
return "DrpMaterialSupplierVO(materialId=" + var10000 + ", materialCode=" + this.getMaterialCode() + ", materialName=" + this.getMaterialName() + ", categoryId=" + this.getCategoryId() + ", areaId=" + this.getAreaId() + ", areaName=" + this.getAreaName() + ", categoryName=" + this.getCategoryName() + ", unitId=" + this.getUnitId() + ", unitName=" + this.getUnitName() + ", supplierId=" + this.getSupplierId() + ", supplierName=" + this.getSupplierName() + ", nearestSupplierList=" + String.valueOf(this.getNearestSupplierList()) + ", alternativeSupplier=" + this.getAlternativeSupplier() + ", lastOrderGoods=" + String.valueOf(this.getLastOrderGoods()) + ", ifSupply=" + this.getIfSupply() + ")";
}
}

View File

@ -0,0 +1,331 @@
<?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.bonus.canteen.core.drp.mapper.DrpMaterialWinBidRecordsMapper">
<!-- <select id="listMaterialUnit" resultType="com.bonus.canteen.core.drp.vo.DrpMaterialBidRecordsPageVO">-->
<!-- SELECT distinct sub.material_id,-->
<!-- sub.material_name,-->
<!-- sub.material_code,-->
<!-- sub.category_id,-->
<!-- d.category_name,-->
<!-- sub.unit_id,-->
<!-- du.unit_name,-->
<!-- sub.image_url,-->
<!-- dms.supplier_id,-->
<!-- ds.supplier_name,-->
<!-- sub.area_id,-->
<!-- aa.area_name-->
<!-- FROM menu_material sub-->
<!-- LEFT JOIN drp_unit du ON du.unit_id = sub.unit_id-->
<!-- LEFT JOIN menu_material_category d ON d.category_id = sub.category_id-->
<!-- left join drp_menu_material_supplier dms on sub.material_id = dms.material_id-->
<!-- left join drp_supplier ds on dms.supplier_id = ds.supplier_id-->
<!-- left join alloc_area aa on sub.area_id = aa.area_id-->
<!-- left join drp_material_latest_price dmlp-->
<!-- on sub.material_id = dmlp.material_id and dmlp.unit_id = sub.unit_id and dmlp.price_type = 1-->
<!-- WHERE sub.del_flag = 2-->
<!-- <if test="content.areaId != null">-->
<!-- and sub.area_id = #{content.areaId}-->
<!-- </if>-->
<!-- <if test="content.areaIdList != null and content.areaIdList.size() != 0">-->
<!-- and sub.area_id in-->
<!-- <foreach collection="content.areaIdList" item="areaId" separator="," open="(" close=")">-->
<!-- #{areaId}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- &lt;!&ndash;区域权限&ndash;&gt;-->
<!-- <if test="content.areaAuth != null and content.areaAuth.size() > 0">-->
<!-- and sub.area_id in-->
<!-- <foreach collection="content.areaAuth" item="areaId" separator="," open="(" close=")">-->
<!-- #{areaId}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="content.materialName != null and content.materialName != ''">-->
<!-- and (sub.material_name like concat(concat('%', #{content.materialName}), '%')-->
<!-- or sub.material_code like concat(concat('%', #{content.materialName}), '%')-->
<!-- )-->
<!-- </if>-->
<!-- <if test="content.categoryIdList != null and content.categoryIdList.size() > 0">-->
<!-- and sub.category_id in-->
<!-- <foreach close=")" collection="content.categoryIdList" item="categoryId" open="(" separator=",">-->
<!-- #{categoryId}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="content.materialType != null">-->
<!-- and sub.material_type = #{content.materialType}-->
<!-- </if>-->
<!-- <if test="content.winSupplierId != null">-->
<!-- and dmlp.supplier_id = #{content.winSupplierId}-->
<!-- </if>-->
<!-- <if test="content.bidTimeStart != null">-->
<!-- and dmlp.start_time >= #{content.bidTimeStart}-->
<!-- </if>-->
<!-- <if test="content.bidTimeEnd != null">-->
<!-- and dmlp.end_time <![CDATA[ <= ]]> #{content.bidTimeEnd}-->
<!-- </if>-->
<!-- <if test="content.priceState != null ">-->
<!-- <if test="content.priceState == 1">-->
<!-- and now() between dmlp.start_time and dmlp.end_time-->
<!-- </if>-->
<!-- <if test="content.priceState == 2">-->
<!-- and (NOT now() between dmlp.start_time and dmlp.end_time)-->
<!-- </if>-->
<!-- </if>-->
<!-- <if test="content.startTime != null">-->
<!-- and dmlp.crtime >= #{content.startTime}-->
<!-- </if>-->
<!-- <if test="content.endTime != null">-->
<!-- and dmlp.crtime <![CDATA[ <= ]]> #{content.endTime}-->
<!-- </if>-->
<!-- </select>-->
<!-- <select id="listSupplierWinRecords" resultType="com.bonus.canteen.core.drp.vo.DrpMaterialSupplierWinRecordsVO">-->
<!-- SELECT-->
<!-- a.material_id,-->
<!-- b.unit_id,-->
<!-- a.win_price-->
<!-- FROM-->
<!-- drp_material_win_bid_records a-->
<!-- LEFT JOIN menu_material b ON a.material_id = b.material_id-->
<!-- WHERE-->
<!-- a.win_supplier_id = #{supplierId}-->
<!-- AND a.material_id IN-->
<!-- <foreach collection="materialIdList" item="materialId" separator="," open="(" close=")">-->
<!-- #{materialId}-->
<!-- </foreach>-->
<!-- <if test="materialInquiryId != null">-->
<!-- and a.material_inquiry_id= #{materialInquiryId}-->
<!-- </if>-->
<!-- order by a.crtime desc-->
<!-- </select>-->
<!-- <select id="listSupplierPriceByMaterialId"-->
<!-- resultType="com.bonus.canteen.core.drp.vo.DrpMaterialBidRecordsSupplierVO">-->
<!-- SELECT a.win_supplier_id,-->
<!-- b.supplier_name winSupplierName,-->
<!-- a.win_date,-->
<!-- a.win_price,-->
<!-- a.farmers_market_price,-->
<!-- a.bid_validity_start_time,-->
<!-- a.bid_validity_end_time,-->
<!-- a.material_inquiry_id,-->
<!-- mm.material_name,-->
<!-- mm.material_code,-->
<!-- mmc.category_name,-->
<!-- du.unit_id,-->
<!-- du.unit_name-->
<!-- FROM drp_material_win_bid_records a-->
<!-- LEFT JOIN drp_supplier b ON b.supplier_id = a.win_supplier_id-->
<!-- LEFT JOIN menu_material mm on a.material_id = mm.material_id-->
<!-- LEFT JOIN menu_material_category mmc on mm.category_id = mmc.category_id-->
<!-- LEFT JOIN drp_unit du on mm.unit_id = du.unit_id-->
<!-- WHERE a.material_id = #{materialId}-->
<!-- </select>-->
<!-- <select id="listSupplierWinRecordsBySupplier"-->
<!-- resultType="com.bonus.canteen.core.drp.vo.DrpMaterialSupplierWinRecordsVO">-->
<!-- SELECT-->
<!-- sub.material_id,-->
<!-- sub.unit_id,-->
<!-- sub.win_price-->
<!-- FROM (-->
<!-- SELECT-->
<!-- a.material_id,-->
<!-- b.unit_id,-->
<!-- a.win_price,-->
<!-- ROW_NUMBER() OVER (PARTITION BY a.material_id ORDER BY a.crtime DESC) AS rn-->
<!-- FROM-->
<!-- drp_material_win_bid_records a-->
<!-- LEFT JOIN menu_material b ON a.material_id = b.material_id-->
<!-- WHERE-->
<!-- a.win_supplier_id = #{supplierId} and now() between a.bid_validity_start_time and a.bid_validity_end_time-->
<!-- AND a.material_id IN-->
<!-- <foreach collection="materialIdList" item="materialId" separator="," open="(" close=")">-->
<!-- #{materialId}-->
<!-- </foreach>-->
<!-- ) sub-->
<!-- WHERE sub.rn = 1-->
<!-- </select>-->
<!-- <select id="listSupplierPriceByMaterialIdLast"-->
<!-- resultType="com.bonus.canteen.core.drp.vo.DrpMaterialBidRecordsSupplierVO">-->
<!-- SELECT a.win_supplier_id,-->
<!-- b.supplier_name winSupplierName,-->
<!-- a.win_date,-->
<!-- a.win_price,-->
<!-- a.farmers_market_price,-->
<!-- a.bid_validity_start_time,-->
<!-- a.bid_validity_end_time,-->
<!-- a.material_inquiry_id-->
<!-- FROM drp_material_win_bid_records a-->
<!-- LEFT JOIN drp_supplier b ON b.supplier_id = a.win_supplier_id-->
<!-- WHERE a.material_id = #{materialId}-->
<!-- order by a.crtime desc-->
<!-- limit 1-->
<!-- </select>-->
<select id="listSupplierPriceByMaterialIdList" resultType="com.bonus.canteen.core.drp.vo.DrpMaterialBidRecordsSupplierVO">
SELECT
sub.material_id,
sub.win_supplier_id,
sub.winSupplierName,
sub.win_date,
sub.win_price,
sub.bid_validity_start_time,
sub.bid_validity_end_time,
sub.material_inquiry_id
FROM
(
SELECT
a.material_id,
a.win_supplier_id,
b.supplier_name winSupplierName,
a.win_date,
a.win_price,
a.bid_validity_start_time,
a.bid_validity_end_time,
a.material_inquiry_id,
ROW_NUMBER() OVER ( PARTITION BY a.material_id ORDER BY a.crtime DESC ) AS row_num
FROM
drp_material_win_bid_records a
LEFT JOIN drp_supplier b ON b.supplier_id = a.win_supplier_id
) sub
WHERE
sub.row_num = 1
AND sub.material_id IN
<foreach collection="materialIdList" item="materialId" separator="," open="(" close=")">
#{materialId}
</foreach>
</select>
<select id="getLastOrderGoodsPrice"
resultType="com.bonus.canteen.core.drp.vo.DrpLastOrderGoodsVO">
select dogd.single_price as lastOrderGoodsPrice, dog.crtime as lastOrderGoodsDate,
dog.supplier_id as lastOrderGoodsSupplierId, ds.supplier_name as lastOrderGoodsSupplierName
from drp_order_goods_detail dogd
left join drp_order_goods dog on dogd.order_goods_id = dog.order_goods_id
left join drp_supplier ds on dog.supplier_id = ds.supplier_id
where dogd.material_id = #{materialId} and dogd.unit_id = #{unitId}
and dog.order_status = 2
and dog.del_flag = 2
and dog.approve_status = 3
order by dog.crtime desc
limit 1
</select>
<!-- <select id="getMarketPrice" resultType="com.bonus.canteen.core.drp.vo.DrpMarketPriceVO">-->
<!-- select dmpd.unit_price, dmp.harvest_time, dmp.harvest_source-->
<!-- from drp_market_price_detail dmpd-->
<!-- left join drp_market_price dmp on dmpd.harvest_id = dmp.harvest_id-->
<!-- where dmpd.material_id = #{materialId} and dmpd.unit_id = #{unitId}-->
<!-- and dmp.del_flag = 2-->
<!-- and dmp.commit_status = 2-->
<!-- order by dmp.crtime desc-->
<!-- limit 3-->
<!-- </select>-->
<select id="getMaterialSupplier" resultType="com.bonus.canteen.core.drp.vo.DrpMaterialSupplierVO">
select mm.material_id,
mm.material_name,
mm.material_code,
mm.category_id,
mmc.category_name,
mm.unit_id,
du.unit_name,
dms.supplier_id,
ds.supplier_name,
dms.alternative_supplier,
mm.area_id,
aa.area_name,
dms.if_supply
from menu_material mm
left join drp_menu_material_supplier dms on mm.material_id = dms.material_id and dms.category_id is null
<if test="content.canteenId != null">
and dms.canteen_id = #{content.canteenId}
</if>
left join drp_supplier ds on dms.supplier_id = ds.supplier_id
left join menu_material_category mmc on mm.category_id = mmc.category_id
left join drp_unit du on mm.unit_id = du.unit_id
left join alloc_area aa on mm.area_id = aa.area_id
<where>
and mm.del_flag = 2
-- 根据所选食堂的所属区域过滤原料
and (
mm.area_id in (select area_id from alloc_canteen where canteen_id = #{content.canteenId})
or mm.area_id is null
)
<if test="content.key != null and content.key != ''">
and (
mm.material_name like concat('%', #{content.key}, '%')
or mm.material_code like concat('%', #{content.key}, '%')
or mm.bar_code like concat('%', #{content.key}, '%')
)
</if>
<if test="content.categoryIdList != null and content.categoryIdList.size() > 0">
and mm.category_id in
<foreach collection="content.categoryIdList" item="categoryId" separator="," open="(" close=")">
#{categoryId}
</foreach>
</if>
<if test="content.areaIdList != null and content.areaIdList.size() > 0">
and ( mm.area_id in
<foreach collection="content.areaIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
or mm.area_id is null
)
</if>
</where>
</select>
<select id="getLastOrderGoodsPriceList" resultType="com.bonus.canteen.core.drp.vo.DrpLastOrderGoodsVO">
select * from (
select dogd.single_price as lastOrderGoodsPrice,
dog.crtime as lastOrderGoodsDate,
dog.supplier_id as lastOrderGoodsSupplierId,
ds.supplier_name as lastOrderGoodsSupplierName,
dogd.order_goods_id as orderGoodsId,
dogd.material_id as materialId,
dogd.unit_id as unitId,
ROW_NUMBER() OVER ( PARTITION BY dogd.material_id ORDER BY dogd.crtime DESC ) AS rn
from drp_order_goods_detail dogd
left join drp_order_goods dog on dogd.order_goods_id = dog.order_goods_id
left join drp_supplier ds on dog.supplier_id = ds.supplier_id
left join alloc_canteen ac on dog.canteen_id = ac.canteen_id
where dog.order_status = 2
and dog.del_flag = 2
and dog.approve_status = 3
<if test="materialAndUnitDTOS != null and materialAndUnitDTOS.size() > 0">
and CONCAT(dogd.material_id, dogd.unit_id) IN
<foreach collection="materialAndUnitDTOS" item="item" open="(" separator="," close=")">
CONCAT(#{item.materialId}, #{item.unitId})
</foreach>
</if>
<if test="areaId != null ">
and ac.area_id = #{areaId}
</if>
) sub
where sub.rn = 1
</select>
<!-- <select id="getMarketPriceList" resultType="com.bonus.canteen.core.drp.vo.DrpMarketPriceVO">-->
<!-- select * from (-->
<!-- select dmpd.unit_price,-->
<!-- dmp.harvest_time,-->
<!-- dmp.harvest_source,-->
<!-- dmpd.material_id as materialId,-->
<!-- dmpd.unit_id as unitId,-->
<!-- ROW_NUMBER() OVER ( PARTITION BY dmpd.material_id ORDER BY dmp.crtime DESC ) AS rn-->
<!-- from drp_market_price_detail dmpd-->
<!-- left join drp_market_price dmp on dmpd.harvest_id = dmp.harvest_id-->
<!-- left join alloc_area ac on dmp.area_id = ac.area_id-->
<!-- where dmp.del_flag = 2-->
<!-- and dmp.commit_status = 2-->
<!-- <if test="materialAndUnitDTOS != null and materialAndUnitDTOS.size() > 0">-->
<!-- and CONCAT(dmpd.material_id, dmpd.unit_id) IN-->
<!-- <foreach collection="materialAndUnitDTOS" item="item" open="(" separator="," close=")">-->
<!-- CONCAT(#{item.materialId}, #{item.unitId})-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="areaId != null">-->
<!-- and ac.area_id = #{areaId}-->
<!-- </if>-->
<!-- ) sub-->
<!-- where sub.rn in (1, 2, 3)-->
<!-- </select>-->
</mapper>

View File

@ -313,35 +313,35 @@
<!-- </if>-->
<!-- </select>-->
<!-- <select id="getCategorySupplier" resultType="net.xnzn.core.drp.vo.DrpMaterialSupplierVO"-->
<!-- parameterType="net.xnzn.core.drp.dto.DrpMaterialInfoDTO">-->
<!-- select-->
<!-- mmc.category_id,-->
<!-- mmc.category_name,-->
<!-- dms.supplier_id,-->
<!-- ds.supplier_name,-->
<!-- dms.alternative_supplier,-->
<!-- dms.canteen_id-->
<!-- from menu_material_category mmc-->
<!-- left join drp_menu_material_supplier dms on mmc.category_id = dms.category_id and dms.material_id is null-->
<!-- <if test="content.canteenId != null">-->
<!-- and dms.canteen_id = #{content.canteenId}-->
<!-- </if>-->
<!-- left join drp_supplier ds on dms.supplier_id = ds.supplier_id-->
<!-- <where>-->
<!-- and mmc.del_flag = 2-->
<!-- and (-->
<!-- mmc.area_id in (select area_id from alloc_canteen where canteen_id = #{content.canteenId})-->
<!-- or mmc.area_id is null-->
<!-- )-->
<!-- <if test="content.categoryIdList != null and content.categoryIdList.size() > 0">-->
<!-- and mmc.category_id in-->
<!-- <foreach collection="content.categoryIdList" item="categoryId" separator="," open="(" close=")">-->
<!-- #{categoryId}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<select id="getCategorySupplier" resultType="com.bonus.canteen.core.drp.vo.DrpMaterialSupplierVO"
parameterType="com.bonus.canteen.core.drp.dto.DrpMaterialInfoDTO">
select
mmc.category_id,
mmc.category_name,
dms.supplier_id,
ds.supplier_name,
dms.alternative_supplier,
dms.canteen_id
from menu_material_category mmc
left join drp_menu_material_supplier dms on mmc.category_id = dms.category_id and dms.material_id is null
<if test="content.canteenId != null">
and dms.canteen_id = #{content.canteenId}
</if>
left join drp_supplier ds on dms.supplier_id = ds.supplier_id
<where>
and mmc.del_flag = 2
and (
mmc.area_id in (select area_id from alloc_canteen where canteen_id = #{content.canteenId})
or mmc.area_id is null
)
<if test="content.categoryIdList != null and content.categoryIdList.size() > 0">
and mmc.category_id in
<foreach collection="content.categoryIdList" item="categoryId" separator="," open="(" close=")">
#{categoryId}
</foreach>
</if>
</where>
</select>
</mapper>