From 9c0b11258d003cfdd974d5fe02df3ca4749f42e8 Mon Sep 17 00:00:00 2001 From: xd <844539747@qq.com> Date: Wed, 17 Jul 2024 14:32:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=95=E6=A0=87=E4=BF=A1=E6=81=AF-=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E5=8D=8F=E5=8A=A9=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/bid/BidController.java | 72 +- .../technicalConfirm/BidJsqrController.java | 552 ++++++ .../main/java/com/ruoyi/bid/domain/Bid.java | 71 + .../java/com/ruoyi/bid/mapper/BidMapper.java | 8 + .../com/ruoyi/bid/service/IBidService.java | 10 + .../bid/service/impl/BidServiceImpl.java | 10 + .../technicalConfirm/domain/BidJsqr.java | 584 +++++++ .../domain/BidJsqrXzDetail.java | 157 ++ .../domain/BidJsqrXzRemark.java | 36 + .../mapper/BidJsqrMapper.java | 62 + .../service/IBidJsqrService.java | 62 + .../service/impl/BidJsqrServiceImpl.java | 103 ++ .../main/resources/mapper/bid/BidMapper.xml | 53 +- .../mapper/technicalConfirm/BidJsqrMapper.xml | 324 ++++ ruoyi-ui/src/api/bid/bid.js | 9 + .../technicalConfirm/technicalConfirmBid.js | 71 + ruoyi-ui/src/views/bid/bid/index.vue | 429 ++++- .../technicalConfirm/indexBid.vue | 200 +++ .../technicalConfirm/jsxzInfoBid.vue | 1502 +++++++++++++++++ 19 files changed, 4295 insertions(+), 20 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/BidJsqrController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqr.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzDetail.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzRemark.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/mapper/BidJsqrMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/IBidJsqrService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/impl/BidJsqrServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/technicalConfirm/BidJsqrMapper.xml create mode 100644 ruoyi-ui/src/api/technicalConfirm/technicalConfirmBid.js create mode 100644 ruoyi-ui/src/views/technicalConfirm/technicalConfirm/indexBid.vue create mode 100644 ruoyi-ui/src/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java index e3c69f5..d99d68a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BidController.java @@ -1,12 +1,10 @@ package com.ruoyi.web.controller.bid; import java.util.List; -import javax.security.auth.Subject; import javax.servlet.http.HttpServletResponse; import com.ruoyi.bid.domain.BidFile; import com.ruoyi.bid.domain.SysOaBid; import com.ruoyi.bid.service.IBidFileService; 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.SecurityUtils; 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.uuid.UUID; 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.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -43,6 +44,9 @@ public class BidController extends BaseController @Autowired private IBidFileService bidFileService; + @Autowired + private IBidJsqrService bidJsqrService; + @Autowired private ISysDeptService deptService; @@ -324,4 +328,68 @@ public class BidController extends BaseController { 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(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/BidJsqrController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/BidJsqrController.java new file mode 100644 index 0000000..ce42aa3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/BidJsqrController.java @@ -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 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 list = bidJsqrService.selectBidJsqrList(bidJsqr); + ExcelUtil util = new ExcelUtil(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 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(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java b/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java index 9ebc698..9eca19f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bid/domain/Bid.java @@ -200,6 +200,35 @@ public class Bid extends BaseEntity private String receiveUserName; 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) { this.bidId = bidId; @@ -592,4 +621,46 @@ public class Bid extends BaseEntity public String getReceiveUserNickName() { return 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; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bid/mapper/BidMapper.java b/ruoyi-system/src/main/java/com/ruoyi/bid/mapper/BidMapper.java index 2534a29..c023c9c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bid/mapper/BidMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bid/mapper/BidMapper.java @@ -20,6 +20,13 @@ public interface BidMapper */ public Bid selectBidByBidId(String bidId); + /** + * 获取投标信息 + * @param bidJsqrId + * @return + */ + Bid selectBidByBidJsqrId(String bidJsqrId); + /** * 查询投标信息列表 * @@ -78,4 +85,5 @@ public interface BidMapper * @param sysOaBid */ void insertSysOABid(SysOaBid sysOaBid); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bid/service/IBidService.java b/ruoyi-system/src/main/java/com/ruoyi/bid/service/IBidService.java index 435a3c7..9c0e6ca 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bid/service/IBidService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bid/service/IBidService.java @@ -3,6 +3,7 @@ package com.ruoyi.bid.service; import java.util.List; import com.ruoyi.bid.domain.Bid; import com.ruoyi.bid.domain.SysOaBid; +import com.ruoyi.quot.domain.Quot; /** * 投标信息Service接口 @@ -20,6 +21,14 @@ public interface IBidService */ public Bid selectBidByBidId(String bidId); + + /** + * 获取投标信息 + * @param bidJsqrId + * @return + */ + Bid selectBidByBidJsqrId(String bidJsqrId); + /** * 查询投标信息列表 * @@ -78,4 +87,5 @@ public interface IBidService * @param sysOaBid */ void insertSysOABid(SysOaBid sysOaBid); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bid/service/impl/BidServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bid/service/impl/BidServiceImpl.java index afef790..ad6c550 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bid/service/impl/BidServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bid/service/impl/BidServiceImpl.java @@ -37,6 +37,16 @@ public class BidServiceImpl implements IBidService return bidMapper.selectBidByBidId(bidId); } + /** + * 获取投标信息 + * @param bidJsqrId + * @return + */ + @Override + public Bid selectBidByBidJsqrId(String bidJsqrId) { + return bidMapper.selectBidByBidJsqrId(bidJsqrId); + } + /** * 查询投标信息列表 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqr.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqr.java new file mode 100644 index 0000000..94962b7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqr.java @@ -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; } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzDetail.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzDetail.java new file mode 100644 index 0000000..f2731c3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzDetail.java @@ -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; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzRemark.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzRemark.java new file mode 100644 index 0000000..cc8a48a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/BidJsqrXzRemark.java @@ -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; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/mapper/BidJsqrMapper.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/mapper/BidJsqrMapper.java new file mode 100644 index 0000000..eb80361 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/mapper/BidJsqrMapper.java @@ -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 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); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/IBidJsqrService.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/IBidJsqrService.java new file mode 100644 index 0000000..c07d303 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/IBidJsqrService.java @@ -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 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); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/impl/BidJsqrServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/impl/BidJsqrServiceImpl.java new file mode 100644 index 0000000..7d180c1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/service/impl/BidJsqrServiceImpl.java @@ -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 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); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml b/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml index dd828eb..732aabe 100644 --- a/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bid/BidMapper.xml @@ -63,6 +63,23 @@ + + + + + + + + + + + + + + + + + @@ -70,9 +87,10 @@ - + left join sys_user u on u.user_name=a.create_by left join sys_dept d on u.dept_id = d.dept_id + left join bid_jsqr q on q.bid_jsqr_id = a.bid_jsxz_confirm_id @@ -90,9 +108,18 @@ a.bid_price_linkage, a.bid_payment_method, a.bid_other_matters, a.bid_zbr, a.bid_jdr, a.bid_shr, a.bid_approval_status, a.bid_notification_award, a.bid_remark,a.bid_returnRemark, a.set_receive_user,a.receive_user_name,a.receive_user_nick_name,a.create_by,u.nick_name create_name, a.create_time, - a.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 - + select top 1 id as userId,departmentid as departmentId from HrmResource where loginid = #{loginid} + + diff --git a/ruoyi-system/src/main/resources/mapper/technicalConfirm/BidJsqrMapper.xml b/ruoyi-system/src/main/resources/mapper/technicalConfirm/BidJsqrMapper.xml new file mode 100644 index 0000000..d85943d --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/technicalConfirm/BidJsqrMapper.xml @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 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 + + + + + + + + + insert into bid_jsqr + + bid_jsqr_id, + bid_jsqr_code, + bid_jsqr_tl_approval_status, + bid_jsqr_tl_operate_user_name, + bid_jsqr_tl_operate_state, + bid_jsqr_tl_operate_time, + bid_jsqr_tl_remark, + bid_jsqr_tl_check_user_name, + bid_jsqr_tl_check_state, + bid_jsqr_tl_check_time, + bid_jsqr_tl_check_remark, + bid_jsqr_tl_leader_user_name, + bid_jsqr_tl_leader_state, + bid_jsqr_tl_leader_time, + bid_jsqr_tl_leader_remark, + bid_jsqr_dy_approval_status, + bid_jsqr_dy_operate_user_name, + bid_jsqr_dy_operate_state, + bid_jsqr_dy_operate_time, + bid_jsqr_dy_remark, + bid_jsqr_dy_check_user_name, + bid_jsqr_dy_check_state, + bid_jsqr_dy_check_time, + bid_jsqr_dy_check_remark, + bid_jsqr_dy_leader_user_name, + bid_jsqr_dy_leader_state, + bid_jsqr_dy_leader_time, + bid_jsqr_dy_leader_remark, + bid_jsqr_zy_approval_status, + bid_jsqr_zy_operate_user_name, + bid_jsqr_zy_operate_state, + bid_jsqr_zy_operate_time, + bid_jsqr_zy_remark, + bid_jsqr_zy_check_user_name, + bid_jsqr_zy_check_state, + bid_jsqr_zy_check_time, + bid_jsqr_zy_check_remark, + bid_jsqr_zy_leader_user_name, + bid_jsqr_zy_leader_state, + bid_jsqr_zy_leader_time, + bid_jsqr_zy_leader_remark, + bid_jsqr_qt_approval_status, + bid_jsqr_qt_operate_user_name, + bid_jsqr_qt_operate_state, + bid_jsqr_qt_operate_time, + bid_jsqr_qt_remark, + bid_jsqr_qt_check_user_name, + bid_jsqr_qt_check_state, + bid_jsqr_qt_check_time, + bid_jsqr_qt_check_remark, + bid_jsqr_qt_leader_user_name, + bid_jsqr_qt_leader_state, + bid_jsqr_qt_leader_time, + bid_jsqr_qt_leader_remark, + create_by, + create_time, + update_by, + update_time, + + + #{bidJsqrId}, + #{bidJsqrCode}, + #{bidJsqrTlApprovalStatus}, + #{bidJsqrTlOperateUserName}, + #{bidJsqrTlOperateState}, + #{bidJsqrTlOperateTime}, + #{bidJsqrTlRemark}, + #{bidJsqrTlCheckUserName}, + #{bidJsqrTlCheckState}, + #{bidJsqrTlCheckTime}, + #{bidJsqrTlCheckRemark}, + #{bidJsqrTlLeaderUserName}, + #{bidJsqrTlLeaderState}, + #{bidJsqrTlLeaderTime}, + #{bidJsqrTlLeaderRemark}, + #{bidJsqrDyApprovalStatus}, + #{bidJsqrDyOperateUserName}, + #{bidJsqrDyOperateState}, + #{bidJsqrDyOperateTime}, + #{bidJsqrDyRemark}, + #{bidJsqrDyCheckUserName}, + #{bidJsqrDyCheckState}, + #{bidJsqrDyCheckTime}, + #{bidJsqrDyCheckRemark}, + #{bidJsqrDyLeaderUserName}, + #{bidJsqrDyLeaderState}, + #{bidJsqrDyLeaderTime}, + #{bidJsqrDyLeaderRemark}, + #{bidJsqrZyApprovalStatus}, + #{bidJsqrZyOperateUserName}, + #{bidJsqrZyOperateState}, + #{bidJsqrZyOperateTime}, + #{bidJsqrZyRemark}, + #{bidJsqrZyCheckUserName}, + #{bidJsqrZyCheckState}, + #{bidJsqrZyCheckTime}, + #{bidJsqrZyCheckRemark}, + #{bidJsqrZyLeaderUserName}, + #{bidJsqrZyLeaderState}, + #{bidJsqrZyLeaderTime}, + #{bidJsqrZyLeaderRemark}, + #{bidJsqrQtApprovalStatus}, + #{bidJsqrQtOperateUserName}, + #{bidJsqrQtOperateState}, + #{bidJsqrQtOperateTime}, + #{bidJsqrQtRemark}, + #{bidJsqrQtCheckUserName}, + #{bidJsqrQtCheckState}, + #{bidJsqrQtCheckTime}, + #{bidJsqrQtCheckRemark}, + #{bidJsqrQtLeaderUserName}, + #{bidJsqrQtLeaderState}, + #{bidJsqrQtLeaderTime}, + #{bidJsqrQtLeaderRemark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update bid_jsqr + + bid_jsqr_code = #{bidJsqrCode}, + bid_jsqr_tl_approval_status = #{bidJsqrTlApprovalStatus}, + bid_jsqr_tl_operate_user_name = #{bidJsqrTlOperateUserName}, + bid_jsqr_tl_operate_state = #{bidJsqrTlOperateState}, + bid_jsqr_tl_operate_time = #{bidJsqrTlOperateTime}, + bid_jsqr_tl_remark = #{bidJsqrTlRemark}, + bid_jsqr_tl_check_user_name = #{bidJsqrTlCheckUserName}, + bid_jsqr_tl_check_state = #{bidJsqrTlCheckState}, + bid_jsqr_tl_check_time = #{bidJsqrTlCheckTime}, + bid_jsqr_tl_check_remark = #{bidJsqrTlCheckRemark}, + bid_jsqr_tl_leader_user_name = #{bidJsqrTlLeaderUserName}, + bid_jsqr_tl_leader_state = #{bidJsqrTlLeaderState}, + bid_jsqr_tl_leader_time = #{bidJsqrTlLeaderTime}, + bid_jsqr_tl_leader_remark = #{bidJsqrTlLeaderRemark}, + bid_jsqr_dy_approval_status = #{bidJsqrDyApprovalStatus}, + bid_jsqr_dy_operate_user_name = #{bidJsqrDyOperateUserName}, + bid_jsqr_dy_operate_state = #{bidJsqrDyOperateState}, + bid_jsqr_dy_operate_time = #{bidJsqrDyOperateTime}, + bid_jsqr_dy_remark = #{bidJsqrDyRemark}, + bid_jsqr_dy_check_user_name = #{bidJsqrDyCheckUserName}, + bid_jsqr_dy_check_state = #{bidJsqrDyCheckState}, + bid_jsqr_dy_check_time = #{bidJsqrDyCheckTime}, + bid_jsqr_dy_check_remark = #{bidJsqrDyCheckRemark}, + bid_jsqr_dy_leader_user_name = #{bidJsqrDyLeaderUserName}, + bid_jsqr_dy_leader_state = #{bidJsqrDyLeaderState}, + bid_jsqr_dy_leader_time = #{bidJsqrDyLeaderTime}, + bid_jsqr_dy_leader_remark = #{bidJsqrDyLeaderRemark}, + bid_jsqr_zy_approval_status = #{bidJsqrZyApprovalStatus}, + bid_jsqr_zy_operate_user_name = #{bidJsqrZyOperateUserName}, + bid_jsqr_zy_operate_state = #{bidJsqrZyOperateState}, + bid_jsqr_zy_operate_time = #{bidJsqrZyOperateTime}, + bid_jsqr_zy_remark = #{bidJsqrZyRemark}, + bid_jsqr_zy_check_user_name = #{bidJsqrZyCheckUserName}, + bid_jsqr_zy_check_state = #{bidJsqrZyCheckState}, + bid_jsqr_zy_check_time = #{bidJsqrZyCheckTime}, + bid_jsqr_zy_check_remark = #{bidJsqrZyCheckRemark}, + bid_jsqr_zy_leader_user_name = #{bidJsqrZyLeaderUserName}, + bid_jsqr_zy_leader_state = #{bidJsqrZyLeaderState}, + bid_jsqr_zy_leader_time = #{bidJsqrZyLeaderTime}, + bid_jsqr_zy_leader_remark = #{bidJsqrZyLeaderRemark}, + bid_jsqr_qt_approval_status = #{bidJsqrQtApprovalStatus}, + bid_jsqr_qt_operate_user_name = #{bidJsqrQtOperateUserName}, + bid_jsqr_qt_operate_state = #{bidJsqrQtOperateState}, + bid_jsqr_qt_operate_time = #{bidJsqrQtOperateTime}, + bid_jsqr_qt_remark = #{bidJsqrQtRemark}, + bid_jsqr_qt_check_user_name = #{bidJsqrQtCheckUserName}, + bid_jsqr_qt_check_state = #{bidJsqrQtCheckState}, + bid_jsqr_qt_check_time = #{bidJsqrQtCheckTime}, + bid_jsqr_qt_check_remark = #{bidJsqrQtCheckRemark}, + bid_jsqr_qt_leader_user_name = #{bidJsqrQtLeaderUserName}, + bid_jsqr_qt_leader_state = #{bidJsqrQtLeaderState}, + bid_jsqr_qt_leader_time = #{bidJsqrQtLeaderTime}, + bid_jsqr_qt_leader_remark = #{bidJsqrQtLeaderRemark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where bid_jsqr_id = #{bidJsqrId} + + + + delete from bid_jsqr where bid_jsqr_id = #{bidJsqrId} + + + + delete from bid_jsqr where bid_jsqr_id in + + #{bidJsqrId} + + + diff --git a/ruoyi-ui/src/api/bid/bid.js b/ruoyi-ui/src/api/bid/bid.js index 67f53c1..2ff9b03 100644 --- a/ruoyi-ui/src/api/bid/bid.js +++ b/ruoyi-ui/src/api/bid/bid.js @@ -77,3 +77,12 @@ export function delBid(bidId) { method: 'delete' }) } + +//提交技术协助 +export function commitJsBid(data) { + return request({ + url: '/bid/bid/commitJsBid', + method: 'post', + data: data + }) +} diff --git a/ruoyi-ui/src/api/technicalConfirm/technicalConfirmBid.js b/ruoyi-ui/src/api/technicalConfirm/technicalConfirmBid.js new file mode 100644 index 0000000..c679022 --- /dev/null +++ b/ruoyi-ui/src/api/technicalConfirm/technicalConfirmBid.js @@ -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 + }) +} diff --git a/ruoyi-ui/src/views/bid/bid/index.vue b/ruoyi-ui/src/views/bid/bid/index.vue index deb90ab..f101e2c 100644 --- a/ruoyi-ui/src/views/bid/bid/index.vue +++ b/ruoyi-ui/src/views/bid/bid/index.vue @@ -188,10 +188,32 @@ 当前协助情况 - + +
+ + + + + + + + + + + + +
基本信息 @@ -501,7 +523,7 @@ - + @@ -520,28 +542,28 @@ - + - + - + - + @@ -562,7 +584,7 @@ - 投标办附件 + 投标办附件
+ +
+ 技术协助 + + + + + + + + + + + + + {{form.bidJsxzConfirmCode}} + + + + + + + + + + + + + + + + + + + 技术要求附件 +
+ + 上传文件 + +
+ + + + + + + + + + +
+ 特缆协助 + + + + + + + + + + + 上传文件 ({{this.bidJsqrTlFileNum}}) + + + + + + + + + + +
+
+ 低压协助 + + + + + + + + + + + 上传文件 ({{this.bidJsqrDyFileNum}}) + + + + + + + + + + +
+
+ 中压协助 + + + + + + + + + + + 上传文件 ({{this.bidJsqrZyFileNum}}) + + + + + + + + + + +
+
+ 其他协助 + + + + + + + + + + + 上传文件 ({{this.bidJsqrQtFileNum}}) + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + @@ -632,12 +877,21 @@ font-weight: 600; } + diff --git a/ruoyi-ui/src/views/technicalConfirm/technicalConfirm/indexBid.vue b/ruoyi-ui/src/views/technicalConfirm/technicalConfirm/indexBid.vue new file mode 100644 index 0000000..ac43e73 --- /dev/null +++ b/ruoyi-ui/src/views/technicalConfirm/technicalConfirm/indexBid.vue @@ -0,0 +1,200 @@ + + diff --git a/ruoyi-ui/src/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue b/ruoyi-ui/src/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue new file mode 100644 index 0000000..674c0fe --- /dev/null +++ b/ruoyi-ui/src/views/technicalConfirm/technicalConfirm/jsxzInfoBid.vue @@ -0,0 +1,1502 @@ + + + + + +