作者 lixiang

1、中标逻辑 修改

@@ -13,6 +13,7 @@ import org.jeecg.common.api.vo.Result; @@ -13,6 +13,7 @@ import org.jeecg.common.api.vo.Result;
13 import org.jeecg.common.system.query.QueryGenerator; 13 import org.jeecg.common.system.query.QueryGenerator;
14 import org.jeecg.common.util.oConvertUtils; 14 import org.jeecg.common.util.oConvertUtils;
15 import org.jeecg.modules.erp.trade.entity.TblTradeBidMaterialDetails; 15 import org.jeecg.modules.erp.trade.entity.TblTradeBidMaterialDetails;
  16 +import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
16 import org.jeecg.modules.erp.trade.service.ITblTradeBidMaterialDetailsService; 17 import org.jeecg.modules.erp.trade.service.ITblTradeBidMaterialDetailsService;
17 18
18 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 19 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -20,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; @@ -20,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
20 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 21 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
21 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
22 23
  24 +import org.jeecg.modules.erp.trade.service.ITblTradeBidSubService;
23 import org.jeecgframework.poi.excel.ExcelImportUtil; 25 import org.jeecgframework.poi.excel.ExcelImportUtil;
24 import org.jeecgframework.poi.excel.def.NormalExcelConstants; 26 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
25 import org.jeecgframework.poi.excel.entity.ExportParams; 27 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -49,6 +51,8 @@ import org.jeecg.common.aspect.annotation.AutoLog; @@ -49,6 +51,8 @@ import org.jeecg.common.aspect.annotation.AutoLog;
49 public class TblTradeBidMaterialDetailsController extends JeecgController<TblTradeBidMaterialDetails, ITblTradeBidMaterialDetailsService> { 51 public class TblTradeBidMaterialDetailsController extends JeecgController<TblTradeBidMaterialDetails, ITblTradeBidMaterialDetailsService> {
50 @Autowired 52 @Autowired
51 private ITblTradeBidMaterialDetailsService tblTradeBidMaterialDetailsService; 53 private ITblTradeBidMaterialDetailsService tblTradeBidMaterialDetailsService;
  54 + @Autowired
  55 + private ITblTradeBidSubService tblTradeBidSubService;
52 56
53 /** 57 /**
54 * 分页列表查询 58 * 分页列表查询
@@ -69,6 +73,13 @@ public class TblTradeBidMaterialDetailsController extends JeecgController<TblTra @@ -69,6 +73,13 @@ public class TblTradeBidMaterialDetailsController extends JeecgController<TblTra
69 QueryWrapper<TblTradeBidMaterialDetails> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidMaterialDetails, req.getParameterMap()); 73 QueryWrapper<TblTradeBidMaterialDetails> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidMaterialDetails, req.getParameterMap());
70 Page<TblTradeBidMaterialDetails> page = new Page<TblTradeBidMaterialDetails>(pageNo, pageSize); 74 Page<TblTradeBidMaterialDetails> page = new Page<TblTradeBidMaterialDetails>(pageNo, pageSize);
71 IPage<TblTradeBidMaterialDetails> pageList = tblTradeBidMaterialDetailsService.page(page, queryWrapper); 75 IPage<TblTradeBidMaterialDetails> pageList = tblTradeBidMaterialDetailsService.page(page, queryWrapper);
  76 +
  77 +// QueryWrapper<TblTradeBidSub> queryWrapper = QueryGenerator.initQueryWrapper(tblTradeBidSub, req.getParameterMap());
  78 +// Page<TblTradeBidSub> page = new Page<TblTradeBidSub>(pageNo, pageSize);
  79 +// IPage<TblTradeBidSub> pageList = tblTradeBidSubService.page(page, queryWrapper);
  80 +
  81 +
  82 +
72 return Result.OK(pageList); 83 return Result.OK(pageList);
73 } 84 }
74 85
@@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletResponse; @@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletResponse;
14 14
15 import cn.hutool.core.util.NumberUtil; 15 import cn.hutool.core.util.NumberUtil;
16 import cn.hutool.core.util.StrUtil; 16 import cn.hutool.core.util.StrUtil;
  17 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
17 import org.apache.commons.lang3.StringUtils; 18 import org.apache.commons.lang3.StringUtils;
18 import org.apache.poi.ss.usermodel.*; 19 import org.apache.poi.ss.usermodel.*;
19 import org.apache.poi.xssf.usermodel.XSSFWorkbook; 20 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -129,13 +130,15 @@ public class TblTradePriceInquiryController { @@ -129,13 +130,15 @@ public class TblTradePriceInquiryController {
129 //@AutoLog(value = "询价表-分页列表查询") 130 //@AutoLog(value = "询价表-分页列表查询")
130 @ApiOperation(value = "中标列表查询", notes = "中标列表查询") 131 @ApiOperation(value = "中标列表查询", notes = "中标列表查询")
131 @GetMapping(value = "/winBidList") 132 @GetMapping(value = "/winBidList")
132 - public Result<IPage<Map<String, Object>>> queryWinBidList(TblTradeBidMaterialDetails tblTradeBidMaterialDetails, 133 + public Result<IPage<Map<String, Object>>> queryWinBidList(TblTradeBidSub tblTradeBidSub,
133 @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, 134 @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
134 @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, 135 @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
135 HttpServletRequest req) { 136 HttpServletRequest req) {
136 137
137 Page<TblTradeBidMaterialDetails> page = new Page<>(pageNo, pageSize); 138 Page<TblTradeBidMaterialDetails> page = new Page<>(pageNo, pageSize);
138 - IPage<Map<String, Object>> pageList = tblTradeBidMaterialDetailsService.pageList(page, tblTradeBidMaterialDetails); 139 + IPage<Map<String, Object>> pageList = tblTradeBidSubService.selectWinBidInfo(page, tblTradeBidSub);
  140 +
  141 +// IPage<Map<String, Object>> pageList = tblTradeBidMaterialDetailsService.pageList(page, tblTradeBidMaterialDetails);
139 return Result.OK(pageList); 142 return Result.OK(pageList);
140 } 143 }
141 144
@@ -299,8 +302,10 @@ public class TblTradePriceInquiryController { @@ -299,8 +302,10 @@ public class TblTradePriceInquiryController {
299 Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 302 Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
300 303
301 // 提取采购项目编号 304 // 提取采购项目编号
302 - String projectNumber = sheet.getRow(1).getCell(2).getStringCellValue();  
303 - String bidDate = sheet.getRow(2).getCell(6).getStringCellValue(); 305 +
  306 + String projectNumber = cellTypeToString(sheet.getRow(1).getCell(2));
  307 + String bidDate = cellTypeToString(sheet.getRow(2).getCell(6));
  308 +
304 QueryWrapper<TblTradeBidSub> queryWrapper = new QueryWrapper<>(); 309 QueryWrapper<TblTradeBidSub> queryWrapper = new QueryWrapper<>();
305 queryWrapper.eq("xjbswjh", projectNumber); 310 queryWrapper.eq("xjbswjh", projectNumber);
306 List<TblTradeBidSub> tblTradeBidSubs = tblTradeBidSubService.list(queryWrapper); 311 List<TblTradeBidSub> tblTradeBidSubs = tblTradeBidSubService.list(queryWrapper);
@@ -311,7 +316,7 @@ public class TblTradePriceInquiryController { @@ -311,7 +316,7 @@ public class TblTradePriceInquiryController {
311 //标段(包)名称 物料编码 316 //标段(包)名称 物料编码
312 //SRM编码 物料长描述 单位 品牌 数量 中标单价 税率(%) 总价(不含税,元) 需求单位 交货时间 合同编号 合同日期 317 //SRM编码 物料长描述 单位 品牌 数量 中标单价 税率(%) 总价(不含税,元) 需求单位 交货时间 合同编号 合同日期
313 ArrayList<TblTradeBidMaterialDetails> tblTradeBidMaterialDetails = new ArrayList<>(); 318 ArrayList<TblTradeBidMaterialDetails> tblTradeBidMaterialDetails = new ArrayList<>();
314 - for (int i = 10; i < sheet.getLastRowNum(); i++) { 319 + for (int i = 10; i <= sheet.getLastRowNum(); i++) {
315 Row row = sheet.getRow(i); 320 Row row = sheet.getRow(i);
316 if (row == null) continue; 321 if (row == null) continue;
317 //物料编码 322 //物料编码
@@ -347,7 +352,7 @@ public class TblTradePriceInquiryController { @@ -347,7 +352,7 @@ public class TblTradePriceInquiryController {
347 materialInfo.setRequiredDeliveryTime(fmt.format(dateCellValue)); // 交货时间 352 materialInfo.setRequiredDeliveryTime(fmt.format(dateCellValue)); // 交货时间
348 materialInfo.setDemandUnit(cellTypeToString(row.getCell(11))); // 需求单位 353 materialInfo.setDemandUnit(cellTypeToString(row.getCell(11))); // 需求单位
349 //投标价格 354 //投标价格
350 - if (tblTradeBidSubInfo.getTbjg() != null){ 355 + if (tblTradeBidSubInfo != null && tblTradeBidSubInfo.getTbjg() != null){
351 BigDecimal tbjg = new BigDecimal(tblTradeBidSubInfo.getTbjg()); 356 BigDecimal tbjg = new BigDecimal(tblTradeBidSubInfo.getTbjg());
352 materialInfo.setBidPrice(tbjg); 357 materialInfo.setBidPrice(tbjg);
353 materialInfo.setDiffPrice(tbjg.subtract(zbjg)); 358 materialInfo.setDiffPrice(tbjg.subtract(zbjg));
@@ -356,6 +361,12 @@ public class TblTradePriceInquiryController { @@ -356,6 +361,12 @@ public class TblTradePriceInquiryController {
356 materialInfo.setBidNum(projectNumber); 361 materialInfo.setBidNum(projectNumber);
357 materialInfo.setBidDate(bidDate); 362 materialInfo.setBidDate(bidDate);
358 tblTradeBidMaterialDetails.add(materialInfo); 363 tblTradeBidMaterialDetails.add(materialInfo);
  364 + tblTradeBidSubService.update(
  365 + Wrappers.lambdaUpdate(TblTradeBidSub.class)
  366 + .eq(TblTradeBidSub::getWlbm, materialCode)
  367 + .eq(TblTradeBidSub::getXjbswjh,projectNumber)
  368 + .set(TblTradeBidSub::getSfzb,"1")
  369 + );
359 } 370 }
360 tblTradeBidMaterialDetailsService.saveBatch(tblTradeBidMaterialDetails); 371 tblTradeBidMaterialDetailsService.saveBatch(tblTradeBidMaterialDetails);
361 372
1 package org.jeecg.modules.erp.trade.mapper; 1 package org.jeecg.modules.erp.trade.mapper;
2 2
3 import java.util.List; 3 import java.util.List;
  4 +import java.util.Map;
4 5
  6 +import com.baomidou.mybatisplus.core.metadata.IPage;
  7 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 import org.apache.ibatis.annotations.Param; 8 import org.apache.ibatis.annotations.Param;
  9 +import org.jeecg.modules.erp.trade.entity.TblTradeBidMaterialDetails;
6 import org.jeecg.modules.erp.trade.entity.TblTradeBidSub; 10 import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
7 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 11 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
8 12
@@ -30,4 +34,5 @@ public interface TblTradeBidSubMapper extends BaseMapper<TblTradeBidSub> { @@ -30,4 +34,5 @@ public interface TblTradeBidSubMapper extends BaseMapper<TblTradeBidSub> {
30 */ 34 */
31 public List<TblTradeBidSub> selectByMainId(@Param("mainId") String mainId); 35 public List<TblTradeBidSub> selectByMainId(@Param("mainId") String mainId);
32 36
  37 + IPage<Map<String, Object>> selectWinBidInfo(Page<TblTradeBidMaterialDetails> page,@Param("param") TblTradeBidSub tblTradeBidSub);
33 } 38 }
@@ -13,5 +13,19 @@ @@ -13,5 +13,19 @@
13 FROM tbl_trade_bid_sub 13 FROM tbl_trade_bid_sub
14 WHERE 14 WHERE
15 trade_id = #{mainId} </select> 15 trade_id = #{mainId} </select>
  16 + <select id="selectWinBidInfo" resultType="java.util.Map">
  17 + SELECT
  18 + xjbswjh,
  19 + COUNT(*) AS ljbs,
  20 + SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) AS tbbs,
  21 + SUM(CASE WHEN sfzb = 1 THEN 1 ELSE 0 END) AS zbbs,
  22 + ROUND(SUM(CASE WHEN sfzb = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS zbl
  23 + FROM
  24 + tbl_trade_bid_sub
  25 + GROUP BY
  26 + xjbswjh
  27 + ORDER BY
  28 + xjbswjh;
  29 + </select>
16 30
17 </mapper> 31 </mapper>
1 package org.jeecg.modules.erp.trade.service; 1 package org.jeecg.modules.erp.trade.service;
2 2
  3 +import com.baomidou.mybatisplus.core.metadata.IPage;
  4 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5 +import org.jeecg.modules.erp.trade.entity.TblTradeBidMaterialDetails;
3 import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo; 6 import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo;
4 import org.jeecg.modules.erp.trade.entity.TblTradeBidSub; 7 import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;
5 import com.baomidou.mybatisplus.extension.service.IService; 8 import com.baomidou.mybatisplus.extension.service.IService;
6 import java.io.Serializable; 9 import java.io.Serializable;
7 import java.util.Collection; 10 import java.util.Collection;
8 import java.util.List; 11 import java.util.List;
  12 +import java.util.Map;
9 13
10 /** 14 /**
11 * @Description: 投标表 15 * @Description: 投标表
@@ -59,4 +63,6 @@ public interface ITblTradeBidSubService extends IService<TblTradeBidSub> { @@ -59,4 +63,6 @@ public interface ITblTradeBidSubService extends IService<TblTradeBidSub> {
59 * @param tblTradeInquiryInfoList 63 * @param tblTradeInquiryInfoList
60 */ 64 */
61 void inquiryApproval(TblTradeBidSub tblTradeBidSub, List<TblTradeInquiryInfo> tblTradeInquiryInfoList); 65 void inquiryApproval(TblTradeBidSub tblTradeBidSub, List<TblTradeInquiryInfo> tblTradeInquiryInfoList);
  66 +
  67 + IPage<Map<String, Object>> selectWinBidInfo(Page<TblTradeBidMaterialDetails> page, TblTradeBidSub tblTradeBidSub);
62 } 68 }
@@ -2,11 +2,10 @@ package org.jeecg.modules.erp.trade.service.impl; @@ -2,11 +2,10 @@ package org.jeecg.modules.erp.trade.service.impl;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 4 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5 +import com.baomidou.mybatisplus.core.metadata.IPage;
5 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 6 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
6 -import org.jeecg.modules.erp.trade.entity.TblTradeBidSub;  
7 -import org.jeecg.modules.erp.trade.entity.TblTradeInquiryInfo;  
8 -import org.jeecg.modules.erp.trade.entity.TblTradePriceInquiry;  
9 -import org.jeecg.modules.erp.trade.entity.TblTradeTenderInfo; 7 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8 +import org.jeecg.modules.erp.trade.entity.*;
10 import org.jeecg.modules.erp.trade.mapper.TblTradeInquiryInfoMapper; 9 import org.jeecg.modules.erp.trade.mapper.TblTradeInquiryInfoMapper;
11 import org.jeecg.modules.erp.trade.mapper.TblTradeBidSubMapper; 10 import org.jeecg.modules.erp.trade.mapper.TblTradeBidSubMapper;
12 import org.jeecg.modules.erp.trade.mapper.TblTradePriceInquiryMapper; 11 import org.jeecg.modules.erp.trade.mapper.TblTradePriceInquiryMapper;
@@ -19,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; @@ -19,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
19 import java.io.Serializable; 18 import java.io.Serializable;
20 import java.util.List; 19 import java.util.List;
21 import java.util.Collection; 20 import java.util.Collection;
  21 +import java.util.Map;
22 22
23 /** 23 /**
24 * @Description: 投标表 24 * @Description: 投标表
@@ -105,8 +105,13 @@ public class TblTradeBidSubServiceImpl extends ServiceImpl<TblTradeBidSubMapper, @@ -105,8 +105,13 @@ public class TblTradeBidSubServiceImpl extends ServiceImpl<TblTradeBidSubMapper,
105 } 105 }
106 } 106 }
107 107
  108 + @Override
  109 + public IPage<Map<String, Object>> selectWinBidInfo(Page<TblTradeBidMaterialDetails> page, TblTradeBidSub tblTradeBidSub) {
  110 + return tblTradeBidSubMapper.selectWinBidInfo(page,tblTradeBidSub);
  111 + }
108 112
109 - @Override 113 +
  114 + @Override
110 @Transactional(rollbackFor = Exception.class) 115 @Transactional(rollbackFor = Exception.class)
111 public void delMain(String id) { 116 public void delMain(String id) {
112 tblTradeInquiryInfoMapper.deleteByMainId(id); 117 tblTradeInquiryInfoMapper.deleteByMainId(id);