作者 王鹏

增加首页,优化采买

... ... @@ -88,6 +88,7 @@ public class TblTradeBidSubController {
List<TblTradeTenderInfo> tenderInfoList = tblTradeTenderInfoService.list(null);
tblTradeBidSubList.forEach(e->{
e.setTenderInfo(tenderInfoList.stream().filter(i->StrUtil.equals(i.getId(),e.getTradeId())).findFirst().get());
});
page.setRecords(tblTradeBidSubList);
page.setTotal(tblTradeBidSubList.size());
... ... @@ -152,6 +153,75 @@ public class TblTradeBidSubController {
List<TblTradeTenderInfo> tenderInfoList = tblTradeTenderInfoService.list(null);
pageList.getRecords().forEach(e->{
e.setTenderInfo(tenderInfoList.stream().filter(i->StrUtil.equals(i.getId(),e.getTradeId())).findFirst().get());
e.setJldw(e.getTenderInfo().getJldw());
e.setPinpai(e.getTenderInfo().getPinpai());
e.setSl(e.getTenderInfo().getSl());
e.setXqdw(e.getTenderInfo().getXqdw());
});
return Result.OK(pageList);
}
/**
* 分页列表查询
*
* @param tblTradeBidSub
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "投标表-分页列表查询")
@ApiOperation(value="采买订单-分页列表查询", notes="采买订单-分页列表查询")
@GetMapping(value = "/purchaseInfoList")
public Result<IPage<TblTradeBidSub>> queryPurchaseInfoList(TblTradeBidSub tblTradeBidSub,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TblTradeBidSub> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidSub, req.getParameterMap());
queryWrapper.isNotNull("qudao");
Page<TblTradeBidSub> page = new Page<TblTradeBidSub>(pageNo, pageSize);
IPage<TblTradeBidSub> pageList = tblTradeBidSubService.page(page, queryWrapper);
List<TblTradeTenderInfo> tenderInfoList = tblTradeTenderInfoService.list(null);
pageList.getRecords().forEach(e->{
e.setTenderInfo(tenderInfoList.stream().filter(i->StrUtil.equals(i.getId(),e.getTradeId())).findFirst().get());
e.setJldw(e.getTenderInfo().getJldw());
e.setPinpai(e.getTenderInfo().getPinpai());
e.setSl(e.getTenderInfo().getSl());
e.setXqdw(e.getTenderInfo().getXqdw());
});
return Result.OK(pageList);
}
/**
* 分页列表查询
*
* @param tblTradeBidSub
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@ApiOperation(value="物料异常-分页列表查询", notes="物料异常-分页列表查询")
@GetMapping(value = "/abnormalList")
public Result<IPage<TblTradeBidSub>> queryAbnormalList(TblTradeBidSub tblTradeBidSub,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TblTradeBidSub> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidSub, req.getParameterMap());
queryWrapper.eq("sfyllyc","是");
Page<TblTradeBidSub> page = new Page<TblTradeBidSub>(pageNo, pageSize);
IPage<TblTradeBidSub> pageList = tblTradeBidSubService.page(page, queryWrapper);
List<TblTradeTenderInfo> tenderInfoList = tblTradeTenderInfoService.list(null);
pageList.getRecords().forEach(e->{
e.setTenderInfo(tenderInfoList.stream().filter(i->StrUtil.equals(i.getId(),e.getTradeId())).findFirst().get());
e.setJldw(e.getTenderInfo().getJldw());
e.setPinpai(e.getTenderInfo().getPinpai());
e.setSl(e.getTenderInfo().getSl());
e.setXqdw(e.getTenderInfo().getXqdw());
});
return Result.OK(pageList);
... ... @@ -174,6 +244,20 @@ public class TblTradeBidSubController {
}
/**
* 添加
*
* @param
* @return
*/
@AutoLog(value = "投标表-添加")
@ApiOperation(value="投标表-添加", notes="投标表-添加")
@PostMapping(value = "/batchSave")
public Result<String> batchSave(@RequestBody List<TblTradeBidSub> tblTradeBidSubList) {
tblTradeBidSubService.updateBatchById(tblTradeBidSubList);
return Result.OK("保存成功!");
}
/**
* 编辑
*
* @param tblTradeBidSubPage
... ...
package org.jeecg.modules.erp.trade.controller;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
... ... @@ -9,6 +10,8 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.StrUtil;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
... ... @@ -86,6 +89,15 @@ public class TblTradeMeterialController extends JeecgController<TblTradeMeterial
@ApiOperation(value="贸易管理物料表-添加", notes="贸易管理物料表-添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TblTradeMeterial tblTradeMeterial) {
if (StrUtil.isNotBlank(tblTradeMeterial.getCert())){
tblTradeMeterial.setCertDate(new Date());
}
if (StrUtil.isNotBlank(tblTradeMeterial.getModelChange())){
tblTradeMeterial.setModelChangeDate(new Date());
}
if (StrUtil.isNotBlank(tblTradeMeterial.getOther())){
tblTradeMeterial.setOtherDate(new Date());
}
tblTradeMeterialService.save(tblTradeMeterial);
TblTradeInventory record = new TblTradeInventory(tblTradeMeterial);
tblTradeInventoryService.save(record);
... ...
... ... @@ -318,32 +318,33 @@ public class TblTradePriceInquiryController {
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<TblTradePriceInquiryPage> list = ExcelImportUtil.importExcel(file.getInputStream(), TblTradePriceInquiryPage.class, params);
for (TblTradePriceInquiryPage page : list) {
TblTradePriceInquiry po = new TblTradePriceInquiry();
BeanUtils.copyProperties(page, po);
tblTradePriceInquiryService.saveMain(po, page.getTblTradeTenderInfoList());
}
return Result.OK("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
log.error(e.getMessage(),e);
return Result.error("文件导入失败:"+e.getMessage());
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println(fileMap);
// for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// // 获取上传文件对象
// MultipartFile file = entity.getValue();
// ImportParams params = new ImportParams();
// params.setTitleRows(2);
// params.setHeadRows(1);
// params.setNeedSave(true);
// try {
// List<TblTradePriceInquiryPage> list = ExcelImportUtil.importExcel(file.getInputStream(), TblTradePriceInquiryPage.class, params);
// for (TblTradePriceInquiryPage page : list) {
// TblTradePriceInquiry po = new TblTradePriceInquiry();
// BeanUtils.copyProperties(page, po);
// tblTradePriceInquiryService.saveMain(po, page.getTblTradeTenderInfoList());
// }
// return Result.OK("文件导入成功!数据行数:" + list.size());
// } catch (Exception e) {
// log.error(e.getMessage(),e);
// return Result.error("文件导入失败:"+e.getMessage());
// } finally {
// try {
// file.getInputStream().close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// }
return Result.OK("文件导入失败!");
}
... ...
package org.jeecg.modules.erp.trade.controller;
import com.alibaba.excel.ExcelReader;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.jeecg.common.system.query.QueryGenerator;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.erp.trade.vo.TblTradeBidSubPage;
import org.jeecgframework.poi.util.ExcelUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo;
import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
import org.jeecg.modules.erp.trade.entity.TblTradeTenderInfo;
import org.jeecg.modules.erp.trade.service.ITblTradeTenderInfoService;
import org.jeecg.modules.erp.trade.service.ITblTradeInquiryInfoService;
import org.jeecg.modules.erp.trade.service.ITblTradeBidSubService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: 贸易招标信息
* @Author: jeecg-boot
* @Date: 2025-02-22
* @Version: V1.0
*/
@Api(tags="贸易招标信息")
@RestController
@RequestMapping("/trade/tblTradeTenderInfo")
@Slf4j
public class TblTradeTenderInfoController extends JeecgController<TblTradeTenderInfo, ITblTradeTenderInfoService> {
@Autowired
private ITblTradeTenderInfoService tblTradeTenderInfoService;
@Autowired
private ITblTradeInquiryInfoService tblTradeInquiryInfoService;
@Autowired
private ITblTradeBidSubService tblTradeBidSubService;
/*---------------------------------主表处理-begin-------------------------------------*/
/**
* 分页列表查询
* @param tblTradeTenderInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "贸易招标信息-分页列表查询")
@ApiOperation(value="贸易招标信息-分页列表查询", notes="贸易招标信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TblTradeTenderInfo>> queryPageList(TblTradeTenderInfo tblTradeTenderInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TblTradeTenderInfo> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeTenderInfo, req.getParameterMap());
Page<TblTradeTenderInfo> page = new Page<TblTradeTenderInfo>(pageNo, pageSize);
IPage<TblTradeTenderInfo> pageList = tblTradeTenderInfoService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
* @param tblTradeTenderInfo
* @return
*/
@AutoLog(value = "贸易招标信息-添加")
@ApiOperation(value="贸易招标信息-添加", notes="贸易招标信息-添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TblTradeTenderInfo tblTradeTenderInfo) {
tblTradeTenderInfoService.save(tblTradeTenderInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
* @param tblTradeTenderInfo
* @return
*/
@AutoLog(value = "贸易招标信息-编辑")
@ApiOperation(value="贸易招标信息-编辑", notes="贸易招标信息-编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TblTradeTenderInfo tblTradeTenderInfo) {
tblTradeTenderInfoService.updateById(tblTradeTenderInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
* @param id
* @return
*/
@AutoLog(value = "贸易招标信息-通过id删除")
@ApiOperation(value="贸易招标信息-通过id删除", notes="贸易招标信息-通过id删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
tblTradeTenderInfoService.delMain(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
* @param ids
* @return
*/
@AutoLog(value = "贸易招标信息-批量删除")
@ApiOperation(value="贸易招标信息-批量删除", notes="贸易招标信息-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.tblTradeTenderInfoService.delBatchMain(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 导出
* @return
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TblTradeTenderInfo tblTradeTenderInfo) {
return super.exportXls(request, tblTradeTenderInfo, TblTradeTenderInfo.class, "贸易招标信息");
}
/**
* 导入
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(6);
params.setHeadRows(1);
params.setNeedSave(true);
try {
Workbook workbook = WorkbookFactory.create(file.getInputStream());
Sheet sheetAt = workbook.getSheetAt(0);
String xjbswjh = sheetAt.getRow(0).getCell(1).getStringCellValue();
String xmlx = sheetAt.getRow(1).getCell(1).getStringCellValue();
String shdz = sheetAt.getRow(2).getCell(1).getStringCellValue();
String yxdj = sheetAt.getRow(3).getCell(1).getStringCellValue();
String xjwcrq = sheetAt.getRow(4).getCell(1).getStringCellValue();
String bdlx = sheetAt.getRow(5).getCell(1).getStringCellValue();
List<TblTradeTenderInfo> list = ExcelImportUtil.importExcel(file.getInputStream(), TblTradeTenderInfo.class, params);
for (TblTradeTenderInfo page : list) {
page.setXjbswjh(xjbswjh);
page.setXmlx(xmlx);
page.setShdz(shdz);
page.setYxdj(yxdj);
page.setXjjhwcsj(xjwcrq);
page.setBdlx(bdlx);
}
tblTradeTenderInfoService.saveUploadData(list);
return Result.OK("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
log.error(e.getMessage(),e);
return Result.error("文件导入失败:"+e.getMessage());
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.OK("文件导入失败!");
// return super.importExcel(request, response, TblTradeTenderInfo.class);
}
/*---------------------------------主表处理-end-------------------------------------*/
/*--------------------------------子表处理-询价明细表-begin----------------------------------------------*/
/**
* 通过主表ID查询
* @return
*/
//@AutoLog(value = "询价明细表-通过主表ID查询")
@ApiOperation(value="询价明细表-通过主表ID查询", notes="询价明细表-通过主表ID查询")
@GetMapping(value = "/listTblTradeInquiryInfoByMainId")
public Result<IPage<TblTradeInquiryInfo>> listTblTradeInquiryInfoByMainId(TblTradeInquiryInfo tblTradeInquiryInfo,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TblTradeInquiryInfo> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeInquiryInfo, req.getParameterMap());
Page<TblTradeInquiryInfo> page = new Page<TblTradeInquiryInfo>(pageNo, pageSize);
IPage<TblTradeInquiryInfo> pageList = tblTradeInquiryInfoService.page(page, queryWrapper);
return Result.OK(new Page<>());
}
/**
* 添加
* @param tblTradeInquiryInfo
* @return
*/
@AutoLog(value = "询价明细表-添加")
@ApiOperation(value="询价明细表-添加", notes="询价明细表-添加")
@PostMapping(value = "/addTblTradeInquiryInfo")
public Result<String> addTblTradeInquiryInfo(@RequestBody TblTradeInquiryInfo tblTradeInquiryInfo) {
tblTradeInquiryInfoService.save(tblTradeInquiryInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
* @param tblTradeInquiryInfo
* @return
*/
@AutoLog(value = "询价明细表-编辑")
@ApiOperation(value="询价明细表-编辑", notes="询价明细表-编辑")
@RequestMapping(value = "/editTblTradeInquiryInfo", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> editTblTradeInquiryInfo(@RequestBody TblTradeInquiryInfo tblTradeInquiryInfo) {
tblTradeInquiryInfoService.updateById(tblTradeInquiryInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
* @param id
* @return
*/
@AutoLog(value = "询价明细表-通过id删除")
@ApiOperation(value="询价明细表-通过id删除", notes="询价明细表-通过id删除")
@DeleteMapping(value = "/deleteTblTradeInquiryInfo")
public Result<String> deleteTblTradeInquiryInfo(@RequestParam(name="id",required=true) String id) {
tblTradeInquiryInfoService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
* @param ids
* @return
*/
@AutoLog(value = "询价明细表-批量删除")
@ApiOperation(value="询价明细表-批量删除", notes="询价明细表-批量删除")
@DeleteMapping(value = "/deleteBatchTblTradeInquiryInfo")
public Result<String> deleteBatchTblTradeInquiryInfo(@RequestParam(name="ids",required=true) String ids) {
this.tblTradeInquiryInfoService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 导出
* @return
*/
@RequestMapping(value = "/exportTblTradeInquiryInfo")
public ModelAndView exportTblTradeInquiryInfo(HttpServletRequest request, TblTradeInquiryInfo tblTradeInquiryInfo) {
// Step.1 组装查询条件
QueryWrapper<TblTradeInquiryInfo> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeInquiryInfo, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<TblTradeInquiryInfo> pageList = tblTradeInquiryInfoService.list(queryWrapper);
List<TblTradeInquiryInfo> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//此处设置的filename无效,前端会重更新设置一下
mv.addObject(NormalExcelConstants.FILE_NAME, "询价明细表");
mv.addObject(NormalExcelConstants.CLASS, TblTradeInquiryInfo.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("询价明细表报表", "导出人:" + sysUser.getRealname(), "询价明细表"));
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
return mv;
}
/**
* 导入
* @return
*/
@RequestMapping(value = "/importTblTradeInquiryInfo/{mainId}")
public Result<?> importTblTradeInquiryInfo(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<TblTradeInquiryInfo> list = ExcelImportUtil.importExcel(file.getInputStream(), TblTradeInquiryInfo.class, params);
for (TblTradeInquiryInfo temp : list) {
temp.setTradeId(mainId);
}
long start = System.currentTimeMillis();
tblTradeInquiryInfoService.saveBatch(list);
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
return Result.OK("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("文件导入失败:" + e.getMessage());
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
/*--------------------------------子表处理-询价明细表-end----------------------------------------------*/
/*--------------------------------子表处理-投标表-begin----------------------------------------------*/
/**
* 通过主表ID查询
* @return
*/
//@AutoLog(value = "投标表-通过主表ID查询")
@ApiOperation(value="投标表-通过主表ID查询", notes="投标表-通过主表ID查询")
@GetMapping(value = "/listTblTradeBidSubByMainId")
public Result<IPage<TblTradeBidSub>> listTblTradeBidSubByMainId(TblTradeBidSub tblTradeBidSub,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TblTradeBidSub> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidSub, req.getParameterMap());
Page<TblTradeBidSub> page = new Page<TblTradeBidSub>(pageNo, pageSize);
IPage<TblTradeBidSub> pageList = tblTradeBidSubService.page(page, queryWrapper);
return Result.OK(new Page<>());
}
/**
* 添加
* @param tblTradeBidSub
* @return
*/
@AutoLog(value = "投标表-添加")
@ApiOperation(value="投标表-添加", notes="投标表-添加")
@PostMapping(value = "/addTblTradeBidSub")
public Result<String> addTblTradeBidSub(@RequestBody TblTradeBidSub tblTradeBidSub) {
tblTradeBidSubService.save(tblTradeBidSub);
return Result.OK("添加成功!");
}
/**
* 编辑
* @param tblTradeBidSub
* @return
*/
@AutoLog(value = "投标表-编辑")
@ApiOperation(value="投标表-编辑", notes="投标表-编辑")
@RequestMapping(value = "/editTblTradeBidSub", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> editTblTradeBidSub(@RequestBody TblTradeBidSub tblTradeBidSub) {
tblTradeBidSubService.updateById(tblTradeBidSub);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
* @param id
* @return
*/
@AutoLog(value = "投标表-通过id删除")
@ApiOperation(value="投标表-通过id删除", notes="投标表-通过id删除")
@DeleteMapping(value = "/deleteTblTradeBidSub")
public Result<String> deleteTblTradeBidSub(@RequestParam(name="id",required=true) String id) {
tblTradeBidSubService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
* @param ids
* @return
*/
@AutoLog(value = "投标表-批量删除")
@ApiOperation(value="投标表-批量删除", notes="投标表-批量删除")
@DeleteMapping(value = "/deleteBatchTblTradeBidSub")
public Result<String> deleteBatchTblTradeBidSub(@RequestParam(name="ids",required=true) String ids) {
this.tblTradeBidSubService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 导出
* @return
*/
@RequestMapping(value = "/exportTblTradeBidSub")
public ModelAndView exportTblTradeBidSub(HttpServletRequest request, TblTradeBidSub tblTradeBidSub) {
// Step.1 组装查询条件
QueryWrapper<TblTradeBidSub> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidSub, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<TblTradeBidSub> pageList = tblTradeBidSubService.list(queryWrapper);
List<TblTradeBidSub> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//此处设置的filename无效,前端会重更新设置一下
mv.addObject(NormalExcelConstants.FILE_NAME, "投标表");
mv.addObject(NormalExcelConstants.CLASS, TblTradeBidSub.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("投标表报表", "导出人:" + sysUser.getRealname(), "投标表"));
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
return mv;
}
/**
* 导入
* @return
*/
@RequestMapping(value = "/importTblTradeBidSub/{mainId}")
public Result<?> importTblTradeBidSub(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<TblTradeBidSub> list = ExcelImportUtil.importExcel(file.getInputStream(), TblTradeBidSub.class, params);
for (TblTradeBidSub temp : list) {
temp.setTradeId(mainId);
}
long start = System.currentTimeMillis();
tblTradeBidSubService.saveBatch(list);
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
return Result.OK("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("文件导入失败:" + e.getMessage());
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
/*--------------------------------子表处理-投标表-end----------------------------------------------*/
}
... ...
... ... @@ -232,6 +232,24 @@ public class TblTradeBidSub implements Serializable {
@ApiModelProperty(value = "供应商评级")
private java.lang.String gyspj;
/**采购单位*/
@Excel(name = "采购单位", width = 15)
@ApiModelProperty(value = "采购单位")
private java.lang.String cgdw;
/**联系人*/
@Excel(name = "联系人", width = 15)
@ApiModelProperty(value = "联系人")
private java.lang.String lxr;
/**供应商评级*/
@Excel(name = "SRM编码", width = 15)
@ApiModelProperty(value = "SRM编码")
private java.lang.String srm;
/**供应商评级*/
@Excel(name = "需求单位", width = 15)
@ApiModelProperty(value = "需求单位")
private java.lang.String zbxqdw;
@TableField(exist = false)
private TblTradeTenderInfo tenderInfo;
... ...
... ... @@ -55,11 +55,13 @@ public class TblTradeTenderInfo implements Serializable {
@ApiModelProperty(value = "招标号")
private java.lang.String tenderNo;
/**物料编码*/
@Excel(name = "物料编码", width = 15)
@Excel(name = "物料编码\n" +
"(非必填项)", width = 15)
@ApiModelProperty(value = "物料编码")
private java.lang.String code;
/**标段(包)名称*/
@Excel(name = "标段(包)名称", width = 15)
@Excel(name = "标段(包)名称\n" +
"(非必填项)", width = 15)
@ApiModelProperty(value = "标段(包)名称")
private java.lang.String tenderName;
/**物料长描述*/
... ... @@ -85,11 +87,11 @@ public class TblTradeTenderInfo implements Serializable {
@ApiModelProperty(value = "品牌")
private java.lang.String pinpai;
/**税率*/
@Excel(name = "税率", width = 15)
@Excel(name = "税率(%)", width = 15)
@ApiModelProperty(value = "税率")
private java.lang.String sl;
/**响应单价*/
@Excel(name = "响应单价", width = 15)
@Excel(name = "响应单价(不含税)", width = 15)
@ApiModelProperty(value = "响应单价")
private java.lang.String xydj;
/**响应数量*/
... ...
... ... @@ -14,4 +14,20 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TblTradeBidSubMapper extends BaseMapper<TblTradeBidSub> {
/**
* 通过主表id删除子表数据
*
* @param mainId 主表id
* @return boolean
*/
public boolean deleteByMainId(@Param("mainId") String mainId);
/**
* 通过主表id查询子表数据
*
* @param mainId 主表id
* @return List<TblTradeBidSub>
*/
public List<TblTradeBidSub> selectByMainId(@Param("mainId") String mainId);
}
... ...
... ... @@ -2,4 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.erp.trade.mapper.TblTradeBidSubMapper">
<delete id="deleteByMainId" parameterType="java.lang.String">
DELETE
FROM tbl_trade_bid_sub
WHERE
trade_id = #{mainId} </delete>
<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.erp.trade.entity.TblTradeBidSub">
SELECT *
FROM tbl_trade_bid_sub
WHERE
trade_id = #{mainId} </select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -45,4 +45,12 @@ public interface ITblTradeBidSubService extends IService<TblTradeBidSub> {
*/
public void delBatchMain (Collection<? extends Serializable> idList);
/**
* 通过主表id查询子表数据
*
* @param mainId 主表id
* @return List<TblTradeBidSub>
*/
public List<TblTradeBidSub> selectByMainId(String mainId);
}
... ...
package org.jeecg.modules.erp.trade.service;
import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo;
import org.jeecg.modules.erp.trade.entity.TblTradeTenderInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
... ... @@ -19,4 +24,21 @@ public interface ITblTradeTenderInfoService extends IService<TblTradeTenderInfo>
* @return List<TblTradeTenderInfo>
*/
public List<TblTradeTenderInfo> selectByMainId(String mainId);
/**
* 删除一对多
*
* @param id
*/
public void delMain (String id);
/**
* 批量删除一对多
*
* @param idList
*/
public void delBatchMain (Collection<? extends Serializable> idList);
void saveUploadData(List<TblTradeTenderInfo> list);
}
... ...
... ... @@ -74,4 +74,9 @@ public class TblTradeBidSubServiceImpl extends ServiceImpl<TblTradeBidSubMapper,
}
}
@Override
public List<TblTradeBidSub> selectByMainId(String mainId) {
return tblTradeBidSubMapper.selectByMainId(mainId);
}
}
... ...
package org.jeecg.modules.erp.trade.service.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo;
import org.jeecg.modules.erp.trade.entity.TblTradePriceInquiry;
import org.jeecg.modules.erp.trade.entity.TblTradeTenderInfo;
import org.jeecg.modules.erp.trade.mapper.TblTradeBidSubMapper;
import org.jeecg.modules.erp.trade.mapper.TblTradeInquiryInfoMapper;
import org.jeecg.modules.erp.trade.mapper.TblTradePriceInquiryMapper;
import org.jeecg.modules.erp.trade.mapper.TblTradeTenderInfoMapper;
import org.jeecg.modules.erp.trade.service.ITblTradeBidSubService;
import org.jeecg.modules.erp.trade.service.ITblTradeTenderInfoService;
import org.springframework.stereotype.Service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 贸易招标信息
... ... @@ -19,9 +37,75 @@ public class TblTradeTenderInfoServiceImpl extends ServiceImpl<TblTradeTenderInf
@Autowired
private TblTradeTenderInfoMapper tblTradeTenderInfoMapper;
@Autowired
private TblTradeInquiryInfoMapper tblTradeInquiryInfoMapper;
@Autowired
private TblTradeBidSubMapper tblTradeBidSubMapper;
@Autowired
private ITblTradeBidSubService tblTradeBidSubService;
@Autowired
private TblTradePriceInquiryMapper tblTradePriceInquiryMapper;
@Override
public List<TblTradeTenderInfo> selectByMainId(String mainId) {
return tblTradeTenderInfoMapper.selectByMainId(mainId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delMain(String id) {
tblTradeInquiryInfoMapper.deleteByMainId(id);
tblTradeBidSubMapper.deleteByMainId(id);
tblTradeTenderInfoMapper.deleteById(id);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delBatchMain(Collection<? extends Serializable> idList) {
for(Serializable id:idList) {
tblTradeInquiryInfoMapper.deleteByMainId(id.toString());
tblTradeBidSubMapper.deleteByMainId(id.toString());
tblTradeTenderInfoMapper.deleteById(id);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveUploadData(List<TblTradeTenderInfo> list) {
Map<String,Object> map = new HashMap<>();
map.put("xjbswjh",list.get(0).getXjbswjh());
// 删除同标书号的数据
tblTradeTenderInfoMapper.deleteByMap(map);
this.saveBatch(list);
// 保存标书信息
tblTradePriceInquiryMapper.deleteByMap(map);
TblTradePriceInquiry priceInquiry = new TblTradePriceInquiry();
priceInquiry.setDanhao("BSZXJ"+ DatePattern.PURE_DATETIME_FORMAT.format(new Date()));
priceInquiry.setYxdj(list.get(0).getYxdj());
priceInquiry.setXjbswjh(list.get(0).getXjbswjh());
priceInquiry.setXjwcrq(list.get(0).getXjjhwcsj());
priceInquiry.setXmlx(list.get(0).getXmlx());
priceInquiry.setShdz(list.get(0).getShdz());
priceInquiry.setXdzt("未完成");
tblTradePriceInquiryMapper.insert(priceInquiry);
// 保存sub表
tblTradeBidSubMapper.deleteByMap(map);
List<TblTradeBidSub> bidSubList = new ArrayList<>();
list.forEach(e->{
TblTradeBidSub bidSub = new TblTradeBidSub();
bidSub.setTradeId(e.getId());
bidSub.setXjbswjh(e.getXjbswjh());
bidSub.setWlbm(e.getCode());
bidSub.setMiaoshu(e.getMiaoshu());
bidSubList.add(bidSub);
});
tblTradeBidSubService.saveBatch(bidSubList);
}
}
... ...
package org.jeecg.modules.erp.trade.vo;
import java.util.List;
import org.jeecg.modules.erp.trade.entity.TblTradeTenderInfo;
import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo;
import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @Description: 贸易招标信息
* @Author: jeecg-boot
* @Date: 2025-02-22
* @Version: V1.0
*/
@Data
@ApiModel(value="tbl_trade_tender_infoPage对象", description="贸易招标信息")
public class TblTradeTenderInfoPage {
/**主键*/
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**招标号*/
@Excel(name = "招标号", width = 15)
@ApiModelProperty(value = "招标号")
private String tenderNo;
/**物料编码*/
@Excel(name = "物料编码", width = 15)
@ApiModelProperty(value = "物料编码")
private String code;
/**标段(包)名称*/
@Excel(name = "标段(包)名称", width = 15)
@ApiModelProperty(value = "标段(包)名称")
private String tenderName;
/**物料长描述*/
@Excel(name = "物料长描述", width = 15)
@ApiModelProperty(value = "物料长描述")
private String miaoshu;
/**计量单位*/
@Excel(name = "计量单位", width = 15)
@ApiModelProperty(value = "计量单位")
private String jldw;
/**需求数量*/
@Excel(name = "需求数量", width = 15)
@ApiModelProperty(value = "需求数量")
private String xqsl;
/**需求交货期*/
@Excel(name = "需求交货期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "需求交货期")
private Date xqjhq;
/**品牌*/
@Excel(name = "品牌", width = 15)
@ApiModelProperty(value = "品牌")
private String pinpai;
/**税率*/
@Excel(name = "税率", width = 15)
@ApiModelProperty(value = "税率")
private String sl;
/**响应单价*/
@Excel(name = "响应单价", width = 15)
@ApiModelProperty(value = "响应单价")
private String xydj;
/**响应数量*/
@Excel(name = "响应数量", width = 15)
@ApiModelProperty(value = "响应数量")
private String xysl;
/**响应交货期*/
@Excel(name = "响应交货期", width = 15)
@ApiModelProperty(value = "响应交货期")
private String xyjhq;
/**响应说明*/
@Excel(name = "响应说明", width = 15)
@ApiModelProperty(value = "响应说明")
private String xysm;
/**响应品牌*/
@Excel(name = "响应品牌", width = 15)
@ApiModelProperty(value = "响应品牌")
private String xypp;
/**响应币种*/
@Excel(name = "响应币种", width = 15)
@ApiModelProperty(value = "响应币种")
private String xybz;
/**交货期否决项*/
@Excel(name = "交货期否决项", width = 15)
@ApiModelProperty(value = "交货期否决项")
private String jhqfjx;
/**付款方式否决项*/
@Excel(name = "付款方式否决项", width = 15)
@ApiModelProperty(value = "付款方式否决项")
private String fkfsfjx;
/**规格型号否决项*/
@Excel(name = "规格型号否决项", width = 15)
@ApiModelProperty(value = "规格型号否决项")
private String ggxhfjx;
/**品牌否决项*/
@Excel(name = "品牌否决项", width = 15)
@ApiModelProperty(value = "品牌否决项")
private String ppfjx;
/**需求单位*/
@Excel(name = "需求单位", width = 15)
@ApiModelProperty(value = "需求单位")
private String xqdw;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String bz;
/**询价标书文件号*/
@Excel(name = "询价标书文件号", width = 15)
@ApiModelProperty(value = "询价标书文件号")
private String xjbswjh;
/**项目类型*/
@Excel(name = "项目类型", width = 15)
@ApiModelProperty(value = "项目类型")
private String xmlx;
/**送货地址*/
@Excel(name = "送货地址", width = 15)
@ApiModelProperty(value = "送货地址")
private String shdz;
/**优先等级*/
@Excel(name = "优先等级", width = 15)
@ApiModelProperty(value = "优先等级")
private String yxdj;
/**询价计划完成日期*/
@Excel(name = "询价计划完成日期", width = 15)
@ApiModelProperty(value = "询价计划完成日期")
private String xjjhwcsj;
/**标的类型*/
@Excel(name = "标的类型", width = 15)
@ApiModelProperty(value = "标的类型")
private String bdlx;
/**状态*/
@Excel(name = "状态", width = 15)
@ApiModelProperty(value = "状态")
private String status;
@ExcelCollection(name="询价明细表")
@ApiModelProperty(value = "询价明细表")
private List<TblTradeInquiryInfo> tblTradeInquiryInfoList;
@ExcelCollection(name="投标表")
@ApiModelProperty(value = "投标表")
private List<TblTradeBidSub> tblTradeBidSubList;
}
... ...