投标信息-技术协助功能开发

This commit is contained in:
xd 2024-07-17 14:32:54 +08:00
parent fa70870c9d
commit 9c0b11258d
19 changed files with 4295 additions and 20 deletions

View File

@ -1,12 +1,10 @@
package com.ruoyi.web.controller.bid; package com.ruoyi.web.controller.bid;
import java.util.List; import java.util.List;
import javax.security.auth.Subject;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.bid.domain.BidFile; import com.ruoyi.bid.domain.BidFile;
import com.ruoyi.bid.domain.SysOaBid; import com.ruoyi.bid.domain.SysOaBid;
import com.ruoyi.bid.service.IBidFileService; import com.ruoyi.bid.service.IBidFileService;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
@ -14,6 +12,9 @@ import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.MinioUtil; import com.ruoyi.common.utils.file.MinioUtil;
import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.technicalConfirm.domain.BidJsqr;
import com.ruoyi.technicalConfirm.service.IBidJsqrService;
import com.ruoyi.technicalConfirm.service.IQuotJsqrService;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -43,6 +44,9 @@ public class BidController extends BaseController
@Autowired @Autowired
private IBidFileService bidFileService; private IBidFileService bidFileService;
@Autowired
private IBidJsqrService bidJsqrService;
@Autowired @Autowired
private ISysDeptService deptService; private ISysDeptService deptService;
@ -324,4 +328,68 @@ public class BidController extends BaseController
{ {
return toAjax(bidService.deleteBidByBidIds(bidIds)); return toAjax(bidService.deleteBidByBidIds(bidIds));
} }
/**
* 投标提交技术协助
*/
@PreAuthorize("@ss.hasPermi('bid:bid:assist')")
@Log(title = "投标提交技术协助", businessType = BusinessType.OTHER)
@PostMapping("/commitJsBid")
public AjaxResult commitJsBid(@RequestBody Bid bid)
{
String bidJsxzGroup = "";
String bidJsxzGroupArr[] = bid.getBidJsxzGroup();
if(bidJsxzGroupArr.length>0){
bidJsxzGroup = StringUtils.join(bidJsxzGroupArr, ",");
bid.setBidJsxzGroupValues(bidJsxzGroup);
}
if(StringUtils.isEmpty(bidJsxzGroup)){
return error("技术协助-请先选择分组");
}else{
BidJsqr bidJsqr = new BidJsqr();
String bidJsqrId = UUID.fastUUID().toString();
bidJsqr.setBidJsqrId(bidJsqrId);
//bidJsqr.setBidJsqrCode(IdUtils.createNo("BJD_JSQR_",0));
String bidJsqrCode = bidService.getCode("TB_JSQR");
bidJsqr.setBidJsqrCode(bidJsqrCode);
//特缆低压中压其他 协助状态设置
if(bidJsxzGroup.indexOf("TL")!=-1){
bidJsqr.setBidJsqrTlApprovalStatus("1");//特缆 协助状态 设置为 协助中
bidJsqr.setBidJsqrTlOperateState("0");//特缆 操作人状态 设置为 待通过
bidJsqr.setBidJsqrTlCheckState("0");//特缆 审核人状态 设置为 待通过
bidJsqr.setBidJsqrTlLeaderState("0");//特缆 组长状态 设置为 待通过
}
if(bidJsxzGroup.indexOf("DY")!=-1){
bidJsqr.setBidJsqrDyApprovalStatus("1");//低压 协助状态 设置为 协助中
bidJsqr.setBidJsqrDyOperateState("0");//低压 操作人状态 设置为 待通过
bidJsqr.setBidJsqrDyCheckState("0");//低压 审核人状态 设置为 待通过
bidJsqr.setBidJsqrDyLeaderState("0");//低压 组长状态 设置为 待通过
}
if(bidJsxzGroup.indexOf("ZY")!=-1){
bidJsqr.setBidJsqrZyApprovalStatus("1");//中压 协助状态 设置为 协助中
bidJsqr.setBidJsqrZyOperateState("0");//中压 操作人状态 设置为 待通过
bidJsqr.setBidJsqrZyCheckState("0");//中压 审核人状态 设置为 待通过
bidJsqr.setBidJsqrZyLeaderState("0");//中压 组长状态 设置为 待通过
}
if(bidJsxzGroup.indexOf("QT")!=-1){
bidJsqr.setBidJsqrQtApprovalStatus("1");//其他 协助状态 设置为 协助中
bidJsqr.setBidJsqrQtOperateState("0");//其他 操作人状态 设置为 待通过
bidJsqr.setBidJsqrQtCheckState("0");//其他 审核人状态 设置为 待通过
bidJsqr.setBidJsqrQtLeaderState("0");//其他 组长状态 设置为 待通过
}
bidJsqr.setCreateBy(getUsername());
bidJsqr.setUpdateBy(getUsername());
bidJsqrService.insertBidJsqr(bidJsqr);//生成报价单-技术确认单
bid.setBidJsxzConfirmId(bidJsqrId);
bid.setBidJsxzApprovalStatus("1");//报价单-技术确认单 状态设置为 协助中
bidService.updateBid(bid);
//sendNoticeToJsxz(bidJsqr);
}
return success();
}
} }

View File

@ -0,0 +1,552 @@
package com.ruoyi.web.controller.technicalConfirm;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.WebsocketConst;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.core.redis.RedisLock;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.bid.domain.Bid;
import com.ruoyi.bid.service.IBidService;
import com.ruoyi.system.service.ISysNoticeService;
import com.ruoyi.technicalConfirm.domain.BidJsqr;
import com.ruoyi.technicalConfirm.domain.BidJsqrXzDetail;
import com.ruoyi.technicalConfirm.domain.BidJsqrXzRemark;
import com.ruoyi.technicalConfirm.service.IBidJsqrService;
import com.ruoyi.web.utils.SendNotice.NoticeUtil;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.page.TableDataInfo;
import java.util.List;
/**
* 投标-技术确认单Controller
*
* @author ruoyi
* @date 2024-04-07
*/
@RestController
@RequestMapping("/bidJsqr/bidJsqr")
public class BidJsqrController extends BaseController
{
@Autowired
private IBidJsqrService bidJsqrService;
@Autowired
private IBidService bidService;
@Autowired
private ISysNoticeService noticeService;
@Autowired
private RedisCache redisCache;
@Autowired
private RedisLock redisLock;
/**
* 查询投标-技术确认单列表
*/
@PreAuthorize("@ss.hasPermi('jsqrBid:jsqrBid:list')")
@GetMapping("/list")
public TableDataInfo list(BidJsqr bidJsqr)
{
startPage();
List<BidJsqr> list = bidJsqrService.selectBidJsqrList(bidJsqr);
return getDataTable(list);
}
/**
* 导出投标-技术确认单列表
*/
@PreAuthorize("@ss.hasPermi('jsqrBid:jsqrBid:export')")
@Log(title = "投标-技术确认单导出", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, BidJsqr bidJsqr)
{
List<BidJsqr> list = bidJsqrService.selectBidJsqrList(bidJsqr);
ExcelUtil<BidJsqr> util = new ExcelUtil<BidJsqr>(BidJsqr.class);
util.exportExcel(response, list, "投标-技术确认单数据");
}
/**
* 获取投标-技术确认单详细信息
*/
@PreAuthorize("@ss.hasPermi('jsqrBid:jsqrBid:query')")
@GetMapping(value = "/{bidJsqrId}")
public AjaxResult getInfo(@PathVariable("bidJsqrId") String bidJsqrId)
{
return success(bidJsqrService.selectBidJsqrByBidJsqrId(bidJsqrId));
}
/**
* 修改投标-技术确认单
*/
@PreAuthorize("@ss.hasPermi('jsqrBid:jsqrBid:edit')")
@Log(title = "投标-技术确认单查看", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BidJsqr bidJsqr)
{
return toAjax(bidJsqrService.updateBidJsqr(bidJsqr));
}
/**
* 删除投标-技术确认单
*/
@PreAuthorize("@ss.hasPermi('jsqrBid:jsqrBid:remove')")
@Log(title = "投标-技术确认单删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{bidJsqrIds}")
public AjaxResult remove(@PathVariable String[] bidJsqrIds)
{
return toAjax(bidJsqrService.deleteBidJsqrByBidJsqrIds(bidJsqrIds));
}
/**
* 操作人确认事件
*/
@PreAuthorize("@ss.hasAnyPermi('jsqrBid:jsqrBid:operateTl,jsqrBid:jsqrBid:checkTl,jsqrBid:jsqrBid:leaderTl,jsqrBid:jsqrBid:operateDy,jsqrBid:jsqrBid:checkDy,jsqrBid:jsqrBid:leaderDy,jsqrBid:jsqrBid:operateZy,jsqrBid:jsqrBid:checkZy,jsqrBid:jsqrBid:leaderZy,jsqrBid:jsqrBid:operateQt,jsqrBid:jsqrBid:checkQt,jsqrBid:jsqrBid:leaderQt')")
@Log(title = "投标-技术确认单协助操作", businessType = BusinessType.UPDATE)
@PostMapping("/doOperate")
public AjaxResult doOperate(HttpServletResponse response, @RequestBody BidJsqrXzDetail info)
{
String currentUser = getLoginUser().getUser().getNickName();
BidJsqr bidJsqr = new BidJsqr();
String bidJsqrId = info.getBidJsqrId();
BidJsqr bidJsqrEntity = bidJsqrService.selectBidJsqrByBidJsqrId(bidJsqrId);
bidJsqr.setBidJsqrId(bidJsqrId);
String bidJsxzGroup = info.getBidJsxzGroup();//组名
String type = info.getType();//操作人审核人组长
String state = info.getState();//通过/驳回
String fileNum = info.getFileNum();//操作人反馈附件数
if("TL".equals(bidJsxzGroup)){//特缆组 操作人审核人组长 对应按钮事件
if("operater".equals(type)){//操作人通过驳回
bidJsqr.setBidJsqrTlOperateUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrTlOperateTime(DateUtils.getTime());
bidJsqr.setBidJsqrTlOperateState(state);
bidJsqr.setBidJsqrTlRemark(info.getBidJsqrTlRemark());
String bidJsqrTlRemark = info.getBidJsqrTlRemark();
if("2".equals(bidJsqrEntity.getBidJsqrTlOperateState())){
return error("特缆协助操作人已通过,请勿重复操作");
}
if("3".equals(bidJsqrEntity.getBidJsqrTlOperateState())){
return error("特缆协助操作人已被驳回,请勿重复操作");
}
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrTlRemark)){
return error("特缆协助说明不能为空");
}
bidJsqr.setBidJsqrTlApprovalStatus("3");//特缆协助状态 设置为 驳回
}else if("2".equals(state)){
if("0".equals(fileNum)&&StringUtils.isEmpty(bidJsqrTlRemark)){
return error("特缆反馈附件 或 特缆协助说明 至少填写一项");
}
}
// 清空redis 协助说明key
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_TL");
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_TL");
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_TL",currentUser);
}
}
if("checker".equals(type)){//审核人通过驳回
bidJsqr.setBidJsqrTlCheckUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrTlCheckTime(DateUtils.getTime());
bidJsqr.setBidJsqrTlCheckState(state);
bidJsqr.setBidJsqrTlCheckRemark(info.getBidJsqrTlCheckRemark());
String bidJsqrTlCheckRemark = info.getBidJsqrTlCheckRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrTlCheckRemark)){
return error("特缆审核意见不能为空");
}
bidJsqr.setBidJsqrTlOperateState("0");//特缆操作状态 设置为 待通过
}
}
if("leader".equals(type)){//组长通过驳回
bidJsqr.setBidJsqrTlLeaderUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrTlLeaderTime(DateUtils.getTime());
bidJsqr.setBidJsqrTlLeaderState(state);
bidJsqr.setBidJsqrTlLeaderRemark(info.getBidJsqrTlLeaderRemark());
String bidJsqrTlLeaderRemark = info.getBidJsqrTlLeaderRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrTlLeaderRemark)){
return error("特缆组长确认意见不能为空");
}
bidJsqr.setBidJsqrTlOperateState("0");//特缆操作状态 设置为 待通过
bidJsqr.setBidJsqrTlCheckState("0");//特缆审核状态 设置为 待通过
}else{
bidJsqr.setBidJsqrTlApprovalStatus("2");//特缆协助状态 设置为 已协助
}
}
}else if("DY".equals(bidJsxzGroup)){//低压组 操作人审核人组长 对应按钮事件
if("operater".equals(type)){//操作人通过驳回
bidJsqr.setBidJsqrDyOperateUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrDyOperateTime(DateUtils.getTime());
bidJsqr.setBidJsqrDyOperateState(state);
bidJsqr.setBidJsqrDyRemark(info.getBidJsqrDyRemark());
String bidJsqrDyRemark = info.getBidJsqrDyRemark();
if("2".equals(bidJsqrEntity.getBidJsqrDyOperateState())){
return error("低压协助操作人已通过,请勿重复操作");
}
if("3".equals(bidJsqrEntity.getBidJsqrDyOperateState())){
return error("低压协助操作人已被驳回,请勿重复操作");
}
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrDyRemark)){
return error("低压协助说明不能为空");
}
bidJsqr.setBidJsqrDyApprovalStatus("3");//低压协助状态 设置为 驳回
}else if("2".equals(state)){
if("0".equals(fileNum)&&StringUtils.isEmpty(bidJsqrDyRemark)){
return error("低压反馈附件 或 低压协助说明 至少填写一项");
}
}
// 清空redis 协助说明key
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_DY");
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_DY");
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_DY",currentUser);
}
}
if("checker".equals(type)){//审核人通过驳回
bidJsqr.setBidJsqrDyCheckUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrDyCheckTime(DateUtils.getTime());
bidJsqr.setBidJsqrDyCheckState(state);
bidJsqr.setBidJsqrDyCheckRemark(info.getBidJsqrDyCheckRemark());
String bidJsqrDyCheckRemark = info.getBidJsqrDyCheckRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrDyCheckRemark)){
return error("低压审核意见不能为空");
}
bidJsqr.setBidJsqrDyOperateState("0");//低压操作状态 设置为 待通过
}
}
if("leader".equals(type)){//组长通过驳回
bidJsqr.setBidJsqrDyLeaderUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrDyLeaderTime(DateUtils.getTime());
bidJsqr.setBidJsqrDyLeaderState(state);
bidJsqr.setBidJsqrDyLeaderRemark(info.getBidJsqrDyLeaderRemark());
String bidJsqrDyLeaderRemark = info.getBidJsqrDyLeaderRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrDyLeaderRemark)){
return error("低压组长确认意见不能为空");
}
bidJsqr.setBidJsqrDyOperateState("0");//低压操作状态 设置为 待通过
bidJsqr.setBidJsqrDyCheckState("0");//低压审核状态 设置为 待通过
}else{
bidJsqr.setBidJsqrDyApprovalStatus("2");//低压协助状态 设置为 已协助
}
}
}else if("ZY".equals(bidJsxzGroup)){//中压组 操作人审核人组长 对应按钮事件
if("operater".equals(type)){//操作人通过驳回
bidJsqr.setBidJsqrZyOperateUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrZyOperateTime(DateUtils.getTime());
bidJsqr.setBidJsqrZyOperateState(state);
bidJsqr.setBidJsqrZyRemark(info.getBidJsqrZyRemark());
String bidJsqrZyRemark = info.getBidJsqrZyRemark();
if("2".equals(bidJsqrEntity.getBidJsqrZyOperateState())){
return error("中压协助操作人已通过,请勿重复操作");
}
if("3".equals(bidJsqrEntity.getBidJsqrZyOperateState())){
return error("中压协助操作人已被驳回,请勿重复操作");
}
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrZyRemark)){
return error("中压协助说明不能为空");
}
bidJsqr.setBidJsqrZyApprovalStatus("3");//中压协助状态 设置为 驳回
}else if("2".equals(state)){
if("0".equals(fileNum)&&StringUtils.isEmpty(bidJsqrZyRemark)){
return error("中压反馈附件 或 低压协助说明 至少填写一项");
}
}
// 清空redis 协助说明key
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_ZY");
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_ZY");
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_ZY",currentUser);
}
}
if("checker".equals(type)){//审核人通过驳回
bidJsqr.setBidJsqrZyCheckUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrZyCheckTime(DateUtils.getTime());
bidJsqr.setBidJsqrZyCheckState(state);
bidJsqr.setBidJsqrZyCheckRemark(info.getBidJsqrZyCheckRemark());
String bidJsqrZyCheckRemark = info.getBidJsqrZyCheckRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrZyCheckRemark)){
return error("中压审核意见不能为空");
}
bidJsqr.setBidJsqrZyOperateState("0");//中压操作状态 设置为 待通过
}
}
if("leader".equals(type)){//组长通过驳回
bidJsqr.setBidJsqrZyLeaderUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrZyLeaderTime(DateUtils.getTime());
bidJsqr.setBidJsqrZyLeaderState(state);
bidJsqr.setBidJsqrZyLeaderRemark(info.getBidJsqrZyLeaderRemark());
String bidJsqrZyLeaderRemark = info.getBidJsqrZyLeaderRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrZyLeaderRemark)){
return error("中压组长确认意见不能为空");
}
bidJsqr.setBidJsqrZyOperateState("0");//中压操作状态 设置为 待通过
bidJsqr.setBidJsqrZyCheckState("0");//中压审核状态 设置为 待通过
}else{
bidJsqr.setBidJsqrZyApprovalStatus("2");//中压协助状态 设置为 已协助
}
}
}else if("QT".equals(bidJsxzGroup)){//其他组 操作人审核人组长 对应按钮事件
if("operater".equals(type)){//操作人通过驳回
bidJsqr.setBidJsqrQtOperateUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrQtOperateTime(DateUtils.getTime());
bidJsqr.setBidJsqrQtOperateState(state);
bidJsqr.setBidJsqrQtRemark(info.getBidJsqrQtRemark());
String bidJsqrQtRemark = info.getBidJsqrQtRemark();
if("2".equals(bidJsqrEntity.getBidJsqrQtOperateState())){
return error("其他协助操作人已通过,请勿重复操作");
}
if("3".equals(bidJsqrEntity.getBidJsqrQtOperateState())){
return error("其他协助操作人已被驳回,请勿重复操作");
}
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrQtRemark)){
return error("其他协助说明不能为空");
}
bidJsqr.setBidJsqrQtApprovalStatus("3");//其他协助状态 设置为 驳回
}else if("2".equals(state)){
if("0".equals(fileNum)&&StringUtils.isEmpty(bidJsqrQtRemark)){
return error("其他反馈附件 或 其他协助说明 至少填写一项");
}
}
// 清空redis 协助说明key
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_QT");
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrEntity.getBidJsqrCode()+"_QT");
redisLock.unLock(bidJsqrEntity.getBidJsqrCode()+"_QT",currentUser);
}
}
if("checker".equals(type)){//审核人通过驳回
bidJsqr.setBidJsqrQtCheckUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrQtCheckTime(DateUtils.getTime());
bidJsqr.setBidJsqrQtCheckState(state);
bidJsqr.setBidJsqrQtCheckRemark(info.getBidJsqrQtCheckRemark());
String bidJsqrQtCheckRemark = info.getBidJsqrQtCheckRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrQtCheckRemark)){
return error("其他审核意见不能为空");
}
bidJsqr.setBidJsqrQtOperateState("0");//其他操作状态 设置为 待通过
}
}
if("leader".equals(type)){//组长通过驳回
bidJsqr.setBidJsqrQtLeaderUserName(getLoginUser().getUser().getNickName());
bidJsqr.setBidJsqrQtLeaderTime(DateUtils.getTime());
bidJsqr.setBidJsqrQtLeaderState(state);
bidJsqr.setBidJsqrQtLeaderRemark(info.getBidJsqrQtLeaderRemark());
String bidJsqrQtLeaderRemark = info.getBidJsqrQtLeaderRemark();
if("3".equals(state)){//驳回
if(StringUtils.isEmpty(bidJsqrQtLeaderRemark)){
return error("其他确认意见不能为空");
}
bidJsqr.setBidJsqrQtOperateState("0");//其他操作状态 设置为 待通过
bidJsqr.setBidJsqrQtCheckState("0");//其他审核状态 设置为 待通过
}else{
bidJsqr.setBidJsqrQtApprovalStatus("2");//其他协助状态 设置为 已协助
}
}
}
bidJsqrService.updateBidJsqr(bidJsqr);
return success(bidJsqr);
}
/**
* 投标-技术确认单 提交报价组
*/
@PreAuthorize("@ss.hasPermi('jsqrBid:jsqrBid:commit')")
@Log(title = "投标-技术确认单 提交投标", businessType = BusinessType.UPDATE)
@PostMapping("/commitBid")
public AjaxResult commitBid(@RequestBody BidJsqr bidJsqr)
{
bidJsqr.setUpdateBy(getUsername());
bidJsqrService.updateBidJsqr(bidJsqr);
String bidJsqrId = bidJsqr.getBidJsqrId();
BidJsqr info = bidJsqrService.selectBidJsqrByBidJsqrId(bidJsqrId);
Bid bid = bidService.selectBidByBidJsqrId(bidJsqrId);
String bid_jsxz_group = bid.getBidJsxzGroupValues();//技术协助单-分组
String bidJsxzConfirmId = bid.getBidJsxzConfirmId();//技术协助单Id
if(StringUtils.isNotEmpty(bidJsxzConfirmId)){
Boolean tlFlag = true;
if(bid_jsxz_group.indexOf("TL")!=-1) {//校验特缆 操作人审核人组长 通过情况
String bid_jsqr_tl_approval_status = info.getBidJsqrTlApprovalStatus();
if ("1".equals(bid_jsqr_tl_approval_status)) {
tlFlag = false;
}
}
if(!tlFlag){
return error("特缆协助还未完成");
}
Boolean dyFlag = true;
if(bid_jsxz_group.indexOf("DY")!=-1) {//校验特缆 操作人审核人组长 通过情况
String bid_jsqr_dy_approval_status = info.getBidJsqrDyApprovalStatus();
if ("1".equals(bid_jsqr_dy_approval_status)) {
dyFlag = false;
}
}
if(!dyFlag){
return error("低压协助还未完成");
}
Boolean zyFlag = true;
if(bid_jsxz_group.indexOf("ZY")!=-1) {//校验特缆 操作人审核人组长 通过情况
String bid_jsqr_zy_approval_status = info.getBidJsqrZyApprovalStatus();
if ("1".equals(bid_jsqr_zy_approval_status)) {
zyFlag = false;
}
}
if(!zyFlag){
return error("中压协助还未完成");
}
Boolean qtFlag = true;
if(bid_jsxz_group.indexOf("QT")!=-1) {//校验特缆 操作人审核人组长 通过情况
String bid_jsqr_qt_approval_status = info.getBidJsqrQtApprovalStatus();
if ("1".equals(bid_jsqr_qt_approval_status)) {
qtFlag = false;
}
}
if(!qtFlag){
return error("其他(防火、轨道、架空)协助还未完成");
}
bid.setBidJsxzApprovalStatus("2");//投标-技术协助状态 设置为 已协助
//sendNoticeToBid(bidJsqr);// 发送给提醒
}
return success(bidService.updateBid(bid));
}
/**
* 发送信息-技术协助提交投标
* @param bidJsqr
*/
private void sendNoticeToBid(BidJsqr bidJsqr){
//推送消息
LoginUser loginUser = getLoginUser();//当前登陆者
//获取发送人-投标
List<String> userIds = noticeService.getSendEmp(WebsocketConst.MSG_SEND_QUOT_BJZ);
NoticeUtil.sendNoticesBusiness(loginUser,"有投标已完成技术协助","单号:"+bidJsqr.getBidCode(),userIds);
}
/**
* 监听协助说明有数据输入则加入redis
*/
@PostMapping("/setRedisJsxz")
public AjaxResult setRedisJsxz(HttpServletResponse response, @RequestBody BidJsqrXzRemark info)
{
String currentUser = getLoginUser().getUser().getNickName();
String type = info.getType();
String bidJsqrId = info.getBidJsqrId();
String bidJsqrCode = info.getBidJsqrCode();
String remark = info.getRemark();
BidJsqr bidJsqr = bidJsqrService.selectBidJsqrByBidJsqrId(bidJsqrId);
if(bidJsqr!=null){
//操作状态如果是已完成则不进行下面操作
if("TL".equals(type)){
if("2".equals(bidJsqr.getBidJsqrTlOperateState())){
return success();
}
}
if("DY".equals(type)){
if("2".equals(bidJsqr.getBidJsqrDyOperateState())){
return success();
}
}
if("ZY".equals(type)){
if("2".equals(bidJsqr.getBidJsqrZyOperateState())){
return success();
}
}
if("QT".equals(type)){
if("2".equals(bidJsqr.getBidJsqrQtOperateState())){
return success();
}
}
}
if(StringUtils.isNotBlank(remark)){
// 判断 redis 中有无 bidJsqrXzRemark key
Boolean lock = redisLock.getLock(bidJsqrCode+"_"+type, 10,currentUser);
if(lock){
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrCode+"_"+type);
if(StringUtils.isEmpty(hvalue)){
redisCache.setCacheMapValue("bidJsqrXzRemark",bidJsqrCode+"_"+type,currentUser);
}else if(!hvalue.equals(currentUser)){
return error("当前有其他用户【"+hvalue+"】正在录入");
}
}else{
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrCode+"_"+type);
if(StringUtils.isNotEmpty(hvalue)){
if(!currentUser.equals(hvalue)){
return error("当前有其他用户【"+hvalue+"】正在录入");
}
}
}
}else{// 清空 协助说明时清空redis对应的值
String hvalue = redisCache.getCacheMapValue("bidJsqrXzRemark",bidJsqrCode+"_"+type);
if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){
redisCache.deleteCacheMapValue("bidJsqrXzRemark",bidJsqrCode+"_"+type);
redisLock.unLock(bidJsqrCode+"_"+type,currentUser);
}
}
return success();
}
}

View File

@ -200,6 +200,35 @@ public class Bid extends BaseEntity
private String receiveUserName; private String receiveUserName;
private String receiveUserNickName; private String receiveUserNickName;
/** 技术协助 */
private String bidJsxzApprovalStatus;//技术协助-协助状态
private String bidJsxzTechnicalRequirement;//技术协助-技术要求
private String[] bidJsxzGroup;//技术协助-分组
private String bidJsxzGroupValues;//技术协助-分组
private String bidJsxzConfirmId;//技术协助-技术确认单id
private String bidJsxzConfirmCode;//技术协助-技术确认单号
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 setBidId(String bidId) public void setBidId(String bidId)
{ {
this.bidId = bidId; this.bidId = bidId;
@ -592,4 +621,46 @@ public class Bid extends BaseEntity
public String getReceiveUserNickName() { return receiveUserNickName; } public String getReceiveUserNickName() { return receiveUserNickName; }
public void setReceiveUserNickName(String receiveUserNickName) { this.receiveUserNickName = receiveUserNickName; } public void setReceiveUserNickName(String receiveUserNickName) { this.receiveUserNickName = receiveUserNickName; }
public String getBidJsxzApprovalStatus() { return bidJsxzApprovalStatus; }
public void setBidJsxzApprovalStatus(String bidJsxzApprovalStatus) { this.bidJsxzApprovalStatus = bidJsxzApprovalStatus; }
public String getBidJsxzTechnicalRequirement() { return bidJsxzTechnicalRequirement; }
public void setBidJsxzTechnicalRequirement(String bidJsxzTechnicalRequirement) {this.bidJsxzTechnicalRequirement = bidJsxzTechnicalRequirement; }
public String[] getBidJsxzGroup() { return bidJsxzGroup; }
public void setBidJsxzGroup(String[] bidJsxzGroup) { this.bidJsxzGroup = bidJsxzGroup; }
public String getBidJsxzGroupValues() { return bidJsxzGroupValues; }
public void setBidJsxzGroupValues(String bidJsxzGroupValues) { this.bidJsxzGroupValues = bidJsxzGroupValues; }
public String getBidJsxzConfirmId() { return bidJsxzConfirmId; }
public void setBidJsxzConfirmId(String bidJsxzConfirmId) { this.bidJsxzConfirmId = bidJsxzConfirmId; }
public String getBidJsxzConfirmCode() { return bidJsxzConfirmCode; }
public void setBidJsxzConfirmCode(String bidJsxzConfirmCode) { this.bidJsxzConfirmCode = bidJsxzConfirmCode; }
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; }
} }

View File

@ -20,6 +20,13 @@ public interface BidMapper
*/ */
public Bid selectBidByBidId(String bidId); public Bid selectBidByBidId(String bidId);
/**
* 获取投标信息
* @param bidJsqrId
* @return
*/
Bid selectBidByBidJsqrId(String bidJsqrId);
/** /**
* 查询投标信息列表 * 查询投标信息列表
* *
@ -78,4 +85,5 @@ public interface BidMapper
* @param sysOaBid * @param sysOaBid
*/ */
void insertSysOABid(SysOaBid sysOaBid); void insertSysOABid(SysOaBid sysOaBid);
} }

View File

@ -3,6 +3,7 @@ package com.ruoyi.bid.service;
import java.util.List; import java.util.List;
import com.ruoyi.bid.domain.Bid; import com.ruoyi.bid.domain.Bid;
import com.ruoyi.bid.domain.SysOaBid; import com.ruoyi.bid.domain.SysOaBid;
import com.ruoyi.quot.domain.Quot;
/** /**
* 投标信息Service接口 * 投标信息Service接口
@ -20,6 +21,14 @@ public interface IBidService
*/ */
public Bid selectBidByBidId(String bidId); public Bid selectBidByBidId(String bidId);
/**
* 获取投标信息
* @param bidJsqrId
* @return
*/
Bid selectBidByBidJsqrId(String bidJsqrId);
/** /**
* 查询投标信息列表 * 查询投标信息列表
* *
@ -78,4 +87,5 @@ public interface IBidService
* @param sysOaBid * @param sysOaBid
*/ */
void insertSysOABid(SysOaBid sysOaBid); void insertSysOABid(SysOaBid sysOaBid);
} }

View File

@ -37,6 +37,16 @@ public class BidServiceImpl implements IBidService
return bidMapper.selectBidByBidId(bidId); return bidMapper.selectBidByBidId(bidId);
} }
/**
* 获取投标信息
* @param bidJsqrId
* @return
*/
@Override
public Bid selectBidByBidJsqrId(String bidJsqrId) {
return bidMapper.selectBidByBidJsqrId(bidJsqrId);
}
/** /**
* 查询投标信息列表 * 查询投标信息列表
* *

View File

@ -0,0 +1,584 @@
package com.ruoyi.technicalConfirm.domain;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 投标-技术确认单对象 bid_jsqr
*
* @author ruoyi
* @date 2024-04-07
*/
public class BidJsqr extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** ID */
private String bidJsqrId;
/** 技术确认单编号 */
private String bidJsqrCode;
/** 特缆协助状态 */
private String bidJsqrTlApprovalStatus;
/** 特缆操作人 */
private String bidJsqrTlOperateUserName;
/** 特缆操作状态 */
private String bidJsqrTlOperateState;
/** 特缆操作时间 */
private String bidJsqrTlOperateTime;
/** 特缆协助说明 */
private String bidJsqrTlRemark;
/** 特缆审核人 */
private String bidJsqrTlCheckUserName;
/** 特缆审核状态 */
private String bidJsqrTlCheckState;
/** 特缆审核时间 */
private String bidJsqrTlCheckTime;
/** 特缆审核意见 */
private String bidJsqrTlCheckRemark;
/** 特缆组长 */
private String bidJsqrTlLeaderUserName;
/** 特缆组长状态 */
private String bidJsqrTlLeaderState;
/** 特缆组长确认时间 */
private String bidJsqrTlLeaderTime;
/** 特缆组长确认意见 */
private String bidJsqrTlLeaderRemark;
/** 低压协助状态 */
private String bidJsqrDyApprovalStatus;
/** 低压操作人 */
private String bidJsqrDyOperateUserName;
/** 低压操作状态 */
private String bidJsqrDyOperateState;
/** 低压操作时间 */
private String bidJsqrDyOperateTime;
/** 低压协助说明 */
private String bidJsqrDyRemark;
/** 低压审核人 */
private String bidJsqrDyCheckUserName;
/** 低压审核状态 */
private String bidJsqrDyCheckState;
/** 低压审核时间 */
private String bidJsqrDyCheckTime;
/** 低压审核意见 */
private String bidJsqrDyCheckRemark;
/** 低压组长 */
private String bidJsqrDyLeaderUserName;
/** 低压组长状态 */
private String bidJsqrDyLeaderState;
/** 低压组长确认时间 */
private String bidJsqrDyLeaderTime;
/** 低压组长确认意见 */
private String bidJsqrDyLeaderRemark;
/** 中压协助状态 */
private String bidJsqrZyApprovalStatus;
/** 中压操作人 */
private String bidJsqrZyOperateUserName;
/** 中压操作状态 */
private String bidJsqrZyOperateState;
/** 中压操作时间 */
private String bidJsqrZyOperateTime;
/** 中压协助说明 */
private String bidJsqrZyRemark;
/** 中压审核人 */
private String bidJsqrZyCheckUserName;
/** 中压审核状态 */
private String bidJsqrZyCheckState;
/** 中压审核时间 */
private String bidJsqrZyCheckTime;
/** 中压审核意见 */
private String bidJsqrZyCheckRemark;
/** 中压组长 */
private String bidJsqrZyLeaderUserName;
/** 中压组长状态 */
private String bidJsqrZyLeaderState;
/** 中压组长确认时间 */
private String bidJsqrZyLeaderTime;
/** 中压组长确认意见 */
private String bidJsqrZyLeaderRemark;
/** 其他协助状态 */
private String bidJsqrQtApprovalStatus;
/** 其他操作人 */
private String bidJsqrQtOperateUserName;
/** 其他操作状态 */
private String bidJsqrQtOperateState;
/** 其他操作时间 */
private String bidJsqrQtOperateTime;
/** 其他协助说明 */
private String bidJsqrQtRemark;
/** 其他审核人 */
private String bidJsqrQtCheckUserName;
/** 其他审核状态 */
private String bidJsqrQtCheckState;
/** 其他审核时间 */
private String bidJsqrQtCheckTime;
/** 其他审核意见 */
private String bidJsqrQtCheckRemark;
/** 其他组长 */
private String bidJsqrQtLeaderUserName;
/** 其他组长状态 */
private String bidJsqrQtLeaderState;
/** 其他组长确认时间 */
private String bidJsqrQtLeaderTime;
/** 其他组长确认意见 */
private String bidJsqrQtLeaderRemark;
/** 创建人 */
private String createName;
public void setBidJsqrId(String bidJsqrId)
{
this.bidJsqrId = bidJsqrId;
}
public String getBidJsqrId()
{
return bidJsqrId;
}
public void setBidJsqrCode(String bidJsqrCode)
{
this.bidJsqrCode = bidJsqrCode;
}
public String getBidJsqrCode()
{
return bidJsqrCode;
}
public void setBidJsqrTlApprovalStatus(String bidJsqrTlApprovalStatus) { this.bidJsqrTlApprovalStatus = bidJsqrTlApprovalStatus; }
public String getBidJsqrTlApprovalStatus()
{
return bidJsqrTlApprovalStatus;
}
public void setBidJsqrTlOperateUserName(String bidJsqrTlOperateUserName) { this.bidJsqrTlOperateUserName = bidJsqrTlOperateUserName; }
public String getBidJsqrTlOperateUserName()
{
return bidJsqrTlOperateUserName;
}
public void setBidJsqrTlOperateState(String bidJsqrTlOperateState) { this.bidJsqrTlOperateState = bidJsqrTlOperateState; }
public String getBidJsqrTlOperateState()
{
return bidJsqrTlOperateState;
}
public void setBidJsqrTlOperateTime(String bidJsqrTlOperateTime) { this.bidJsqrTlOperateTime = bidJsqrTlOperateTime; }
public String getBidJsqrTlOperateTime()
{
return bidJsqrTlOperateTime;
}
public void setBidJsqrTlRemark(String bidJsqrTlRemark)
{
this.bidJsqrTlRemark = bidJsqrTlRemark;
}
public String getBidJsqrTlRemark()
{
return bidJsqrTlRemark;
}
public void setBidJsqrTlCheckUserName(String bidJsqrTlCheckUserName) { this.bidJsqrTlCheckUserName = bidJsqrTlCheckUserName; }
public String getBidJsqrTlCheckUserName()
{
return bidJsqrTlCheckUserName;
}
public void setBidJsqrTlCheckState(String bidJsqrTlCheckState) { this.bidJsqrTlCheckState = bidJsqrTlCheckState; }
public String getBidJsqrTlCheckState()
{
return bidJsqrTlCheckState;
}
public void setBidJsqrTlCheckTime(String bidJsqrTlCheckTime)
{
this.bidJsqrTlCheckTime = bidJsqrTlCheckTime;
}
public String getBidJsqrTlCheckTime()
{
return bidJsqrTlCheckTime;
}
public void setBidJsqrTlCheckRemark(String bidJsqrTlCheckRemark) { this.bidJsqrTlCheckRemark = bidJsqrTlCheckRemark; }
public String getBidJsqrTlCheckRemark()
{
return bidJsqrTlCheckRemark;
}
public void setBidJsqrTlLeaderUserName(String bidJsqrTlLeaderUserName) { this.bidJsqrTlLeaderUserName = bidJsqrTlLeaderUserName; }
public String getBidJsqrTlLeaderUserName()
{
return bidJsqrTlLeaderUserName;
}
public void setBidJsqrTlLeaderState(String bidJsqrTlLeaderState) { this.bidJsqrTlLeaderState = bidJsqrTlLeaderState; }
public String getBidJsqrTlLeaderState()
{
return bidJsqrTlLeaderState;
}
public void setBidJsqrTlLeaderTime(String bidJsqrTlLeaderTime) { this.bidJsqrTlLeaderTime = bidJsqrTlLeaderTime; }
public String getBidJsqrTlLeaderTime()
{
return bidJsqrTlLeaderTime;
}
public void setBidJsqrTlLeaderRemark(String bidJsqrTlLeaderRemark) { this.bidJsqrTlLeaderRemark = bidJsqrTlLeaderRemark; }
public String getBidJsqrTlLeaderRemark()
{
return bidJsqrTlLeaderRemark;
}
public void setBidJsqrDyApprovalStatus(String bidJsqrDyApprovalStatus) { this.bidJsqrDyApprovalStatus = bidJsqrDyApprovalStatus; }
public String getBidJsqrDyApprovalStatus()
{
return bidJsqrDyApprovalStatus;
}
public void setBidJsqrDyOperateUserName(String bidJsqrDyOperateUserName) { this.bidJsqrDyOperateUserName = bidJsqrDyOperateUserName; }
public String getBidJsqrDyOperateUserName()
{
return bidJsqrDyOperateUserName;
}
public void setBidJsqrDyOperateState(String bidJsqrDyOperateState) { this.bidJsqrDyOperateState = bidJsqrDyOperateState; }
public String getBidJsqrDyOperateState()
{
return bidJsqrDyOperateState;
}
public void setBidJsqrDyOperateTime(String bidJsqrDyOperateTime) { this.bidJsqrDyOperateTime = bidJsqrDyOperateTime; }
public String getBidJsqrDyOperateTime()
{
return bidJsqrDyOperateTime;
}
public void setBidJsqrDyRemark(String bidJsqrDyRemark)
{
this.bidJsqrDyRemark = bidJsqrDyRemark;
}
public String getBidJsqrDyRemark()
{
return bidJsqrDyRemark;
}
public void setBidJsqrDyCheckUserName(String bidJsqrDyCheckUserName) { this.bidJsqrDyCheckUserName = bidJsqrDyCheckUserName; }
public String getBidJsqrDyCheckUserName()
{
return bidJsqrDyCheckUserName;
}
public void setBidJsqrDyCheckState(String bidJsqrDyCheckState) { this.bidJsqrDyCheckState = bidJsqrDyCheckState; }
public String getBidJsqrDyCheckState()
{
return bidJsqrDyCheckState;
}
public void setBidJsqrDyCheckTime(String bidJsqrDyCheckTime)
{
this.bidJsqrDyCheckTime = bidJsqrDyCheckTime;
}
public String getBidJsqrDyCheckTime()
{
return bidJsqrDyCheckTime;
}
public void setBidJsqrDyCheckRemark(String bidJsqrDyCheckRemark) { this.bidJsqrDyCheckRemark = bidJsqrDyCheckRemark; }
public String getBidJsqrDyCheckRemark()
{
return bidJsqrDyCheckRemark;
}
public void setBidJsqrDyLeaderUserName(String bidJsqrDyLeaderUserName) { this.bidJsqrDyLeaderUserName = bidJsqrDyLeaderUserName; }
public String getBidJsqrDyLeaderUserName()
{
return bidJsqrDyLeaderUserName;
}
public void setBidJsqrDyLeaderState(String bidJsqrDyLeaderState) { this.bidJsqrDyLeaderState = bidJsqrDyLeaderState; }
public String getBidJsqrDyLeaderState()
{
return bidJsqrDyLeaderState;
}
public void setBidJsqrDyLeaderTime(String bidJsqrDyLeaderTime) { this.bidJsqrDyLeaderTime = bidJsqrDyLeaderTime; }
public String getBidJsqrDyLeaderTime()
{
return bidJsqrDyLeaderTime;
}
public void setBidJsqrDyLeaderRemark(String bidJsqrDyLeaderRemark) { this.bidJsqrDyLeaderRemark = bidJsqrDyLeaderRemark; }
public String getBidJsqrDyLeaderRemark()
{
return bidJsqrDyLeaderRemark;
}
public void setBidJsqrZyApprovalStatus(String bidJsqrZyApprovalStatus) { this.bidJsqrZyApprovalStatus = bidJsqrZyApprovalStatus; }
public String getBidJsqrZyApprovalStatus()
{
return bidJsqrZyApprovalStatus;
}
public void setBidJsqrZyOperateUserName(String bidJsqrZyOperateUserName) { this.bidJsqrZyOperateUserName = bidJsqrZyOperateUserName; }
public String getBidJsqrZyOperateUserName()
{
return bidJsqrZyOperateUserName;
}
public void setBidJsqrZyOperateState(String bidJsqrZyOperateState) { this.bidJsqrZyOperateState = bidJsqrZyOperateState; }
public String getBidJsqrZyOperateState()
{
return bidJsqrZyOperateState;
}
public void setBidJsqrZyOperateTime(String bidJsqrZyOperateTime) { this.bidJsqrZyOperateTime = bidJsqrZyOperateTime; }
public String getBidJsqrZyOperateTime()
{
return bidJsqrZyOperateTime;
}
public void setBidJsqrZyRemark(String bidJsqrZyRemark)
{
this.bidJsqrZyRemark = bidJsqrZyRemark;
}
public String getBidJsqrZyRemark()
{
return bidJsqrZyRemark;
}
public void setBidJsqrZyCheckUserName(String bidJsqrZyCheckUserName) { this.bidJsqrZyCheckUserName = bidJsqrZyCheckUserName; }
public String getBidJsqrZyCheckUserName()
{
return bidJsqrZyCheckUserName;
}
public void setBidJsqrZyCheckState(String bidJsqrZyCheckState) { this.bidJsqrZyCheckState = bidJsqrZyCheckState; }
public String getBidJsqrZyCheckState()
{
return bidJsqrZyCheckState;
}
public void setBidJsqrZyCheckTime(String bidJsqrZyCheckTime)
{
this.bidJsqrZyCheckTime = bidJsqrZyCheckTime;
}
public String getBidJsqrZyCheckTime()
{
return bidJsqrZyCheckTime;
}
public void setBidJsqrZyCheckRemark(String bidJsqrZyCheckRemark) { this.bidJsqrZyCheckRemark = bidJsqrZyCheckRemark; }
public String getBidJsqrZyCheckRemark()
{
return bidJsqrZyCheckRemark;
}
public void setBidJsqrZyLeaderUserName(String bidJsqrZyLeaderUserName) { this.bidJsqrZyLeaderUserName = bidJsqrZyLeaderUserName; }
public String getBidJsqrZyLeaderUserName()
{
return bidJsqrZyLeaderUserName;
}
public void setBidJsqrZyLeaderState(String bidJsqrZyLeaderState) { this.bidJsqrZyLeaderState = bidJsqrZyLeaderState; }
public String getBidJsqrZyLeaderState()
{
return bidJsqrZyLeaderState;
}
public void setBidJsqrZyLeaderTime(String bidJsqrZyLeaderTime) { this.bidJsqrZyLeaderTime = bidJsqrZyLeaderTime; }
public String getBidJsqrZyLeaderTime()
{
return bidJsqrZyLeaderTime;
}
public void setBidJsqrZyLeaderRemark(String bidJsqrZyLeaderRemark) { this.bidJsqrZyLeaderRemark = bidJsqrZyLeaderRemark; }
public String getBidJsqrZyLeaderRemark()
{
return bidJsqrZyLeaderRemark;
}
public void setBidJsqrQtApprovalStatus(String bidJsqrQtApprovalStatus) { this.bidJsqrQtApprovalStatus = bidJsqrQtApprovalStatus; }
public String getBidJsqrQtApprovalStatus()
{
return bidJsqrQtApprovalStatus;
}
public void setBidJsqrQtOperateUserName(String bidJsqrQtOperateUserName) { this.bidJsqrQtOperateUserName = bidJsqrQtOperateUserName; }
public String getBidJsqrQtOperateUserName()
{
return bidJsqrQtOperateUserName;
}
public void setBidJsqrQtOperateState(String bidJsqrQtOperateState) { this.bidJsqrQtOperateState = bidJsqrQtOperateState; }
public String getBidJsqrQtOperateState()
{
return bidJsqrQtOperateState;
}
public void setBidJsqrQtOperateTime(String bidJsqrQtOperateTime) { this.bidJsqrQtOperateTime = bidJsqrQtOperateTime; }
public String getBidJsqrQtOperateTime()
{
return bidJsqrQtOperateTime;
}
public void setBidJsqrQtRemark(String bidJsqrQtRemark)
{
this.bidJsqrQtRemark = bidJsqrQtRemark;
}
public String getBidJsqrQtRemark()
{
return bidJsqrQtRemark;
}
public void setBidJsqrQtCheckUserName(String bidJsqrQtCheckUserName) { this.bidJsqrQtCheckUserName = bidJsqrQtCheckUserName; }
public String getBidJsqrQtCheckUserName()
{
return bidJsqrQtCheckUserName;
}
public void setBidJsqrQtCheckState(String bidJsqrQtCheckState) { this.bidJsqrQtCheckState = bidJsqrQtCheckState; }
public String getBidJsqrQtCheckState()
{
return bidJsqrQtCheckState;
}
public void setBidJsqrQtCheckTime(String bidJsqrQtCheckTime)
{
this.bidJsqrQtCheckTime = bidJsqrQtCheckTime;
}
public String getBidJsqrQtCheckTime()
{
return bidJsqrQtCheckTime;
}
public void setBidJsqrQtCheckRemark(String bidJsqrQtCheckRemark){ this.bidJsqrQtCheckRemark = bidJsqrQtCheckRemark; }
public String getBidJsqrQtCheckRemark(){
return bidJsqrQtCheckRemark;
}
public void setBidJsqrQtLeaderUserName(String bidJsqrQtLeaderUserName) { this.bidJsqrQtLeaderUserName = bidJsqrQtLeaderUserName; }
public String getBidJsqrQtLeaderUserName(){
return bidJsqrQtLeaderUserName;
}
public void setBidJsqrQtLeaderState(String bidJsqrQtLeaderState) { this.bidJsqrQtLeaderState = bidJsqrQtLeaderState; }
public String getBidJsqrQtLeaderState(){
return bidJsqrQtLeaderState;
}
public void setBidJsqrQtLeaderTime(String bidJsqrQtLeaderTime) { this.bidJsqrQtLeaderTime = bidJsqrQtLeaderTime; }
public String getBidJsqrQtLeaderTime(){
return bidJsqrQtLeaderTime;
}
public void setBidJsqrQtLeaderRemark(String bidJsqrQtLeaderRemark) { this.bidJsqrQtLeaderRemark = bidJsqrQtLeaderRemark; }
public String getBidJsqrQtLeaderRemark(){return bidJsqrQtLeaderRemark;}
public String getCreateName() { return createName; }
public void setCreateName(String createName) { this.createName = createName; }
/** 投标信息 */
/** 投标号Id */
private String bidId;
/** 投标号 */
private String bidCode;
/** 业务员 */
private String bidSalesmanName;
/** 客户名称 */
private String bidTenderingUnit;
/** 项目名称 */
private String bidProject;
/** 技术协助-协助状态 */
private String bidJsxzApprovalStatus;
/** 技术协助-分组 */
private String[] bidJsxzGroup;
private String bidJsxzGroupValues;
/** 技术协助-技术要求 */
private String bidJsxzTechnicalRequirement;
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 getBidJsxzApprovalStatus() { return bidJsxzApprovalStatus; }
public void setBidJsxzApprovalStatus(String bidJsxzApprovalStatus) { this.bidJsxzApprovalStatus = bidJsxzApprovalStatus; }
public String[] getBidJsxzGroup() { return bidJsxzGroup; }
public void setBidJsxzGroup(String[] bidJsxzGroup) { this.bidJsxzGroup = bidJsxzGroup; }
public String getBidJsxzGroupValues() { return bidJsxzGroupValues; }
public void setBidJsxzGroupValues(String bidJsxzGroupValues) { this.bidJsxzGroupValues = bidJsxzGroupValues; }
public String getBidJsxzTechnicalRequirement() { return bidJsxzTechnicalRequirement; }
public void setBidJsxzTechnicalRequirement(String bidJsxzTechnicalRequirement) { this.bidJsxzTechnicalRequirement = bidJsxzTechnicalRequirement; }
}

View File

@ -0,0 +1,157 @@
package com.ruoyi.technicalConfirm.domain;
public class BidJsqrXzDetail {
private String bidJsqrId;
private String bidJsxzGroup;
private String type;
private String state;
private String fileNum;
private String bidJsqrTlRemark;
private String bidJsqrTlCheckRemark;
private String bidJsqrTlLeaderRemark;
private String bidJsqrDyRemark;
private String bidJsqrDyCheckRemark;
private String bidJsqrDyLeaderRemark;
private String bidJsqrZyRemark;
private String bidJsqrZyCheckRemark;
private String bidJsqrZyLeaderRemark;
private String bidJsqrQtRemark;
private String bidJsqrQtCheckRemark;
private String bidJsqrQtLeaderRemark;
public String getBidJsqrId() {
return bidJsqrId;
}
public void setBidJsqrId(String bidJsqrId) {
this.bidJsqrId = bidJsqrId;
}
public String getBidJsxzGroup() {
return bidJsxzGroup;
}
public void setBidJsxzGroup(String bidJsxzGroup) {
this.bidJsxzGroup = bidJsxzGroup;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getFileNum() { return fileNum; }
public void setFileNum(String fileNum) { this.fileNum = fileNum; }
public String getBidJsqrTlRemark() {
return bidJsqrTlRemark;
}
public void setBidJsqrTlRemark(String bidJsqrTlRemark) {
this.bidJsqrTlRemark = bidJsqrTlRemark;
}
public String getBidJsqrTlCheckRemark() {
return bidJsqrTlCheckRemark;
}
public void setBidJsqrTlCheckRemark(String bidJsqrTlCheckRemark) {
this.bidJsqrTlCheckRemark = bidJsqrTlCheckRemark;
}
public String getBidJsqrTlLeaderRemark() {
return bidJsqrTlLeaderRemark;
}
public void setBidJsqrTlLeaderRemark(String bidJsqrTlLeaderRemark) {
this.bidJsqrTlLeaderRemark = bidJsqrTlLeaderRemark;
}
public String getBidJsqrDyRemark() {
return bidJsqrDyRemark;
}
public void setBidJsqrDyRemark(String bidJsqrDyRemark) {
this.bidJsqrDyRemark = bidJsqrDyRemark;
}
public String getBidJsqrDyCheckRemark() {
return bidJsqrDyCheckRemark;
}
public void setBidJsqrDyCheckRemark(String bidJsqrDyCheckRemark) {
this.bidJsqrDyCheckRemark = bidJsqrDyCheckRemark;
}
public String getBidJsqrDyLeaderRemark() {
return bidJsqrDyLeaderRemark;
}
public void setBidJsqrDyLeaderRemark(String bidJsqrDyLeaderRemark) {
this.bidJsqrDyLeaderRemark = bidJsqrDyLeaderRemark;
}
public String getBidJsqrZyRemark() {
return bidJsqrZyRemark;
}
public void setBidJsqrZyRemark(String bidJsqrZyRemark) {
this.bidJsqrZyRemark = bidJsqrZyRemark;
}
public String getBidJsqrZyCheckRemark() {
return bidJsqrZyCheckRemark;
}
public void setBidJsqrZyCheckRemark(String bidJsqrZyCheckRemark) {
this.bidJsqrZyCheckRemark = bidJsqrZyCheckRemark;
}
public String getBidJsqrZyLeaderRemark() {
return bidJsqrZyLeaderRemark;
}
public void setBidJsqrZyLeaderRemark(String bidJsqrZyLeaderRemark) {
this.bidJsqrZyLeaderRemark = bidJsqrZyLeaderRemark;
}
public String getBidJsqrQtRemark() {
return bidJsqrQtRemark;
}
public void setBidJsqrQtRemark(String bidJsqrQtRemark) {
this.bidJsqrQtRemark = bidJsqrQtRemark;
}
public String getBidJsqrQtCheckRemark() {
return bidJsqrQtCheckRemark;
}
public void setBidJsqrQtCheckRemark(String bidJsqrQtCheckRemark) {
this.bidJsqrQtCheckRemark = bidJsqrQtCheckRemark;
}
public String getBidJsqrQtLeaderRemark() {
return bidJsqrQtLeaderRemark;
}
public void setBidJsqrQtLeaderRemark(String bidJsqrQtLeaderRemark) {
this.bidJsqrQtLeaderRemark = bidJsqrQtLeaderRemark;
}
}

View File

@ -0,0 +1,36 @@
package com.ruoyi.technicalConfirm.domain;
public class BidJsqrXzRemark {
private String type;
private String bidJsqrId;
private String bidJsqrCode;
private String remark;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getBidJsqrId() { return bidJsqrId; }
public void setBidJsqrId(String bidJsqrId) { this.bidJsqrId = bidJsqrId; }
public String getBidJsqrCode() {
return bidJsqrCode;
}
public void setBidJsqrCode(String bidJsqrCode) {
this.bidJsqrCode = bidJsqrCode;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -0,0 +1,62 @@
package com.ruoyi.technicalConfirm.mapper;
import com.ruoyi.technicalConfirm.domain.BidJsqr;
import java.util.List;
/**
* 投标-技术确认单Mapper接口
*
* @author ruoyi
* @date 2024-04-07
*/
public interface BidJsqrMapper
{
/**
* 查询投标-技术确认单
*
* @param bidJsqrId 投标-技术确认单主键
* @return 投标-技术确认单
*/
public BidJsqr selectBidJsqrByBidJsqrId(String bidJsqrId);
/**
* 查询投标-技术确认单列表
*
* @param bidJsqr 投标-技术确认单
* @return 投标-技术确认单集合
*/
public List<BidJsqr> selectBidJsqrList(BidJsqr bidJsqr);
/**
* 新增投标-技术确认单
*
* @param bidJsqr 投标-技术确认单
* @return 结果
*/
public int insertBidJsqr(BidJsqr bidJsqr);
/**
* 修改投标-技术确认单
*
* @param bidJsqr 投标-技术确认单
* @return 结果
*/
public int updateBidJsqr(BidJsqr bidJsqr);
/**
* 删除投标-技术确认单
*
* @param bidJsqrId 投标-技术确认单主键
* @return 结果
*/
public int deleteBidJsqrByBidJsqrId(String bidJsqrId);
/**
* 批量删除投标-技术确认单
*
* @param bidJsqrIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteBidJsqrByBidJsqrIds(String[] bidJsqrIds);
}

View File

@ -0,0 +1,62 @@
package com.ruoyi.technicalConfirm.service;
import com.ruoyi.technicalConfirm.domain.BidJsqr;
import java.util.List;
/**
* 投标-技术确认单Service接口
*
* @author ruoyi
* @date 2024-04-07
*/
public interface IBidJsqrService
{
/**
* 查询投标-技术确认单
*
* @param bidJsqrId 投标-技术确认单主键
* @return 投标-技术确认单
*/
public BidJsqr selectBidJsqrByBidJsqrId(String bidJsqrId);
/**
* 查询投标-技术确认单列表
*
* @param bidJsqr 投标-技术确认单
* @return 投标-技术确认单集合
*/
public List<BidJsqr> selectBidJsqrList(BidJsqr bidJsqr);
/**
* 新增投标-技术确认单
*
* @param bidJsqr 投标-技术确认单
* @return 结果
*/
public int insertBidJsqr(BidJsqr bidJsqr);
/**
* 修改投标-技术确认单
*
* @param bidJsqr 投标-技术确认单
* @return 结果
*/
public int updateBidJsqr(BidJsqr bidJsqr);
/**
* 批量删除投标-技术确认单
*
* @param bidJsqrIds 需要删除的投标-技术确认单主键集合
* @return 结果
*/
public int deleteBidJsqrByBidJsqrIds(String[] bidJsqrIds);
/**
* 删除投标-技术确认单信息
*
* @param bidJsqrId 投标-技术确认单主键
* @return 结果
*/
public int deleteBidJsqrByBidJsqrId(String bidJsqrId);
}

View File

@ -0,0 +1,103 @@
package com.ruoyi.technicalConfirm.service.impl;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.technicalConfirm.domain.BidJsqr;
import com.ruoyi.technicalConfirm.mapper.BidJsqrMapper;
import com.ruoyi.technicalConfirm.service.IBidJsqrService;
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-07
*/
@Service
public class BidJsqrServiceImpl implements IBidJsqrService
{
@Autowired
private BidJsqrMapper bidJsqrMapper;
/**
* 查询投标-技术确认单
*
* @param bidJsqrId 投标-技术确认单主键
* @return 投标-技术确认单
*/
@Override
public BidJsqr selectBidJsqrByBidJsqrId(String bidJsqrId)
{
return bidJsqrMapper.selectBidJsqrByBidJsqrId(bidJsqrId);
}
/**
* 查询投标-技术确认单列表
*
* @param bidJsqr 投标-技术确认单
* @return 投标-技术确认单
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<BidJsqr> selectBidJsqrList(BidJsqr bidJsqr)
{
return bidJsqrMapper.selectBidJsqrList(bidJsqr);
}
/**
* 新增投标-技术确认单
*
* @param bidJsqr 投标-技术确认单
* @return 结果
*/
@Override
@Transactional
public int insertBidJsqr(BidJsqr bidJsqr)
{
bidJsqr.setCreateTime(DateUtils.getNowDate());
bidJsqr.setUpdateTime(DateUtils.getNowDate());
return bidJsqrMapper.insertBidJsqr(bidJsqr);
}
/**
* 修改投标-技术确认单
*
* @param bidJsqr 投标-技术确认单
* @return 结果
*/
@Override
@Transactional
public int updateBidJsqr(BidJsqr bidJsqr)
{
bidJsqr.setUpdateTime(DateUtils.getNowDate());
return bidJsqrMapper.updateBidJsqr(bidJsqr);
}
/**
* 批量删除投标-技术确认单
*
* @param bidJsqrIds 需要删除的投标-技术确认单主键
* @return 结果
*/
@Override
public int deleteBidJsqrByBidJsqrIds(String[] bidJsqrIds)
{
return bidJsqrMapper.deleteBidJsqrByBidJsqrIds(bidJsqrIds);
}
/**
* 删除投标-技术确认单信息
*
* @param bidJsqrId 投标-技术确认单主键
* @return 结果
*/
@Override
public int deleteBidJsqrByBidJsqrId(String bidJsqrId)
{
return bidJsqrMapper.deleteBidJsqrByBidJsqrId(bidJsqrId);
}
}

View File

@ -63,6 +63,23 @@
<result property="receiveUserNickName" column="receive_user_nick_name" /> <result property="receiveUserNickName" column="receive_user_nick_name" />
<result property="bidJsxzApprovalStatus" column="bid_jsxz_approval_status" />
<result property="bidJsxzTechnicalRequirement" column="bid_jsxz_technical_requirement" />
<result property="bidJsxzGroupValues" column="bid_jsxz_group_values" />
<result property="bidJsxzConfirmId" column="bid_jsxz_confirm_id" />
<result property="bidJsxzConfirmCode" column="bid_jsxz_confirm_code" />
<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" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createName" column="create_name" /> <result property="createName" column="create_name" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
@ -70,9 +87,10 @@
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
</resultMap> </resultMap>
<sql id="quotJoins"> <sql id="bidJoins">
left join sys_user u on u.user_name=a.create_by 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 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
</sql> </sql>
<sql id="selectBidVo"> <sql id="selectBidVo">
@ -90,9 +108,18 @@
a.bid_price_linkage, a.bid_payment_method, a.bid_other_matters, a.bid_zbr, a.bid_jdr, 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.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.create_by,u.nick_name create_name, a.create_time,
a.update_by, a.update_time a.update_by, a.update_time,
a.bid_jsxz_approval_status,a.bid_jsxz_technical_requirement,
a.bid_jsxz_group_values,a.bid_jsxz_confirm_id,
q.bid_jsqr_code bid_jsxz_confirm_code,
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
from bid a from bid a
<include refid="quotJoins"/> <include refid="bidJoins"/>
</sql> </sql>
<select id="selectBidList" parameterType="Bid" resultMap="BidResult"> <select id="selectBidList" parameterType="Bid" resultMap="BidResult">
@ -178,6 +205,11 @@
<if test="receiveUserName != null and receiveUserName != ''">receive_user_name,</if> <if test="receiveUserName != null and receiveUserName != ''">receive_user_name,</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name,</if> <if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name,</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="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
@ -241,6 +273,11 @@
<if test="receiveUserName != null and receiveUserName != ''">#{receiveUserName},</if> <if test="receiveUserName != null and receiveUserName != ''">#{receiveUserName},</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">#{receiveUserNickName},</if> <if test="receiveUserNickName != null and receiveUserNickName != ''">#{receiveUserNickName},</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="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
@ -365,6 +402,11 @@
<if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if> <if test="receiveUserName != null">receive_user_name = #{receiveUserName},</if>
<if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name = #{receiveUserNickName},</if> <if test="receiveUserNickName != null and receiveUserNickName != ''">receive_user_nick_name = #{receiveUserNickName},</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="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
@ -391,4 +433,9 @@
<select id="selectOAUserByUserName" resultType="SysOaBid"> <select id="selectOAUserByUserName" resultType="SysOaBid">
select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid} select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid}
</select> </select>
<select id="selectBidByBidJsqrId" parameterType="String" resultMap="BidResult">
<include refid="selectBidVo"/>
where a.bid_jsxz_confirm_id = #{bidJsqrId}
</select>
</mapper> </mapper>

View File

@ -0,0 +1,324 @@
<?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.technicalConfirm.mapper.BidJsqrMapper">
<resultMap type="BidJsqr" id="BidJsqrResult">
<result property="bidJsqrId" column="bid_jsqr_id" />
<result property="bidJsqrCode" column="bid_jsqr_code" />
<result property="bidJsqrTlApprovalStatus" column="bid_jsqr_tl_approval_status" />
<result property="bidJsqrTlOperateUserName" column="bid_jsqr_tl_operate_user_name" />
<result property="bidJsqrTlOperateState" column="bid_jsqr_tl_operate_state" />
<result property="bidJsqrTlOperateTime" column="bid_jsqr_tl_operate_time" />
<result property="bidJsqrTlRemark" column="bid_jsqr_tl_remark" />
<result property="bidJsqrTlCheckUserName" column="bid_jsqr_tl_check_user_name" />
<result property="bidJsqrTlCheckState" column="bid_jsqr_tl_check_state" />
<result property="bidJsqrTlCheckTime" column="bid_jsqr_tl_check_time" />
<result property="bidJsqrTlCheckRemark" column="bid_jsqr_tl_check_remark" />
<result property="bidJsqrTlLeaderUserName" column="bid_jsqr_tl_leader_user_name" />
<result property="bidJsqrTlLeaderState" column="bid_jsqr_tl_leader_state" />
<result property="bidJsqrTlLeaderTime" column="bid_jsqr_tl_leader_time" />
<result property="bidJsqrTlLeaderRemark" column="bid_jsqr_tl_leader_remark" />
<result property="bidJsqrDyApprovalStatus" column="bid_jsqr_dy_approval_status" />
<result property="bidJsqrDyOperateUserName" column="bid_jsqr_dy_operate_user_name" />
<result property="bidJsqrDyOperateState" column="bid_jsqr_dy_operate_state" />
<result property="bidJsqrDyOperateTime" column="bid_jsqr_dy_operate_time" />
<result property="bidJsqrDyRemark" column="bid_jsqr_dy_remark" />
<result property="bidJsqrDyCheckUserName" column="bid_jsqr_dy_check_user_name" />
<result property="bidJsqrDyCheckState" column="bid_jsqr_dy_check_state" />
<result property="bidJsqrDyCheckTime" column="bid_jsqr_dy_check_time" />
<result property="bidJsqrDyCheckRemark" column="bid_jsqr_dy_check_remark" />
<result property="bidJsqrDyLeaderUserName" column="bid_jsqr_dy_leader_user_name" />
<result property="bidJsqrDyLeaderState" column="bid_jsqr_dy_leader_state" />
<result property="bidJsqrDyLeaderTime" column="bid_jsqr_dy_leader_time" />
<result property="bidJsqrDyLeaderRemark" column="bid_jsqr_dy_leader_remark" />
<result property="bidJsqrZyApprovalStatus" column="bid_jsqr_zy_approval_status" />
<result property="bidJsqrZyOperateUserName" column="bid_jsqr_zy_operate_user_name" />
<result property="bidJsqrZyOperateState" column="bid_jsqr_zy_operate_state" />
<result property="bidJsqrZyOperateTime" column="bid_jsqr_zy_operate_time" />
<result property="bidJsqrZyRemark" column="bid_jsqr_zy_remark" />
<result property="bidJsqrZyCheckUserName" column="bid_jsqr_zy_check_user_name" />
<result property="bidJsqrZyCheckState" column="bid_jsqr_zy_check_state" />
<result property="bidJsqrZyCheckTime" column="bid_jsqr_zy_check_time" />
<result property="bidJsqrZyCheckRemark" column="bid_jsqr_zy_check_remark" />
<result property="bidJsqrZyLeaderUserName" column="bid_jsqr_zy_leader_user_name" />
<result property="bidJsqrZyLeaderState" column="bid_jsqr_zy_leader_state" />
<result property="bidJsqrZyLeaderTime" column="bid_jsqr_zy_leader_time" />
<result property="bidJsqrZyLeaderRemark" column="bid_jsqr_zy_leader_remark" />
<result property="bidJsqrQtApprovalStatus" column="bid_jsqr_qt_approval_status" />
<result property="bidJsqrQtOperateUserName" column="bid_jsqr_qt_operate_user_name" />
<result property="bidJsqrQtOperateState" column="bid_jsqr_qt_operate_state" />
<result property="bidJsqrQtOperateTime" column="bid_jsqr_qt_operate_time" />
<result property="bidJsqrQtRemark" column="bid_jsqr_qt_remark" />
<result property="bidJsqrQtCheckUserName" column="bid_jsqr_qt_check_user_name" />
<result property="bidJsqrQtCheckState" column="bid_jsqr_qt_check_state" />
<result property="bidJsqrQtCheckTime" column="bid_jsqr_qt_check_time" />
<result property="bidJsqrQtCheckRemark" column="bid_jsqr_qt_check_remark" />
<result property="bidJsqrQtLeaderUserName" column="bid_jsqr_qt_leader_user_name" />
<result property="bidJsqrQtLeaderState" column="bid_jsqr_qt_leader_state" />
<result property="bidJsqrQtLeaderTime" column="bid_jsqr_qt_leader_time" />
<result property="bidJsqrQtLeaderRemark" column="bid_jsqr_qt_leader_remark" />
<result property="createBy" column="create_by" />
<result property="createName" column="create_name" />
<result property="createTime" column="create_time" />
<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="bidSalesmanName" column="bid_salesman_name" />
<result property="bidTenderingUnit" column="bid_tendering_unit" />
<result property="bidProject" column="bid_project" />
<result property="bidJsxzApprovalStatus" column="bid_jsxz_approval_status" />
<result property="bidJsxzGroupValues" column="bid_jsxz_group_values" />
<result property="bidJsxzTechnicalRequirement" column="bid_jsxz_technical_requirement" />
</resultMap>
<sql id="bidJsqrJoins">
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_jsxz_confirm_id = a.bid_jsqr_id
</sql>
<sql id="selectBidJsqrVo">
select a.bid_jsqr_id, a.bid_jsqr_code, a.bid_jsqr_tl_approval_status, a.bid_jsqr_tl_operate_user_name,
a.bid_jsqr_tl_operate_state, a.bid_jsqr_tl_operate_time, a.bid_jsqr_tl_remark, a.bid_jsqr_tl_check_user_name,
a.bid_jsqr_tl_check_state, a.bid_jsqr_tl_check_time, a.bid_jsqr_tl_check_remark, a.bid_jsqr_tl_leader_user_name,
a.bid_jsqr_tl_leader_state, a.bid_jsqr_tl_leader_time, a.bid_jsqr_tl_leader_remark, a.bid_jsqr_dy_approval_status,
a.bid_jsqr_dy_operate_user_name, a.bid_jsqr_dy_operate_state, a.bid_jsqr_dy_operate_time, a.bid_jsqr_dy_remark,
a.bid_jsqr_dy_check_user_name, a.bid_jsqr_dy_check_state, a.bid_jsqr_dy_check_time, a.bid_jsqr_dy_check_remark,
a.bid_jsqr_dy_leader_user_name, a.bid_jsqr_dy_leader_state, a.bid_jsqr_dy_leader_time, a.bid_jsqr_dy_leader_remark,
a.bid_jsqr_zy_approval_status, a.bid_jsqr_zy_operate_user_name, a.bid_jsqr_zy_operate_state, a.bid_jsqr_zy_operate_time,
a.bid_jsqr_zy_remark, a.bid_jsqr_zy_check_user_name, a.bid_jsqr_zy_check_state, a.bid_jsqr_zy_check_time,
a.bid_jsqr_zy_check_remark, a.bid_jsqr_zy_leader_user_name, a.bid_jsqr_zy_leader_state, a.bid_jsqr_zy_leader_time,
a.bid_jsqr_zy_leader_remark, a.bid_jsqr_qt_approval_status, a.bid_jsqr_qt_operate_user_name, a.bid_jsqr_qt_operate_state,
a.bid_jsqr_qt_operate_time, a.bid_jsqr_qt_remark, a.bid_jsqr_qt_check_user_name, a.bid_jsqr_qt_check_state,
a.bid_jsqr_qt_check_time, a.bid_jsqr_qt_check_remark, a.bid_jsqr_qt_leader_user_name, a.bid_jsqr_qt_leader_state,
a.bid_jsqr_qt_leader_time, a.bid_jsqr_qt_leader_remark, a.create_by, a.create_time, a.update_by, a.update_time,
u.nick_name create_name,q.bid_id,q.bid_code,q.bid_salesman_name,q.bid_tendering_unit,q.bid_project,
q.bid_jsxz_approval_status,q.bid_jsxz_group_values,q.bid_jsxz_technical_requirement
from bid_jsqr a
<include refid="bidJsqrJoins"/>
</sql>
<select id="selectBidJsqrList" parameterType="BidJsqr" resultMap="BidJsqrResult">
<include refid="selectBidJsqrVo"/>
<where>
<if test="bidJsqrCode != null and bidJsqrCode != ''"> and bid_jsqr_code like concat('%', #{bidJsqrCode}, '%')</if>
<if test="bidJsxzApprovalStatus != null and bidJsxzApprovalStatus != ''"> and q.bid_jsxz_approval_status = #{bidJsxzApprovalStatus}</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_jsqr_code desc
</select>
<select id="selectBidJsqrByBidJsqrId" parameterType="String" resultMap="BidJsqrResult">
<include refid="selectBidJsqrVo"/>
where bid_jsqr_id = #{bidJsqrId}
</select>
<insert id="insertBidJsqr" parameterType="BidJsqr">
insert into bid_jsqr
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bidJsqrId != null">bid_jsqr_id,</if>
<if test="bidJsqrCode != null">bid_jsqr_code,</if>
<if test="bidJsqrTlApprovalStatus != null">bid_jsqr_tl_approval_status,</if>
<if test="bidJsqrTlOperateUserName != null">bid_jsqr_tl_operate_user_name,</if>
<if test="bidJsqrTlOperateState != null">bid_jsqr_tl_operate_state,</if>
<if test="bidJsqrTlOperateTime != null">bid_jsqr_tl_operate_time,</if>
<if test="bidJsqrTlRemark != null">bid_jsqr_tl_remark,</if>
<if test="bidJsqrTlCheckUserName != null">bid_jsqr_tl_check_user_name,</if>
<if test="bidJsqrTlCheckState != null">bid_jsqr_tl_check_state,</if>
<if test="bidJsqrTlCheckTime != null">bid_jsqr_tl_check_time,</if>
<if test="bidJsqrTlCheckRemark != null">bid_jsqr_tl_check_remark,</if>
<if test="bidJsqrTlLeaderUserName != null">bid_jsqr_tl_leader_user_name,</if>
<if test="bidJsqrTlLeaderState != null">bid_jsqr_tl_leader_state,</if>
<if test="bidJsqrTlLeaderTime != null">bid_jsqr_tl_leader_time,</if>
<if test="bidJsqrTlLeaderRemark != null">bid_jsqr_tl_leader_remark,</if>
<if test="bidJsqrDyApprovalStatus != null">bid_jsqr_dy_approval_status,</if>
<if test="bidJsqrDyOperateUserName != null">bid_jsqr_dy_operate_user_name,</if>
<if test="bidJsqrDyOperateState != null">bid_jsqr_dy_operate_state,</if>
<if test="bidJsqrDyOperateTime != null">bid_jsqr_dy_operate_time,</if>
<if test="bidJsqrDyRemark != null">bid_jsqr_dy_remark,</if>
<if test="bidJsqrDyCheckUserName != null">bid_jsqr_dy_check_user_name,</if>
<if test="bidJsqrDyCheckState != null">bid_jsqr_dy_check_state,</if>
<if test="bidJsqrDyCheckTime != null">bid_jsqr_dy_check_time,</if>
<if test="bidJsqrDyCheckRemark != null">bid_jsqr_dy_check_remark,</if>
<if test="bidJsqrDyLeaderUserName != null">bid_jsqr_dy_leader_user_name,</if>
<if test="bidJsqrDyLeaderState != null">bid_jsqr_dy_leader_state,</if>
<if test="bidJsqrDyLeaderTime != null">bid_jsqr_dy_leader_time,</if>
<if test="bidJsqrDyLeaderRemark != null">bid_jsqr_dy_leader_remark,</if>
<if test="bidJsqrZyApprovalStatus != null">bid_jsqr_zy_approval_status,</if>
<if test="bidJsqrZyOperateUserName != null">bid_jsqr_zy_operate_user_name,</if>
<if test="bidJsqrZyOperateState != null">bid_jsqr_zy_operate_state,</if>
<if test="bidJsqrZyOperateTime != null">bid_jsqr_zy_operate_time,</if>
<if test="bidJsqrZyRemark != null">bid_jsqr_zy_remark,</if>
<if test="bidJsqrZyCheckUserName != null">bid_jsqr_zy_check_user_name,</if>
<if test="bidJsqrZyCheckState != null">bid_jsqr_zy_check_state,</if>
<if test="bidJsqrZyCheckTime != null">bid_jsqr_zy_check_time,</if>
<if test="bidJsqrZyCheckRemark != null">bid_jsqr_zy_check_remark,</if>
<if test="bidJsqrZyLeaderUserName != null">bid_jsqr_zy_leader_user_name,</if>
<if test="bidJsqrZyLeaderState != null">bid_jsqr_zy_leader_state,</if>
<if test="bidJsqrZyLeaderTime != null">bid_jsqr_zy_leader_time,</if>
<if test="bidJsqrZyLeaderRemark != null">bid_jsqr_zy_leader_remark,</if>
<if test="bidJsqrQtApprovalStatus != null">bid_jsqr_qt_approval_status,</if>
<if test="bidJsqrQtOperateUserName != null">bid_jsqr_qt_operate_user_name,</if>
<if test="bidJsqrQtOperateState != null">bid_jsqr_qt_operate_state,</if>
<if test="bidJsqrQtOperateTime != null">bid_jsqr_qt_operate_time,</if>
<if test="bidJsqrQtRemark != null">bid_jsqr_qt_remark,</if>
<if test="bidJsqrQtCheckUserName != null">bid_jsqr_qt_check_user_name,</if>
<if test="bidJsqrQtCheckState != null">bid_jsqr_qt_check_state,</if>
<if test="bidJsqrQtCheckTime != null">bid_jsqr_qt_check_time,</if>
<if test="bidJsqrQtCheckRemark != null">bid_jsqr_qt_check_remark,</if>
<if test="bidJsqrQtLeaderUserName != null">bid_jsqr_qt_leader_user_name,</if>
<if test="bidJsqrQtLeaderState != null">bid_jsqr_qt_leader_state,</if>
<if test="bidJsqrQtLeaderTime != null">bid_jsqr_qt_leader_time,</if>
<if test="bidJsqrQtLeaderRemark != null">bid_jsqr_qt_leader_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="bidJsqrId != null">#{bidJsqrId},</if>
<if test="bidJsqrCode != null">#{bidJsqrCode},</if>
<if test="bidJsqrTlApprovalStatus != null">#{bidJsqrTlApprovalStatus},</if>
<if test="bidJsqrTlOperateUserName != null">#{bidJsqrTlOperateUserName},</if>
<if test="bidJsqrTlOperateState != null">#{bidJsqrTlOperateState},</if>
<if test="bidJsqrTlOperateTime != null">#{bidJsqrTlOperateTime},</if>
<if test="bidJsqrTlRemark != null">#{bidJsqrTlRemark},</if>
<if test="bidJsqrTlCheckUserName != null">#{bidJsqrTlCheckUserName},</if>
<if test="bidJsqrTlCheckState != null">#{bidJsqrTlCheckState},</if>
<if test="bidJsqrTlCheckTime != null">#{bidJsqrTlCheckTime},</if>
<if test="bidJsqrTlCheckRemark != null">#{bidJsqrTlCheckRemark},</if>
<if test="bidJsqrTlLeaderUserName != null">#{bidJsqrTlLeaderUserName},</if>
<if test="bidJsqrTlLeaderState != null">#{bidJsqrTlLeaderState},</if>
<if test="bidJsqrTlLeaderTime != null">#{bidJsqrTlLeaderTime},</if>
<if test="bidJsqrTlLeaderRemark != null">#{bidJsqrTlLeaderRemark},</if>
<if test="bidJsqrDyApprovalStatus != null">#{bidJsqrDyApprovalStatus},</if>
<if test="bidJsqrDyOperateUserName != null">#{bidJsqrDyOperateUserName},</if>
<if test="bidJsqrDyOperateState != null">#{bidJsqrDyOperateState},</if>
<if test="bidJsqrDyOperateTime != null">#{bidJsqrDyOperateTime},</if>
<if test="bidJsqrDyRemark != null">#{bidJsqrDyRemark},</if>
<if test="bidJsqrDyCheckUserName != null">#{bidJsqrDyCheckUserName},</if>
<if test="bidJsqrDyCheckState != null">#{bidJsqrDyCheckState},</if>
<if test="bidJsqrDyCheckTime != null">#{bidJsqrDyCheckTime},</if>
<if test="bidJsqrDyCheckRemark != null">#{bidJsqrDyCheckRemark},</if>
<if test="bidJsqrDyLeaderUserName != null">#{bidJsqrDyLeaderUserName},</if>
<if test="bidJsqrDyLeaderState != null">#{bidJsqrDyLeaderState},</if>
<if test="bidJsqrDyLeaderTime != null">#{bidJsqrDyLeaderTime},</if>
<if test="bidJsqrDyLeaderRemark != null">#{bidJsqrDyLeaderRemark},</if>
<if test="bidJsqrZyApprovalStatus != null">#{bidJsqrZyApprovalStatus},</if>
<if test="bidJsqrZyOperateUserName != null">#{bidJsqrZyOperateUserName},</if>
<if test="bidJsqrZyOperateState != null">#{bidJsqrZyOperateState},</if>
<if test="bidJsqrZyOperateTime != null">#{bidJsqrZyOperateTime},</if>
<if test="bidJsqrZyRemark != null">#{bidJsqrZyRemark},</if>
<if test="bidJsqrZyCheckUserName != null">#{bidJsqrZyCheckUserName},</if>
<if test="bidJsqrZyCheckState != null">#{bidJsqrZyCheckState},</if>
<if test="bidJsqrZyCheckTime != null">#{bidJsqrZyCheckTime},</if>
<if test="bidJsqrZyCheckRemark != null">#{bidJsqrZyCheckRemark},</if>
<if test="bidJsqrZyLeaderUserName != null">#{bidJsqrZyLeaderUserName},</if>
<if test="bidJsqrZyLeaderState != null">#{bidJsqrZyLeaderState},</if>
<if test="bidJsqrZyLeaderTime != null">#{bidJsqrZyLeaderTime},</if>
<if test="bidJsqrZyLeaderRemark != null">#{bidJsqrZyLeaderRemark},</if>
<if test="bidJsqrQtApprovalStatus != null">#{bidJsqrQtApprovalStatus},</if>
<if test="bidJsqrQtOperateUserName != null">#{bidJsqrQtOperateUserName},</if>
<if test="bidJsqrQtOperateState != null">#{bidJsqrQtOperateState},</if>
<if test="bidJsqrQtOperateTime != null">#{bidJsqrQtOperateTime},</if>
<if test="bidJsqrQtRemark != null">#{bidJsqrQtRemark},</if>
<if test="bidJsqrQtCheckUserName != null">#{bidJsqrQtCheckUserName},</if>
<if test="bidJsqrQtCheckState != null">#{bidJsqrQtCheckState},</if>
<if test="bidJsqrQtCheckTime != null">#{bidJsqrQtCheckTime},</if>
<if test="bidJsqrQtCheckRemark != null">#{bidJsqrQtCheckRemark},</if>
<if test="bidJsqrQtLeaderUserName != null">#{bidJsqrQtLeaderUserName},</if>
<if test="bidJsqrQtLeaderState != null">#{bidJsqrQtLeaderState},</if>
<if test="bidJsqrQtLeaderTime != null">#{bidJsqrQtLeaderTime},</if>
<if test="bidJsqrQtLeaderRemark != null">#{bidJsqrQtLeaderRemark},</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="updateBidJsqr" parameterType="BidJsqr">
update bid_jsqr
<trim prefix="SET" suffixOverrides=",">
<if test="bidJsqrCode != null">bid_jsqr_code = #{bidJsqrCode},</if>
<if test="bidJsqrTlApprovalStatus != null">bid_jsqr_tl_approval_status = #{bidJsqrTlApprovalStatus},</if>
<if test="bidJsqrTlOperateUserName != null">bid_jsqr_tl_operate_user_name = #{bidJsqrTlOperateUserName},</if>
<if test="bidJsqrTlOperateState != null">bid_jsqr_tl_operate_state = #{bidJsqrTlOperateState},</if>
<if test="bidJsqrTlOperateTime != null">bid_jsqr_tl_operate_time = #{bidJsqrTlOperateTime},</if>
<if test="bidJsqrTlRemark != null">bid_jsqr_tl_remark = #{bidJsqrTlRemark},</if>
<if test="bidJsqrTlCheckUserName != null">bid_jsqr_tl_check_user_name = #{bidJsqrTlCheckUserName},</if>
<if test="bidJsqrTlCheckState != null">bid_jsqr_tl_check_state = #{bidJsqrTlCheckState},</if>
<if test="bidJsqrTlCheckTime != null">bid_jsqr_tl_check_time = #{bidJsqrTlCheckTime},</if>
<if test="bidJsqrTlCheckRemark != null">bid_jsqr_tl_check_remark = #{bidJsqrTlCheckRemark},</if>
<if test="bidJsqrTlLeaderUserName != null">bid_jsqr_tl_leader_user_name = #{bidJsqrTlLeaderUserName},</if>
<if test="bidJsqrTlLeaderState != null">bid_jsqr_tl_leader_state = #{bidJsqrTlLeaderState},</if>
<if test="bidJsqrTlLeaderTime != null">bid_jsqr_tl_leader_time = #{bidJsqrTlLeaderTime},</if>
<if test="bidJsqrTlLeaderRemark != null">bid_jsqr_tl_leader_remark = #{bidJsqrTlLeaderRemark},</if>
<if test="bidJsqrDyApprovalStatus != null">bid_jsqr_dy_approval_status = #{bidJsqrDyApprovalStatus},</if>
<if test="bidJsqrDyOperateUserName != null">bid_jsqr_dy_operate_user_name = #{bidJsqrDyOperateUserName},</if>
<if test="bidJsqrDyOperateState != null">bid_jsqr_dy_operate_state = #{bidJsqrDyOperateState},</if>
<if test="bidJsqrDyOperateTime != null">bid_jsqr_dy_operate_time = #{bidJsqrDyOperateTime},</if>
<if test="bidJsqrDyRemark != null">bid_jsqr_dy_remark = #{bidJsqrDyRemark},</if>
<if test="bidJsqrDyCheckUserName != null">bid_jsqr_dy_check_user_name = #{bidJsqrDyCheckUserName},</if>
<if test="bidJsqrDyCheckState != null">bid_jsqr_dy_check_state = #{bidJsqrDyCheckState},</if>
<if test="bidJsqrDyCheckTime != null">bid_jsqr_dy_check_time = #{bidJsqrDyCheckTime},</if>
<if test="bidJsqrDyCheckRemark != null">bid_jsqr_dy_check_remark = #{bidJsqrDyCheckRemark},</if>
<if test="bidJsqrDyLeaderUserName != null">bid_jsqr_dy_leader_user_name = #{bidJsqrDyLeaderUserName},</if>
<if test="bidJsqrDyLeaderState != null">bid_jsqr_dy_leader_state = #{bidJsqrDyLeaderState},</if>
<if test="bidJsqrDyLeaderTime != null">bid_jsqr_dy_leader_time = #{bidJsqrDyLeaderTime},</if>
<if test="bidJsqrDyLeaderRemark != null">bid_jsqr_dy_leader_remark = #{bidJsqrDyLeaderRemark},</if>
<if test="bidJsqrZyApprovalStatus != null">bid_jsqr_zy_approval_status = #{bidJsqrZyApprovalStatus},</if>
<if test="bidJsqrZyOperateUserName != null">bid_jsqr_zy_operate_user_name = #{bidJsqrZyOperateUserName},</if>
<if test="bidJsqrZyOperateState != null">bid_jsqr_zy_operate_state = #{bidJsqrZyOperateState},</if>
<if test="bidJsqrZyOperateTime != null">bid_jsqr_zy_operate_time = #{bidJsqrZyOperateTime},</if>
<if test="bidJsqrZyRemark != null">bid_jsqr_zy_remark = #{bidJsqrZyRemark},</if>
<if test="bidJsqrZyCheckUserName != null">bid_jsqr_zy_check_user_name = #{bidJsqrZyCheckUserName},</if>
<if test="bidJsqrZyCheckState != null">bid_jsqr_zy_check_state = #{bidJsqrZyCheckState},</if>
<if test="bidJsqrZyCheckTime != null">bid_jsqr_zy_check_time = #{bidJsqrZyCheckTime},</if>
<if test="bidJsqrZyCheckRemark != null">bid_jsqr_zy_check_remark = #{bidJsqrZyCheckRemark},</if>
<if test="bidJsqrZyLeaderUserName != null">bid_jsqr_zy_leader_user_name = #{bidJsqrZyLeaderUserName},</if>
<if test="bidJsqrZyLeaderState != null">bid_jsqr_zy_leader_state = #{bidJsqrZyLeaderState},</if>
<if test="bidJsqrZyLeaderTime != null">bid_jsqr_zy_leader_time = #{bidJsqrZyLeaderTime},</if>
<if test="bidJsqrZyLeaderRemark != null">bid_jsqr_zy_leader_remark = #{bidJsqrZyLeaderRemark},</if>
<if test="bidJsqrQtApprovalStatus != null">bid_jsqr_qt_approval_status = #{bidJsqrQtApprovalStatus},</if>
<if test="bidJsqrQtOperateUserName != null">bid_jsqr_qt_operate_user_name = #{bidJsqrQtOperateUserName},</if>
<if test="bidJsqrQtOperateState != null">bid_jsqr_qt_operate_state = #{bidJsqrQtOperateState},</if>
<if test="bidJsqrQtOperateTime != null">bid_jsqr_qt_operate_time = #{bidJsqrQtOperateTime},</if>
<if test="bidJsqrQtRemark != null">bid_jsqr_qt_remark = #{bidJsqrQtRemark},</if>
<if test="bidJsqrQtCheckUserName != null">bid_jsqr_qt_check_user_name = #{bidJsqrQtCheckUserName},</if>
<if test="bidJsqrQtCheckState != null">bid_jsqr_qt_check_state = #{bidJsqrQtCheckState},</if>
<if test="bidJsqrQtCheckTime != null">bid_jsqr_qt_check_time = #{bidJsqrQtCheckTime},</if>
<if test="bidJsqrQtCheckRemark != null">bid_jsqr_qt_check_remark = #{bidJsqrQtCheckRemark},</if>
<if test="bidJsqrQtLeaderUserName != null">bid_jsqr_qt_leader_user_name = #{bidJsqrQtLeaderUserName},</if>
<if test="bidJsqrQtLeaderState != null">bid_jsqr_qt_leader_state = #{bidJsqrQtLeaderState},</if>
<if test="bidJsqrQtLeaderTime != null">bid_jsqr_qt_leader_time = #{bidJsqrQtLeaderTime},</if>
<if test="bidJsqrQtLeaderRemark != null">bid_jsqr_qt_leader_remark = #{bidJsqrQtLeaderRemark},</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_jsqr_id = #{bidJsqrId}
</update>
<delete id="deleteBidJsqrByBidJsqrId" parameterType="String">
delete from bid_jsqr where bid_jsqr_id = #{bidJsqrId}
</delete>
<delete id="deleteBidJsqrByBidJsqrIds" parameterType="String">
delete from bid_jsqr where bid_jsqr_id in
<foreach item="bidJsqrId" collection="array" open="(" separator="," close=")">
#{bidJsqrId}
</foreach>
</delete>
</mapper>

View File

@ -77,3 +77,12 @@ export function delBid(bidId) {
method: 'delete' method: 'delete'
}) })
} }
//提交技术协助
export function commitJsBid(data) {
return request({
url: '/bid/bid/commitJsBid',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,71 @@
import request from '@/utils/request'
// 查询投标-技术确认单列表
export function listJsqr(query) {
return request({
url: '/bidJsqr/bidJsqr/list',
method: 'get',
params: query
})
}
// 查询投标-技术确认单详细
export function getJsqr(bidJsqrId) {
return request({
url: '/bidJsqr/bidJsqr/' + bidJsqrId,
method: 'get'
})
}
// 新增投标-技术确认单
export function addJsqr(data) {
return request({
url: '/bidJsqr/bidJsqr',
method: 'post',
data: data
})
}
// 修改投标-技术确认单
export function updateJsqr(data) {
return request({
url: '/bidJsqr/bidJsqr',
method: 'put',
data: data
})
}
// 删除投标-技术确认单
export function delJsqr(bidJsqrId) {
return request({
url: '/bidJsqr/bidJsqr/' + bidJsqrId,
method: 'delete'
})
}
//操作人、审核人、组长 确认事件
export function doOperate(param) {
return request({
url: '/bidJsqr/bidJsqr/doOperate',
method: 'post',
data: param
})
}
//提交投标技术确认单
export function commitBid(data) {
return request({
url: '/bidJsqr/bidJsqr/commitBid',
method: 'post',
data: data
})
}
// 监听协助说明有数据输入则加入redis
export function setRedisJsxz(param) {
return request({
url: '/bidJsqr/bidJsqr/setRedisJsxz',
method: 'post',
data: param
})
}

View File

@ -188,10 +188,32 @@
<el-divider content-position="left" class="customer_divider_text">当前协助情况</el-divider> <el-divider content-position="left" class="customer_divider_text">当前协助情况</el-divider>
<el-row> <el-row>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="提交状态" prop="quotApprovalStatus"> <el-form-item label="提交状态" prop="bidApprovalStatus">
<dict-tag :options="dict.type.bid_approval_status" :value="this.form.bidApprovalStatus"/> <dict-tag :options="dict.type.bid_approval_status" :value="this.form.bidApprovalStatus"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<div v-if="checkPermi(['bid:bid:xzInfo'])">
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
<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-form-item label="核价协助" prop="bidHjApprovalStatus">
<dict-tag :options="dict.type.bid_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> </el-row>
<el-divider content-position="left" class="customer_divider_text">基本信息</el-divider> <el-divider content-position="left" class="customer_divider_text">基本信息</el-divider>
@ -501,7 +523,7 @@
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="16"> <el-col :span="16">
<el-form-item label="评标办法" prop="bidEvaluationMethod"> <el-form-item label="评标办法" prop="bidEvaluationMethod">
<el-input v-model="form.bidEvaluationMethod" placeholder="请输入评标办法" /> <el-input type="textarea" autosize v-model="form.bidEvaluationMethod" placeholder="请输入评标办法" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -520,28 +542,28 @@
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="技术要求" prop="bidTechnicalRequire"> <el-form-item label="技术要求" prop="bidTechnicalRequire">
<el-input v-model="form.bidTechnicalRequire" placeholder="请输入技术要求" /> <el-input type="textarea" autosize v-model="form.bidTechnicalRequire" placeholder="请输入技术要求" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="价格联动" prop="bidPriceLinkage"> <el-form-item label="价格联动" prop="bidPriceLinkage">
<el-input v-model="form.bidPriceLinkage" placeholder="请输入价格联动" /> <el-input type="textarea" autosize v-model="form.bidPriceLinkage" placeholder="请输入价格联动" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="付款方式" prop="bidPaymentMethod"> <el-form-item label="付款方式" prop="bidPaymentMethod">
<el-input v-model="form.bidPaymentMethod" placeholder="请输入付款方式" /> <el-input type="textarea" autosize v-model="form.bidPaymentMethod" placeholder="请输入付款方式" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="其余事项" prop="bidOtherMatters"> <el-form-item label="其余事项" prop="bidOtherMatters">
<el-input v-model="form.bidOtherMatters" placeholder="请输入其余事项" /> <el-input type="textarea" autosize v-model="form.bidOtherMatters" placeholder="请输入其余事项" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -562,7 +584,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-divider content-position="left" class="customer_divider_text">投标办附件</el-divider> <el-divider content-position="center">投标办附件</el-divider>
<div v-hasPermi="['bid:bid:bidTbbFile']"> <div v-hasPermi="['bid:bid:bidTbbFile']">
<el-upload class="upload-demo" <el-upload class="upload-demo"
ref="bidTbbFileUpload" ref="bidTbbFileUpload"
@ -600,15 +622,238 @@
</el-table> </el-table>
</div> </div>
<!-- 技术协助块-->
<div v-if="checkPermi(['bid:bid:jsxzInfo'])">
<el-divider content-position="left" class="customer_divider_text">技术协助</el-divider>
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="技术协助状态" prop="bidJsxzApprovalStatus">
<el-select v-model="form.bidJsxzApprovalStatus" :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-row>
<el-row :gutter="8">
<el-col :span="12">
<el-form-item label="技术确认单号" prop="bidJsxzConfirmCode">
<el-link :underline="false" type="primary" @click="showJsqrDialog">{{form.bidJsxzConfirmCode}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分组" prop="bidJsxzGroup">
<el-select v-model="form.bidJsxzGroup" multiple style="width: 100%" :disabled="this.form.bidJsxzApprovalStatus != '0'">
<el-option
v-for="dict in dict.type.bid_jsxz_group"
: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="24">
<el-form-item label="技术要求" prop="bidJsxzTechnicalRequirement">
<el-input type="textarea" autosize v-model="form.bidJsxzTechnicalRequirement" placeholder="请输入技术要求" :disabled="this.form.bidJsxzApprovalStatus != '0'"/>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="center">技术要求附件</el-divider>
<div v-hasPermi="['bid:bid:bidTbbFile']">
<el-upload class="upload-demo"
ref="bidTbbJsgfFileUpload"
name="bidFile"
:action="uploadUrl"
:headers="headers"
:data="{ relation_id: this.form.bidId,file_type: 'bidTbbJsgfFile' }"
:before-upload="beforeAvatarUploadBidTbbJsgfFile"
:on-success="handleAvatarSuccess"
:show-file-list="false"
:limit="1"
v-if="this.form.bidApprovalStatus == '1'">
<el-button size="mini" type="primary" @click="uploadFile('bidTbbJsgfFile')">上传文件</el-button>
</el-upload>
</div>
<el-table class="down" v-loading="bidTbbJsgfFileLoading" :data="bidTbbJsgfFileList" 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="form.bidApprovalStatus == '1'&&form.bidJsxzApprovalStatus == '0'">
<a @click="deleteFile(scope.row.fileId,'bidTbbJsgfFile')">删除</a>
</el-button>
</template>
</el-table-column>
</el-table>
<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>
</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">
<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-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<div style="height: 25px;"> <div style="height: 25px;">
<!-- 业务员提交保存--> <!-- 业务员提交保存-->
<span v-hasPermi="['bid:bid:save']"><el-button @click="saveForm" v-if="this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null"> </el-button></span> <span v-hasPermi="['bid:bid:save']"><el-button @click="saveForm" v-if="this.form.bidApprovalStatus == '0' || this.form.bidApprovalStatus == null"> </el-button></span>
<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 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>
</div> </div>
</div> </div>
<PeopleSelect v-if="checkRole(['BID'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpenSelectYwy" @cancel="peopleOpenSelectYwy=false" @submit="submitPeopleSelectYwy"></PeopleSelect> <PeopleSelect v-if="checkRole(['BID'])" ref="peopleSelect" :type="'single'" :isCheck="true" :open="peopleOpenSelectYwy" @cancel="peopleOpenSelectYwy=false" @submit="submitPeopleSelectYwy"></PeopleSelect>
<!-- 技术确认单详情对话框 -->
<jsqrDialog ref="jsqrDialog"></jsqrDialog>
<!-- 客户选择对话框--> <!-- 客户选择对话框-->
<CustomerSelect ref="customerSelect" :open="customerOpen" @submit="submitCustomer" @cancel="customerOpen=false"></CustomerSelect> <CustomerSelect ref="customerSelect" :open="customerOpen" @submit="submitCustomer" @cancel="customerOpen=false"></CustomerSelect>
</el-dialog> </el-dialog>
@ -632,12 +877,21 @@
font-weight: 600; font-weight: 600;
} }
</style> </style>
<style>
/* 特缆、中压、低压、其他协助反馈附件对话框设置 */
.fkfjDialog .el-dialog__body{
height: 280px;
max-height: 300px; /* 设置最大高度,根据需要调整 */
}
</style>
<script> <script>
import { checkPermi,checkRole } from '@/utils/permission';// import { checkPermi,checkRole } from '@/utils/permission';//
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { bidAssign,listBid, getBid, delBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx } from "@/api/bid/bid"; import { bidAssign,listBid, getBid, delBid, addBid, updateBid, bidFileList,bidFileDelete, commitTbxx,commitJsBid } from "@/api/bid/bid";
/** 弹窗放大、拖拽 */ /** 弹窗放大、拖拽 */
import elDragDialog from "@/directive/dialog/dragDialog"; import elDragDialog from "@/directive/dialog/dragDialog";
/** 导入技术确认单详情组件*/
import jsqrDialog from '@/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue';
/** 导入客户选择组件 */ /** 导入客户选择组件 */
import CustomerSelect from "@/views/components/Tools/CustomerSelect/index.vue"; import CustomerSelect from "@/views/components/Tools/CustomerSelect/index.vue";
/** 导入选人组件 */ /** 导入选人组件 */
@ -650,10 +904,11 @@ export default {
}, },
components: { components: {
// //
'jsqrDialog': jsqrDialog,
'CustomerSelect': CustomerSelect, 'CustomerSelect': CustomerSelect,
'PeopleSelect': PeopleSelect 'PeopleSelect': PeopleSelect
}, },
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'], 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'],
data() { data() {
return { return {
// //
@ -692,6 +947,9 @@ export default {
bidTbbFileLoading: false, bidTbbFileLoading: false,
bidTbbFileList: [], bidTbbFileList: [],
bidTbbJsgfFileLoading: false,
bidTbbJsgfFileList: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -733,6 +991,24 @@ export default {
], ],
}, },
//
addFileOpen: false,
//
addFileTitle: "",
//
uploadDis: false,
//
bidJsqrFileList: [],
bidJsqrTlFileNum: 0,
bidJsqrDyFileNum: 0,
bidJsqrZyFileNum: 0,
bidJsqrQtFileNum: 0,
//-
showTl: false,
showDy: false,
showZy: false,
showQt: false,
// //
peopleOpenFp:false, // peopleOpenFp:false, //
@ -822,14 +1098,29 @@ export default {
bidNotificationAward: null, bidNotificationAward: null,
bidRemark: null, bidRemark: null,
bidReturnRemark: null, bidReturnRemark: null,
createBy: null,
createTime: null,
updateBy: null, bidJsxzApprovalStatus: null,
updateTime: null bidJsxzConfirmCode: null,
bidJsxzGroup: null,
bidJsxzTechnicalRequirement: null,
bidJsqrTlApprovalStatus: null,
bidJsqrTlRemark: null,
bidJsqrDyApprovalStatus: null,
bidJsqrDyRemark: null,
bidJsqrZyApprovalStatus: null,
bidJsqrZyRemark: null,
bidJsqrQtApprovalStatus: null,
bidJsqrQtRemark: null,
}; };
this.bidYwyFileList = []; this.bidYwyFileList = [];
this.bidTbbFileList = []; this.bidTbbFileList = [];
this.bidTbbJsgfFileList = [];
this.resetForm("form"); this.resetForm("form");
}, },
@ -882,9 +1173,31 @@ export default {
this.open = true; this.open = true;
this.title = "投标信息"; this.title = "投标信息";
this.$set(this.form, "bidJsxzGroup", (this.form.bidJsxzGroupValues==''||this.form.bidJsxzGroupValues==null)?[]:this.form.bidJsxzGroupValues.split(','));
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');
}
}
//- //-
this.getBidYwyFileList(); this.getBidYwyFileList();
this.getBidTbbFileList(); this.getBidTbbFileList();
this.getBidTbbJsgfFileList();
}); });
}, },
/** 保存按钮 */ /** 保存按钮 */
@ -920,6 +1233,15 @@ export default {
}); });
}, },
/** 投标提交技术协助按钮 */
commitJsForm() {
commitJsBid(this.form).then(response => {
this.$modal.msgSuccess("提交技术协助成功");
this.open = false;
this.getList();
});
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
@ -970,7 +1292,17 @@ export default {
const maxSize = 100 * 1024 * 1024; // 100MB const maxSize = 100 * 1024 * 1024; // 100MB
if (file.size > maxSize) { if (file.size > maxSize) {
this.$modal.msgError("文件大小超过了"+maxSize / (1024 * 1024)+"MB的限制"); this.$modal.msgError("文件大小超过了"+maxSize / (1024 * 1024)+"MB的限制");
this.bidYwyFileLoading = false; this.bidTbbFileLoading = false;
return false;
}
},
//-
beforeAvatarUploadBidTbbJsgfFile(file){
this.bidTbbJsgfFileLoading = true;
const maxSize = 100 * 1024 * 1024; // 100MB
if (file.size > maxSize) {
this.$modal.msgError("文件大小超过了"+maxSize / (1024 * 1024)+"MB的限制");
this.bidTbbJsgfFileLoading = false;
return false; return false;
} }
}, },
@ -988,6 +1320,10 @@ export default {
this.getBidTbbFileList(); this.getBidTbbFileList();
this.bidTbbFileLoading = false; this.bidTbbFileLoading = false;
this.$refs.bidTbbFileUpload.clearFiles(); //**** this.$refs.bidTbbFileUpload.clearFiles(); //****
}else if(activeName=='bidTbbJsgfFile'){
this.getBidTbbJsgfFileList();
this.bidTbbJsgfFileLoading = false;
this.$refs.bidTbbJsgfFileUpload.clearFiles(); //****
} }
} else { } else {
this.$modal.msgError(res.msg); this.$modal.msgError(res.msg);
@ -997,6 +1333,9 @@ export default {
}else if(activeName=='bidTbbFile'){ }else if(activeName=='bidTbbFile'){
this.bidTbbFileLoading = false; this.bidTbbFileLoading = false;
this.$refs.bidTbbFileUpload.clearFiles(); //**** this.$refs.bidTbbFileUpload.clearFiles(); //****
}else if(activeName=='bidTbbJsgfFile'){
this.bidTbbJsgfFileLoading = false;
this.$refs.bidTbbJsgfFileUpload.clearFiles(); //****
} }
} }
}, },
@ -1015,6 +1354,13 @@ export default {
this.bidTbbFileList = response.rows; this.bidTbbFileList = response.rows;
}); });
}, },
//-
getBidTbbJsgfFileList(){
const param = {relationId:this.form.bidId,fileType:'bidTbbJsgfFile'}
bidFileList(param).then(response => {
this.bidTbbJsgfFileList = response.rows;
});
},
// //
downloadFile(fileUrl){ downloadFile(fileUrl){
@ -1034,10 +1380,16 @@ export default {
this.getBidTbbFileList(); this.getBidTbbFileList();
this.bidTbbFileLoading = false; this.bidTbbFileLoading = false;
}) })
}else if(activeName=='bidTbbJsgfFile'){
this.bidTbbJsgfFileLoading = true;
bidFileDelete(fileId).then(response => {
this.getBidTbbJsgfFileList();
this.bidTbbJsgfFileLoading = false;
})
} }
}, },
/*********************************附件列表数据展示、上传*****************************************/ /*********************************附件列表数据展示、上传*****************************************/
/*********************************打开选人弹窗-分派*****************************************/
//- //-
openPeopleSelect(){ openPeopleSelect(){
this.peopleOpenFp=true; this.peopleOpenFp=true;
@ -1073,6 +1425,53 @@ export default {
const res = new Map(); const res = new Map();
return arr.filter((arr) => !res.has(arr.userName) && res.set(arr.userName, 1)); return arr.filter((arr) => !res.has(arr.userName) && res.set(arr.userName, 1));
}, },
/*********************************打开选人弹窗-分派*****************************************/
/*********************************技术协助模块*****************************************/
//
showJsqrDialog(){
this.$refs.jsqrDialog.getInfo("投标-技术确认单",true,false,this.form.bidJsxzConfirmId);
},
//
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;
}
});
},
/*********************************技术协助模块*****************************************/
} }
}; };
</script> </script>

View File

@ -0,0 +1,200 @@
<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="bidJsqrCode">
<el-input
v-model="queryParams.bidJsqrCode"
placeholder="请输入技术确认单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="技术协助状态" prop="bidJsxzApprovalStatus">
<el-select v-model="queryParams.bidJsxzApprovalStatus" placeholder="请选择技术协助状态" clearable>
<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-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="jsqrList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="bidJsqrId" v-if="false"/>
<el-table-column fixed label="技术确认单编号" align="center" prop="bidJsqrCode" width="280px">
<template slot-scope="scope">
<el-link :underline="false" type="primary" @click="handleUpdate(scope.row)">{{scope.row.bidJsqrCode}}</el-link>
</template>
</el-table-column>
<el-table-column fixed label="技术协助状态" align="center" prop="bidJsxzApprovalStatus" width="150px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsxzApprovalStatus"/>
</template>
</el-table-column>
<el-table-column label="技术协助分组" align="center" prop="bidJsxzGroup" width="180px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_group" :value="scope.row.bidJsxzGroupValues"/>
</template>
</el-table-column>
<el-table-column label="特缆协助状态" align="center" prop="bidJsqrTlApprovalStatus" width="150px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsqrTlApprovalStatus" v-if="scope.row.bidJsqrTlApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="低压协助状态" align="center" prop="bidJsqrDyApprovalStatus" width="150px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsqrDyApprovalStatus" v-if="scope.row.bidJsqrDyApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="中压协助状态" align="center" prop="bidJsqrZyApprovalStatus" width="150px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsqrZyApprovalStatus" v-if="scope.row.bidJsqrZyApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="其他协助状态" align="center" prop="bidJsqrQtApprovalStatus" width="150px">
<template slot-scope="scope">
<dict-tag :options="dict.type.bid_jsxz_approval_status" :value="scope.row.bidJsqrQtApprovalStatus" v-if="scope.row.bidJsqrQtApprovalStatus!=0"/>
</template>
</el-table-column>
<el-table-column label="投标单号" align="center" prop="bidCode" width="250px"/>
<el-table-column label="客户" align="center" prop="bidTenderingUnit" width="250px"/>
<el-table-column label="业务员" align="center" prop="bidSalesmanName" width="150px"/>
<el-table-column label="项目名称" align="center" prop="bidProject" width="250px"/>
<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>
<!-- 添加或修改报价单-技术确认单对话框 -->
<jsqrDialog ref="jsqrDialog" @refreshList="getList"></jsqrDialog>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { listJsqr} from "@/api/technicalConfirm/technicalConfirmBid";
//
import jsqrDialog from '@/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue';
export default {
name: "JsqrBid",
components: {
//
'jsqrDialog': jsqrDialog
},
dicts: ['bid_jsxz_approval_status','bid_jsxz_chapter','bid_jsxz_standard','bid_jsxz_group','bid_jsxz_group_status'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// -
jsqrList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
bidJsqrCode: null
}
};
},
created() {
this.getList();
},
methods: {
/** 查询报价单-技术确认单列表 */
getList() {
this.loading = true;
listJsqr(this.queryParams).then(response => {
this.jsqrList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.bidJsqrId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
const bidJsqrId = row.bidJsqrId || this.ids;
this.$refs.jsqrDialog.getInfo("投标-技术确认单",true,true,bidJsqrId);
}
}
};
</script>

File diff suppressed because it is too large Load Diff