This commit is contained in:
liwenfei 2025-12-19 17:26:36 +08:00
parent d71ed080da
commit d41929d374
4 changed files with 20 additions and 5 deletions

View File

@ -22,9 +22,12 @@ import com.ruoyi.contract.domain.bo.ConPurchaseMediaBo;
import com.ruoyi.contract.domain.bo.ConPurchasePaymentBo; import com.ruoyi.contract.domain.bo.ConPurchasePaymentBo;
import com.ruoyi.contract.domain.bo.conpurchase.ConPurchaseBoCopy; import com.ruoyi.contract.domain.bo.conpurchase.ConPurchaseBoCopy;
import com.ruoyi.contract.domain.bo.conpurchase.ConPurchaseBoExtend; import com.ruoyi.contract.domain.bo.conpurchase.ConPurchaseBoExtend;
import com.ruoyi.contract.domain.vo.ConPurchaseImportVO;
import com.ruoyi.contract.domain.vo.ConPurchaseVo; import com.ruoyi.contract.domain.vo.ConPurchaseVo;
import com.ruoyi.contract.service.IConPurchaseService; import com.ruoyi.contract.service.IConPurchaseService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -51,6 +54,8 @@ import java.util.stream.Collectors;
public class ConPurchaseController extends BaseController { public class ConPurchaseController extends BaseController {
private final IConPurchaseService iConPurchaseService; private final IConPurchaseService iConPurchaseService;
private static final Logger logger = LoggerFactory.getLogger(ConPurchaseController.class);
/** /**
* 查询采购合同信息列表 * 查询采购合同信息列表
@ -218,10 +223,11 @@ public class ConPurchaseController extends BaseController {
*/ */
@Log(title = "采购合同", businessType = BusinessType.IMPORT) @Log(title = "采购合同", businessType = BusinessType.IMPORT)
@PostMapping("/importData") @PostMapping("/importData")
public R<Integer> importData(MultipartFile file) { public R<List<ConPurchaseImportVO>> importData(MultipartFile file) {
try { try {
return R.ok(iConPurchaseService.importPurchase(file)); return R.ok(iConPurchaseService.importPurchase(file));
} catch (Exception e) { } catch (Exception e) {
logger.error("采购合同导入异常,异常信息:{}",e.getMessage(),e);
return R.fail(e.getMessage()); return R.fail(e.getMessage());
} }
} }

View File

@ -99,4 +99,6 @@ public class ConPurchaseImportVO {
@Alias("状态") @Alias("状态")
private String state; private String state;
private String notes;
} }

View File

@ -1,6 +1,7 @@
package com.ruoyi.contract.service; package com.ruoyi.contract.service;
import com.ruoyi.contract.domain.bo.conpurchase.ConPurchaseBoExtend; import com.ruoyi.contract.domain.bo.conpurchase.ConPurchaseBoExtend;
import com.ruoyi.contract.domain.vo.ConPurchaseImportVO;
import com.ruoyi.contract.domain.vo.ConPurchaseVo; import com.ruoyi.contract.domain.vo.ConPurchaseVo;
import com.ruoyi.contract.domain.bo.ConPurchaseBo; import com.ruoyi.contract.domain.bo.ConPurchaseBo;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
@ -106,5 +107,5 @@ public interface IConPurchaseService {
* @return 结果 * @return 结果
* @throws Exception * @throws Exception
*/ */
int importPurchase(MultipartFile file) throws Exception; List<ConPurchaseImportVO> importPurchase(MultipartFile file) throws Exception;
} }

View File

@ -135,7 +135,7 @@ public class ConPurchaseServiceImpl implements IConPurchaseService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int importPurchase(MultipartFile file) throws Exception { public List<ConPurchaseImportVO> importPurchase(MultipartFile file) throws Exception {
ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
List<ConPurchaseImportVO> list = reader.readAll(ConPurchaseImportVO.class); List<ConPurchaseImportVO> list = reader.readAll(ConPurchaseImportVO.class);
reader.close(); reader.close();
@ -148,7 +148,7 @@ public class ConPurchaseServiceImpl implements IConPurchaseService {
Map<String, List<ConPurchaseImportVO>> mapByContractNumber = list.stream() Map<String, List<ConPurchaseImportVO>> mapByContractNumber = list.stream()
.filter(vo -> StringUtils.isNotBlank(vo.getContractNumber())) .filter(vo -> StringUtils.isNotBlank(vo.getContractNumber()))
.collect(Collectors.groupingBy(ConPurchaseImportVO::getContractNumber)); .collect(Collectors.groupingBy(ConPurchaseImportVO::getContractNumber));
List<ConPurchaseImportVO> res = new ArrayList<>();
// 遍历每个合同分组 // 遍历每个合同分组
for (Map.Entry<String, List<ConPurchaseImportVO>> entry : mapByContractNumber.entrySet()) { for (Map.Entry<String, List<ConPurchaseImportVO>> entry : mapByContractNumber.entrySet()) {
String contractNumber = entry.getKey(); String contractNumber = entry.getKey();
@ -195,6 +195,12 @@ public class ConPurchaseServiceImpl implements IConPurchaseService {
ConCityBo conCityBo = new ConCityBo(); ConCityBo conCityBo = new ConCityBo();
conCityBo.setCityName(city+",全城"); conCityBo.setCityName(city+",全城");
ConCityVo conCityVo = iConCityService.queryOneByWholeName(conCityBo); ConCityVo conCityVo = iConCityService.queryOneByWholeName(conCityBo);
if(conCityVo == null){
firstRow.setState("0" );
firstRow.setNotes(city+"城市信息填写有误" );
res.add(firstRow);
return res;
}
purchaseBo.setCityId(conCityVo.getId()); purchaseBo.setCityId(conCityVo.getId());
//赋予数组值 //赋予数组值
String s = iConCityService.selectTreeIds(conCityVo.getId()); String s = iConCityService.selectTreeIds(conCityVo.getId());
@ -255,7 +261,7 @@ public class ConPurchaseServiceImpl implements IConPurchaseService {
this.updateByBo(purchaseBo); this.updateByBo(purchaseBo);
} }
} }
return list.size(); return res;
} }
/** /**