| src/main/java/org/springblade/modules/yw/controller/SuppliesController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/yw/excel/SuppliesExcel.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/yw/service/ISuppliesService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/yw/service/impl/SuppliesServiceImpl.java | ●●●●● patch | view | raw | blame | history |
src/main/java/org/springblade/modules/yw/controller/SuppliesController.java
@@ -6,15 +6,19 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; import javax.validation.Valid; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.yw.excel.SuppliesExcel; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.modules.yw.entity.SuppliesEntity; import org.springblade.modules.yw.vo.SuppliesVO; import org.springblade.modules.yw.service.ISuppliesService; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; import java.util.Map; @@ -104,4 +108,15 @@ return R.status(suppliesService.removeByIds(Func.toLongList(ids))); } /** * 导入物资仓库信息 */ @PostMapping("import-supplies") @ApiOperationSupport(order = 8) @ApiOperation(value = "导入物资仓库信息", notes = "传入excel") public R importSupplies(MultipartFile file, Integer isCovered) { String data = suppliesService.importSupplies(ExcelUtil.read(file, SuppliesExcel.class),isCovered == 1); return R.data(200, data, data); } } src/main/java/org/springblade/modules/yw/excel/SuppliesExcel.java
New file @@ -0,0 +1,56 @@ package org.springblade.modules.yw.excel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import lombok.Data; import java.io.Serializable; /** * 企业excel 模板 * @author zhongrj * @date 2024-10-26 */ @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class SuppliesExcel implements Serializable { private static final long serialVersionUID = 1L; @ColumnWidth(20) @ExcelProperty("企业名称") private String firmName; @ColumnWidth(20) @ExcelProperty("仓库名称") private String name; @ExcelProperty("位置") private String address; /** * 负责人 */ @ExcelProperty("负责人") private String perInCha; /** * 负责人电话 */ @ExcelProperty("负责人电话") private String perInChaPho; /** * 联系人姓名 */ @ExcelProperty("联系人") private String conPers; /** * 联系人电话 */ @ExcelProperty("联系人电话") private String conPersPho; @ExcelProperty("备注") private String remark; } src/main/java/org/springblade/modules/yw/service/ISuppliesService.java
@@ -2,8 +2,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.modules.yw.entity.SuppliesEntity; import org.springblade.modules.yw.excel.SuppliesExcel; import org.springblade.modules.yw.vo.SuppliesVO; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 物资库表 服务类 @@ -21,4 +24,11 @@ */ IPage<SuppliesVO> selectSuppliesPage(IPage<SuppliesVO> page, SuppliesVO supplies); /** * 导入物资仓库信息 * @param data * @param isCovered * @return */ String importSupplies(List<SuppliesExcel> data, boolean isCovered); } src/main/java/org/springblade/modules/yw/service/impl/SuppliesServiceImpl.java
@@ -1,12 +1,21 @@ package org.springblade.modules.yw.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.yw.entity.FirmInfo; import org.springblade.modules.yw.entity.SuppliesEntity; import org.springblade.modules.yw.excel.SuppliesExcel; import org.springblade.modules.yw.service.IFirmInfoService; import org.springblade.modules.yw.vo.SuppliesVO; import org.springblade.modules.yw.mapper.SuppliesMapper; import org.springblade.modules.yw.service.ISuppliesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; import java.util.Objects; /** * 物资库表 服务实现类 @@ -17,8 +26,73 @@ @Service public class SuppliesServiceImpl extends ServiceImpl<SuppliesMapper, SuppliesEntity> implements ISuppliesService { @Autowired private IFirmInfoService firmInfoService; @Override public IPage<SuppliesVO> selectSuppliesPage(IPage<SuppliesVO> page, SuppliesVO supplies) { return page.setRecords(baseMapper.selectSuppliesPage(page, supplies)); } /** * 导入物资仓库信息 * @param data * @param isCovered * @return */ @Override public String importSupplies(List<SuppliesExcel> data, boolean isCovered) { for (SuppliesExcel suppliesExcel : data) { SuppliesEntity suppliesEntity = Objects.requireNonNull(BeanUtil.copy(suppliesExcel, SuppliesEntity.class)); // 查询对应的企业id suppliesEntity.setFirmId(getFirmId(suppliesExcel)); // 判断是否已存在 Long id = isSave(suppliesEntity); // 已存在 if (null!=id){ if (isCovered){ // 覆盖-更新 suppliesEntity.setId(id); updateById(suppliesEntity); break; } } // 插入 save(suppliesEntity); } return null; } /** * 判断仓库是否已存在 * @param suppliesEntity * @return */ private Long isSave(SuppliesEntity suppliesEntity) { QueryWrapper<SuppliesEntity> wrapper = new QueryWrapper<>(); wrapper.eq("firm_id",suppliesEntity.getFirmId()) .eq("name",suppliesEntity.getName()) .eq("is_deleted",0); SuppliesEntity one = getOne(wrapper); if (null!=one){ return one.getId(); } return null; } /** * 查询企业id * @param suppliesExcel * @return */ private Long getFirmId(SuppliesExcel suppliesExcel) { QueryWrapper<FirmInfo> wrapper = new QueryWrapper<>(); wrapper.eq("name",suppliesExcel.getFirmName()) .eq("is_deleted",0); FirmInfo one = firmInfoService.getOne(wrapper); if (null!=one){ return one.getId(); } return null; } }