'11111'
This commit is contained in:
parent
8085815b69
commit
f951c3f19c
|
@ -16,7 +16,8 @@ import com.ruoyi.common.utils.file.FileUploadUtils;
|
|||
import com.ruoyi.common.utils.file.MinioUtil;
|
||||
import com.ruoyi.common.utils.uuid.UUID;
|
||||
import com.ruoyi.framework.changeRecord.ChangeRecordLog;
|
||||
import com.ruoyi.quot.domain.Quot;
|
||||
import com.ruoyi.priceVerification.domain.BidHj;
|
||||
import com.ruoyi.priceVerification.service.IBidHjService;
|
||||
import com.ruoyi.redBook.domain.OAQuot;
|
||||
import com.ruoyi.redBook.domain.RbVersionDateResult;
|
||||
import com.ruoyi.system.service.ISysDeptService;
|
||||
|
@ -57,6 +58,9 @@ public class BidController extends BaseController
|
|||
@Autowired
|
||||
private IBidJsqrService bidJsqrService;
|
||||
|
||||
@Autowired
|
||||
private IBidHjService bidHjService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
|
@ -199,7 +203,7 @@ public class BidController extends BaseController
|
|||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@PreAuthorize("@ss.hasAnyPermi('bid:bid:bidYwyFile,bid:bid:bidTbbFile')")
|
||||
@PreAuthorize("@ss.hasAnyPermi('bid:bid:bidYwyFile,bid:bid:bidTbbFile,bid:bid:bidTbbJsgfFile,jsqrBid:jsqrBid:operateTlUploadFile,jsqrBid:jsqrBid:operateDyUploadFile,jsqrBid:jsqrBid:operateZyUploadFile,jsqrBid:jsqrBid:operateQtUploadFile,bidPriceVerification:bidPriceVerification:uploadFile')")
|
||||
@Log(title = "上传投标附件", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/bidFile")
|
||||
public AjaxResult bidFile(@RequestParam("bidFile") MultipartFile file, @RequestParam("relation_id") String relation_id, @RequestParam("file_type") String file_type) throws Exception
|
||||
|
@ -235,7 +239,7 @@ public class BidController extends BaseController
|
|||
/**
|
||||
* 查询附件列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasAnyPermi('bid:bid:list')")
|
||||
@PreAuthorize("@ss.hasAnyPermi('bid:bid:list,jsqrBid:jsqrBid:list,bidPriceVerification:bidPriceVerification:list')")
|
||||
@GetMapping("/bidFileList")
|
||||
public TableDataInfo bidFileList(BidFile bidFile)
|
||||
{
|
||||
|
@ -461,6 +465,37 @@ public class BidController extends BaseController
|
|||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 报价单提交核价协助
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bid:bid:assistHj')")
|
||||
@Log(title = "投标提交核价协助", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/commitHjBid")
|
||||
public AjaxResult commitHjBid(@RequestBody Bid bid)
|
||||
{
|
||||
|
||||
BidHj bidHj = new BidHj();
|
||||
String bidHjId = UUID.fastUUID().toString();
|
||||
bidHj.setBidHjId(bidHjId);
|
||||
//bidHj.setBidHjCode(IdUtils.createNo("BJD_HJ_",0));
|
||||
String bidHjCode = bidService.getCode("TB_HJD");
|
||||
bidHj.setBidHjCode(bidHjCode);
|
||||
|
||||
bidHj.setBidHjPricingType("30");//核价类型 设置为 标书核价
|
||||
|
||||
bidHj.setCreateBy(getUsername());
|
||||
bidHj.setUpdateBy(getUsername());
|
||||
bidHjService.insertBidHj(bidHj);//生成报价单-核价单
|
||||
|
||||
bid.setBidHjId(bidHjId);
|
||||
bid.setBidHjApprovalStatus("1");//报价单-核价单 状态设置为 协助中
|
||||
bid.setUpdateBy(getUsername());
|
||||
bidService.updateBid(bid);
|
||||
|
||||
//sendNoticeToHjxz(bidHj);
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 投标驳回
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,163 @@
|
|||
package com.ruoyi.web.controller.priceVerification;
|
||||
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.constant.WebsocketConst;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.bid.domain.Bid;
|
||||
import com.ruoyi.bid.service.IBidService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.priceVerification.domain.BidHj;
|
||||
import com.ruoyi.priceVerification.service.IBidHjService;
|
||||
import com.ruoyi.system.service.ISysNoticeService;
|
||||
import com.ruoyi.web.utils.SendNotice.NoticeUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 投标单-核价单Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/bidPriceVerification/bidPriceVerification")
|
||||
public class BidHjController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBidHjService bidHjService;
|
||||
|
||||
@Autowired
|
||||
private IBidService bidService;
|
||||
|
||||
@Autowired
|
||||
private ISysNoticeService noticeService;
|
||||
|
||||
/**
|
||||
* 查询投标单-核价单列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BidHj bidHj)
|
||||
{
|
||||
startPage();
|
||||
List<BidHj> list = bidHjService.selectBidHjList(bidHj);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出投标单-核价单列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:export')")
|
||||
@Log(title = "投标单-核价单导出列表", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, BidHj bidHj)
|
||||
{
|
||||
List<BidHj> list = bidHjService.selectBidHjList(bidHj);
|
||||
ExcelUtil<BidHj> util = new ExcelUtil<BidHj>(BidHj.class);
|
||||
util.exportExcel(response, list, "投标单-核价单数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取投标单-核价单详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:query')")
|
||||
@GetMapping(value = "/{bidHjId}")
|
||||
public AjaxResult getInfo(@PathVariable("bidHjId") String bidHjId)
|
||||
{
|
||||
return success(bidHjService.selectBidHjByBidHjId(bidHjId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增投标单-核价单
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:add')")
|
||||
@Log(title = "投标单-核价单新增", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BidHj bidHj)
|
||||
{
|
||||
return toAjax(bidHjService.insertBidHj(bidHj));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改投标单-核价单
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:edit')")
|
||||
@Log(title = "投标单-核价单修改", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BidHj bidHj)
|
||||
{
|
||||
return toAjax(bidHjService.updateBidHj(bidHj));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除投标单-核价单
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:remove')")
|
||||
@Log(title = "投标单-核价单删除", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{bidHjIds}")
|
||||
public AjaxResult remove(@PathVariable String[] bidHjIds)
|
||||
{
|
||||
return toAjax(bidHjService.deleteBidHjByBidHjIds(bidHjIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 投标单-核价单 提交投标组
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:commit')")
|
||||
@Log(title = "投标单-核价单 提交投标组", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/commitHj")
|
||||
public AjaxResult commitHj(@RequestBody BidHj bidHj) {
|
||||
|
||||
bidHj.setUpdateBy(getUsername());
|
||||
bidHj.setBidHjPricingDate(DateUtils.getNowDate());//投标单-核价单 核价日期设置为 当前日期
|
||||
bidHjService.updateBidHj(bidHj);
|
||||
|
||||
String bidHjId = bidHj.getBidHjId();
|
||||
Bid bid = bidService.selectBidByBidHjId(bidHjId);
|
||||
bid.setBidHjApprovalStatus("2");//投标单-核价单 状态设置为 已协助
|
||||
bidService.updateBid(bid);
|
||||
|
||||
//sendNoticeToBid(bidHj);// 发送给提醒
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送信息-核价协助提交投标组
|
||||
* @param bidHj
|
||||
*/
|
||||
private void sendNoticeToBid(BidHj bidHj){
|
||||
//推送消息
|
||||
LoginUser loginUser = getLoginUser();//当前登陆者
|
||||
//获取发送人-投标组
|
||||
List<String> userIds = noticeService.getSendEmp(WebsocketConst.MSG_SEND_QUOT_BJZ);
|
||||
NoticeUtil.sendNoticesBusiness(loginUser,"有投标单已完成核价协助","单号:"+bidHj.getBidCode(),userIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 投标单-核价单 驳回
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bidPriceVerification:bidPriceVerification:reject')")
|
||||
@Log(title = "投标单-核价单 驳回", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/rejectHj")
|
||||
public AjaxResult rejectHj(@RequestBody BidHj bidHj)
|
||||
{
|
||||
bidHj.setUpdateBy(getUsername());
|
||||
bidHj.setBidHjPricingDate(DateUtils.getNowDate());//投标单-核价单 核价日期设置为 当前日期
|
||||
bidHjService.updateBidHj(bidHj);
|
||||
|
||||
String bidHjId = bidHj.getBidHjId();
|
||||
Bid bid = bidService.selectBidByBidHjId(bidHjId);
|
||||
bid.setBidHjApprovalStatus("3");
|
||||
bidService.updateBid(bid);
|
||||
return success();
|
||||
}
|
||||
}
|
|
@ -605,7 +605,7 @@ public class QuotController extends BaseController
|
|||
String quotHjCode = quotService.getCode("HJD");
|
||||
quotHj.setQuotHjCode(quotHjCode);
|
||||
|
||||
quotHj.setQuotHjPricingType("10");//核价类型 设置为 报价核价
|
||||
quotHj.setQuotHjPricingType("20");//核价类型 设置为 报价核价
|
||||
|
||||
quotHj.setCreateBy(getUsername());
|
||||
quotHj.setUpdateBy(getUsername());
|
||||
|
|
|
@ -167,9 +167,13 @@ public class BidJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_TL");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_TL");
|
||||
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_TL",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
@ -232,9 +236,13 @@ public class BidJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_DY");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_DY");
|
||||
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_DY",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
@ -297,9 +305,13 @@ public class BidJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_ZY");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_ZY");
|
||||
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_ZY",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
@ -363,9 +375,13 @@ public class BidJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_QT");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_QT");
|
||||
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_QT",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
|
|
@ -167,9 +167,13 @@ public class QuotJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_TL");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_TL");
|
||||
redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_TL",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
@ -232,9 +236,13 @@ public class QuotJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_DY");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_DY");
|
||||
redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_DY",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
@ -297,9 +305,13 @@ public class QuotJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_ZY");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_ZY");
|
||||
redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_ZY",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
@ -363,9 +375,13 @@ public class QuotJsqrController extends BaseController
|
|||
|
||||
// 清空redis 协助说明key
|
||||
String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_QT");
|
||||
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
|
||||
if(StringUtils.isNotEmpty(hvalue)){
|
||||
if(currentUser.equals(hvalue)){
|
||||
redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_QT");
|
||||
redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_QT",currentUser);
|
||||
}else{
|
||||
return error("当前有其他用户【"+hvalue+"】正在录入");
|
||||
}
|
||||
}
|
||||
}
|
||||
if("checker".equals(type)){//审核人通过、驳回
|
||||
|
|
|
@ -250,6 +250,10 @@ public class Bid extends BaseEntity
|
|||
@DataName(name = "分派接收人姓名")
|
||||
private String receiveUserNickName;
|
||||
|
||||
/** 投标_投标状态 */
|
||||
@DataName(name = "投标状态",readConverterExp="0=待投标,1=中标,2=未中标,3=流标,4=结果待定")
|
||||
private String bidStatus;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -276,6 +280,13 @@ public class Bid extends BaseEntity
|
|||
private String bidJsqrQtRemark;//技术协助-其他协助说明
|
||||
|
||||
|
||||
/** 核价 */
|
||||
private String bidHjId;//核价单id
|
||||
private String bidHjCode;//核价单号
|
||||
@DataName(name = "核价协助状态",readConverterExp="0=待协助,1=协助中,2=已协助,3=已驳回")
|
||||
private String bidHjApprovalStatus;//核价协助状态
|
||||
private String bidHjPricingDate;//核价日期
|
||||
private String bidHjRemark;//核价备注
|
||||
|
||||
|
||||
|
||||
|
@ -672,6 +683,9 @@ public class Bid extends BaseEntity
|
|||
public String getReceiveUserNickName() { return receiveUserNickName; }
|
||||
|
||||
public void setReceiveUserNickName(String receiveUserNickName) { this.receiveUserNickName = receiveUserNickName; }
|
||||
public String getBidStatus() { return bidStatus; }
|
||||
|
||||
public void setBidStatus(String bidStatus) { this.bidStatus = bidStatus; }
|
||||
public String getBidJsxzApprovalStatus() { return bidJsxzApprovalStatus; }
|
||||
|
||||
public void setBidJsxzApprovalStatus(String bidJsxzApprovalStatus) { this.bidJsxzApprovalStatus = bidJsxzApprovalStatus; }
|
||||
|
@ -714,4 +728,19 @@ public class Bid extends BaseEntity
|
|||
public String getBidJsqrQtRemark() { return bidJsqrQtRemark; }
|
||||
|
||||
public void setBidJsqrQtRemark(String bidJsqrQtRemark) { this.bidJsqrQtRemark = bidJsqrQtRemark; }
|
||||
public String getBidHjId() { return bidHjId; }
|
||||
|
||||
public void setBidHjId(String bidHjId) { this.bidHjId = bidHjId; }
|
||||
public String getBidHjCode() { return bidHjCode; }
|
||||
|
||||
public void setBidHjCode(String bidHjCode) { this.bidHjCode = bidHjCode; }
|
||||
public String getBidHjApprovalStatus() { return bidHjApprovalStatus; }
|
||||
|
||||
public void setBidHjApprovalStatus(String bidHjApprovalStatus) { this.bidHjApprovalStatus = bidHjApprovalStatus; }
|
||||
public String getBidHjPricingDate() { return bidHjPricingDate; }
|
||||
|
||||
public void setBidHjPricingDate(String bidHjPricingDate) { this.bidHjPricingDate = bidHjPricingDate; }
|
||||
public String getBidHjRemark() { return bidHjRemark; }
|
||||
|
||||
public void setBidHjRemark(String bidHjRemark) { this.bidHjRemark = bidHjRemark; }
|
||||
}
|
||||
|
|
|
@ -29,6 +29,13 @@ public interface BidMapper
|
|||
*/
|
||||
Bid selectBidByBidJsqrId(String bidJsqrId);
|
||||
|
||||
/**
|
||||
* 获取投标信息
|
||||
* @param bidHjId
|
||||
* @return
|
||||
*/
|
||||
Bid selectBidByBidHjId(String bidHjId);
|
||||
|
||||
/**
|
||||
* 查询投标信息列表
|
||||
*
|
||||
|
@ -106,4 +113,5 @@ public interface BidMapper
|
|||
* @return
|
||||
*/
|
||||
RbTongLvPrice getTongLvPrice(String rbUid);
|
||||
|
||||
}
|
||||
|
|
|
@ -31,6 +31,14 @@ public interface IBidService
|
|||
*/
|
||||
Bid selectBidByBidJsqrId(String bidJsqrId);
|
||||
|
||||
|
||||
/**
|
||||
* 获取投标信息
|
||||
* @param bidHjId
|
||||
* @return
|
||||
*/
|
||||
Bid selectBidByBidHjId(String bidHjId);
|
||||
|
||||
/**
|
||||
* 查询投标信息列表
|
||||
*
|
||||
|
@ -108,4 +116,5 @@ public interface IBidService
|
|||
* @return
|
||||
*/
|
||||
RbTongLvPrice getTongLvPrice(String rbUid);
|
||||
|
||||
}
|
||||
|
|
|
@ -49,6 +49,14 @@ public class BidServiceImpl implements IBidService
|
|||
return bidMapper.selectBidByBidJsqrId(bidJsqrId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取投标信息
|
||||
* @param bidHjId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Bid selectBidByBidHjId(String bidHjId) { return bidMapper.selectBidByBidHjId(bidHjId); }
|
||||
|
||||
/**
|
||||
* 查询投标信息列表
|
||||
*
|
||||
|
|
|
@ -0,0 +1,156 @@
|
|||
package com.ruoyi.priceVerification.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 投标单-核价单对象 bid_hj
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-16
|
||||
*/
|
||||
public class BidHj extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 核价单Id */
|
||||
private String bidHjId;
|
||||
|
||||
/** 核价单号 */
|
||||
private String bidHjCode;
|
||||
|
||||
/** 核价类型 */
|
||||
private String bidHjPricingType;
|
||||
|
||||
/** 核价日期 */
|
||||
private Date bidHjPricingDate;
|
||||
|
||||
/** 备注 */
|
||||
private String bidHjRemark;
|
||||
|
||||
/** 备注 */
|
||||
private String bidHjApprovalStatus;
|
||||
|
||||
/** 创建人 */
|
||||
private String createName;
|
||||
|
||||
|
||||
/** 投标单信息 */
|
||||
private String bidId;//投标单id
|
||||
private String bidCode;//投标单号
|
||||
private String bidSalesmanName;//业务员
|
||||
private String bidTenderingUnit;//客户
|
||||
private String bidProject;//项目
|
||||
|
||||
/** 技术协助信息 */
|
||||
private String bidJsxzConfirmId;//技术协助-技术确认单id
|
||||
private String bidJsxzGroupValues;//技术协助-分组
|
||||
|
||||
private String bidJsqrTlApprovalStatus;//技术协助-特缆协助状态
|
||||
private String bidJsqrTlRemark;//技术协助-特缆协助说明
|
||||
|
||||
private String bidJsqrDyApprovalStatus;//技术协助-低压协助状态
|
||||
private String bidJsqrDyRemark;//技术协助-低压协助说明
|
||||
|
||||
private String bidJsqrZyApprovalStatus;//技术协助-中压协助状态
|
||||
private String bidJsqrZyRemark;//技术协助-中压协助说明
|
||||
|
||||
private String bidJsqrQtApprovalStatus;//技术协助-其他协助状态
|
||||
private String bidJsqrQtRemark;//技术协助-其他协助说明
|
||||
|
||||
public void setBidHjId(String bidHjId)
|
||||
{
|
||||
this.bidHjId = bidHjId;
|
||||
}
|
||||
|
||||
public String getBidHjId()
|
||||
{
|
||||
return bidHjId;
|
||||
}
|
||||
public void setBidHjCode(String bidHjCode)
|
||||
{
|
||||
this.bidHjCode = bidHjCode;
|
||||
}
|
||||
|
||||
public String getBidHjCode()
|
||||
{
|
||||
return bidHjCode;
|
||||
}
|
||||
public void setBidHjPricingType(String bidHjPricingType)
|
||||
{
|
||||
this.bidHjPricingType = bidHjPricingType;
|
||||
}
|
||||
|
||||
public String getBidHjPricingType()
|
||||
{
|
||||
return bidHjPricingType;
|
||||
}
|
||||
public void setBidHjPricingDate(Date bidHjPricingDate) { this.bidHjPricingDate = bidHjPricingDate; }
|
||||
|
||||
public Date getBidHjPricingDate()
|
||||
{
|
||||
return bidHjPricingDate;
|
||||
}
|
||||
public void setBidHjRemark(String bidHjRemark)
|
||||
{
|
||||
this.bidHjRemark = bidHjRemark;
|
||||
}
|
||||
|
||||
public String getBidHjRemark()
|
||||
{
|
||||
return bidHjRemark;
|
||||
}
|
||||
public String getBidHjApprovalStatus() { return bidHjApprovalStatus; }
|
||||
|
||||
public void setBidHjApprovalStatus(String bidHjApprovalStatus) { this.bidHjApprovalStatus = bidHjApprovalStatus; }
|
||||
public String getCreateName() { return createName; }
|
||||
|
||||
public void setCreateName(String createName) { this.createName = createName; }
|
||||
|
||||
/** 投标单信息 */
|
||||
public String getBidId() { return bidId; }
|
||||
public void setBidId(String bidId) { this.bidId = bidId; }
|
||||
|
||||
public String getBidCode() { return bidCode; }
|
||||
public void setBidCode(String bidCode) { this.bidCode = bidCode; }
|
||||
|
||||
public String getBidSalesmanName() { return bidSalesmanName; }
|
||||
public void setBidSalesmanName(String bidSalesmanName) { this.bidSalesmanName = bidSalesmanName; }
|
||||
|
||||
public String getBidTenderingUnit() { return bidTenderingUnit; }
|
||||
public void setBidTenderingUnit(String bidTenderingUnit) { this.bidTenderingUnit = bidTenderingUnit; }
|
||||
|
||||
public String getBidProject() { return bidProject; }
|
||||
public void setBidProject(String bidProject) { this.bidProject = bidProject; }
|
||||
|
||||
public String getBidJsxzConfirmId() { return bidJsxzConfirmId; }
|
||||
public void setBidJsxzConfirmId(String bidJsxzConfirmId) { this.bidJsxzConfirmId = bidJsxzConfirmId; }
|
||||
|
||||
public String getBidJsxzGroupValues() { return bidJsxzGroupValues; }
|
||||
public void setBidJsxzGroupValues(String bidJsxzGroupValues) { this.bidJsxzGroupValues = bidJsxzGroupValues; }
|
||||
|
||||
public String getBidJsqrTlApprovalStatus() { return bidJsqrTlApprovalStatus; }
|
||||
public void setBidJsqrTlApprovalStatus(String bidJsqrTlApprovalStatus) { this.bidJsqrTlApprovalStatus = bidJsqrTlApprovalStatus; }
|
||||
|
||||
public String getBidJsqrTlRemark() { return bidJsqrTlRemark; }
|
||||
public void setBidJsqrTlRemark(String bidJsqrTlRemark) { this.bidJsqrTlRemark = bidJsqrTlRemark; }
|
||||
|
||||
public String getBidJsqrDyApprovalStatus() { return bidJsqrDyApprovalStatus; }
|
||||
public void setBidJsqrDyApprovalStatus(String bidJsqrDyApprovalStatus) { this.bidJsqrDyApprovalStatus = bidJsqrDyApprovalStatus; }
|
||||
|
||||
public String getBidJsqrDyRemark() { return bidJsqrDyRemark; }
|
||||
public void setBidJsqrDyRemark(String bidJsqrDyRemark) { this.bidJsqrDyRemark = bidJsqrDyRemark; }
|
||||
|
||||
public String getBidJsqrZyApprovalStatus() { return bidJsqrZyApprovalStatus; }
|
||||
public void setBidJsqrZyApprovalStatus(String bidJsqrZyApprovalStatus) { this.bidJsqrZyApprovalStatus = bidJsqrZyApprovalStatus; }
|
||||
|
||||
public String getBidJsqrZyRemark() { return bidJsqrZyRemark; }
|
||||
public void setBidJsqrZyRemark(String bidJsqrZyRemark) { this.bidJsqrZyRemark = bidJsqrZyRemark; }
|
||||
|
||||
public String getBidJsqrQtApprovalStatus() { return bidJsqrQtApprovalStatus; }
|
||||
public void setBidJsqrQtApprovalStatus(String bidJsqrQtApprovalStatus) { this.bidJsqrQtApprovalStatus = bidJsqrQtApprovalStatus; }
|
||||
|
||||
public String getBidJsqrQtRemark() { return bidJsqrQtRemark; }
|
||||
public void setBidJsqrQtRemark(String bidJsqrQtRemark) { this.bidJsqrQtRemark = bidJsqrQtRemark; }
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package com.ruoyi.priceVerification.mapper;
|
||||
|
||||
import com.ruoyi.priceVerification.domain.BidHj;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 投标单-核价单Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-16
|
||||
*/
|
||||
public interface BidHjMapper
|
||||
{
|
||||
/**
|
||||
* 查询投标单-核价单
|
||||
*
|
||||
* @param bidHjId 投标单-核价单主键
|
||||
* @return 投标单-核价单
|
||||
*/
|
||||
public BidHj selectBidHjByBidHjId(String bidHjId);
|
||||
|
||||
/**
|
||||
* 查询投标单-核价单列表
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 投标单-核价单集合
|
||||
*/
|
||||
public List<BidHj> selectBidHjList(BidHj bidHj);
|
||||
|
||||
/**
|
||||
* 新增投标单-核价单
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertBidHj(BidHj bidHj);
|
||||
|
||||
/**
|
||||
* 修改投标单-核价单
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateBidHj(BidHj bidHj);
|
||||
|
||||
/**
|
||||
* 删除投标单-核价单
|
||||
*
|
||||
* @param bidHjId 投标单-核价单主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBidHjByBidHjId(String bidHjId);
|
||||
|
||||
/**
|
||||
* 批量删除投标单-核价单
|
||||
*
|
||||
* @param bidHjIds 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBidHjByBidHjIds(String[] bidHjIds);
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package com.ruoyi.priceVerification.service;
|
||||
|
||||
import com.ruoyi.priceVerification.domain.BidHj;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 投标单-核价单Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-16
|
||||
*/
|
||||
public interface IBidHjService
|
||||
{
|
||||
/**
|
||||
* 查询投标单-核价单
|
||||
*
|
||||
* @param bidHjId 投标单-核价单主键
|
||||
* @return 投标单-核价单
|
||||
*/
|
||||
public BidHj selectBidHjByBidHjId(String bidHjId);
|
||||
|
||||
/**
|
||||
* 查询投标单-核价单列表
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 投标单-核价单集合
|
||||
*/
|
||||
public List<BidHj> selectBidHjList(BidHj bidHj);
|
||||
|
||||
/**
|
||||
* 新增投标单-核价单
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertBidHj(BidHj bidHj);
|
||||
|
||||
/**
|
||||
* 修改投标单-核价单
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateBidHj(BidHj bidHj);
|
||||
|
||||
/**
|
||||
* 批量删除投标单-核价单
|
||||
*
|
||||
* @param bidHjIds 需要删除的投标单-核价单主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBidHjByBidHjIds(String[] bidHjIds);
|
||||
|
||||
/**
|
||||
* 删除投标单-核价单信息
|
||||
*
|
||||
* @param bidHjId 投标单-核价单主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBidHjByBidHjId(String bidHjId);
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
package com.ruoyi.priceVerification.service.impl;
|
||||
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.priceVerification.domain.BidHj;
|
||||
import com.ruoyi.priceVerification.mapper.BidHjMapper;
|
||||
import com.ruoyi.priceVerification.service.IBidHjService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 投标单-核价单Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-16
|
||||
*/
|
||||
@Service
|
||||
public class BidHjServiceImpl implements IBidHjService
|
||||
{
|
||||
@Autowired
|
||||
private BidHjMapper bidHjMapper;
|
||||
|
||||
/**
|
||||
* 查询投标单-核价单
|
||||
*
|
||||
* @param bidHjId 投标单-核价单主键
|
||||
* @return 投标单-核价单
|
||||
*/
|
||||
@Override
|
||||
public BidHj selectBidHjByBidHjId(String bidHjId)
|
||||
{
|
||||
return bidHjMapper.selectBidHjByBidHjId(bidHjId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询投标单-核价单列表
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 投标单-核价单
|
||||
*/
|
||||
@Override
|
||||
public List<BidHj> selectBidHjList(BidHj bidHj)
|
||||
{
|
||||
return bidHjMapper.selectBidHjList(bidHj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增投标单-核价单
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public int insertBidHj(BidHj bidHj)
|
||||
{
|
||||
bidHj.setCreateTime(DateUtils.getNowDate());
|
||||
bidHj.setUpdateTime(DateUtils.getNowDate());
|
||||
return bidHjMapper.insertBidHj(bidHj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改投标单-核价单
|
||||
*
|
||||
* @param bidHj 投标单-核价单
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public int updateBidHj(BidHj bidHj)
|
||||
{
|
||||
bidHj.setUpdateTime(DateUtils.getNowDate());
|
||||
return bidHjMapper.updateBidHj(bidHj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除投标单-核价单
|
||||
*
|
||||
* @param bidHjIds 需要删除的投标单-核价单主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public int deleteBidHjByBidHjIds(String[] bidHjIds)
|
||||
{
|
||||
return bidHjMapper.deleteBidHjByBidHjIds(bidHjIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除投标单-核价单信息
|
||||
*
|
||||
* @param bidHjId 投标单-核价单主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public int deleteBidHjByBidHjId(String bidHjId)
|
||||
{
|
||||
return bidHjMapper.deleteBidHjByBidHjId(bidHjId);
|
||||
}
|
||||
}
|
|
@ -61,7 +61,7 @@
|
|||
<result property="setReceiveUser" column="set_receive_user" />
|
||||
<result property="receiveUserName" column="receive_user_name" />
|
||||
<result property="receiveUserNickName" column="receive_user_nick_name" />
|
||||
|
||||
<result property="bidStatus" column="bid_status" />
|
||||
|
||||
<result property="bidJsxzApprovalStatus" column="bid_jsxz_approval_status" />
|
||||
<result property="bidJsxzTechnicalRequirement" column="bid_jsxz_technical_requirement" />
|
||||
|
@ -78,7 +78,11 @@
|
|||
<result property="bidJsqrQtApprovalStatus" column="bid_jsqr_qt_approval_status" />
|
||||
<result property="bidJsqrQtRemark" column="bid_jsqr_qt_remark" />
|
||||
|
||||
|
||||
<result property="bidHjId" column="bid_hj_id" />
|
||||
<result property="bidHjCode" column="bid_hj_code" />
|
||||
<result property="bidHjApprovalStatus" column="bid_hj_approval_status" />
|
||||
<result property="bidHjPricingDate" column="bid_hj_pricing_date" />
|
||||
<result property="bidHjRemark" column="bid_hj_remark" />
|
||||
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createName" column="create_name" />
|
||||
|
@ -91,6 +95,7 @@
|
|||
left join sys_user u on u.user_name=a.create_by
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join bid_jsqr q on q.bid_jsqr_id = a.bid_jsxz_confirm_id
|
||||
left join bid_hj h on h.bid_hj_id = a.bid_hj_id
|
||||
</sql>
|
||||
|
||||
<sql id="selectBidVo">
|
||||
|
@ -107,7 +112,7 @@
|
|||
a.bid_warranty_period, a.bid_bidding, a.bid_evaluation_method, a.bid_technical_require,
|
||||
a.bid_price_linkage, a.bid_payment_method, a.bid_other_matters, a.bid_zbr, a.bid_jdr,
|
||||
a.bid_shr, a.bid_approval_status, a.bid_notification_award, a.bid_remark,a.bid_returnRemark,
|
||||
a.set_receive_user,a.receive_user_name,a.receive_user_nick_name,a.create_by,u.nick_name create_name, a.create_time,
|
||||
a.set_receive_user,a.receive_user_name,a.receive_user_nick_name,a.bid_status,a.create_by,u.nick_name create_name, a.create_time,
|
||||
a.update_by, a.update_time,
|
||||
|
||||
a.bid_jsxz_approval_status,a.bid_jsxz_technical_requirement,
|
||||
|
@ -116,7 +121,11 @@
|
|||
q.bid_jsqr_tl_approval_status,q.bid_jsqr_tl_remark,
|
||||
q.bid_jsqr_dy_approval_status,q.bid_jsqr_dy_remark,
|
||||
q.bid_jsqr_zy_approval_status,q.bid_jsqr_zy_remark,
|
||||
q.bid_jsqr_qt_approval_status,q.bid_jsqr_qt_remark
|
||||
q.bid_jsqr_qt_approval_status,q.bid_jsqr_qt_remark,
|
||||
|
||||
a.bid_hj_id,a.bid_hj_approval_status,
|
||||
h.bid_hj_code,h.bid_hj_pricing_date,
|
||||
h.bid_hj_remark
|
||||
|
||||
from bid a
|
||||
<include refid="bidJoins"/>
|
||||
|
@ -204,12 +213,16 @@
|
|||
<if test="setReceiveUser != null and setReceiveUser != ''">set_receive_user,</if>
|
||||
<if test="receiveUserName != null and receiveUserName != ''">receive_user_name,</if>
|
||||
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name,</if>
|
||||
<if test="bidStatus != null and bidStatus != ''">bid_status,</if>
|
||||
|
||||
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">bid_jsxz_approval_status,</if>
|
||||
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">bid_jsxz_technical_requirement,</if>
|
||||
<if test="bidJsxzGroupValues != null and bidJsxzGroupValues != ''">bid_jsxz_group_values,</if>
|
||||
<if test="bidJsxzConfirmId != null and bidJsxzConfirmId != ''">bid_jsxz_confirm_id,</if>
|
||||
|
||||
<if test="bidHjId != null and bidHjId != ''">bid_hj_id,</if>
|
||||
<if test="bidHjApprovalStatus != null and bidHjApprovalStatus != ''">bid_hj_approval_status,</if>
|
||||
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
|
@ -272,12 +285,16 @@
|
|||
<if test="setReceiveUser != null and setReceiveUser != ''">#{setReceiveUser},</if>
|
||||
<if test="receiveUserName != null and receiveUserName != ''">#{receiveUserName},</if>
|
||||
<if test="receiveUserNickName != null and receiveUserNickName != ''">#{receiveUserNickName},</if>
|
||||
<if test="bidStatus != null and bidStatus != ''">#{bidStatus},</if>
|
||||
|
||||
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">#{bidJsxzApprovalStatus},</if>
|
||||
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">#{bidJsxzTechnicalRequirement},</if>
|
||||
<if test="bidJsxzGroupValues != null and bidJsxzGroupValues != ''">#{bidJsxzGroupValues},</if>
|
||||
<if test="bidJsxzConfirmId != null and bidJsxzConfirmId != ''">#{bidJsxzConfirmId},</if>
|
||||
|
||||
<if test="bidHjId != null and bidHjId != ''">#{bidHjId},</if>
|
||||
<if test="bidHjApprovalStatus != null and bidHjApprovalStatus != ''">#{bidHjApprovalStatus},</if>
|
||||
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
|
@ -401,12 +418,16 @@
|
|||
<if test="setReceiveUser != null and setReceiveUser != ''">set_receive_user = #{setReceiveUser},</if>
|
||||
<if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if>
|
||||
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name = #{receiveUserNickName},</if>
|
||||
<if test="bidStatus != null and bidStatus != ''">bid_status = #{bidStatus},</if>
|
||||
|
||||
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''">bid_jsxz_approval_status = #{bidJsxzApprovalStatus},</if>
|
||||
<if test="bidJsxzTechnicalRequirement != null and bidJsxzTechnicalRequirement != ''">bid_jsxz_technical_requirement = #{bidJsxzTechnicalRequirement},</if>
|
||||
<if test="bidJsxzGroupValues != null and bidJsxzGroupValues != ''">bid_jsxz_group_values = #{bidJsxzGroupValues},</if>
|
||||
<if test="bidJsxzConfirmId != null and bidJsxzConfirmId != ''">bid_jsxz_confirm_id = #{bidJsxzConfirmId},</if>
|
||||
|
||||
<if test="bidHjId != null and bidHjId != ''">bid_hj_id = #{bidHjId},</if>
|
||||
<if test="bidHjApprovalStatus != null and bidHjApprovalStatus != ''">bid_hj_approval_status = #{bidHjApprovalStatus},</if>
|
||||
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
|
@ -439,6 +460,11 @@
|
|||
where a.bid_jsxz_confirm_id = #{bidJsqrId}
|
||||
</select>
|
||||
|
||||
<select id="selectBidByBidHjId" parameterType="String" resultMap="BidResult">
|
||||
<include refid="selectBidVo"/>
|
||||
where a.bid_hj_id = #{bidHjId}
|
||||
</select>
|
||||
|
||||
<select id="versionList" resultType="RbVersionDateResult">
|
||||
select uid_0 value,convert(varchar(10),[date_0],23) label
|
||||
from [rb_productVersion] A
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
<?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.ruoyi.priceVerification.mapper.BidHjMapper">
|
||||
|
||||
<resultMap type="BidHj" id="BidHjResult">
|
||||
<result property="bidHjId" column="bid_hj_id" />
|
||||
<result property="bidHjCode" column="bid_hj_code" />
|
||||
<result property="bidHjPricingType" column="bid_hj_pricing_type" />
|
||||
<result property="bidHjPricingDate" column="bid_hj_pricing_date" />
|
||||
<result property="bidHjRemark" column="bid_hj_remark" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="createName" column="create_name" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
|
||||
<result property="bidId" column="bid_id" />
|
||||
<result property="bidCode" column="bid_code" />
|
||||
<result property="bidHjApprovalStatus" column="bid_hj_approval_status" />
|
||||
<result property="bidSalesmanName" column="bid_salesman_name" />
|
||||
<result property="bidTenderingUnit" column="bid_tendering_unit" />
|
||||
<result property="bidProject" column="bid_project" />
|
||||
|
||||
<result property="bidJsxzConfirmId" column="bid_jsxz_confirm_id" />
|
||||
<result property="bidJsxzGroupValues" column="bid_jsxz_group_values" />
|
||||
|
||||
<result property="bidJsqrTlApprovalStatus" column="bid_jsqr_tl_approval_status" />
|
||||
<result property="bidJsqrTlRemark" column="bid_jsqr_tl_remark" />
|
||||
<result property="bidJsqrDyApprovalStatus" column="bid_jsqr_dy_approval_status" />
|
||||
<result property="bidJsqrDyRemark" column="bid_jsqr_dy_remark" />
|
||||
<result property="bidJsqrZyApprovalStatus" column="bid_jsqr_zy_approval_status" />
|
||||
<result property="bidJsqrZyRemark" column="bid_jsqr_zy_remark" />
|
||||
<result property="bidJsqrQtApprovalStatus" column="bid_jsqr_qt_approval_status" />
|
||||
<result property="bidJsqrQtRemark" column="bid_jsqr_qt_remark" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="bidHjJoins">
|
||||
left join sys_user u on u.user_name=a.create_by
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join bid q on q.bid_hj_id = a.bid_hj_id
|
||||
left join bid_jsqr j on j.bid_jsqr_id = q.bid_jsxz_confirm_id
|
||||
</sql>
|
||||
|
||||
<sql id="selectBidHjVo">
|
||||
select a.bid_hj_id, a.bid_hj_code, a.bid_hj_pricing_type, a.bid_hj_pricing_date, a.bid_hj_remark,
|
||||
a.create_by, a.create_time, a.update_by, a.update_time,
|
||||
u.nick_name create_name,
|
||||
q.bid_hj_approval_status,q.bid_id,q.bid_code,q.bid_salesman_name,
|
||||
q.bid_tendering_unit,q.bid_project,
|
||||
q.bid_jsxz_confirm_id,q.bid_jsxz_group_values,
|
||||
j.bid_jsqr_tl_approval_status,j.bid_jsqr_tl_remark,
|
||||
j.bid_jsqr_dy_approval_status,j.bid_jsqr_dy_remark,
|
||||
j.bid_jsqr_zy_approval_status,j.bid_jsqr_zy_remark,
|
||||
j.bid_jsqr_qt_approval_status,j.bid_jsqr_qt_remark
|
||||
from bid_hj a
|
||||
<include refid="bidHjJoins"/>
|
||||
</sql>
|
||||
|
||||
<select id="selectBidHjList" parameterType="BidHj" resultMap="BidHjResult">
|
||||
<include refid="selectBidHjVo"/>
|
||||
<where>
|
||||
<if test="bidHjCode != null and bidHjCode != ''"> and bid_hj_code like concat('%', #{bidHjCode}, '%')</if>
|
||||
<if test="params.beginBidHjPricingDate != null and params.beginBidHjPricingDate != '' and params.endBidHjPricingDate != null and params.endBidHjPricingDate != ''"> and bid_hj_pricing_date between #{params.beginBidHjPricingDate} and #{params.endBidHjPricingDate}</if>
|
||||
<if test="bidHjApprovalStatus != null and bidHjApprovalStatus != ''"> and q.bid_hj_approval_status = #{bidHjApprovalStatus}</if>
|
||||
<if test="bidCode != null and bidCode != ''"> and q.bid_code like concat('%', #{bidCode}, '%')</if>
|
||||
<if test="bidSalesmanName != null and bidSalesmanName != ''"> and q.bid_salesman_name like concat('%', #{bidSalesmanName}, '%')</if>
|
||||
<if test="bidTenderingUnit != null and bidTenderingUnit != ''"> and q.bid_tendering_unit like concat('%', #{bidTenderingUnit}, '%')</if>
|
||||
<if test="bidProject != null and bidProject != ''"> and q.bid_project like concat('%', #{bidProject}, '%')</if>
|
||||
|
||||
<!-- 数据范围过滤 -->
|
||||
<!--${params.dataScope}-->
|
||||
</where>
|
||||
order by a.bid_hj_code desc
|
||||
</select>
|
||||
|
||||
<select id="selectBidHjByBidHjId" parameterType="String" resultMap="BidHjResult">
|
||||
<include refid="selectBidHjVo"/>
|
||||
where a.bid_hj_id = #{bidHjId}
|
||||
</select>
|
||||
|
||||
<insert id="insertBidHj" parameterType="BidHj">
|
||||
insert into bid_hj
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="bidHjId != null">bid_hj_id,</if>
|
||||
<if test="bidHjCode != null">bid_hj_code,</if>
|
||||
<if test="bidHjPricingType != null">bid_hj_pricing_type,</if>
|
||||
<if test="bidHjPricingDate != null">bid_hj_pricing_date,</if>
|
||||
<if test="bidHjRemark != null">bid_hj_remark,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="bidHjId != null">#{bidHjId},</if>
|
||||
<if test="bidHjCode != null">#{bidHjCode},</if>
|
||||
<if test="bidHjPricingType != null">#{bidHjPricingType},</if>
|
||||
<if test="bidHjPricingDate != null">#{bidHjPricingDate},</if>
|
||||
<if test="bidHjRemark != null">#{bidHjRemark},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateBidHj" parameterType="BidHj">
|
||||
update bid_hj
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="bidHjCode != null">bid_hj_code = #{bidHjCode},</if>
|
||||
<if test="bidHjPricingType != null">bid_hj_pricing_type = #{bidHjPricingType},</if>
|
||||
<if test="bidHjPricingDate != null">bid_hj_pricing_date = #{bidHjPricingDate},</if>
|
||||
<if test="bidHjRemark != null">bid_hj_remark = #{bidHjRemark},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where bid_hj_id = #{bidHjId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteBidHjByBidHjId" parameterType="String">
|
||||
delete from bid_hj where bid_hj_id = #{bidHjId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteBidHjByBidHjIds" parameterType="String">
|
||||
delete from bid_hj where bid_hj_id in
|
||||
<foreach item="bidHjId" collection="array" open="(" separator="," close=")">
|
||||
#{bidHjId}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
|
@ -88,6 +88,15 @@ export function commitJsBid(data) {
|
|||
})
|
||||
}
|
||||
|
||||
//提交核价协助
|
||||
export function commitHjBid(data) {
|
||||
return request({
|
||||
url: '/bid/bid/commitHjBid',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
//驳回按钮
|
||||
export function rejectBid(data) {
|
||||
return request({
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询投标单-核价单列表
|
||||
export function listPriceVerification(query) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询投标单-核价单详细
|
||||
export function getPriceVerification(quotHjId) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification/' + quotHjId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增投标单-核价单
|
||||
export function addPriceVerification(data) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改投标单-核价单
|
||||
export function updatePriceVerification(data) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除投标单-核价单
|
||||
export function delPriceVerification(quotHjId) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification/' + quotHjId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
//提交投标单-核价单 至投标组
|
||||
export function commitHj(data) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification/commitHj',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
//驳回投标单-核价单
|
||||
export function rejectHj(data) {
|
||||
return request({
|
||||
url: '/bidPriceVerification/bidPriceVerification/rejectHj',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
rejectHj
|
|
@ -204,26 +204,16 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<div v-if="checkPermi(['bid:bid:xzInfo'])">
|
||||
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="技术协助" prop="bidJsxzApprovalStatus">
|
||||
<dict-tag :options="dict.type.bid_approval_status" :value="this.form.bidJsxzApprovalStatus"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="核价协助" prop="bidHjApprovalStatus">
|
||||
<dict-tag :options="dict.type.bid_approval_status" :value="this.form.bidHjApprovalStatus"/>
|
||||
<dict-tag :options="dict.type.bid_hj_approval_status" :value="this.form.bidHjApprovalStatus"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||
<el-form-item label="金思维协助" prop="bidJswApprovalStatus">
|
||||
<dict-tag :options="dict.type.bid_jsw_approval_status" :value="this.form.bidJswApprovalStatus"/>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
<!--<el-col :span="4">
|
||||
<el-form-item label="OA审批" prop="bidOAApprovalStatus">
|
||||
<dict-tag :options="dict.type.bid_oa_approval_status" :value="this.form.bidOAApprovalStatus"/>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
|
@ -415,6 +405,7 @@
|
|||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!--投标填写模块-->
|
||||
<div v-if="checkPermi(['bid:bid:tbxxInfo'])">
|
||||
<el-divider content-position="left" class="customer_divider_text">投标信息</el-divider>
|
||||
<el-row :gutter="8">
|
||||
|
@ -560,11 +551,23 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-col :span="16">
|
||||
<el-form-item label="技术要求" prop="bidTechnicalRequire">
|
||||
<el-input type="textarea" autosize v-model="form.bidTechnicalRequire" placeholder="请输入技术要求" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="投标状态" prop="bidStatus">
|
||||
<el-select v-model="form.bidStatus">
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
|
@ -686,7 +689,7 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
<el-divider content-position="center">技术要求附件</el-divider>
|
||||
<div v-hasPermi="['bid:bid:bidTbbFile']">
|
||||
<div v-hasPermi="['bid:bid:bidTbbJsgfFile']">
|
||||
<el-upload class="upload-demo"
|
||||
ref="bidTbbJsgfFileUpload"
|
||||
name="bidFile"
|
||||
|
@ -697,7 +700,7 @@
|
|||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
v-if="this.form.bidApprovalStatus == '1'">
|
||||
v-if="this.form.bidApprovalStatus == '1'&&this.form.bidJsxzApprovalStatus != '1'">
|
||||
<el-button size="mini" type="primary" @click="uploadFile('bidTbbJsgfFile')">上传文件</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
|
@ -839,6 +842,71 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 核价协助块-->
|
||||
<div v-if="checkPermi(['bid:bid:hjxzInfo'])">
|
||||
<el-divider content-position="left" class="customer_divider_text">核价协助</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="核价单号" prop="bidHjCode">
|
||||
<el-link :underline="false" type="primary" @click="showHjDialog">{{form.bidHjCode}}</el-link>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="核价日期" prop="bidHjPricingDate">
|
||||
<div class="el-p" style="width:100%">
|
||||
<el-date-picker
|
||||
style="width:100%"
|
||||
v-model="form.bidHjPricingDate"
|
||||
type="datetime"
|
||||
:disabled="true">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="核价确认状态" prop="bidHjApprovalStatus">
|
||||
<el-select v-model="form.bidHjApprovalStatus" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_hj_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="bidHjRemark">
|
||||
<el-input type="textarea" autosize v-model="form.bidHjRemark" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="center">核价附件</el-divider>
|
||||
<el-table class="down" :data="bidHjFileList" border stripe style="width: 100%;" height="150px">
|
||||
<el-table-column prop="fileName" label="文件名称" width="450px"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
|
||||
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fileTime" label="上传时间"></el-table-column>
|
||||
<el-table-column width="150px" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button :key="Math.random()" size="small" type="text">
|
||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<!-- 特缆、中压、低压、其他协助反馈附件对话框 -->
|
||||
<el-dialog custom-class="fkfjDialog" :title="addFileTitle" :visible.sync="addFileOpen" width="800px" append-to-body>
|
||||
<el-table class="down" :data="bidJsqrFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
|
@ -918,8 +986,8 @@
|
|||
<span style="margin-left: 10px" v-hasPermi="['bid:bid:commit']"><el-button type="primary" plain @click="commitForm" v-if="this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null">提 交</el-button></span>
|
||||
|
||||
<!-- 投标提交技术、核价协助-->
|
||||
<span v-hasPermi="['bid:bid:assist']"><el-button type="primary" plain @click="commitJsForm" v-if="this.form.bidApprovalStatus == '1'&&(this.form.bidJsxzApprovalStatus == '0'||this.form.bidJsxzApprovalStatus == '0')">提交技术协助</el-button></span>
|
||||
|
||||
<span v-hasPermi="['bid:bid:assist']"><el-button type="primary" plain @click="commitJsForm" v-if="this.form.bidApprovalStatus == '1'&&this.form.bidJsxzApprovalStatus != '1'">提交技术协助</el-button></span>
|
||||
<span style="margin-left: 10px" v-hasPermi="['bid:bid:assistHj']"><el-button type="primary" plain @click="commitHjForm" v-if="this.form.bidApprovalStatus == '1'&&this.form.bidHjApprovalStatus != '1'">提交核价审核</el-button></span>
|
||||
<!-- 投标提交反馈、驳回-->
|
||||
<!--
|
||||
<span style="margin-left: 10px" v-hasPermi="['bid:bid:feedback']"><el-button type="primary" plain @click="feedbackQuotForm" v-if="this.form.quotApprovalStatus == '1'&&this.form.quotJsxzApprovalStatus != '1'&&this.form.quotHjApprovalStatus != '1'&&this.form.quotJswApprovalStatus != '1'&&this.form.quotOAApprovalStatus != '1'">提交反馈</el-button></span>
|
||||
|
@ -930,6 +998,10 @@
|
|||
<PeopleSelect v-if="checkRole(['BID'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpenSelectYwy" @cancel="peopleOpenSelectYwy=false" @submit="submitPeopleSelectYwy"></PeopleSelect>
|
||||
<!-- 技术确认单详情对话框 -->
|
||||
<jsqrDialog ref="jsqrDialog"></jsqrDialog>
|
||||
|
||||
<!-- 核价单详情对话框 -->
|
||||
<hjDialog ref="hjDialog"></hjDialog>
|
||||
|
||||
<!-- 客户选择对话框-->
|
||||
<CustomerSelect ref="customerSelect" :open="customerOpen" @submit="submitCustomer" @cancel="customerOpen=false"></CustomerSelect>
|
||||
</el-dialog>
|
||||
|
@ -971,11 +1043,13 @@
|
|||
import { checkPermi,checkRole } from '@/utils/permission';// 权限判断函数
|
||||
import { getToken } from "@/utils/auth";
|
||||
import { listZgys} from "@/api/zgys/zgys";
|
||||
import { versionList,getTongLvPrice,bidAssign,listBid, getBid, delBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx,commitJsBid, rejectBid } from "@/api/bid/bid";
|
||||
import { versionList,getTongLvPrice,bidAssign,listBid, getBid, delBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx,commitJsBid, commitHjBid, rejectBid } from "@/api/bid/bid";
|
||||
/** 弹窗放大、拖拽 */
|
||||
import elDragDialog from "@/directive/dialog/dragDialog";
|
||||
/** 导入技术确认单详情组件*/
|
||||
import jsqrDialog from '@/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue';
|
||||
/** 导入核价单详情组件*/
|
||||
import hjDialog from '@/views/priceVerification/priceVerification/hjInfoBid.vue';
|
||||
/** 导入客户选择组件 */
|
||||
import CustomerSelect from "@/views/components/Tools/CustomerSelect/index.vue";
|
||||
/** 导入选人组件 */
|
||||
|
@ -992,11 +1066,12 @@ export default {
|
|||
components: {
|
||||
// 注册组件
|
||||
'jsqrDialog': jsqrDialog,
|
||||
'hjDialog': hjDialog,
|
||||
'CustomerSelect': CustomerSelect,
|
||||
'PeopleSelect': PeopleSelect,
|
||||
'ChangeRecord':ChangeRecord
|
||||
},
|
||||
dicts: ['bid_set_receive_user','bid_has_registration','bid_approval_status','bid_online_quotation','bid_copper_price_linkage','bid_open_close','bid_bidding','bid_notification_award','bid_jsxz_group','bid_jsxz_approval_status'],
|
||||
dicts: ['bid_set_receive_user','bid_has_registration','bid_approval_status','bid_hj_approval_status','bid_online_quotation','bid_copper_price_linkage','bid_open_close','bid_bidding','bid_notification_award','bid_status','bid_jsxz_group','bid_jsxz_approval_status'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
|
@ -1092,6 +1167,9 @@ export default {
|
|||
bidJsqrZyFileNum: 0,
|
||||
bidJsqrQtFileNum: 0,
|
||||
|
||||
// 核价单附件列表数据
|
||||
bidHjFileList: [],
|
||||
|
||||
//技术协助-特缆、低压、中压、其他 隐藏控制
|
||||
showTl: false,
|
||||
showDy: false,
|
||||
|
@ -1219,6 +1297,7 @@ export default {
|
|||
bidShr: null,
|
||||
bidApprovalStatus: null,
|
||||
bidNotificationAward: null,
|
||||
bidStatus: null,
|
||||
bidRemark: null,
|
||||
bidReturnRemark: null,
|
||||
|
||||
|
@ -1239,11 +1318,16 @@ export default {
|
|||
|
||||
bidJsqrQtApprovalStatus: null,
|
||||
bidJsqrQtRemark: null,
|
||||
|
||||
bidHjCode: null,
|
||||
bidHjPricingDate: null,
|
||||
bidHjApprovalStatus: null,
|
||||
};
|
||||
|
||||
this.bidYwyFileList = [];
|
||||
this.bidTbbFileList = [];
|
||||
this.bidTbbJsgfFileList = [];
|
||||
this.bidHjFileList = [];
|
||||
this.resetForm("form");
|
||||
},
|
||||
|
||||
|
@ -1321,6 +1405,7 @@ export default {
|
|||
this.getBidYwyFileList();
|
||||
this.getBidTbbFileList();
|
||||
this.getBidTbbJsgfFileList();
|
||||
this.getBidHjFileList();
|
||||
});
|
||||
},
|
||||
/** 保存按钮 */
|
||||
|
@ -1365,6 +1450,16 @@ export default {
|
|||
});
|
||||
},
|
||||
|
||||
/** 投标提交核价协助按钮 */
|
||||
commitHjForm() {
|
||||
this.form.quotMaterialList = this.quotMaterialList;
|
||||
commitHjBid(this.form).then(response => {
|
||||
this.$modal.msgSuccess("提交核价协助成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
|
||||
/** 投标驳回按钮 */
|
||||
rejectBidForm() {
|
||||
rejectBid(this.form).then(response => {
|
||||
|
@ -1501,6 +1596,13 @@ export default {
|
|||
this.bidTbbJsgfFileList = response.rows;
|
||||
});
|
||||
},
|
||||
//获取投标信息-核价附件列表
|
||||
getBidHjFileList(){
|
||||
const param = {relationId:this.form.bidHjId,fileType:'bidHjFile'}
|
||||
bidFileList(param).then(response => {
|
||||
this.bidHjFileList = response.rows;
|
||||
});
|
||||
},
|
||||
|
||||
//下载附件
|
||||
downloadFile(fileUrl){
|
||||
|
@ -1612,7 +1714,12 @@ export default {
|
|||
});
|
||||
},
|
||||
/*********************************技术协助模块*****************************************/
|
||||
|
||||
/*********************************核价协助模块*****************************************/
|
||||
//核价单 详细信息
|
||||
showHjDialog(){
|
||||
this.$refs.hjDialog.getInfo("投标-核价单",true,false,this.form.bidHjId);
|
||||
},
|
||||
/*********************************核价协助模块*****************************************/
|
||||
/*********************************打开资格预审列表选择*****************************************/
|
||||
openZgys(){
|
||||
this.zgysOpen=true;
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<el-form-item label="核价类型" prop="quotHjPricingType">
|
||||
<el-select v-model="form.quotHjPricingType" style="width: 100%;" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.quot_pricing_type"
|
||||
v-for="dict in dict.type.quot_bid_pricing_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
|
@ -388,7 +388,7 @@ export default {
|
|||
directives: {
|
||||
elDragDialog,
|
||||
},
|
||||
dicts: ['quot_pricing_type','quot_jsxz_approval_status','quot_hj_approval_status'],
|
||||
dicts: ['quot_bid_pricing_type','quot_jsxz_approval_status','quot_hj_approval_status'],
|
||||
data() {
|
||||
return {
|
||||
// 弹窗标题 关闭/打开
|
||||
|
|
|
@ -0,0 +1,661 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-dialog :title="title" :visible.sync="open" width="1000px" v-el-drag-dialog append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
|
||||
<el-divider content-position="left" class="customer_divider_text">核价信息</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="核价单号" prop="bidHjCode">
|
||||
<el-input v-model="form.bidHjCode" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="投标单号" prop="bidCode">
|
||||
<el-input v-model="form.bidCode" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row :gutter="8">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="核价类型" prop="bidHjPricingType">
|
||||
<el-select v-model="form.bidHjPricingType" style="width: 100%;" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.quot_bid_pricing_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>-->
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户" prop="bidTenderingUnit">
|
||||
<el-input v-model="form.bidTenderingUnit" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="核价日期" prop="bidHjPricingDate">
|
||||
<div class="el-p" style="width:100%">
|
||||
<el-date-picker
|
||||
style="width:100%"
|
||||
v-model="form.bidHjPricingDate"
|
||||
type="datetime"
|
||||
placeholder="系统自动生成"
|
||||
:disabled="true">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="bidProject">
|
||||
<el-input type="textarea" autosize v-model="form.bidProject" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="业务员" prop="bidSalesmanName">
|
||||
<el-input v-model="form.bidSalesmanName" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="bidHjRemark">
|
||||
<el-input type="textarea" autosize v-model="form.bidHjRemark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--<el-divider content-position="center">产品信息</el-divider>
|
||||
<el-table :data="bidMaterialList" height="300px" show-summary :summary-method="getSummaries" :row-class-name="rowBidMaterialIndex" ref="bidMaterial">
|
||||
<el-table-column type="selection" width="80" align="center" />
|
||||
<el-table-column label="序号" align="center" prop="index" width="50"/>
|
||||
<el-table-column label="型号" prop="matXingh" width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.matXingh" placeholder="型号" :disabled="true"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规格" prop="matGuig" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.matGuig" placeholder="规格" :disabled="true"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="电压" prop="matDiany" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.matDiany" placeholder="电压" :disabled="true"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位" prop="matDanw" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.matDanw" placeholder="单位" :disabled="true"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" prop="matSl" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.matSl" placeholder="数量" :disabled="true"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="matRemark" width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.matRemark" placeholder="备注" :disabled="true"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>-->
|
||||
|
||||
<!--<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="center">投标附件</el-divider>
|
||||
<el-table class="down" :data="bidXjFileList" border stripe style="width: 100%;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" width="450px"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
|
||||
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fileTime" label="上传时间"></el-table-column>
|
||||
<el-table-column width="150px" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button :key="Math.random()" size="small" type="text">
|
||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>-->
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="center">技术附件</el-divider>
|
||||
<el-table class="down" :data="bidTbbJsgfFileList" border stripe style="width: 100%;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" width="450px"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="100px">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
|
||||
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fileTime" label="上传时间"></el-table-column>
|
||||
<el-table-column width="150px" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button :key="Math.random()" size="small" type="text">
|
||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="center">核价附件</el-divider>
|
||||
<div v-hasPermi="['bidPriceVerification:bidPriceVerification:uploadFile']">
|
||||
<el-upload class="upload-demo"
|
||||
ref="upload"
|
||||
name="bidFile"
|
||||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
:data="{ relation_id: this.form.bidHjId,file_type: 'bidHjFile' }"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:show-file-list="false"
|
||||
:limit="1"
|
||||
v-if="this.form.bidHjApprovalStatus == '1'">
|
||||
<el-button size="small" type="primary">上传文件</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-table class="down" v-loading="bidHjFileLoading" :data="bidHjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称"></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
|
||||
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fileTime" label="上传时间" width="200px"></el-table-column>
|
||||
<el-table-column width="150px" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button :key="Math.random()" size="small" type="text">
|
||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||
</el-button>
|
||||
<el-button :key="Math.random()" size="small" type="text" v-if="isSelfProp&&form.bidHjApprovalStatus == '1'">
|
||||
<a @click="deleteFile(scope.row.fileId)">删除</a>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider v-if="showTl || showDy || showZy || showQt" content-position="left" class="customer_divider_text">技术协助</el-divider>
|
||||
<div v-if="showTl">
|
||||
<el-divider content-position="center">特缆协助</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="特缆协助状态" prop="bidJsqrTlApprovalStatus">
|
||||
<el-select v-model="form.bidJsqrTlApprovalStatus" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_jsxz_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="特缆反馈附件">
|
||||
<el-button size="mini" type="primary" @click="handleAddFile('bidJsqrTl')">上传文件 ({{this.bidJsqrTlFileNum}})</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="特缆协助说明" prop="bidJsqrTlRemark">
|
||||
<el-input type="textarea" autosize v-model="form.bidJsqrTlRemark" placeholder="技术部填写" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-if="showDy">
|
||||
<el-divider content-position="center">低压协助</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="低压协助状态" prop="bidJsqrDyApprovalStatus">
|
||||
<el-select v-model="form.bidJsqrDyApprovalStatus" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_jsxz_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="低压反馈附件">
|
||||
<el-button size="mini" type="primary" @click="handleAddFile('bidJsqrDy')">上传文件 ({{this.bidJsqrDyFileNum}})</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="低压协助说明" prop="bidJsqrDyRemark">
|
||||
<el-input type="textarea" autosize v-model="form.bidJsqrDyRemark" placeholder="技术部填写" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-if="showZy">
|
||||
<el-divider content-position="center">中压协助</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="中压协助状态" prop="bidJsqrZyApprovalStatus">
|
||||
<el-select v-model="form.bidJsqrZyApprovalStatus" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_jsxz_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="中压反馈附件">
|
||||
<el-button size="mini" type="primary" @click="handleAddFile('bidJsqrZy')">上传文件 ({{this.bidJsqrZyFileNum}})</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="中压协助说明" prop="bidJsqrZyRemark">
|
||||
<el-input type="textarea" autosize v-model="form.bidJsqrZyRemark" placeholder="技术部填写" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-if="showQt">
|
||||
<el-divider content-position="center">其他协助</el-divider>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="其他协助状态" prop="bidJsqrQtApprovalStatus">
|
||||
<el-select v-model="form.bidJsqrQtApprovalStatus" :disabled="true">
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_jsxz_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="其他反馈附件">
|
||||
<el-button size="mini" type="primary" @click="handleAddFile('bidJsqrQt')">上传文件 ({{this.bidJsqrQtFileNum}})</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="其他协助说明" prop="bidJsqrQtRemark">
|
||||
<el-input type="textarea" autosize v-model="form.bidJsqrQtRemark" placeholder="技术部填写" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer" v-if="this.form.bidHjApprovalStatus==1">
|
||||
<div v-if="this.isSelfProp">
|
||||
<span v-hasPermi="['bidPriceVerification:bidPriceVerification:commit']"><el-button type="primary" @click="commitHj">提交投标</el-button></span>
|
||||
<span v-hasPermi="['bidPriceVerification:bidPriceVerification:reject']" style="margin-left: 10px"><el-button type="danger" plain @click="rejectHj">驳回</el-button></span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 特缆、中压、低压、其他协助反馈附件对话框 -->
|
||||
<el-dialog custom-class="fkfjDialog" :title="addFileTitle" :visible.sync="addFileOpen" width="800px" append-to-body>
|
||||
<el-table class="down" :data="bidJsqrFileList" border stripe style="width: 100%;margin-top: 20px;" height="200px">
|
||||
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
||||
<el-table-column prop="fileSize" label="文件大小" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileSize / 1024 / 1024 < 1">{{(scope.row.fileSize / 1024).toFixed(2) + 'KB'}}</span>
|
||||
<span v-else>{{(scope.row.fileSize / 1024 / 1024).toFixed(2) + 'MB'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fileTime" label="上传时间" width="200px"></el-table-column>
|
||||
<el-table-column width="150px" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button :key="Math.random()" size="small" type="text">
|
||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<style>
|
||||
/** 弹窗设置 */
|
||||
.el-dialog__body {
|
||||
padding: 10px 10px;
|
||||
color: #606266;
|
||||
font-size: 14px;
|
||||
word-break: break-all;
|
||||
overflow-y: auto; /** 自动显示垂直滚动条 */
|
||||
height: 500px;
|
||||
max-height: 580px; /** 设置最大高度,根据需要调整 */
|
||||
}
|
||||
|
||||
/** divider 文本样式 */
|
||||
.customer_divider_text .el-divider__text{
|
||||
color: #1890ff;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
/* 日期空间宽度设置 */
|
||||
:deep(.el-p .el-input__wrapper){
|
||||
width: 100% !important;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
/* 特缆、中压、低压、其他协助反馈附件对话框设置 */
|
||||
.fkfjDialog .el-dialog__body{
|
||||
height: 280px;
|
||||
max-height: 300px; /* 设置最大高度,根据需要调整 */
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
import { NumberAdd } from '@/utils/number';// 数值计算
|
||||
import { getPriceVerification, commitHj, rejectHj } from "@/api/priceVerification/priceVerificationBid";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import {getBid, bidFileList, bidFileDelete} from "@/api/bid/bid";
|
||||
|
||||
/** 弹窗放大、拖拽 */
|
||||
import elDragDialog from "@/directive/dialog/dragDialog";
|
||||
|
||||
export default {
|
||||
name: "hjInfo",
|
||||
directives: {
|
||||
elDragDialog,
|
||||
},
|
||||
dicts: ['quot_bid_pricing_type','bid_jsxz_approval_status','bid_hj_approval_status'],
|
||||
data() {
|
||||
return {
|
||||
// 弹窗标题 关闭/打开
|
||||
title: "",
|
||||
open: false,
|
||||
// 是否是自身页面调用
|
||||
isSelfProp: true,
|
||||
// 产品数据
|
||||
bidMaterialList: [],
|
||||
// 投标单-投标附件数据
|
||||
bidXjFileList: [],
|
||||
// 投标单-技术附件数据
|
||||
bidTbbJsgfFileList: [],
|
||||
// 投标单-核价单附件数据
|
||||
bidHjFileLoading: false,
|
||||
bidHjFileList: [],
|
||||
//投标单-核价单附件上传地址
|
||||
uploadUrl: process.env.VUE_APP_BASE_API + "/bid/bid/bidFile",
|
||||
//投标单-核价单附件请求头
|
||||
headers: {Authorization: "Bearer " + getToken()},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {},
|
||||
|
||||
// 技术协助反馈附件显示弹窗
|
||||
addFileOpen: false,
|
||||
// 技术协助反馈附件显示弹窗标题
|
||||
addFileTitle: "",
|
||||
// 技术协助反馈附件显示弹窗 上传按钮设置 删除设置
|
||||
uploadDis: false,
|
||||
// 技术协助附件表格数据
|
||||
bidJsqrFileList: [],
|
||||
bidJsqrTlFileNum: 0,
|
||||
bidJsqrDyFileNum: 0,
|
||||
bidJsqrZyFileNum: 0,
|
||||
bidJsqrQtFileNum: 0,
|
||||
//技术协助-特缆、低压、中压、其他 隐藏控制
|
||||
showTl: false,
|
||||
showDy: false,
|
||||
showZy: false,
|
||||
showQt: false
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
/** 清空表单 */
|
||||
reset(){
|
||||
this.form = {
|
||||
bidHjCode: null,
|
||||
bidCode: null,
|
||||
bidHjPricingDate: null,
|
||||
bidHjPricingType: null,
|
||||
bidSalesmanName: null,
|
||||
bidTenderingUnit: null,
|
||||
bidProject: null,
|
||||
bidHjRemark: null
|
||||
};
|
||||
this.bidMaterialList = [];
|
||||
this.bidXjFileList = [];
|
||||
this.bidTbbJsgfFileList = [];
|
||||
this.bidHjFileList = [];
|
||||
|
||||
this.showTl = false;
|
||||
this.showDy = false;
|
||||
this.showZy = false;
|
||||
this.showQt = false;
|
||||
|
||||
this.resetForm("form");
|
||||
},
|
||||
// 关闭弹窗按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.$emit('refreshList');
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
getInfo(title,open,isSelfProp,bidHjId) {
|
||||
this.open = open;
|
||||
this.title = title;
|
||||
this.isSelfProp = isSelfProp;
|
||||
this.reset();
|
||||
getPriceVerification(bidHjId).then(response => {
|
||||
this.form = response.data;
|
||||
|
||||
/*getBid(this.form.bidId).then(response => {
|
||||
this.bidMaterialList = response.data.bidMaterialList;
|
||||
});*/
|
||||
|
||||
this.open = true;
|
||||
this.title = "核价单信息";
|
||||
this.getBidXjFileList();
|
||||
this.getBidJsgfFileList();
|
||||
this.getBidHjFileList();
|
||||
|
||||
const bidJsxzGroup = this.form.bidJsxzGroupValues;
|
||||
if(bidJsxzGroup) {
|
||||
if (bidJsxzGroup.indexOf("TL") !== -1) {
|
||||
this.showTl = true;
|
||||
this.getBidJsqrFileList('bidJsqrTlFkFile');
|
||||
}
|
||||
if (bidJsxzGroup.indexOf("DY") !== -1) {
|
||||
this.showDy = true;
|
||||
this.getBidJsqrFileList('bidJsqrDyFkFile');
|
||||
}
|
||||
if (bidJsxzGroup.indexOf("ZY") !== -1) {
|
||||
this.showZy = true;
|
||||
this.getBidJsqrFileList('bidJsqrZyFkFile');
|
||||
}
|
||||
if (bidJsxzGroup.indexOf("QT") !== -1) {
|
||||
this.showQt = true;
|
||||
this.getBidJsqrFileList('bidJsqrQtFkFile');
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
//特缆、低压、中压、其他 反馈附件上传窗口
|
||||
handleAddFile(group){
|
||||
this.addFileOpen = true;
|
||||
this.bidJsqrFileList = [];
|
||||
if("bidJsqrTl"==group){
|
||||
this.addFileTitle = '特缆反馈附件'
|
||||
this.fileType = 'bidJsqrTlFkFile';
|
||||
this.uploadDis = (this.form.bidJsqrTlOperateState == 0 ? true : false);
|
||||
}else if('bidJsqrDy'==group){
|
||||
this.addFileTitle = '低压反馈附件'
|
||||
this.fileType = 'bidJsqrDyFkFile';
|
||||
this.uploadDis = (this.form.bidJsqrDyOperateState == 0 ? true : false);
|
||||
}else if('bidJsqrZy'==group){
|
||||
this.addFileTitle = '中压反馈附件'
|
||||
this.fileType = 'bidJsqrZyFkFile';
|
||||
this.uploadDis = (this.form.bidJsqrZyOperateState == 0 ? true : false);
|
||||
}else if('bidJsqrQt'==group){
|
||||
this.addFileTitle = '其他反馈附件'
|
||||
this.fileType = 'bidJsqrQtFkFile';
|
||||
this.uploadDis = (this.form.bidJsqrQtOperateState == 0 ? true : false);
|
||||
}
|
||||
// 获取反馈附件
|
||||
this.getBidJsqrFileList(this.fileType);
|
||||
},
|
||||
|
||||
//获取投标单-技术确认-反馈附件
|
||||
getBidJsqrFileList(fileType){
|
||||
const param = {relationId:this.form.bidJsxzConfirmId,fileType:fileType}
|
||||
bidFileList(param).then(response => {
|
||||
this.bidJsqrFileList = response.rows;
|
||||
if('bidJsqrTlFkFile' == fileType){
|
||||
this.bidJsqrTlFileNum = response.rows.length;
|
||||
}else if('bidJsqrDyFkFile' == fileType){
|
||||
this.bidJsqrDyFileNum = response.rows.length;
|
||||
}else if('bidJsqrZyFkFile' == fileType){
|
||||
this.bidJsqrZyFileNum = response.rows.length;
|
||||
}else if('bidJsqrQtFkFile' == fileType){
|
||||
this.bidJsqrQtFileNum = response.rows.length;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/** 提交投标按钮 */
|
||||
commitHj() {
|
||||
/*const bidHjFileNum = this.bidHjFileList.length;
|
||||
if(bidHjFileNum==0){
|
||||
this.$modal.msgError("核价附件必须上传");
|
||||
return;
|
||||
}*/
|
||||
//投标单-核价协助状态 设置为 已协助
|
||||
commitHj(this.form).then(response => {
|
||||
this.open = false;
|
||||
this.$modal.msgSuccess("提交成功");
|
||||
this.$emit('refreshList');
|
||||
})
|
||||
},
|
||||
|
||||
/** 核价单驳回按钮 */
|
||||
rejectHj() {
|
||||
rejectHj(this.form).then(response => {
|
||||
this.$modal.msgSuccess("驳回成功");
|
||||
this.open = false;
|
||||
this.$emit('refreshList');
|
||||
});
|
||||
},
|
||||
|
||||
//获取投标单-投标附件列表
|
||||
getBidXjFileList(){
|
||||
const param = {relationId:this.form.bidId,fileType:'bidXjFile'}
|
||||
bidFileList(param).then(response => {
|
||||
this.bidXjFileList = response.rows;
|
||||
});
|
||||
},
|
||||
//获取投标单-技术附件列表
|
||||
getBidJsgfFileList(){
|
||||
const param = {relationId:this.form.bidId,fileType:'bidTbbJsgfFile'}
|
||||
bidFileList(param).then(response => {
|
||||
this.bidTbbJsgfFileList = response.rows;
|
||||
});
|
||||
},
|
||||
//获取投标单-核价附件列表
|
||||
getBidHjFileList(){
|
||||
const param = {relationId:this.form.bidHjId,fileType:'bidHjFile'}
|
||||
bidFileList(param).then(response => {
|
||||
this.bidHjFileList = response.rows;
|
||||
});
|
||||
},
|
||||
//上传前校验
|
||||
beforeAvatarUpload(file){
|
||||
this.bidHjFileLoading = true;
|
||||
},
|
||||
//成功回调
|
||||
handleAvatarSuccess(res) {
|
||||
// 如果上传成功
|
||||
if (res.code == 200) {
|
||||
this.$modal.msgSuccess(res.msg);
|
||||
this.getBidHjFileList();
|
||||
} else {
|
||||
this.$modal.msgError(res.msg);
|
||||
}
|
||||
this.bidHjFileLoading = false;
|
||||
this.$refs.upload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
},
|
||||
|
||||
//下载附件
|
||||
downloadFile(fileUrl){
|
||||
window.open(fileUrl, "_blank");
|
||||
},
|
||||
|
||||
//删除附件
|
||||
deleteFile(fileId){
|
||||
let activeName = this.activeName;
|
||||
this.bidHjFileLoading = true;
|
||||
bidFileDelete(fileId).then(response => {
|
||||
this.getBidHjFileList();
|
||||
this.bidHjFileLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
/** 对产品数据-数量、金额进行合算 */
|
||||
getSummaries(param) {
|
||||
const { columns, data } = param;
|
||||
const sums = [];
|
||||
columns.forEach((column, index) => {
|
||||
if (index === 0) {
|
||||
sums[index] = '合计';
|
||||
return;
|
||||
}
|
||||
const values = data.map(item => Number(item[column.property]));
|
||||
|
||||
if (column.property === 'matSl' || column.property === 'matBidAllPrice') {
|
||||
if (!values.every(value => isNaN(value))) {
|
||||
sums[index] = values.reduce((prev, curr) => {
|
||||
const value = Number(curr);
|
||||
if (!isNaN(value)) {
|
||||
return NumberAdd(prev,curr);
|
||||
}else {
|
||||
return prev;
|
||||
}
|
||||
}, 0);
|
||||
} else {
|
||||
sums[index] = ''
|
||||
}
|
||||
}
|
||||
});
|
||||
return sums;
|
||||
},
|
||||
|
||||
/** 投标单-产品序号 */
|
||||
rowBidMaterialIndex({ row, rowIndex }) {
|
||||
row.index = rowIndex + 1;
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
|
@ -80,7 +80,7 @@
|
|||
<el-table-column label="项目" align="center" prop="quotProject"width="250px"/>
|
||||
<el-table-column label="核价类型" align="center" prop="quotHjPricingType"width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_pricing_type" :value="scope.row.quotHjPricingType"/>
|
||||
<dict-tag :options="dict.type.quot_bid_pricing_type" :value="scope.row.quotHjPricingType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="核价日期" align="center" prop="quotHjPricingDate" width="180">
|
||||
|
@ -131,7 +131,7 @@ export default {
|
|||
// 注册组件
|
||||
'hjDialog': hjDialog
|
||||
},
|
||||
dicts: ['quot_pricing_type','quot_hj_approval_status'],
|
||||
dicts: ['quot_bid_pricing_type','quot_hj_approval_status'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
|
|
|
@ -0,0 +1,217 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
|
||||
<el-form-item label="核价单号" prop="bidHjCode">
|
||||
<el-input
|
||||
v-model="queryParams.bidHjCode"
|
||||
placeholder="请输入核价单号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="核价日期">
|
||||
<el-date-picker
|
||||
v-model="daterangeBidHjPricingDate"
|
||||
style="width: 240px"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
></el-date-picker>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="核价协助状态" prop="bidHjApprovalStatus">
|
||||
<el-select v-model="queryParams.bidHjApprovalStatus" placeholder="请选择核价协助状态" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.bid_hj_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标单号" prop="bidCode">
|
||||
<el-input
|
||||
v-model="queryParams.bidCode"
|
||||
placeholder="请输入投标单号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务员" prop="bidSalesmanName">
|
||||
<el-input
|
||||
v-model="queryParams.bidSalesmanName"
|
||||
placeholder="请输入业务员"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户" prop="bidTenderingUnit">
|
||||
<el-input
|
||||
v-model="queryParams.bidTenderingUnit"
|
||||
placeholder="请输入客户"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目" prop="bidProject">
|
||||
<el-input
|
||||
v-model="queryParams.bidProject"
|
||||
placeholder="请输入项目"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div v-tableHeight="{customHeight: 76}">
|
||||
<el-table height="100%" v-loading="loading" :data="priceVerificationList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="核价单Id" align="center" prop="bidHjId" v-if="false"/>
|
||||
<el-table-column fixed label="核价单号" align="center" prop="bidHjCode" width="280px">
|
||||
<template slot-scope="scope">
|
||||
<el-link :underline="false" type="primary" @click="handleUpdate(scope.row)">{{scope.row.bidHjCode}}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed label="核价状态" align="center" prop="bidHjApprovalStatus" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.bid_hj_approval_status" :value="scope.row.bidHjApprovalStatus"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="投标单号" align="center" prop="bidCode" width="280px"/>
|
||||
<el-table-column label="业务员" align="center" prop="bidSalesmanName" width="150px"/>
|
||||
<el-table-column label="客户" align="center" prop="bidTenderingUnit" width="250px"/>
|
||||
<el-table-column label="项目" align="center" prop="bidProject" width="250px"/>
|
||||
<el-table-column label="核价类型" align="center" prop="bidHjPricingType" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_bid_pricing_type" :value="scope.row.bidHjPricingType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="核价日期" align="center" prop="bidHjPricingDate" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.bidHjPricingDate) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建人" align="center" prop="createName" width="150px"/>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="160">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 添加或修改投标单-核价单对话框 -->
|
||||
<hjDialog ref="hjDialog" @refreshList="getList"></hjDialog>
|
||||
</div>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<style>
|
||||
/* !*弹窗设置*!
|
||||
.el-dialog__body {
|
||||
padding: 10px 10px;
|
||||
color: #606266;
|
||||
font-size: 14px;
|
||||
word-break: break-all;
|
||||
overflow-y: auto; !* 自动显示垂直滚动条 *!
|
||||
height: 550px;
|
||||
max-height: 580px; !* 设置最大高度,根据需要调整 *!
|
||||
}*/
|
||||
</style>
|
||||
<script>
|
||||
import { listPriceVerification } from "@/api/priceVerification/priceVerificationBid";
|
||||
// 导入核价单详情组件
|
||||
import hjDialog from '@/views/priceVerification/priceVerification/hjInfoBid.vue';
|
||||
|
||||
export default {
|
||||
name: "PriceVerification",
|
||||
components: {
|
||||
// 注册组件
|
||||
'hjDialog': hjDialog
|
||||
},
|
||||
dicts: ['quot_bid_pricing_type','bid_hj_approval_status'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 投标单-核价单表格数据
|
||||
priceVerificationList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 备注时间范围
|
||||
daterangeBidHjPricingDate: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
bidHjCode: null,
|
||||
bidHjPricingDate: null,
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询投标单-核价单列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.params = {};
|
||||
if (null != this.daterangeBidHjPricingDate && '' != this.daterangeBidHjPricingDate) {
|
||||
this.queryParams.params["beginBidHjPricingDate"] = this.daterangeBidHjPricingDate[0];
|
||||
this.queryParams.params["endBidHjPricingDate"] = this.daterangeBidHjPricingDate[1];
|
||||
}
|
||||
listPriceVerification(this.queryParams).then(response => {
|
||||
this.priceVerificationList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.daterangeBidHjPricingDate = [];
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.bidHjId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
const bidHjId = row.bidHjId || this.ids
|
||||
this.$refs.hjDialog.getInfo("投标单-核价单",true,true,bidHjId);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
|
@ -260,17 +260,17 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<div v-if="checkPermi(['quot:quot:xzInfo'])">
|
||||
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="技术协助" prop="quotJsxzApprovalStatus">
|
||||
<dict-tag :options="dict.type.quot_approval_status" :value="this.form.quotJsxzApprovalStatus"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="核价协助" prop="quotHjApprovalStatus">
|
||||
<dict-tag :options="dict.type.quot_approval_status" :value="this.form.quotHjApprovalStatus"/>
|
||||
<dict-tag :options="dict.type.quot_hj_approval_status" :value="this.form.quotHjApprovalStatus"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="金思维协助" prop="quotJswApprovalStatus">
|
||||
<dict-tag :options="dict.type.quot_jsw_approval_status" :value="this.form.quotJswApprovalStatus"/>
|
||||
</el-form-item>
|
||||
|
|
Loading…
Reference in New Issue