Browse Source

Merge branch 'master' of http://219.147.85.210:8080/gmcs/HongHu-PSM

zzs 3 months ago
parent
commit
9441a8cd7c
54 changed files with 3367 additions and 1349 deletions
  1. 11 6
      bidding-ui/src/views/mine/tenderOffer.vue
  2. 8 3
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteExpertService.java
  3. 3 0
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java
  4. 34 21
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
  5. 11 0
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteExpertFallbackFactory.java
  6. 5 0
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
  7. 29 29
      ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/PriceConstants.java
  8. 17 8
      ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/controller/BsExpertController.java
  9. 3 0
      ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/mapper/BsExpertMapper.java
  10. 2 0
      ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/service/IBsExpertService.java
  11. 5 0
      ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/service/impl/BsExpertServiceImpl.java
  12. 7 0
      ruoyi-modules/hh-basic/src/main/resources/mapper/BsExpertMapper.xml
  13. 32 1
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidCommitteeController.java
  14. 105 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidIdeaController.java
  15. 1 1
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidIvrController.java
  16. 32 30
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidNoticeController.java
  17. 59 5
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidTenderController.java
  18. 255 11
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/ExpertMarkController.java
  19. 103 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/ScoreSummaryController.java
  20. 67 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/BidIdea.java
  21. 55 31
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/BidTender.java
  22. 20 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/BidWinningResults.java
  23. 3 3
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/QuoteScore.java
  24. 169 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/ScoreSummary.java
  25. 61 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/TechScore.java
  26. 112 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/TotalScore.java
  27. 61 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/BidIdeaMapper.java
  28. 17 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/BidInfoMapper.java
  29. 4 4
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/BidTenderMapper.java
  30. 64 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/ScoreSummaryMapper.java
  31. 61 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IBidIdeaService.java
  32. 17 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IBidInfoService.java
  33. 3 4
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IBidTenderService.java
  34. 63 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IScoreSummaryService.java
  35. 96 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/BidIdeaServiceImpl.java
  36. 12 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/BidInfoServiceImpl.java
  37. 6 4
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/BidTenderServiceImpl.java
  38. 98 0
      ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/ScoreSummaryServiceImpl.java
  39. 1 1
      ruoyi-modules/hh-bidding/src/main/resources/mapper/BidCommitteeMapper.xml
  40. 69 0
      ruoyi-modules/hh-bidding/src/main/resources/mapper/BidIdeaMapper.xml
  41. 8 0
      ruoyi-modules/hh-bidding/src/main/resources/mapper/BidInfoMapper.xml
  42. 5 1
      ruoyi-modules/hh-bidding/src/main/resources/mapper/BidTenderMapper.xml
  43. 8 2
      ruoyi-modules/hh-bidding/src/main/resources/mapper/BidWinningResultsMapper.xml
  44. 99 0
      ruoyi-modules/hh-bidding/src/main/resources/mapper/ScoreSummaryMapper.xml
  45. 95 15
      ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/controller/BankDepositController.java
  46. 75 42
      ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/controller/BankDepositdescController.java
  47. 34 14
      ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/controller/BankTenderpubController.java
  48. 58 7
      ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/utils/JsonUtils.java
  49. 25 1
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
  50. 8 1
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
  51. 8 0
      ruoyi-ui/src/api/bank/tenderpub.js
  52. 685 656
      ruoyi-ui/src/views/bank/depositdesc/index.vue
  53. 471 443
      ruoyi-ui/src/views/bank/tenderpub/index.vue
  54. 7 5
      ruoyi-ui/src/views/tender/tender1/bidding.vue

+ 11 - 6
bidding-ui/src/views/mine/tenderOffer.vue

@@ -37,12 +37,16 @@
       </el-table-column>
       <el-table-column label="报价金额" align="center">
         <template slot-scope="scope">
-          <span>{{scope.row.third ? scope.row.third : (scope.row.second ? scope.row.second : scope.row.first)}}</span>
+          <span v-if="detail.sProjectState != 8">
+            {{scope.row.third ? scope.row.third : (scope.row.second ? scope.row.second : scope.row.first)}}
+          </span>
+          <span v-else>*</span>
         </template>
       </el-table-column>
       <el-table-column align="center" label="报价详情">
         <template slot-scope="scope">
-          <el-button type="text" @click="toShowOfferResult(scope.row)">查看报价详情</el-button>
+          <el-button type="text" @click="toShowOfferResult(scope.row)"
+            :disabled="detail.sProjectState == 8 && scope.row.hid != hid">查看报价详情</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -111,10 +115,11 @@ export default {
     async getMyOffer () {
       this.loading = true
       try {
-        const query = { sid: this.sid }
-        // if (this.detail.sProjectState != 7) {
-          query.hid = this.hid
-        // }
+        const query = { 
+          sid: this.sid,
+          hid: this.hid
+        }
+        
         const res = await listQuote(query)
 
         this.data = res.data

+ 8 - 3
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteExpertService.java

@@ -2,13 +2,12 @@ package com.ruoyi.system.api;
 
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.system.api.domain.BsExpert;
 import com.ruoyi.system.api.factory.RemoteExpertFallbackFactory;
 import com.ruoyi.system.api.factory.RemotePlanFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -29,4 +28,10 @@ public interface RemoteExpertService {
      */
     @GetMapping("/expert/getExpertList")
     public List<BsExpert> getExpertList(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @PostMapping("/expert/insertExpert")
+    public AjaxResult insertExpert(@RequestBody BsExpert bsExpert,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @GetMapping("/expert/getExpertByUserId")
+    public BsExpert getExpertByUserId(@RequestParam("userId") Long userId,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 3 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java

@@ -90,4 +90,7 @@ public interface RemoteUserService {
 
     @GetMapping(value = "/dept/getInfo/{deptId}")
     public SysDept getInfoById(@PathVariable("deptId") Long deptId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @GetMapping("/user/getLeader")
+    public SysUser getLeader(@RequestParam("ownerDept") Long ownerDept,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 34 - 21
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.api.domain;
 
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import javax.validation.constraints.*;
@@ -92,6 +93,9 @@ public class SysUser extends BaseEntity
     /** 权属单位编码 */
     private String company;
 
+    /** 是否为专家代表 */
+    private Integer isOwner;
+
     public SysUser()
     {
 
@@ -308,28 +312,37 @@ public class SysUser extends BaseEntity
         this.company = company;
     }
 
+    public Integer getIsOwner() {
+        return isOwner;
+    }
+
+    public void setIsOwner(Integer isOwner) {
+        this.isOwner = isOwner;
+    }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("userId", getUserId())
-            .append("deptId", getDeptId())
-            .append("userName", getUserName())
-            .append("nickName", getNickName())
-            .append("email", getEmail())
-            .append("phonenumber", getPhonenumber())
-            .append("sex", getSex())
-            .append("avatar", getAvatar())
-            .append("password", getPassword())
-            .append("status", getStatus())
-            .append("delFlag", getDelFlag())
-            .append("loginIp", getLoginIp())
-            .append("loginDate", getLoginDate())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .append("dept", getDept())
-            .toString();
+        return "SysUser{" +
+                "userId=" + userId +
+                ", deptId=" + deptId +
+                ", userName='" + userName + '\'' +
+                ", nickName='" + nickName + '\'' +
+                ", email='" + email + '\'' +
+                ", phonenumber='" + phonenumber + '\'' +
+                ", sex='" + sex + '\'' +
+                ", avatar='" + avatar + '\'' +
+                ", password='" + password + '\'' +
+                ", status='" + status + '\'' +
+                ", delFlag='" + delFlag + '\'' +
+                ", loginIp='" + loginIp + '\'' +
+                ", loginDate=" + loginDate +
+                ", dept=" + dept +
+                ", roles=" + roles +
+                ", roleIds=" + Arrays.toString(roleIds) +
+                ", postIds=" + Arrays.toString(postIds) +
+                ", roleId=" + roleId +
+                ", company='" + company + '\'' +
+                ", isOwner=" + isOwner +
+                '}';
     }
 }

+ 11 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteExpertFallbackFactory.java

@@ -1,6 +1,7 @@
 package com.ruoyi.system.api.factory;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.system.api.RemoteExpertService;
 import com.ruoyi.system.api.RemotePlanService;
 import com.ruoyi.system.api.domain.BsExpert;
@@ -31,6 +32,16 @@ public class RemoteExpertFallbackFactory implements FallbackFactory<RemoteExpert
             public List<BsExpert> getExpertList(String source) {
                 return null;
             }
+
+            @Override
+            public AjaxResult insertExpert(BsExpert bsExpert, String source) {
+                return null;
+            }
+
+            @Override
+            public BsExpert getExpertByUserId(Long userId, String source) {
+                return null;
+            }
         };
     }
 }

+ 5 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java

@@ -78,6 +78,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
                 return null;
             }
 
+            @Override
+            public SysUser getLeader(Long ownerDept, String source) {
+                return null;
+            }
+
         };
     }
 }

+ 29 - 29
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/PriceConstants.java

@@ -22,21 +22,21 @@ public class PriceConstants {
 
     public static final BigDecimal SERVICE_PRICE_FIVE = new BigDecimal(50000);
 
-    public static final BigDecimal SERVICE_PERCENT_ONE = new BigDecimal(0.015);
+    public static final BigDecimal SERVICE_PERCENT_ONE = new BigDecimal("0.015");
 
-    public static final BigDecimal SERVICE_PERCENT_TWO = new BigDecimal(0.008);
+    public static final BigDecimal SERVICE_PERCENT_TWO = new BigDecimal("0.008");
 
-    public static final BigDecimal SERVICE_PERCENT_THREE = new BigDecimal(0.0045);
+    public static final BigDecimal SERVICE_PERCENT_THREE = new BigDecimal("0.0045");
 
-    public static final BigDecimal SERVICE_PERCENT_FOUR = new BigDecimal(0.0025);
+    public static final BigDecimal SERVICE_PERCENT_FOUR = new BigDecimal("0.0025");
 
-    public static final BigDecimal SERVICE_PERCENT_FIVE = new BigDecimal(0.001);
+    public static final BigDecimal SERVICE_PERCENT_FIVE = new BigDecimal("0.001");
 
-    public static final BigDecimal SERVICE_PERCENT_SIX = new BigDecimal(0.0005);
+    public static final BigDecimal SERVICE_PERCENT_SIX = new BigDecimal("0.0005");
 
-    public static final BigDecimal SERVICE_SAVE_ONE = new BigDecimal(0.65);
+    public static final BigDecimal SERVICE_SAVE_ONE = new BigDecimal("0.65");
 
-    public static final BigDecimal SERVICE_SAVE_TWO = new BigDecimal(0.6);
+    public static final BigDecimal SERVICE_SAVE_TWO = new BigDecimal("0.6");
 
 
     // 货物取费
@@ -50,25 +50,25 @@ public class PriceConstants {
 
     public static final BigDecimal GOOD_PRICE_FIVE = new BigDecimal(125000);
 
-    public static final BigDecimal GOOD_PERCENT_ONE = new BigDecimal(0.015);
+    public static final BigDecimal GOOD_PERCENT_ONE = new BigDecimal("0.015");
 
-    public static final BigDecimal GOOD_PERCENT_TWO = new BigDecimal(0.011);
+    public static final BigDecimal GOOD_PERCENT_TWO = new BigDecimal("0.011");
 
-    public static final BigDecimal GOOD_PERCENT_THREE = new BigDecimal(0.008);
+    public static final BigDecimal GOOD_PERCENT_THREE = new BigDecimal("0.008");
 
-    public static final BigDecimal GOOD_PERCENT_FOUR = new BigDecimal(0.005);
+    public static final BigDecimal GOOD_PERCENT_FOUR = new BigDecimal("0.005");
 
-    public static final BigDecimal GOOD_PERCENT_FIVE = new BigDecimal(0.0025);
+    public static final BigDecimal GOOD_PERCENT_FIVE = new BigDecimal("0.0025");
 
-    public static final BigDecimal GOOD_PERCENT_SIX = new BigDecimal(0.0005);
+    public static final BigDecimal GOOD_PERCENT_SIX = new BigDecimal("0.0005");
 
-    public static final BigDecimal GOOD_SAVE_ONE = new BigDecimal(0.65);
+    public static final BigDecimal GOOD_SAVE_ONE = new BigDecimal("0.65");
 
-    public static final BigDecimal GOOD_SAVE_TWO = new BigDecimal(0.6);
+    public static final BigDecimal GOOD_SAVE_TWO = new BigDecimal("0.6");
 
-    public static final BigDecimal GOOD_SAVE_THREE = new BigDecimal(0.5);
+    public static final BigDecimal GOOD_SAVE_THREE = new BigDecimal("0.5");
 
-    public static final BigDecimal GOOD_SAVE_FOUR = new BigDecimal(0.4);
+    public static final BigDecimal GOOD_SAVE_FOUR = new BigDecimal("0.4");
 
 
     // 工程取费
@@ -82,26 +82,26 @@ public class PriceConstants {
 
     public static final BigDecimal PROJECT_PRICE_FIVE = new BigDecimal(100000);
 
-    public static final BigDecimal PROJECT_PERCENT_ONE = new BigDecimal(0.01);
+    public static final BigDecimal PROJECT_PERCENT_ONE = new BigDecimal("0.01");
 
-    public static final BigDecimal PROJECT_PERCENT_TWO = new BigDecimal(0.007);
+    public static final BigDecimal PROJECT_PERCENT_TWO = new BigDecimal("0.007");
 
-    public static final BigDecimal PROJECT_PERCENT_THREE = new BigDecimal(0.0055);
+    public static final BigDecimal PROJECT_PERCENT_THREE = new BigDecimal("0.0055");
 
-    public static final BigDecimal PROJECT_PERCENT_FOUR = new BigDecimal(0.0035);
+    public static final BigDecimal PROJECT_PERCENT_FOUR = new BigDecimal("0.0035");
 
-    public static final BigDecimal PROJECT_PERCENT_FIVE = new BigDecimal(0.002);
+    public static final BigDecimal PROJECT_PERCENT_FIVE = new BigDecimal("0.002");
 
-    public static final BigDecimal PROJECT_PERCENT_SIX = new BigDecimal(0.0005);
+    public static final BigDecimal PROJECT_PERCENT_SIX = new BigDecimal("0.0005");
 
-    public static final BigDecimal PROJECT_SAVE_ONE = new BigDecimal(0.65);
+    public static final BigDecimal PROJECT_SAVE_ONE = new BigDecimal("0.65");
 
-    public static final BigDecimal PROJECT_SAVE_TWO = new BigDecimal(0.6);
+    public static final BigDecimal PROJECT_SAVE_TWO = new BigDecimal("0.6");
 
-    public static final BigDecimal PROJECT_SAVE_THREE = new BigDecimal(0.5);
+    public static final BigDecimal PROJECT_SAVE_THREE = new BigDecimal("0.5");
 
-    public static final BigDecimal PROJECT_SAVE_FOUR = new BigDecimal(0.4);
+    public static final BigDecimal PROJECT_SAVE_FOUR = new BigDecimal("0.4");
 
     // 竞价收费
-    public static final BigDecimal SAVE = new BigDecimal(0.5);
+    public static final BigDecimal SAVE = new BigDecimal("0.5");
 }

+ 17 - 8
ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/controller/BsExpertController.java

@@ -13,14 +13,7 @@ import com.ruoyi.system.api.RemoteUserService;
 import com.ruoyi.system.api.domain.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
-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 org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
@@ -192,4 +185,20 @@ public class BsExpertController extends BaseController {
         System.out.println(insert.toString());
         return success("0");
     }
+
+    @InnerAuth
+    @Log(title = "专家", businessType = BusinessType.INSERT)
+    @PostMapping("/insertExpert")
+    public AjaxResult insertExpert(@RequestBody BsExpert bsExpert) {
+        Integer res = bsExpertService.insertBsExpert(bsExpert);
+        return toAjax(res);
+    }
+
+    @InnerAuth
+    @GetMapping("/getExpertByUserId")
+    public BsExpert getExpertByUserId(@RequestParam("userId") Long userId){
+        BsExpert bsExpert = new BsExpert();
+        bsExpert.setUserId(userId);
+        return bsExpertService.selectExpertByUserId(userId);
+    }
 }

+ 3 - 0
ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/mapper/BsExpertMapper.java

@@ -60,4 +60,7 @@ public interface BsExpertMapper {
     public int deleteBsExpertByJids(Long[] jids);
 
     public Long[] selectUserByJids(Long[] jids);
+
+    public BsExpert selectExpertByUserId(Long userId);
+
 }

+ 2 - 0
ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/service/IBsExpertService.java

@@ -60,4 +60,6 @@ public interface IBsExpertService {
     public int deleteBsExpertByJid(Long jid);
 
     public Long[] selectUserByJids(Long[] jids);
+
+    public BsExpert selectExpertByUserId(Long userId);
 }

+ 5 - 0
ruoyi-modules/hh-basic/src/main/java/com/hh/pms/sae/service/impl/BsExpertServiceImpl.java

@@ -90,4 +90,9 @@ public class BsExpertServiceImpl implements IBsExpertService {
     public Long[] selectUserByJids(Long[] jids) {
         return bsExpertMapper.selectUserByJids(jids);
     }
+
+    @Override
+    public BsExpert selectExpertByUserId(Long userId) {
+        return bsExpertMapper.selectExpertByUserId(userId);
+    }
 }

+ 7 - 0
ruoyi-modules/hh-basic/src/main/resources/mapper/BsExpertMapper.xml

@@ -61,6 +61,8 @@
         <where>
             <if test="jName != null  and jName != ''">and a.j_name like concat('%', #{jName}, '%')</if>
             <if test="jShState != null ">and a.j_sh_state = #{jShState}</if>
+            <if test = "userId != null">and a.user_id = #{userId}</if>
+            and j_sex is not null
         </where>
     </select>
 
@@ -153,4 +155,9 @@
             #{jid}
         </foreach>
     </select>
+
+    <select id="selectExpertByUserId" parameterType="Long" resultType="com.hh.pms.sae.domain.BsExpert">
+        select * from bs_expert where user_id = #{userId}
+    </select>
+
 </mapper>

+ 32 - 1
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidCommitteeController.java

@@ -10,10 +10,15 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.hh.bidding.domain.BidTender;
 import com.hh.bidding.domain.Committee;
+import com.hh.bidding.service.IBidTenderService;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.RemoteExpertService;
+import com.ruoyi.system.api.RemoteMaterialService;
+import com.ruoyi.system.api.RemoteUserService;
 import com.ruoyi.system.api.domain.BsExpert;
+import com.ruoyi.system.api.domain.MastProject;
+import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
 import org.aspectj.weaver.loadtime.Aj;
@@ -42,9 +47,18 @@ public class BidCommitteeController extends BaseController
     @Autowired
     private IBidCommitteeService bidCommitteeService;
 
+    @Autowired
+    private IBidTenderService bidTenderService;
+
     @Autowired
     private RemoteExpertService remoteExpertService;
 
+    @Autowired
+    private RemoteUserService remoteUserService;
+
+    @Autowired
+    private RemoteMaterialService remoteMaterialService;
+
     /**
      * 查询评标委员会列表
      */
@@ -83,7 +97,6 @@ public class BidCommitteeController extends BaseController
     /**
      * 删除评标委员会
      */
-    @RequiresPermissions("system:committee:remove")
     @Log(title = "评标委员会", businessType = BusinessType.DELETE)
     @DeleteMapping("/{pbIds}")
     public AjaxResult remove(@PathVariable Long[] pbIds)
@@ -123,6 +136,18 @@ public class BidCommitteeController extends BaseController
         bidCommittee.setSid(committee.getSid());
         bidCommittee.setXid(committee.getXid());
         bidCommittee.setStatus(0L);
+        BidTender bidTender = bidTenderService.selectBidTenderBySid(committee.getSid());
+        Long ownerDept = bidTender.getOwnerDept();
+        SysUser leader = remoteUserService.getLeader(ownerDept, SecurityConstants.INNER);
+        Long userId = leader.getUserId();
+        BsExpert expertByUserId = remoteExpertService.getExpertByUserId(userId, SecurityConstants.INNER);
+        bidCommittee.setBsExpert(expertByUserId);
+        bidCommittee.setJid(expertByUserId.getJid());
+        bidCommittee.setUserId(userId);
+
+        if(bidCommitteeService.selectBidCommitteeList(bidCommittee).size() == 0){
+            bidCommitteeService.insertBidCommittee(bidCommittee);
+        }
         for (BsExpert bsExpert : committee.getExpertList()){
             bidCommittee.setBsExpert(bsExpert);
             bidCommittee.setJid(bsExpert.getJid());
@@ -168,6 +193,12 @@ public class BidCommitteeController extends BaseController
         LoginUser loginUser = SecurityUtils.getLoginUser();
         System.out.println(loginUser.getSysUser().toString());
         List<BidTender> list = bidCommitteeService.getProjectByUserId(loginUser.getSysUser().getUserId());
+
+        for(BidTender bidTender : list){
+            Long ownerDept = bidTender.getOwnerDept();
+            SysDept info = remoteUserService.getInfoById(ownerDept,SecurityConstants.INNER);
+            bidTender.setsUnit(info.getDeptName());
+        }
         return getDataTable(list);
     }
 

+ 105 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidIdeaController.java

@@ -0,0 +1,105 @@
+package com.hh.bidding.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+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.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.hh.bidding.domain.BidIdea;
+import com.hh.bidding.service.IBidIdeaService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 专家意见Controller
+ *
+ * @author ruoyi
+ * @date 2024-09-12
+ */
+@RestController
+@RequestMapping("/idea")
+public class BidIdeaController extends BaseController
+{
+    @Autowired
+    private IBidIdeaService bidIdeaService;
+
+    /**
+     * 查询专家意见列表
+     */
+    @RequiresPermissions("bidding:idea:list")
+    @GetMapping("/list")
+    public TableDataInfo list(BidIdea bidIdea)
+    {
+        startPage();
+        List<BidIdea> list = bidIdeaService.selectBidIdeaList(bidIdea);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出专家意见列表
+     */
+    @RequiresPermissions("bidding:idea:export")
+    @Log(title = "专家意见", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BidIdea bidIdea)
+    {
+        List<BidIdea> list = bidIdeaService.selectBidIdeaList(bidIdea);
+        ExcelUtil<BidIdea> util = new ExcelUtil<BidIdea>(BidIdea.class);
+        util.exportExcel(response, list, "专家意见数据");
+    }
+
+    /**
+     * 获取专家意见详细信息
+     */
+    @RequiresPermissions("bidding:idea:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(bidIdeaService.selectBidIdeaById(id));
+    }
+
+    /**
+     * 新增专家意见
+     */
+    @RequiresPermissions("bidding:idea:add")
+    @Log(title = "专家意见", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BidIdea bidIdea)
+    {
+        return toAjax(bidIdeaService.insertBidIdea(bidIdea));
+    }
+
+    /**
+     * 修改专家意见
+     */
+    @RequiresPermissions("bidding:idea:edit")
+    @Log(title = "专家意见", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BidIdea bidIdea)
+    {
+        return toAjax(bidIdeaService.updateBidIdea(bidIdea));
+    }
+
+    /**
+     * 删除专家意见
+     */
+    @RequiresPermissions("bidding:idea:remove")
+    @Log(title = "专家意见", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bidIdeaService.deleteBidIdeaByIds(ids));
+    }
+}

+ 1 - 1
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidIvrController.java

@@ -189,7 +189,7 @@ public class BidIvrController extends BaseController
             } else if ("2".equals(voiceReport.getDtmf())) {
                 bidCommittee.setStatus(2L);
             } else {
-                bidCommittee.setStatus(0L);
+                bidCommittee.setStatus(2L);
             }
             bidCommitteeService.updateBidCommittee(bidCommittee);
         }

+ 32 - 30
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidNoticeController.java

@@ -198,36 +198,38 @@ public class BidNoticeController extends BaseController {
         }
 
         /**添加标段银行接口*/
-        BidTender bt = bidTenderService.selectBidTenderBySid(bidNotice.getSid());
-        if (bt == null) return error("招标项目不可用!");
-        PpmProcurementPlan ppp = remotePlanService.getPlan(bt.getXyId(), SecurityConstants.INNER);
-
-        BankTenderpub btp = new BankTenderpub();
-
-        btp.setPpid(bt.getSid());
-        btp.setPrjno(bt.getsCode());
-        btp.setSgtno("BD" + DateUtils.dateTimeNow());
-        btp.setSgtnm(bt.getsName());
-
-        btp.setMrgnamt(BigDecimal.valueOf(ppp.getEarnestMoney()));
-
-        btp.setStrtsgtdt(DateUtils.parseDateToStr("yyyyMMdd", bidNotice.getuGetTime()));    //发标日期
-
-        /** 保证金截至时间为开标时间前一小时 **/
-        Calendar c = Calendar.getInstance();
-        c.setTime(bidNotice.getuKaiTime());
-        c.add(Calendar.HOUR_OF_DAY, -1);
-        btp.setMrgnduestopdt(DateUtils.parseDateToStr("yyyyMMdd", c.getTime()));   //保证金缴纳截至日期
-        btp.setMrgnduestoptm(DateUtils.parseDateToStr("HHmmss", c.getTime()));     //保证金缴纳截至时间
-        btp.setOpntdrdt(DateUtils.parseDateToStr("yyyyMMdd", bidNotice.getuKaiTime()));        //开标日期
-        btp.setOpntdrtm(DateUtils.parseDateToStr("HHmmss", bidNotice.getuKaiTime()));          //开标时间
-
-        R<String> s = remoteTenderpubService.addInnerAuth(btp, SecurityConstants.INNER);
-
-        if (s.getMsg().contains("成功"))
-            return toAjax(bidNoticeService.insertBidNotice(bidNotice));
-        else
-            return error(s.getMsg());
+//        BidTender bt = bidTenderService.selectBidTenderBySid(bidNotice.getSid());
+//        if (bt == null) return error("招标项目不可用!");
+//        PpmProcurementPlan ppp = remotePlanService.getPlan(bt.getXyId(), SecurityConstants.INNER);
+//
+//        BankTenderpub btp = new BankTenderpub();
+//
+//        btp.setPpid(bt.getSid());
+//        btp.setPrjno(bt.getsCode());
+//        btp.setSgtno("BD" + DateUtils.dateTimeNow());
+//        btp.setSgtnm(bt.getsName());
+//
+//        btp.setMrgnamt(BigDecimal.valueOf(ppp.getEarnestMoney()));
+//
+//        btp.setStrtsgtdt(DateUtils.parseDateToStr("yyyyMMdd", bidNotice.getuGetTime()));    //发标日期
+//
+//        /** 保证金截至时间为开标时间前一小时 **/
+//        Calendar c = Calendar.getInstance();
+//        c.setTime(bidNotice.getuKaiTime());
+//        c.add(Calendar.HOUR_OF_DAY, -1);
+//        btp.setMrgnduestopdt(DateUtils.parseDateToStr("yyyyMMdd", c.getTime()));   //保证金缴纳截至日期
+//        btp.setMrgnduestoptm(DateUtils.parseDateToStr("HHmmss", c.getTime()));     //保证金缴纳截至时间
+//        btp.setOpntdrdt(DateUtils.parseDateToStr("yyyyMMdd", bidNotice.getuKaiTime()));        //开标日期
+//        btp.setOpntdrtm(DateUtils.parseDateToStr("HHmmss", bidNotice.getuKaiTime()));          //开标时间
+//
+//        R<String> s = remoteTenderpubService.addInnerAuth(btp, SecurityConstants.INNER);
+//
+//        if (s.getMsg().contains("成功"))
+//            return toAjax(bidNoticeService.insertBidNotice(bidNotice));
+//        else
+//            return error(s.getMsg());
+
+        return toAjax(bidNoticeService.insertBidNotice(bidNotice));
 
     }
 

+ 59 - 5
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/BidTenderController.java

@@ -87,6 +87,12 @@ public class BidTenderController extends BaseController {
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private IScoreSummaryService scoreSummaryService;
+
+    @Autowired
+    private IBidInfoService bidInfoService;
+
 
     public String getOwnerdepts() {
         List<Long> ids = remoteUserService.getDeptIds(SecurityUtils.getLoginUser().getUserid(), 1, "CHILDREN_COMPANY", SecurityConstants.INNER);
@@ -366,6 +372,30 @@ public class BidTenderController extends BaseController {
         return toAjax(bidTenderService.updateTenderStatus(7L,sid));
     }
 
+    // 询比的手动开标
+    @PutMapping("/openTenderTwo")
+    public AjaxResult openTenderTwo(@RequestBody ScoreSummary scoreSummary){
+        List<ScoreSummary> scoreSummaries = scoreSummaryService.selectScoreSummaryList(scoreSummary);
+        Long hid = scoreSummaries.get(0).getHid();
+        BidTender bidTender = bidTenderService.selectBidTenderBySid(scoreSummary.getSid());
+        BidQuote bidQuote = new BidQuote();
+        bidQuote.setSid(scoreSummary.getSid());
+        bidQuote.setHid(hid);
+        bidQuote.setAudit(1L);
+        List<BidQuote> bidQuotes = bidQuoteService.selectQuoteInfo(bidQuote);
+        BidQuote bidQuote1 = bidQuotes.get(0);
+        BidWinner bidWinner = new BidWinner();
+        bidWinner.setHid(hid);
+        bidWinner.setSid(scoreSummary.getSid());
+        bidWinner.setsName(bidTender.getsName());
+        bidWinner.setStatus(0L);
+        bidWinner.setFinalPrice(bidQuote1.getQuotePrice());
+        bidWinner.sethName(bidQuote1.gethName());
+        bidWinner.setsCode(bidTender.getsCode());
+        bidWinnerService.insertBidWinner(bidWinner);
+        return toAjax(bidTenderService.updateTenderStatus(7L, scoreSummary.getSid()));
+    }
+
     /**
      *  查询已发布的招标项目和招标公告
      *
@@ -733,8 +763,11 @@ public class BidTenderController extends BaseController {
     @Transactional(rollbackFor = Exception.class)
     @PutMapping("/updateTenderByCState")
     public AjaxResult updateTenderByCState(@RequestBody BidTender bidTender){
+        System.out.println("DDDDDDDDDDDDDD");
+        System.out.println(bidTender.getcState());
         BidTender res = bidTenderService.selectBidTenderBySid(bidTender.getSid());
-        if(res.getsState().equals(bidTender.getsState())){
+        if(res.getcState().equals(bidTender.getcState())){
+            System.out.println("AAAAAAAAAAAAAAAA");
             return toAjax(bidTenderService.updateBidTender(bidTender));
         }
 
@@ -746,11 +779,13 @@ public class BidTenderController extends BaseController {
         bidApprovalRecord.setNode("采购人申请");
         bidApprovalRecord.setOpinion("中标变更");
         bidApprovalRecordService.insertBidApprovalRecord(bidApprovalRecord);
-        return toAjax(bidTenderService.updateBidTender(bidTender));
+        System.out.println(bidTender);
+        System.out.println(bidTender.getcState());
+        return toAjax(bidTenderService.updateTenderByCState(bidTender));
     }
 
     // 中标变更服务费计算
-    @GetMapping("getServicePrice")
+    @GetMapping("/getServicePrice")
     public AjaxResult getServicePrice(@RequestParam("sid") Long sid,@RequestParam("hid") Long hid){
         BidTender bidTender = bidTenderService.selectBidTenderBySid(sid);
         PpmProcurementPlan plan = remotePlanService.getPlan(bidTender.getXyId(), SecurityConstants.INNER);
@@ -997,10 +1032,30 @@ public class BidTenderController extends BaseController {
                 }
             }
         }
-        return success(servicePrice);
+        Map<String,BigDecimal> resMap = new HashMap<>();
+        //TODO
+        resMap.put("servicePrice",servicePrice);
+        resMap.put("finalPrice",finalPrice);
+        return success(resMap);
 
     }
 
+    // 查询项目可变更供应商
+    @GetMapping("/getChangeSupplier")
+    public AjaxResult getChangeSupplier(@RequestParam("sid") Long sid){
+        BidQuote bidQuote = new BidQuote();
+        bidQuote.setSid(sid);
+        List<BidQuote> bidQuotes = bidQuoteService.selectBidQuoteList(bidQuote);
+        List<BsSupplier> list = new ArrayList<>();
+        for(BidQuote item : bidQuotes){
+            Long hid = item.getHid();
+            BsSupplier bsSupplier = bidTenderService.selectSupplierByHid(hid);
+            list.add(bsSupplier);
+        }
+        return success(list);
+    }
+
+
     /**
      * 获取招标项目详细信息
      */
@@ -1035,5 +1090,4 @@ public class BidTenderController extends BaseController {
         return toAjax(bidTenderService.deleteBidTenderBySids(sids));
     }
 
-
 }

+ 255 - 11
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/ExpertMarkController.java

@@ -11,10 +11,13 @@ import com.ruoyi.system.api.domain.BsExpert;
 import com.ruoyi.system.api.domain.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.swing.event.AncestorEvent;
-import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
 
 /**
  * @author GMCS
@@ -51,6 +54,12 @@ public class ExpertMarkController extends BaseController{
     @Autowired
     private IBidCommitteeService bidCommitteeService;
 
+    @Autowired
+    private IBidQuoteService bidQuoteService;
+
+    @Autowired
+    private IScoreSummaryService scoreSummaryService;
+
     // 查询全部评分细则
     @GetMapping("/getMarkDetail")
     public AjaxResult getMarkDetail(@RequestParam("sid") Long sid){
@@ -183,9 +192,19 @@ public class ExpertMarkController extends BaseController{
 
     // 获取打分情况
     @GetMapping("/getMark")
-    public AjaxResult getMark(Long sid){
+    public AjaxResult getMark(@RequestParam("sid") Long sid,@RequestParam("hid") Long hid){
         Long userId = SecurityUtils.getLoginUser().getSysUser().getUserId();
 
+        Integer isLeader = 0;
+
+        BidCommittee bidCommittee = new BidCommittee();
+        bidCommittee.setSid(sid);
+        bidCommittee.setUserId(userId);
+        List<BidCommittee> bidCommittees = bidCommitteeService.selectBidCommitteeList(bidCommittee);
+        if(!CollectionUtils.isEmpty(bidCommittees)){
+            isLeader = bidCommittees.get(0).getIsLeader();
+        }
+
         BsExpert bsExpert = bidInfoService.getExpertByUserId(userId);
         Long jid = bsExpert.getJid();
         String jName = bsExpert.getjName();
@@ -202,14 +221,17 @@ public class ExpertMarkController extends BaseController{
         bidExamine.setSid(sid);
         bidExpertExamine.setJid(jid);
         bidExpertExamine.setSid(sid);
+        bidExpertExamine.setHid(hid);
 
         bidTech.setSid(sid);
         bidExpertTech.setJid(jid);
         bidExpertTech.setSid(sid);
+        bidExpertTech.setHid(hid);
 
         bidRespond.setSid(sid);
         bidExpertRespond.setJid(jid);
-        bidExpertTech.setSid(sid);
+        bidExpertRespond.setSid(sid);
+        bidExpertRespond.setHid(hid);
         
         BidInfo info = bidInfoService.getInfoBySid(sid);
         List<BidExamine> bidExamines = bidExamineService.selectBidExamineList(bidExamine);
@@ -221,25 +243,67 @@ public class ExpertMarkController extends BaseController{
 
         Mark mark = new Mark();
         mark.setSid(sid);
-        mark.setsName(info.getsName());
+        mark.setsName(info==null?"":info.getsName());
         mark.setJid(jid);
-        mark.setuKaiTime(info.getuKaiTime());
-        mark.setuKaiPosition(info.getuKaiPosition());
+        mark.setuKaiTime(info==null?"":info.getuKaiTime());
+        mark.setuKaiPosition(info==null?"":info.getuKaiPosition());
         mark.setjName(jName);
-        mark.setBidExpertExamines(examineDetails);
+        if(isLeader == 1){
+            mark.setBidExpertExamines(examineDetails);
+            mark.setBidExpertResponds(respondDetails);
+        }
+
         mark.setBidExpertTeches(techDetails);
-        mark.setBidExpertResponds(respondDetails);
         mark.setExamineList(bidExamines);
         mark.setBidRespondList(bidResponds);
         mark.setBidTechList(bidTeches);
-
-        return success( );
+        mark.setIsLeader(Long.valueOf(isLeader));
+        return success(mark);
     }
 
     // 获取整体打分情况
     @GetMapping("/getMarkAll")
     public AjaxResult getMarkAll(Long sid){
-        return success();
+
+        BidInfo bidInfo = new BidInfo();
+        bidInfo.setSid(sid);
+        BidInfo info = bidInfoService.getInfoBySid(sid);
+
+        BidCommittee bidCommittee = new BidCommittee();
+        bidCommittee.setSid(sid);
+
+        BidExamine bidExamine = new BidExamine();
+        BidRespond bidRespond = new BidRespond();
+        BidTech bidTech = new BidTech();
+        BidExpertExamine bidExpertExamine = new BidExpertExamine();
+        BidExpertRespond bidExpertRespond = new BidExpertRespond();
+        BidExpertTech bidExpertTech = new BidExpertTech();
+
+        Mark mark = new Mark();
+        bidExamine.setSid(sid);
+        bidTech.setSid(sid);
+        bidRespond.setSid(sid);
+        bidExpertExamine.setSid(sid);
+        bidExpertRespond.setSid(sid);
+        bidExpertTech.setSid(sid);
+
+        List<BidExamine> bidExamines = bidExamineService.selectBidExamineList(bidExamine);
+        List<BidRespond> bidResponds = bidRespondService.selectBidRespondList(bidRespond);
+        List<BidTech> bidTeches = bidTechService.selectBidTechList(bidTech);
+        List<BidExpertExamine> examineDetails = bidExpertExamineService.selectBidExpertExamineList(bidExpertExamine);
+        List<BidExpertRespond> respondDetails = bidExpertRespondService.selectBidExpertRespondList(bidExpertRespond);
+        List<BidExpertTech> techDetails = bidExpertTechService.selectBidExpertTechList(bidExpertTech);
+        mark.setSid(sid);
+        mark.setsName(info.getsName());
+        mark.setuKaiTime(info.getuKaiTime());
+        mark.setuKaiPosition(info.getuKaiPosition());
+        mark.setBidExpertExamines(examineDetails);
+        mark.setBidExpertResponds(respondDetails);
+        mark.setBidExpertTeches(techDetails);
+        mark.setExamineList(bidExamines);
+        mark.setBidRespondList(bidResponds);
+        mark.setBidTechList(bidTeches);
+        return success(mark);
     }
 
     // 专家打分
@@ -289,4 +353,184 @@ public class ExpertMarkController extends BaseController{
         }
         return success("打分完成");
     }
+
+    // 投标报价得分计算
+    @GetMapping("/getQuoteScore")
+    public AjaxResult getQuoteScore(@RequestParam("sid") Long sid){
+        BidQuote bidQuote = new BidQuote();
+        bidQuote.setSid(sid);
+        bidQuote.setAudit(1L);
+        List<BidQuote> bidQuotes = bidQuoteService.selectBidQuoteList(bidQuote);
+        List<QuoteScore> scores = new ArrayList<>();
+
+        if(bidQuotes.size() == 0){
+            return success("没有报价信息");
+        }
+
+        BigDecimal fullScore = new BigDecimal("7.00");
+
+        BigDecimal middle = new BigDecimal(0);
+        if(bidQuotes.size() >= 5){
+            for (int i = 0; i < bidQuotes.size() ; i++) {
+                if(i != 0 && i != bidQuotes.size() - 1){
+                    middle = middle.add(bidQuotes.get(i).getQuotePrice());
+                }
+            }
+            middle = middle.divide(new BigDecimal(bidQuotes.size() - 2),2, RoundingMode.HALF_UP);
+        } else {
+            for (int i = 0; i < bidQuotes.size(); i++) {
+                middle = middle.add(bidQuotes.get(i).getQuotePrice());
+            }
+            middle = middle.divide(new BigDecimal(bidQuotes.size()),2, RoundingMode.HALF_UP);
+        }
+        BigDecimal standard = middle.multiply(new BigDecimal("0.01"));
+        for(BidQuote item :bidQuotes){
+            String hName = bidInfoService.getSupplierByhid(item.getHid());
+            QuoteScore score = new QuoteScore();
+            score.setSid(sid);
+            score.setHid(item.getHid());
+            score.sethName(hName);
+            score.setLevel(middle);
+            score.setQuotePrice(item.getQuotePrice());
+            BigDecimal percent = item.getQuotePrice().subtract(middle).divide(middle,4,RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
+            score.setPercent(percent);
+            BigDecimal relScore = new BigDecimal(0);
+
+            if(item.getQuotePrice().compareTo(middle) > 0){
+                BigDecimal divide = item.getQuotePrice().subtract(middle).divide(standard,2,RoundingMode.HALF_UP);
+                divide = divide.setScale(0,RoundingMode.DOWN);
+                if(divide.compareTo(new BigDecimal(0)) == 0){
+                    relScore = fullScore.subtract(item.getQuotePrice().subtract(middle).divide(standard,2,RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
+                } else {
+                    relScore = fullScore.subtract(divide.multiply(new BigDecimal("0.6")));
+                }
+
+            } else if(item.getQuotePrice().compareTo(middle) < 0){
+                BigDecimal divide = middle.subtract(item.getQuotePrice()).divide(standard,2,RoundingMode.HALF_UP);
+                divide = divide.setScale(0,RoundingMode.DOWN);
+                if(divide.compareTo(new BigDecimal(0)) == 0){
+                    relScore = fullScore.subtract(middle.subtract(item.getQuotePrice()).divide(standard,2,RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
+                } else{
+                    relScore = fullScore.subtract(divide.multiply(new BigDecimal("0.5")));
+                }
+            } else{
+                relScore = fullScore;
+            }
+            score.setScore(relScore);
+            scores.add(score);
+        }
+        return success(scores);
+    }
+
+    // 评委评分汇总
+    @GetMapping("/getTotal")
+    public AjaxResult getTotal(@RequestParam("sid") Long sid){
+        List<TotalScore> list = new ArrayList<>();
+
+        BidQuote bidQuote = new BidQuote();
+        bidQuote.setSid(sid);
+        bidQuote.setAudit(1L);
+        List<BidQuote> bidQuotes = bidQuoteService.selectBidQuoteList(bidQuote);
+
+        if(bidQuotes.size() == 0){
+            return success("没有报价信息");
+        }
+
+        BigDecimal fullScore = new BigDecimal("7.00");
+
+        BigDecimal middle = new BigDecimal(0);
+        if(bidQuotes.size() >= 5){
+            for (int i = 0; i < bidQuotes.size() ; i++) {
+                if(i != 0 && i != bidQuotes.size() - 1){
+                    middle = middle.add(bidQuotes.get(i).getQuotePrice());
+                }
+            }
+            middle = middle.divide(new BigDecimal(bidQuotes.size() - 2),2, RoundingMode.HALF_UP);
+        } else {
+            for (int i = 0; i < bidQuotes.size(); i++) {
+                middle = middle.add(bidQuotes.get(i).getQuotePrice());
+            }
+            middle = middle.divide(new BigDecimal(bidQuotes.size()),2, RoundingMode.HALF_UP);
+        }
+        BigDecimal standard = middle.multiply(new BigDecimal("0.01"));
+
+        for(BidQuote item : bidQuotes){
+            TotalScore totalScore = new TotalScore();
+            totalScore.setSid(sid);
+            String hName = bidInfoService.getSupplierByhid(item.getHid());
+            totalScore.setHid(item.getHid());
+            totalScore.sethName(hName);
+
+            BigDecimal priceScore = new BigDecimal(0);
+
+            if(item.getQuotePrice().compareTo(middle) > 0){
+                BigDecimal divide = item.getQuotePrice().subtract(middle).divide(standard,2,RoundingMode.HALF_UP);
+                divide = divide.setScale(0,RoundingMode.DOWN);
+                if(divide.compareTo(new BigDecimal(0)) == 0){
+                    priceScore = fullScore.subtract(item.getQuotePrice().subtract(middle).divide(standard,2,RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
+                } else {
+                    priceScore = fullScore.subtract(divide.multiply(new BigDecimal("0.6")));
+                }
+
+            } else if(item.getQuotePrice().compareTo(middle) < 0){
+                BigDecimal divide = middle.subtract(item.getQuotePrice()).divide(standard,2,RoundingMode.HALF_UP);
+                divide = divide.setScale(0,RoundingMode.DOWN);
+                if(divide.compareTo(new BigDecimal(0)) == 0){
+                    priceScore = fullScore.subtract(middle.subtract(item.getQuotePrice()).divide(standard,2,RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
+                } else{
+                    priceScore = fullScore.subtract(divide.multiply(new BigDecimal("0.5")));
+                }
+            } else{
+                priceScore = fullScore;
+            }
+
+            totalScore.setPriceScore(priceScore);
+            List<TechScore> techScores = bidInfoService.getTechScore(sid);
+            List<TechScore> techScores1 = new ArrayList<>();
+
+            int size = 0;
+            Double total = 0.0;
+            for (TechScore techScore : techScores){
+                if(techScore.getHid().equals(item.getHid())){
+                    size++;
+                    total += techScore.getScore();
+                    techScores1.add(techScore);
+                }
+            }
+            totalScore.setTechList(techScores1);
+            BigDecimal averageScore = new BigDecimal(total.toString()).divide(new BigDecimal(String.valueOf(size)),2,RoundingMode.HALF_UP);
+            totalScore.setAverScore(averageScore);
+            totalScore.setTotalScore(averageScore.add(priceScore));
+            totalScore.setSize(size);
+            list.add(totalScore);
+        }
+
+        Collections.sort(list);
+//
+//        scoreSummaryService.deleteScoreSummaryBySid(sid);
+//        for (int i = 0; i < list.size(); i++){
+//            list.get(i).setSize(i+1);
+//
+//            ScoreSummary scoreSummary = new ScoreSummary();
+//            scoreSummary.setSid(sid);
+//            scoreSummary.setHid(list.get(i).getHid());
+//            scoreSummary.sethName(list.get(i).gethName());
+//            List<TechScore> techList = list.get(i).getTechList();
+//            String scoreInfo = "";
+//            for(TechScore item : techList){
+//                scoreInfo+=item.getjName()+","+item.getScore().toString()+";";
+//            }
+//            scoreSummary.setScoreInfo(scoreInfo);
+//            scoreSummary.setPriceScore(list.get(i).getPriceScore());
+//            scoreSummary.setAverScore(list.get(i).getAverScore());
+//            scoreSummary.setTotalScore(list.get(i).getTotalScore());
+//            scoreSummary.setSort(Long.valueOf(i+1));
+//            scoreSummaryService.insertScoreSummary(scoreSummary);
+//        }
+
+        return success(list);
+
+    }
+
+
 }

+ 103 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/controller/ScoreSummaryController.java

@@ -0,0 +1,103 @@
+package com.hh.bidding.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+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.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.hh.bidding.domain.ScoreSummary;
+import com.hh.bidding.service.IScoreSummaryService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 评分汇总记录Controller
+ *
+ * @author ruoyi
+ * @date 2024-09-09
+ */
+@RestController
+@RequestMapping("/summary")
+public class ScoreSummaryController extends BaseController
+{
+    @Autowired
+    private IScoreSummaryService scoreSummaryService;
+
+    /**
+     * 查询评分汇总记录列表
+     */
+    @GetMapping("/list")
+    public AjaxResult list(ScoreSummary scoreSummary)
+    {
+        List<ScoreSummary> list = scoreSummaryService.selectScoreSummaryList(scoreSummary);
+        return success(list);
+    }
+
+    /**
+     * 导出评分汇总记录列表
+     */
+    @RequiresPermissions("bidding:summary:export")
+    @Log(title = "评分汇总记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ScoreSummary scoreSummary)
+    {
+        List<ScoreSummary> list = scoreSummaryService.selectScoreSummaryList(scoreSummary);
+        ExcelUtil<ScoreSummary> util = new ExcelUtil<ScoreSummary>(ScoreSummary.class);
+        util.exportExcel(response, list, "评分汇总记录数据");
+    }
+
+    /**
+     * 获取评分汇总记录详细信息
+     */
+    @RequiresPermissions("bidding:summary:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(scoreSummaryService.selectScoreSummaryById(id));
+    }
+
+    /**
+     * 新增评分汇总记录
+     */
+    @RequiresPermissions("bidding:summary:add")
+    @Log(title = "评分汇总记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ScoreSummary scoreSummary)
+    {
+        return toAjax(scoreSummaryService.insertScoreSummary(scoreSummary));
+    }
+
+    /**
+     * 修改评分汇总记录
+     */
+    @RequiresPermissions("bidding:summary:edit")
+    @Log(title = "评分汇总记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ScoreSummary scoreSummary)
+    {
+        return toAjax(scoreSummaryService.updateScoreSummary(scoreSummary));
+    }
+
+    /**
+     * 删除评分汇总记录
+     */
+    @RequiresPermissions("bidding:summary:remove")
+    @Log(title = "评分汇总记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(scoreSummaryService.deleteScoreSummaryByIds(ids));
+    }
+}

+ 67 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/BidIdea.java

@@ -0,0 +1,67 @@
+package com.hh.bidding.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 专家意见对象 bid_idea
+ *
+ * @author ruoyi
+ * @date 2024-09-12
+ */
+public class BidIdea extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long sid;
+
+    /** 专家意见 */
+    @Excel(name = "专家意见")
+    private String idea;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setSid(Long sid)
+    {
+        this.sid = sid;
+    }
+
+    public Long getSid()
+    {
+        return sid;
+    }
+    public void setIdea(String idea)
+    {
+        this.idea = idea;
+    }
+
+    public String getIdea()
+    {
+        return idea;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("sid", getSid())
+                .append("idea", getIdea())
+                .append("createTime", getCreateTime())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 55 - 31
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/BidTender.java

@@ -552,37 +552,6 @@ public class BidTender extends BaseEntity {
         this.stopFile = stopFile;
     }
 
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-                .append("sid", getSid())
-                .append("xyId", getXyId())
-                .append("sCode", getsCode())
-                .append("sName", getsName())
-                .append("sLeader", getsLeader())
-                .append("sWay", getsWay())
-                .append("sMust", getsMust())
-                .append("sSway", getsSway())
-                .append("sType", getsType())
-                .append("sBudget", getsBudget())
-                .append("sUnit", getsUnit())
-                .append("sPerson", getsPerson())
-                .append("sPhone", getsPhone())
-                .append("email", getEmail())
-                .append("sAddress", getsAddress())
-                .append("createBy", getCreateBy())
-                .append("createTime", getCreateTime())
-                .append("updateBy", getUpdateBy())
-                .append("updateTime", getUpdateTime())
-                .append("sStartTime", getsStartTime())
-                .append("sEndTime", getsEndTime())
-                .append("sProjectState", getsProjectState())
-                .append("sDeadline", getsDeadline())
-                .append("eid", getEid())
-                .append("fjFiles", getFjFiles())
-                .toString();
-    }
-
     public String getFjFiles() {
         return fjFiles;
     }
@@ -659,4 +628,59 @@ public class BidTender extends BaseEntity {
     public void setChangeFile(String changeFile) {
         this.changeFile = changeFile;
     }
+
+    @Override
+    public String toString() {
+        return "BidTender{" +
+                "sid=" + sid +
+                ", xyId=" + xyId +
+                ", sCode='" + sCode + '\'' +
+                ", sName='" + sName + '\'' +
+                ", sWay=" + sWay +
+                ", sLeader='" + sLeader + '\'' +
+                ", sMust=" + sMust +
+                ", sSway=" + sSway +
+                ", sType=" + sType +
+                ", sBudget=" + sBudget +
+                ", sUnit='" + sUnit + '\'' +
+                ", sPerson='" + sPerson + '\'' +
+                ", sPhone='" + sPhone + '\'' +
+                ", email='" + email + '\'' +
+                ", sAddress='" + sAddress + '\'' +
+                ", sStartTime=" + sStartTime +
+                ", sEndTime=" + sEndTime +
+                ", sProjectState=" + sProjectState +
+                ", sDeadline=" + sDeadline +
+                ", createTime=" + createTime +
+                ", rangeStartTime=" + rangeStartTime +
+                ", rangeEndTime=" + rangeEndTime +
+                ", eid=" + eid +
+                ", fjFiles='" + fjFiles + '\'' +
+                ", step='" + step + '\'' +
+                ", bidNotices=" + bidNotices +
+                ", uGetTime=" + uGetTime +
+                ", ownerDept=" + ownerDept +
+                ", ownerDepts='" + ownerDepts + '\'' +
+                ", allowTenderAmount=" + allowTenderAmount +
+                ", uKaiTime=" + uKaiTime +
+                ", sSign='" + sSign + '\'' +
+                ", sCensor='" + sCensor + '\'' +
+                ", sReview='" + sReview + '\'' +
+                ", sSummary='" + sSummary + '\'' +
+                ", isApply=" + isApply +
+                ", quoteMode='" + quoteMode + '\'' +
+                ", intervalTime=" + intervalTime +
+                ", buyingMode='" + buyingMode + '\'' +
+                ", signNumber=" + signNumber +
+                ", enrollNumber=" + enrollNumber +
+                ", sState=" + sState +
+                ", stopFile='" + stopFile + '\'' +
+                ", editor=" + editor +
+                ", bidEditor=" + bidEditor +
+                ", projectName='" + projectName + '\'' +
+                ", projectId=" + projectId +
+                ", cState=" + cState +
+                ", changeFile='" + changeFile + '\'' +
+                '}';
+    }
 }

+ 20 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/BidWinningResults.java

@@ -94,6 +94,10 @@ public class BidWinningResults extends BaseEntity
      */
     private String supplierNameChange;
 
+    private BigDecimal supplierChangeService;
+
+    private BigDecimal supplierChangePrice;
+
     /**
      * 审批意见详情,存入审批记录
      */
@@ -338,4 +342,20 @@ public class BidWinningResults extends BaseEntity
     public void setEditor(PpmApprovalRecord editor) {
         this.editor = editor;
     }
+
+    public BigDecimal getSupplierChangeService() {
+        return supplierChangeService;
+    }
+
+    public void setSupplierChangeService(BigDecimal supplierChangeService) {
+        this.supplierChangeService = supplierChangeService;
+    }
+
+    public BigDecimal getSupplierChangePrice() {
+        return supplierChangePrice;
+    }
+
+    public void setSupplierChangePrice(BigDecimal supplierChangePrice) {
+        this.supplierChangePrice = supplierChangePrice;
+    }
 }

+ 3 - 3
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/QuoteScore.java

@@ -23,7 +23,7 @@ public class QuoteScore {
 
     private BigDecimal percent;
 
-    private Double score;
+    private BigDecimal score;
 
     public Long getHid() {
         return hid;
@@ -73,11 +73,11 @@ public class QuoteScore {
         this.percent = percent;
     }
 
-    public Double getScore() {
+    public BigDecimal getScore() {
         return score;
     }
 
-    public void setScore(Double score) {
+    public void setScore(BigDecimal score) {
         this.score = score;
     }
 }

+ 169 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/ScoreSummary.java

@@ -0,0 +1,169 @@
+package com.hh.bidding.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+import java.math.BigDecimal;
+
+/**
+ * 评分汇总记录对象 score_summary
+ *
+ * @author ruoyi
+ * @date 2024-09-09
+ */
+public class ScoreSummary extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long sid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long hid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String hName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String scoreInfo;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal priceScore;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal averScore;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal totalScore;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long sort;
+
+    private String ywName;
+
+    private String ywPhone;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setSid(Long sid)
+    {
+        this.sid = sid;
+    }
+
+    public Long getSid()
+    {
+        return sid;
+    }
+    public void setHid(Long hid)
+    {
+        this.hid = hid;
+    }
+
+    public Long getHid()
+    {
+        return hid;
+    }
+    public void sethName(String hName)
+    {
+        this.hName = hName;
+    }
+
+    public String gethName()
+    {
+        return hName;
+    }
+    public void setScoreInfo(String scoreInfo)
+    {
+        this.scoreInfo = scoreInfo;
+    }
+
+    public String getScoreInfo()
+    {
+        return scoreInfo;
+    }
+
+    public BigDecimal getPriceScore() {
+        return priceScore;
+    }
+
+    public void setPriceScore(BigDecimal priceScore) {
+        this.priceScore = priceScore;
+    }
+
+    public BigDecimal getAverScore() {
+        return averScore;
+    }
+
+    public void setAverScore(BigDecimal averScore) {
+        this.averScore = averScore;
+    }
+
+    public BigDecimal getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(BigDecimal totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public void setSort(Long sort)
+    {
+        this.sort = sort;
+    }
+
+    public Long getSort()
+    {
+        return sort;
+    }
+
+    public String getYwName() {
+        return ywName;
+    }
+
+    public void setYwName(String ywName) {
+        this.ywName = ywName;
+    }
+
+    public String getYwPhone() {
+        return ywPhone;
+    }
+
+    public void setYwPhone(String ywPhone) {
+        this.ywPhone = ywPhone;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("sid", getSid())
+                .append("hid", getHid())
+                .append("hName", gethName())
+                .append("scoreInfo", getScoreInfo())
+                .append("priceScore", getPriceScore())
+                .append("averScore", getAverScore())
+                .append("totalScore", getTotalScore())
+                .append("sort", getSort())
+                .toString();
+    }
+}

+ 61 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/TechScore.java

@@ -0,0 +1,61 @@
+package com.hh.bidding.domain;
+
+/**
+ * @author GMCS
+ * @version 1.0
+ * @title TechScore
+ * @description 针对项目的专家评分总和
+ * @create 2024/9/9 12:35
+ */
+public class TechScore {
+
+    private Long sid;
+
+    private Long hid;
+
+    private Long jid;
+
+    private String jName;
+
+    private Double score;
+
+    public Long getSid() {
+        return sid;
+    }
+
+    public void setSid(Long sid) {
+        this.sid = sid;
+    }
+
+    public Long getHid() {
+        return hid;
+    }
+
+    public void setHid(Long hid) {
+        this.hid = hid;
+    }
+
+    public Long getJid() {
+        return jid;
+    }
+
+    public void setJid(Long jid) {
+        this.jid = jid;
+    }
+
+    public String getjName() {
+        return jName;
+    }
+
+    public void setjName(String jName) {
+        this.jName = jName;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+}

+ 112 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/domain/TotalScore.java

@@ -0,0 +1,112 @@
+package com.hh.bidding.domain;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author GMCS
+ * @version 1.0
+ * @title TotalScore
+ * @description
+ * @create 2024/9/9 10:36
+ */
+public class TotalScore implements Comparable<TotalScore> {
+
+    private Long sid;
+
+    private Long hid;
+
+    private String hName;
+
+    private List<TechScore> techList;
+
+    private BigDecimal priceScore;
+
+    private BigDecimal averScore;
+
+    private BigDecimal totalScore;
+
+    private Integer sort;
+
+    private Integer size;
+
+
+    public Long getSid() {
+        return sid;
+    }
+
+    public void setSid(Long sid) {
+        this.sid = sid;
+    }
+
+    public Long getHid() {
+        return hid;
+    }
+
+    public void setHid(Long hid) {
+        this.hid = hid;
+    }
+
+    public String gethName() {
+        return hName;
+    }
+
+    public void sethName(String hName) {
+        this.hName = hName;
+    }
+
+    public List<TechScore> getTechList() {
+        return techList;
+    }
+
+    public void setTechList(List<TechScore> techList) {
+        this.techList = techList;
+    }
+
+    public BigDecimal getPriceScore() {
+        return priceScore;
+    }
+
+    public void setPriceScore(BigDecimal priceScore) {
+        this.priceScore = priceScore;
+    }
+
+    public BigDecimal getAverScore() {
+        return averScore;
+    }
+
+    public void setAverScore(BigDecimal averScore) {
+        this.averScore = averScore;
+    }
+
+    public BigDecimal getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(BigDecimal totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public Integer getSize() {
+        return size;
+    }
+
+    public void setSize(Integer size) {
+        this.size = size;
+    }
+
+    @Override
+    public int compareTo(@NotNull TotalScore o) {
+        return o.totalScore.compareTo(this.totalScore);
+    }
+}

+ 61 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/BidIdeaMapper.java

@@ -0,0 +1,61 @@
+package com.hh.bidding.mapper;
+
+import java.util.List;
+import com.hh.bidding.domain.BidIdea;
+
+/**
+ * 专家意见Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-09-12
+ */
+public interface BidIdeaMapper
+{
+    /**
+     * 查询专家意见
+     *
+     * @param id 专家意见主键
+     * @return 专家意见
+     */
+    public BidIdea selectBidIdeaById(Long id);
+
+    /**
+     * 查询专家意见列表
+     *
+     * @param bidIdea 专家意见
+     * @return 专家意见集合
+     */
+    public List<BidIdea> selectBidIdeaList(BidIdea bidIdea);
+
+    /**
+     * 新增专家意见
+     *
+     * @param bidIdea 专家意见
+     * @return 结果
+     */
+    public int insertBidIdea(BidIdea bidIdea);
+
+    /**
+     * 修改专家意见
+     *
+     * @param bidIdea 专家意见
+     * @return 结果
+     */
+    public int updateBidIdea(BidIdea bidIdea);
+
+    /**
+     * 删除专家意见
+     *
+     * @param id 专家意见主键
+     * @return 结果
+     */
+    public int deleteBidIdeaById(Long id);
+
+    /**
+     * 批量删除专家意见
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBidIdeaByIds(Long[] ids);
+}

+ 17 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/BidInfoMapper.java

@@ -2,6 +2,7 @@ package com.hh.bidding.mapper;
 
 import java.util.List;
 import com.hh.bidding.domain.BidInfo;
+import com.hh.bidding.domain.TechScore;
 import com.ruoyi.system.api.domain.BsExpert;
 
 /**
@@ -83,4 +84,20 @@ public interface BidInfoMapper
      */
     public BsExpert getExpertByUserId(Long userId);
 
+    /**
+     *  通过hid获取供应商信息
+     *
+     * @param hid
+     * @return
+     */
+    public String getSupplierByhid(Long hid);
+
+    /**
+     *  获取专家评分总和
+     *
+     * @param sid
+     * @return
+     */
+    public List<TechScore> getTechScore(Long sid);
+
 }

+ 4 - 4
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/BidTenderMapper.java

@@ -3,10 +3,7 @@ package com.hh.bidding.mapper;
 import java.util.List;
 import java.util.Map;
 
-import com.hh.bidding.domain.BidNoticeAndSms;
-import com.hh.bidding.domain.BidTender;
-import com.hh.bidding.domain.BidTenderAndNotoce;
-import com.hh.bidding.domain.BsExpertAndSms;
+import com.hh.bidding.domain.*;
 import com.ruoyi.system.api.domain.BsExpert;
 import com.ruoyi.system.api.domain.PpmApprovalRecord;
 import org.apache.ibatis.annotations.Param;
@@ -212,4 +209,7 @@ public interface BidTenderMapper
 
     // 更新中标变更审核状态
     public int updateTenderByCState(BidTender bidTender);
+
+    public BsSupplier selectSupplierByHid(Long sid);
+
 }

+ 64 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/mapper/ScoreSummaryMapper.java

@@ -0,0 +1,64 @@
+package com.hh.bidding.mapper;
+
+import java.util.List;
+import com.hh.bidding.domain.ScoreSummary;
+
+/**
+ * 评分汇总记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-09-09
+ */
+public interface ScoreSummaryMapper
+{
+    /**
+     * 查询评分汇总记录
+     *
+     * @param id 评分汇总记录主键
+     * @return 评分汇总记录
+     */
+    public ScoreSummary selectScoreSummaryById(Long id);
+
+    /**
+     * 查询评分汇总记录列表
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 评分汇总记录集合
+     */
+    public List<ScoreSummary> selectScoreSummaryList(ScoreSummary scoreSummary);
+
+    /**
+     * 新增评分汇总记录
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 结果
+     */
+    public int insertScoreSummary(ScoreSummary scoreSummary);
+
+    /**
+     * 修改评分汇总记录
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 结果
+     */
+    public int updateScoreSummary(ScoreSummary scoreSummary);
+
+    /**
+     * 删除评分汇总记录
+     *
+     * @param id 评分汇总记录主键
+     * @return 结果
+     */
+    public int deleteScoreSummaryById(Long id);
+
+    /**
+     * 批量删除评分汇总记录
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteScoreSummaryByIds(Long[] ids);
+
+    public int deleteScoreSummaryBySid(Long sid);
+
+}

+ 61 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IBidIdeaService.java

@@ -0,0 +1,61 @@
+package com.hh.bidding.service;
+
+import java.util.List;
+import com.hh.bidding.domain.BidIdea;
+
+/**
+ * 专家意见Service接口
+ *
+ * @author ruoyi
+ * @date 2024-09-12
+ */
+public interface IBidIdeaService
+{
+    /**
+     * 查询专家意见
+     *
+     * @param id 专家意见主键
+     * @return 专家意见
+     */
+    public BidIdea selectBidIdeaById(Long id);
+
+    /**
+     * 查询专家意见列表
+     *
+     * @param bidIdea 专家意见
+     * @return 专家意见集合
+     */
+    public List<BidIdea> selectBidIdeaList(BidIdea bidIdea);
+
+    /**
+     * 新增专家意见
+     *
+     * @param bidIdea 专家意见
+     * @return 结果
+     */
+    public int insertBidIdea(BidIdea bidIdea);
+
+    /**
+     * 修改专家意见
+     *
+     * @param bidIdea 专家意见
+     * @return 结果
+     */
+    public int updateBidIdea(BidIdea bidIdea);
+
+    /**
+     * 批量删除专家意见
+     *
+     * @param ids 需要删除的专家意见主键集合
+     * @return 结果
+     */
+    public int deleteBidIdeaByIds(Long[] ids);
+
+    /**
+     * 删除专家意见信息
+     *
+     * @param id 专家意见主键
+     * @return 结果
+     */
+    public int deleteBidIdeaById(Long id);
+}

+ 17 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IBidInfoService.java

@@ -2,6 +2,7 @@ package com.hh.bidding.service;
 
 import java.util.List;
 import com.hh.bidding.domain.BidInfo;
+import com.hh.bidding.domain.TechScore;
 import com.ruoyi.system.api.domain.BsExpert;
 
 /**
@@ -82,4 +83,20 @@ public interface IBidInfoService
      * @return
      */
     public BsExpert getExpertByUserId(Long userId);
+
+    /**
+     *  通过hid获取供应商信息
+     *
+     * @param hid
+     * @return
+     */
+    public String getSupplierByhid(Long hid);
+
+    /**
+     *  获取专家评分总和
+     *
+     * @param sid
+     * @return
+     */
+    public List<TechScore> getTechScore(Long sid);
 }

+ 3 - 4
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IBidTenderService.java

@@ -3,10 +3,7 @@ package com.hh.bidding.service;
 import java.util.List;
 import java.util.Map;
 
-import com.hh.bidding.domain.BidNoticeAndSms;
-import com.hh.bidding.domain.BidTender;
-import com.hh.bidding.domain.BidTenderAndNotoce;
-import com.hh.bidding.domain.BsExpertAndSms;
+import com.hh.bidding.domain.*;
 import com.ruoyi.system.api.domain.BsExpert;
 import com.ruoyi.system.api.domain.PpmApprovalRecord;
 
@@ -210,4 +207,6 @@ public interface IBidTenderService
 
     // 更新中标变更审核状态
     public int updateTenderByCState(BidTender bidTender);
+
+    public BsSupplier selectSupplierByHid(Long sid);
 }

+ 63 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/IScoreSummaryService.java

@@ -0,0 +1,63 @@
+package com.hh.bidding.service;
+
+import java.util.List;
+import com.hh.bidding.domain.ScoreSummary;
+
+/**
+ * 评分汇总记录Service接口
+ *
+ * @author ruoyi
+ * @date 2024-09-09
+ */
+public interface IScoreSummaryService
+{
+    /**
+     * 查询评分汇总记录
+     *
+     * @param id 评分汇总记录主键
+     * @return 评分汇总记录
+     */
+    public ScoreSummary selectScoreSummaryById(Long id);
+
+    /**
+     * 查询评分汇总记录列表
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 评分汇总记录集合
+     */
+    public List<ScoreSummary> selectScoreSummaryList(ScoreSummary scoreSummary);
+
+    /**
+     * 新增评分汇总记录
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 结果
+     */
+    public int insertScoreSummary(ScoreSummary scoreSummary);
+
+    /**
+     * 修改评分汇总记录
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 结果
+     */
+    public int updateScoreSummary(ScoreSummary scoreSummary);
+
+    /**
+     * 批量删除评分汇总记录
+     *
+     * @param ids 需要删除的评分汇总记录主键集合
+     * @return 结果
+     */
+    public int deleteScoreSummaryByIds(Long[] ids);
+
+    /**
+     * 删除评分汇总记录信息
+     *
+     * @param id 评分汇总记录主键
+     * @return 结果
+     */
+    public int deleteScoreSummaryById(Long id);
+
+    public int deleteScoreSummaryBySid(Long sid);
+}

+ 96 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/BidIdeaServiceImpl.java

@@ -0,0 +1,96 @@
+package com.hh.bidding.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.core.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.hh.bidding.mapper.BidIdeaMapper;
+import com.hh.bidding.domain.BidIdea;
+import com.hh.bidding.service.IBidIdeaService;
+
+/**
+ * 专家意见Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-09-12
+ */
+@Service
+public class BidIdeaServiceImpl implements IBidIdeaService
+{
+    @Autowired
+    private BidIdeaMapper bidIdeaMapper;
+
+    /**
+     * 查询专家意见
+     *
+     * @param id 专家意见主键
+     * @return 专家意见
+     */
+    @Override
+    public BidIdea selectBidIdeaById(Long id)
+    {
+        return bidIdeaMapper.selectBidIdeaById(id);
+    }
+
+    /**
+     * 查询专家意见列表
+     *
+     * @param bidIdea 专家意见
+     * @return 专家意见
+     */
+    @Override
+    public List<BidIdea> selectBidIdeaList(BidIdea bidIdea)
+    {
+        return bidIdeaMapper.selectBidIdeaList(bidIdea);
+    }
+
+    /**
+     * 新增专家意见
+     *
+     * @param bidIdea 专家意见
+     * @return 结果
+     */
+    @Override
+    public int insertBidIdea(BidIdea bidIdea)
+    {
+        bidIdea.setCreateTime(DateUtils.getNowDate());
+        return bidIdeaMapper.insertBidIdea(bidIdea);
+    }
+
+    /**
+     * 修改专家意见
+     *
+     * @param bidIdea 专家意见
+     * @return 结果
+     */
+    @Override
+    public int updateBidIdea(BidIdea bidIdea)
+    {
+        bidIdea.setUpdateTime(DateUtils.getNowDate());
+        return bidIdeaMapper.updateBidIdea(bidIdea);
+    }
+
+    /**
+     * 批量删除专家意见
+     *
+     * @param ids 需要删除的专家意见主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBidIdeaByIds(Long[] ids)
+    {
+        return bidIdeaMapper.deleteBidIdeaByIds(ids);
+    }
+
+    /**
+     * 删除专家意见信息
+     *
+     * @param id 专家意见主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBidIdeaById(Long id)
+    {
+        return bidIdeaMapper.deleteBidIdeaById(id);
+    }
+}

+ 12 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/BidInfoServiceImpl.java

@@ -1,6 +1,8 @@
 package com.hh.bidding.service.impl;
 
 import java.util.List;
+
+import com.hh.bidding.domain.TechScore;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.system.api.domain.BsExpert;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -109,4 +111,14 @@ public class BidInfoServiceImpl implements IBidInfoService
     public BsExpert getExpertByUserId(Long userId) {
         return bidInfoMapper.getExpertByUserId(userId);
     }
+
+    @Override
+    public String getSupplierByhid(Long hid) {
+        return bidInfoMapper.getSupplierByhid(hid);
+    }
+
+    @Override
+    public List<TechScore> getTechScore(Long sid) {
+        return bidInfoMapper.getTechScore(sid);
+    }
 }

+ 6 - 4
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/BidTenderServiceImpl.java

@@ -3,15 +3,12 @@ package com.hh.bidding.service.impl;
 import java.util.List;
 import java.util.Map;
 
-import com.hh.bidding.domain.BidNoticeAndSms;
-import com.hh.bidding.domain.BidTenderAndNotoce;
-import com.hh.bidding.domain.BsExpertAndSms;
+import com.hh.bidding.domain.*;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.system.api.domain.BsExpert;
 import com.ruoyi.system.api.domain.PpmApprovalRecord;
 import org.springframework.stereotype.Service;
 import com.hh.bidding.mapper.BidTenderMapper;
-import com.hh.bidding.domain.BidTender;
 import com.hh.bidding.service.IBidTenderService;
 
 import javax.annotation.Resource;
@@ -231,4 +228,9 @@ public class BidTenderServiceImpl implements IBidTenderService {
     public int updateTenderByCState(BidTender bidTender) {
         return bidTenderMapper.updateTenderByCState(bidTender);
     }
+
+    @Override
+    public BsSupplier selectSupplierByHid(Long sid) {
+        return bidTenderMapper.selectSupplierByHid(sid);
+    }
 }

+ 98 - 0
ruoyi-modules/hh-bidding/src/main/java/com/hh/bidding/service/impl/ScoreSummaryServiceImpl.java

@@ -0,0 +1,98 @@
+package com.hh.bidding.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.hh.bidding.mapper.ScoreSummaryMapper;
+import com.hh.bidding.domain.ScoreSummary;
+import com.hh.bidding.service.IScoreSummaryService;
+
+/**
+ * 评分汇总记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-09-09
+ */
+@Service
+public class ScoreSummaryServiceImpl implements IScoreSummaryService
+{
+    @Autowired
+    private ScoreSummaryMapper scoreSummaryMapper;
+
+    /**
+     * 查询评分汇总记录
+     *
+     * @param id 评分汇总记录主键
+     * @return 评分汇总记录
+     */
+    @Override
+    public ScoreSummary selectScoreSummaryById(Long id)
+    {
+        return scoreSummaryMapper.selectScoreSummaryById(id);
+    }
+
+    /**
+     * 查询评分汇总记录列表
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 评分汇总记录
+     */
+    @Override
+    public List<ScoreSummary> selectScoreSummaryList(ScoreSummary scoreSummary)
+    {
+        return scoreSummaryMapper.selectScoreSummaryList(scoreSummary);
+    }
+
+    /**
+     * 新增评分汇总记录
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 结果
+     */
+    @Override
+    public int insertScoreSummary(ScoreSummary scoreSummary)
+    {
+        return scoreSummaryMapper.insertScoreSummary(scoreSummary);
+    }
+
+    /**
+     * 修改评分汇总记录
+     *
+     * @param scoreSummary 评分汇总记录
+     * @return 结果
+     */
+    @Override
+    public int updateScoreSummary(ScoreSummary scoreSummary)
+    {
+        return scoreSummaryMapper.updateScoreSummary(scoreSummary);
+    }
+
+    /**
+     * 批量删除评分汇总记录
+     *
+     * @param ids 需要删除的评分汇总记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteScoreSummaryByIds(Long[] ids)
+    {
+        return scoreSummaryMapper.deleteScoreSummaryByIds(ids);
+    }
+
+    /**
+     * 删除评分汇总记录信息
+     *
+     * @param id 评分汇总记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteScoreSummaryById(Long id)
+    {
+        return scoreSummaryMapper.deleteScoreSummaryById(id);
+    }
+
+    @Override
+    public int deleteScoreSummaryBySid(Long sid) {
+        return scoreSummaryMapper.deleteScoreSummaryBySid(sid);
+    }
+}

+ 1 - 1
ruoyi-modules/hh-bidding/src/main/resources/mapper/BidCommitteeMapper.xml

@@ -39,7 +39,7 @@
     </select>
 
     <select id="getProjectByUserId" parameterType="Long" resultType="com.hh.bidding.domain.BidTender">
-        select t.* from bid_tender t inner join bid_committee c on t.sid = c.sid where c.user_id = #{userId}
+        select t.* from bid_tender t inner join bid_committee c on t.sid = c.sid where c.user_id = #{userId} and (c.status = 1 or c.status = 3)
     </select>
 
     <select id="selectBidCommitteeByPbId" parameterType="Long" resultMap="BidCommitteeResult">

+ 69 - 0
ruoyi-modules/hh-bidding/src/main/resources/mapper/BidIdeaMapper.xml

@@ -0,0 +1,69 @@
+<?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.hh.bidding.mapper.BidIdeaMapper">
+
+    <resultMap type="BidIdea" id="BidIdeaResult">
+        <result property="id"    column="id"    />
+        <result property="sid"    column="sid"    />
+        <result property="idea"    column="idea"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectBidIdeaVo">
+        select id, sid, idea, create_time, update_time from bid_idea
+    </sql>
+
+    <select id="selectBidIdeaList" parameterType="BidIdea" resultMap="BidIdeaResult">
+        <include refid="selectBidIdeaVo"/>
+        <where>
+            <if test="sid != null "> and sid = #{sid}</if>
+            <if test="idea != null  and idea != ''"> and idea = #{idea}</if>
+        </where>
+    </select>
+
+    <select id="selectBidIdeaById" parameterType="Long" resultMap="BidIdeaResult">
+        <include refid="selectBidIdeaVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBidIdea" parameterType="BidIdea" useGeneratedKeys="true" keyProperty="id">
+        insert into bid_idea
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sid != null">sid,</if>
+            <if test="idea != null">idea,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="sid != null">#{sid},</if>
+            <if test="idea != null">#{idea},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBidIdea" parameterType="BidIdea">
+        update bid_idea
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sid != null">sid = #{sid},</if>
+            <if test="idea != null">idea = #{idea},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBidIdeaById" parameterType="Long">
+        delete from bid_idea where id = #{id}
+    </delete>
+
+    <delete id="deleteBidIdeaByIds" parameterType="String">
+        delete from bid_idea where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 8 - 0
ruoyi-modules/hh-bidding/src/main/resources/mapper/BidInfoMapper.xml

@@ -89,4 +89,12 @@
         select * from bs_expert where user_id = #{userId}
     </select>
 
+    <select id="getSupplierByhid" parameterType="Long">
+        select h_name from bs_supplier where hid = #{hid}
+    </select>
+
+    <select id = "getTechScore" parameterType="Long">
+        SELECT sid,jid,j_name,hid,sum(score) as score FROM bid_expert_tech where sid = #{sid} group by hid,jid,j_name order by j_name
+    </select>
+
 </mapper>

+ 5 - 1
ruoyi-modules/hh-bidding/src/main/resources/mapper/BidTenderMapper.xml

@@ -542,7 +542,7 @@
         <where>
             <if test="sName != null  and sName != ''">and t.s_name like concat('%', #{sName}, '%')</if>
             <if test="sCode != null  and sCode != ''">and t.s_code like concat('%', #{sCode}, '%')</if>
-            <if test="cState != null">c_state = #{cState},</if>
+            <if test="cState != null">and c_state = #{cState}</if>
             and t.s_project_state = 7 and t.owner_dept in ${join} and (n.examine = 1 or n.examine is null)
             and t.s_state != 1 and t.s_state != 2
         </where>
@@ -561,4 +561,8 @@
         update ppm_procurement_plan set a_astate = 0 where aid = #{aid}
     </update>
 
+    <select id="selectSupplierByHid" parameterType="Long">
+        select * from bs_supplier where hid = #{hid}
+    </select>
+
 </mapper>

+ 8 - 2
ruoyi-modules/hh-bidding/src/main/resources/mapper/BidWinningResultsMapper.xml

@@ -33,7 +33,7 @@
                w.result_desc,
                w.gs_pubman,
                w.gs_approve_state,
-               w.proj_money, w.service_fee, w.suppliers_change,w.supplier_name_change,w.tender_name,w.account,w.gs_annex
+               w.proj_money, w.service_fee, w.suppliers_change,w.supplier_name_change,w.tender_name,w.account,w.gs_annex,w.supplier_change_service,w.supplier_change_price
         from bid_winning_results w inner join bid_tender t on w.sid = t.sid
     </sql>
 
@@ -87,7 +87,7 @@
                w.result_desc,
                w.gs_pubman,
                w.gs_approve_state,
-               w.proj_money, w.service_fee, w.suppliers_change,w.supplier_name_change,w.tender_name,w.account,w.gs_annex,
+               w.proj_money, w.service_fee, w.suppliers_change,w.supplier_name_change,w.tender_name,w.account,w.gs_annex,w.supplier_change_service,w.supplier_change_price,
                t.s_name,t.s_unit,
                r.win_file,
                n.u_kai_time
@@ -122,6 +122,8 @@
             <if test="supplierNameChange != null and supplierNameChange != '' ">supplier_name_change,</if>
             <if test="tenderName != null ">tender_name,</if>
             <if test="gsAnnex != null">gs_annex,</if>
+            <if test="supplierChangeService != null ">supplier_change_service,</if>
+            <if test="supplierChangePrice != null ">supplier_change_price,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="gsId != null">#{gsId},</if>
@@ -140,6 +142,8 @@
             <if test="supplierNameChange != null and supplierNameChange != '' ">#{supplierNameChange},</if>
             <if test="tenderName != null ">#{tenderName},</if>
             <if test="gsAnnex != null">#{gsAnnex},</if>
+            <if test="supplierChangeService != null ">#{supplierChangeService},</if>
+            <if test="supplierChangePrice != null ">#{supplierChangePrice},</if>
         </trim>
     </insert>
 
@@ -160,6 +164,8 @@
             <if test="suppliersChange != null ">suppliers_change = #{suppliersChange},</if>
             <if test="supplierNameChange != null ">supplier_name_change = #{supplierNameChange},</if>
             <if test="tenderName != null ">tender_name = #{tenderName},</if>
+            <if test="supplierChangeService != null ">supplier_change_service = #{supplierChangeService},</if>
+            <if test="supplierChangePrice != null ">supplier_change_price = #{supplierChangePrice},</if>
         </trim>
         where gs_id = #{gsId}
     </update>

+ 99 - 0
ruoyi-modules/hh-bidding/src/main/resources/mapper/ScoreSummaryMapper.xml

@@ -0,0 +1,99 @@
+<?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.hh.bidding.mapper.ScoreSummaryMapper">
+
+    <resultMap type="com.hh.bidding.domain.ScoreSummary" id="ScoreSummaryResult">
+        <result property="id"    column="id"    />
+        <result property="sid"    column="sid"    />
+        <result property="hid"    column="hid"    />
+        <result property="hName"    column="h_name"    />
+        <result property="scoreInfo"    column="score_info"    />
+        <result property="priceScore"    column="price_score"    />
+        <result property="averScore"    column="aver_score"    />
+        <result property="totalScore"    column="total_score"    />
+        <result property="sort"    column="sort"    />
+    </resultMap>
+
+    <sql id="selectScoreSummaryVo">
+        select id, sid, hid, h_name, score_info, price_score, aver_score, total_score, sort from score_summary
+    </sql>
+
+    <select id="selectScoreSummaryList" parameterType="ScoreSummary" resultMap="ScoreSummaryResult">
+        select s.id, s.sid, s.hid, s.h_name, s.score_info, s.price_score, s.aver_score, s.total_score, s.sort,o.yw_name,o.yw_phone
+        from score_summary s inner join bs_operator o on s.hid = o.hid
+        <where>
+            <if test="sid != null "> and sid = #{sid}</if>
+            <if test="hid != null "> and hid = #{hid}</if>
+            <if test="hName != null  and hName != ''"> and h_name like concat('%', #{hName}, '%')</if>
+            <if test="scoreInfo != null  and scoreInfo != ''"> and score_info = #{scoreInfo}</if>
+            <if test="priceScore != null "> and price_score = #{priceScore}</if>
+            <if test="averScore != null "> and aver_score = #{averScore}</if>
+            <if test="totalScore != null "> and total_score = #{totalScore}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+        </where>
+        order by sort asc
+    </select>
+
+    <select id="selectScoreSummaryById" parameterType="Long" resultMap="ScoreSummaryResult">
+        <include refid="selectScoreSummaryVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertScoreSummary" parameterType="ScoreSummary">
+        insert into score_summary
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="sid != null">sid,</if>
+            <if test="hid != null">hid,</if>
+            <if test="hName != null">h_name,</if>
+            <if test="scoreInfo != null">score_info,</if>
+            <if test="priceScore != null">price_score,</if>
+            <if test="averScore != null">aver_score,</if>
+            <if test="totalScore != null">total_score,</if>
+            <if test="sort != null">sort,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="sid != null">#{sid},</if>
+            <if test="hid != null">#{hid},</if>
+            <if test="hName != null">#{hName},</if>
+            <if test="scoreInfo != null">#{scoreInfo},</if>
+            <if test="priceScore != null">#{priceScore},</if>
+            <if test="averScore != null">#{averScore},</if>
+            <if test="totalScore != null">#{totalScore},</if>
+            <if test="sort != null">#{sort},</if>
+        </trim>
+    </insert>
+
+    <update id="updateScoreSummary" parameterType="ScoreSummary">
+        update score_summary
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sid != null">sid = #{sid},</if>
+            <if test="hid != null">hid = #{hid},</if>
+            <if test="hName != null">h_name = #{hName},</if>
+            <if test="scoreInfo != null">score_info = #{scoreInfo},</if>
+            <if test="priceScore != null">price_score = #{priceScore},</if>
+            <if test="averScore != null">aver_score = #{averScore},</if>
+            <if test="totalScore != null">total_score = #{totalScore},</if>
+            <if test="sort != null">sort = #{sort},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteScoreSummaryById" parameterType="Long">
+        delete from score_summary where id = #{id}
+    </delete>
+
+    <delete id="deleteScoreSummaryByIds" parameterType="String">
+        delete from score_summary where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteScoreSummaryBySid" parameterType="Long">
+        delete from score_summary where sid = #{sid}
+    </delete>
+</mapper>

+ 95 - 15
ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/controller/BankDepositController.java

@@ -3,18 +3,23 @@ package com.ruoyi.mast.bank.controller;
 import java.math.BigDecimal;
 import java.util.List;
 import java.io.IOException;
+import java.util.Map;
 import java.util.Random;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.uuid.UUID;
+import com.ruoyi.mast.bank.domain.BankDepositdesc;
 import com.ruoyi.mast.bank.domain.BankTenderpub;
+import com.ruoyi.mast.bank.domain.BankTenderquery;
+import com.ruoyi.mast.bank.service.IBankDepositdescService;
 import com.ruoyi.mast.bank.utils.JsonUtils;
 import com.ruoyi.system.api.RemotePlanService;
 import kong.unirest.core.HttpResponse;
 import kong.unirest.core.Unirest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -46,7 +51,13 @@ public class BankDepositController extends BaseController {
     private IBankDepositService bankDepositService;
 
     @Autowired
-    private RemotePlanService remotePlanService;
+    private IBankDepositdescService bankDepositdescService;
+
+    @Autowired
+    private BankTenderpubController bankTenderpubController;
+
+    @Autowired
+    private BankDepositdescController bankDepositdescController;
 
     @Autowired
     private Environment env;
@@ -75,12 +86,77 @@ public class BankDepositController extends BaseController {
     }
 
     /**
-     * 获取查询保证金入账数量详细信息
+     * 获取查询保证金入账数量详细信息 by 采购公告id
+     * depositid : 当作ppid 用
      */
+    @Transactional
     @RequiresPermissions("bank:deposit:query")
     @GetMapping(value = "/{depositid}")
     public AjaxResult getInfo(@PathVariable("depositid") String depositid) {
-        return success(bankDepositService.selectBankDepositByDepositid(depositid));
+        Map<String, Object> map = bankTenderpubController.getInfos(depositid);
+        if (map.size() < 2) return AjaxResult.error("请检查标段发布和标段查询请求数据是否成功!");
+        BankTenderpub bt = map.get("tenderpub") == null ? null : (BankTenderpub) map.get("tenderpub");
+        BankTenderquery bq = map.get("tenderquery") == null ? null : (BankTenderquery) map.get("tenderquery");
+        if (bt == null) return AjaxResult.error("标段发布数据异常,请检查!");
+        if (bq == null) return AjaxResult.error("标段信息查询数据异常,请检查!");
+
+        BankDeposit bankDeposit = new BankDeposit();
+        bankDeposit.setPpid(bq.getPpid());
+        List<BankDeposit> list = bankDepositService.selectBankDepositList(bankDeposit);
+        if (!list.isEmpty()) {
+            for (BankDeposit bd : list) {
+                bankDepositService.deleteBankDepositByDepositid(bd.getDepositid());
+            }
+        }
+
+        bankDeposit.setSgtid(bq.getRtnSgtid());
+        bankDeposit.setSgtno(bq.getRtnSgtno());
+        bankDeposit.setPrjno(bq.getRtnPrjno());
+        bankDeposit.setPltfmcstno(env.getProperty("BANK.PLTFMCSTNO"));
+        bankDeposit.setEntpnm("");
+
+        AjaxResult msg1 = addBankDeposit(bankDeposit);
+
+        BankDeposit tempDeposit = new BankDeposit();
+        tempDeposit.setPpid(bq.getPpid());
+        List<BankDeposit> tempList = bankDepositService.selectBankDepositList(tempDeposit);
+        if (tempList.isEmpty()) return AjaxResult.error("查询银行返回标段保证金入账数量错误!");
+        if (tempList.get(0).getRtnTdrnum() == null)
+            return AjaxResult.error("银行返回标段保证金入账数量错误!");
+        int pgno = Integer.parseInt(tempList.get(0).getRtnTdrnum().toString());
+        int page = pgno / 20;
+        int page1 = pgno % 20;
+        if (page1 > 0) page += 1;
+
+        BankDepositdesc bankDepositdesc = new BankDepositdesc();
+        bankDepositdesc.setPpid(bq.getPpid());
+        List<BankDepositdesc> blist = bankDepositdescService.selectBankDepositdescList(bankDepositdesc);
+        if (!blist.isEmpty()) {
+            for (BankDepositdesc bdd : blist) {
+                bankDepositdescService.deleteBankDepositdescByDepositdescid(bdd.getDepositdescid());
+            }
+        }
+
+        bankDepositdesc.setSgtid(bq.getRtnSgtid());
+        bankDepositdesc.setSgtno(bq.getRtnSgtno());
+        bankDepositdesc.setPrjno(bq.getRtnPrjno());
+        bankDepositdesc.setPltfmcstno(env.getProperty("BANK.PLTFMCSTNO"));
+        bankDepositdesc.setEntpnm("");
+
+        for (int i = page1; i <= page; i++) {
+            bankDepositdesc.setPgno(String.valueOf(i));
+            AjaxResult msg2 = bankDepositdescController.addBankDepositdesc(bankDepositdesc);
+
+            if (!msg2.get("msg").toString().contains("成功")) {
+                return AjaxResult.error("保证金入账明细:" + msg2.get("msg").toString());
+            }
+        }
+
+        if (msg1.get("msg").toString().contains("成功")) {
+            return AjaxResult.success("银行接口请求成功!");
+        } else {
+            return AjaxResult.error("保证金入账数量:" + msg1.get("msg").toString());
+        }
     }
 
     /**
@@ -90,27 +166,31 @@ public class BankDepositController extends BaseController {
     @Log(title = "查询保证金入账数量", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody BankDeposit bankDeposit) {
-        BankDeposit bd = new BankDeposit();
+        return addBankDeposit(bankDeposit);
+    }
+
+
+    public AjaxResult addBankDeposit(BankDeposit bankDeposit) {
         // 流水号
         String TRNUID = "BZJN" + System.currentTimeMillis() + (new Random().nextInt(1000) + 1);
 
-        bd.setDepositid(UUID.randomUUID().toString(true));
-        bd.setTrnuid(TRNUID);
-        bd.setPpid(Long.valueOf(115));
-        bd.setSgtid("0cd87fb3e9314f43a0e7240380a30cec");
-        bd.setSgtno("BD202408281514");
-        bd.setPrjno("32143217891");
-        bd.setPltfmcstno("1100709753");
-        bd.setEntpnm("");
+        bankDeposit.setDepositid(UUID.randomUUID().toString(true));
+        bankDeposit.setTrnuid(TRNUID);
+//        bankDeposit.setPpid(Long.valueOf(115));
+//        bankDeposit.setSgtid("0cd87fb3e9314f43a0e7240380a30cec");
+//        bankDeposit.setSgtno("BD202408281514");
+//        bankDeposit.setPrjno("32143217891");
+//        bankDeposit.setPltfmcstno("1100709753");
+//        bankDeposit.setEntpnm("");
 
 
-        String rtnxml = postBank(bd);
+        String rtnxml = postBank(bankDeposit);
 
         String rtn = JsonUtils.getStatus(rtnxml);
 
         if (rtn.contains("成功")) {
-            bankDepositService.insertBankDeposit(bd);
-            update(bd, rtnxml);
+            bankDepositService.insertBankDeposit(bankDeposit);
+            update(bankDeposit, rtnxml);
             return AjaxResult.success(rtn);
         } else return AjaxResult.error(rtn);
     }

+ 75 - 42
ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/controller/BankDepositdescController.java

@@ -1,6 +1,7 @@
 package com.ruoyi.mast.bank.controller;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 import javax.servlet.http.HttpServletResponse;
@@ -10,8 +11,11 @@ import com.ruoyi.common.core.utils.uuid.UUID;
 import com.ruoyi.mast.bank.utils.JsonUtils;
 import kong.unirest.core.HttpResponse;
 import kong.unirest.core.Unirest;
+import org.apache.poi.hpsf.Decimal;
+import org.json.XML;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -74,6 +78,7 @@ public class BankDepositdescController extends BaseController {
     @RequiresPermissions("bank:depositdesc:query")
     @GetMapping(value = "/{depositdescid}")
     public AjaxResult getInfo(@PathVariable("depositdescid") String depositdescid) {
+
         return success(bankDepositdescService.selectBankDepositdescByDepositdescid(depositdescid));
     }
 
@@ -94,13 +99,13 @@ public class BankDepositdescController extends BaseController {
         bdd.setDepositdescid(UUID.randomUUID().toString(true));
         bdd.setTrnuid(TRNUID);
 
-        bdd.setPpid(Long.valueOf(115));
-        bdd.setSgtid("0cd87fb3e9314f43a0e7240380a30cec");
-        bdd.setSgtno("BD202408281514");
-        bdd.setPrjno("32143217891");
-        bdd.setPltfmcstno("1100709753");
-        bdd.setEntpnm("");
-        bdd.setPgno("1");
+//        bdd.setPpid(Long.valueOf(115));
+//        bdd.setSgtid("0cd87fb3e9314f43a0e7240380a30cec");
+//        bdd.setSgtno("BD202408281514");
+//        bdd.setPrjno("32143217891");
+//        bdd.setPltfmcstno("1100709753");
+//        bdd.setEntpnm("");
+//        bdd.setPgno("1");
 
         String rtnxml = postBank(bdd);
 
@@ -116,6 +121,7 @@ public class BankDepositdescController extends BaseController {
     /**
      * 修改查询保证金入账明细
      */
+    @Transactional
     @RequiresPermissions("bank:depositdesc:edit")
     @Log(title = "查询保证金入账明细", businessType = BusinessType.UPDATE)
     @PutMapping
@@ -129,51 +135,78 @@ public class BankDepositdescController extends BaseController {
         return toAjax(update(bdd, rtnxml));
     }
 
-
-    private int update(BankDepositdesc bankDepositdesc, String rtnxml) {
+    @Transactional
+    public int update(BankDepositdesc bankDepositdesc, String rtnxml) {
 
         List<BankDepositdesc> list = bankDepositdescService.selectBankDepositdescList(bankDepositdesc);
         if (list.isEmpty()) return 0;
         BankDepositdesc bd = list.get(0);
+        String delid = bd.getDepositdescid();
 
         bd.setRtnTrnuid(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/TRNUID"));
         bd.setRtnStatus(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/STATUS"));
         bd.setRtnCode(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/STATUS/CODE"));
         bd.setRtnSeverity(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/STATUS/SEVERITY"));
         bd.setRtnMessage(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/STATUS/MESSAGE"));
-        bd.setRtnRcrdtotnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/RCRDTOTNUM"));
-        bd.setRtnCrnpgno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CRNPGNO"));
-        bd.setRtnPgrcrdnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/PGRCRDNUM"));
-        bd.setRtnTotpgnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/TOTPGNUM"));
-        bd.setRtnContent(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT"));
-        bd.setRtnLescstno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/LESCSTNO"));
-        bd.setRtnTdrno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRNO"));
-        bd.setRtnCstno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/CSTNO"));
-        bd.setRtnPrjno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/PRJNO"));
-        bd.setRtnPrjnm(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/PRJNM"));
-        bd.setRtnSgtno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/SGTNO"));
-        bd.setRtnSgtnm(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/SGTNM"));
-        bd.setRtnSgtst(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/SGTST"));
-        bd.setRtnMrgnst(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/MRGNST"));
-        bd.setRtnTdracctno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRACCTNO"));
-        bd.setRtnTdracctnoccycd(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRACCTNOCCYCD"));
-        bd.setRtnTdracctnm(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRACCTNM"));
-        bd.setRtnTdracctnobnkno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRACCTNOBNKNO"));
-        bd.setRtnTdracctnobnknm(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRACCTNOBNKNM"));
-        bd.setRtnTdrnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRNUM"));
-        bd.setRtnMrgnamt(new BigDecimal(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/ MRGNAMT")));
-        bd.setRtnTdramt(new BigDecimal(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRAMT")));
-        bd.setRtnAgncsvcfee(new BigDecimal(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/AGNCSVCFEE")));
-        bd.setRtnFrzamt(new BigDecimal(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/FRZAMT")));
-        bd.setRtnFineamt(new BigDecimal(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/FINEAMT")));
-        bd.setRtnTdrdt(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRDT"));
-        bd.setRtnTdrtm(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/TDRTM"));
-        bd.setRtnDuetp(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/DUETP"));
-        bd.setRtnMbrshpno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/MBRSHPNO"));
-        bd.setRtnSvcfee(new BigDecimal(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/SVCFEE")));
-        bd.setRtnRemark(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CONTENT/REMARK"));
-
-        return bankDepositdescService.updateBankDepositdesc(bd);
+
+        bd.setRtnRcrdtotnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/RCRDTOTNUM"));        //记录总数
+        bd.setRtnCrnpgno(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/CRNPGNO"));              //当前页码
+        bd.setRtnPgrcrdnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/PGRCRDNUM"));          //每页记录数
+        bd.setRtnTotpgnum(JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY/TOTPGNUM"));            //总页数
+
+        String rsbody = JsonUtils.findXML(rtnxml, "FOX/SECURITIES_MSGSRSV1/QUERYDEPOSITINTRNRS/RSBODY");
+
+        bd.setRtnRsbody(rsbody);
+
+        bankDepositdescService.updateBankDepositdesc(bd);
+
+        ArrayList<String> contentlist = JsonUtils.findContent(rsbody);
+
+        for (int i = 0; i < contentlist.size(); i++) {
+
+            bd.setRtnLescstno(JsonUtils.findJson(contentlist.get(i), "LESCSTNO"));
+            bd.setRtnTdrno(JsonUtils.findJson(contentlist.get(i), "TDRNO"));
+            bd.setRtnCstno(JsonUtils.findJson(contentlist.get(i), "CSTNO"));
+            bd.setRtnPrjno(JsonUtils.findJson(contentlist.get(i), "PRJNO"));
+            bd.setRtnPrjnm(JsonUtils.findJson(contentlist.get(i), "PRJNM"));
+            bd.setRtnSgtno(JsonUtils.findJson(contentlist.get(i), "SGTNO"));
+            bd.setRtnSgtnm(JsonUtils.findJson(contentlist.get(i), "SGTNM"));
+
+            bd.setRtnSgtst(JsonUtils.findJson(contentlist.get(i), "SGTST"));        //投标状态0-未中标1-已中标
+            bd.setRtnMrgnst(JsonUtils.findJson(contentlist.get(i), "MRGNST"));      //保证金状态 1-竞标
+
+            bd.setRtnTdracctno(JsonUtils.findJson(contentlist.get(i), "TDRACCTNO"));
+            bd.setRtnTdracctnoccycd(JsonUtils.findJson(contentlist.get(i), "TDRACCTNOCCYCD"));
+            bd.setRtnTdracctnm(JsonUtils.findJson(contentlist.get(i), "TDRACCTNM"));
+            bd.setRtnTdracctnobnkno(JsonUtils.findJson(contentlist.get(i), "TDRACCTNOBNKNO"));
+            bd.setRtnTdracctnobnknm(JsonUtils.findJson(contentlist.get(i), "TDRACCTNOBNKNM"));
+            bd.setRtnTdrnum(JsonUtils.findJson(contentlist.get(i), "TDRNUM"));
+
+            bd.setRtnMrgnamt(JsonUtils.checkBigDecimal(JsonUtils.findJson(contentlist.get(i), " MRGNAMT")));
+
+            bd.setRtnTdramt(JsonUtils.checkBigDecimal(JsonUtils.findJson(contentlist.get(i), "TDRAMT")));
+
+            bd.setRtnAgncsvcfee(JsonUtils.checkBigDecimal(JsonUtils.findJson(contentlist.get(i), "AGNCSVCFEE")));      //代理服务费 double
+            bd.setRtnFrzamt(JsonUtils.checkBigDecimal(JsonUtils.findJson(contentlist.get(i), "FRZAMT")));
+            bd.setRtnFineamt(JsonUtils.checkBigDecimal(JsonUtils.findJson(contentlist.get(i), "FINEAMT")));
+            bd.setRtnTdrdt(JsonUtils.findJson(contentlist.get(i), "TDRDT"));
+            bd.setRtnTdrtm(JsonUtils.findJson(contentlist.get(i), "TDRTM"));
+            bd.setRtnDuetp(JsonUtils.findJson(contentlist.get(i), "DUETP"));        //缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函
+            bd.setRtnMbrshpno(JsonUtils.findJson(contentlist.get(i), "MBRSHPNO"));
+
+            //接口文档中存在项目
+            bd.setRtnSvcfee(JsonUtils.checkBigDecimal(JsonUtils.findJson(contentlist.get(i), "SVCFEE")));
+            bd.setRtnRemark(JsonUtils.findJson(contentlist.get(i), "REMARK"));
+
+            bd.setDepositdescid(UUID.randomUUID().toString(true));
+
+            bankDepositdescService.insertBankDepositdesc(bd);
+
+            if (i == (contentlist.size() - 1)) bankDepositdescService.deleteBankDepositdescByDepositdescid(delid);
+        }
+
+        if(contentlist.size()<1)return 0;
+        else return 1;
     }
 
     private String postBank(BankDepositdesc bankDepositdesc) {

+ 34 - 14
ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/controller/BankTenderpubController.java

@@ -1,12 +1,16 @@
 package com.ruoyi.mast.bank.controller;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Random;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.uuid.UUID;
 import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.mast.bank.domain.BankDeposit;
+import com.ruoyi.mast.bank.domain.BankDepositdesc;
 import com.ruoyi.mast.bank.domain.BankTenderquery;
 import com.ruoyi.mast.bank.service.IBankTenderqueryService;
 import com.ruoyi.mast.bank.utils.JsonUtils;
@@ -47,10 +51,10 @@ public class BankTenderpubController extends BaseController {
     private IBankTenderpubService bankTenderpubService;
 
     @Autowired
-    private BankTenderqueryController bankTenderqueryController;
+    private IBankTenderqueryService bankTenderqueryService;
 
     @Autowired
-    private IBankTenderqueryService bankTenderqueryService;
+    private BankTenderqueryController bankTenderqueryController;
 
     @Autowired
     private RemotePlanService remotePlanService;
@@ -84,7 +88,7 @@ public class BankTenderpubController extends BaseController {
 
     @InnerAuth
     @GetMapping(value = "/getInfoInnerAuth/{tenderpubid}")
-    public AjaxResult getInfoInnerAuth(@PathVariable("id") String tenderpubid){
+    public AjaxResult getInfoInnerAuth(@PathVariable("id") String tenderpubid) {
         return getInfo(tenderpubid);
     }
 
@@ -97,8 +101,25 @@ public class BankTenderpubController extends BaseController {
         return success(bankTenderpubService.selectBankTenderpubByTenderpubid(tenderpubid));
     }
 
+    public Map<String, Object> getInfos(@PathVariable("ppid") String ppid) {
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        BankTenderpub bankTenderpub = new BankTenderpub();
+        bankTenderpub.setPpid(Long.parseLong(ppid));
+        List<BankTenderpub> list1 = bankTenderpubService.selectBankTenderpubList(bankTenderpub);
+
+        BankTenderquery bankTenderquery = new BankTenderquery();
+        bankTenderquery.setPpid(Long.parseLong(ppid));
+        List<BankTenderquery> list2 = bankTenderqueryService.selectBankTenderqueryList(bankTenderquery);
+
+        map.put("tenderpub", list1.isEmpty() ? null : list1.get(0));
+        map.put("tenderquery", list2.isEmpty() ? null : list2.get(0));
+        return map;
+    }
+
     /**
      * 内部调用
+     *
      * @param bankTenderpub
      * @return
      */
@@ -138,28 +159,26 @@ public class BankTenderpubController extends BaseController {
 
         if (rtn.contains("成功")) {
             bankTenderpubService.insertBankTenderpub(bankTenderpub);
-            if(update(bankTenderpub, rtnxml)>0)
-            {
+            if (update(bankTenderpub, rtnxml) > 0) {
                 /** 同时查询保存标段查询信息 **/
                 BankTenderpub b = bankTenderpubService.selectBankTenderpubByTenderpubid(bankTenderpub.getTenderpubid());
                 BankTenderquery bt = new BankTenderquery();
                 bt.setPpid(Long.valueOf(bankTenderpub.getPpid()));
                 bt.setSgtid(b.getRtnSgtid());
                 AjaxResult msg = bankTenderqueryController.addBankTenderquery(bt);
-                if(msg.isSuccess()){
+                if (msg.isSuccess()) {
                     return success("调取银行接口成功");
-                }else{
+                } else {
                     return error("调取银行接口失败");
                 }
-            }
-            else
+            } else
                 return error("调取银行接口失败");
-        }
-        else return AjaxResult.error(rtn);
+        } else return AjaxResult.error(rtn);
     }
 
     /**
      * 内部调用
+     *
      * @param bankTenderpub
      * @return
      */
@@ -188,10 +207,10 @@ public class BankTenderpubController extends BaseController {
 
         if (rtn.contains("成功")) {
             return toAjax(update(bt, rtnxml));
-        }else if(rtn.contains("流水号TRNUID值已被使用")){
+        } else if (rtn.contains("流水号TRNUID值已被使用")) {
             // 调用标段信息查询,更新本条记录
             return error(rtn);
-        }else{
+        } else {
             return error(rtn);
         }
     }
@@ -275,13 +294,14 @@ public class BankTenderpubController extends BaseController {
 
     /**
      * 内部调用
+     *
      * @param ids
      * @return
      */
     @InnerAuth
     @Log(title = "标段发布", businessType = BusinessType.DELETE)
     @DeleteMapping("/removeInnerAuth/{ids}")
-    public AjaxResult removeInnerAuth(@PathVariable String[] ids){
+    public AjaxResult removeInnerAuth(@PathVariable String[] ids) {
         return remove(ids);
     }
 

+ 58 - 7
ruoyi-modules/hh-mast/src/main/java/com/ruoyi/mast/bank/utils/JsonUtils.java

@@ -1,12 +1,13 @@
 package com.ruoyi.mast.bank.utils;
 
+import org.json.JSONArray;
 import org.json.JSONObject;
 import org.json.XML;
 import org.xml.sax.InputSource;
 
-import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import java.io.StringReader;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
 
@@ -35,6 +36,12 @@ public class JsonUtils {
         return aq;
     }
 
+    public static String findJson(String json, String attrs) {
+        JSONObject object = new JSONObject(json);
+        String aq = JsonUtils.findJson(object, Convert(attrs));
+        return aq;
+    }
+
     /**
      * 遍历json
      *
@@ -61,20 +68,57 @@ public class JsonUtils {
         return "";
     }
 
+    /**
+     * 返回content数组
+     *
+     * @param json
+     * @return
+     */
+    public static ArrayList<String> findContent(String json) {
+        JSONObject object = checkJson(json);
+        if(object==null) return new ArrayList<>();
+        ArrayList<String> contents = new ArrayList<>();
+        if (!object.has("CONTENT")) return contents;
+
+        JSONArray arr = (JSONArray) object.get("CONTENT");
+
+        for (int i = 0; i < arr.length(); i++) {
+            contents.add(arr.get(i).toString());
+        }
+
+        return contents;
+    }
+
     /**
      * 检查是否为xml字符串
+     *
      * @param xml
      * @return
      */
-    public static boolean checkXml(String xml){
-        try{
+    public static boolean checkXml(String xml) {
+        try {
             DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
             return true;
-        }catch (Exception e){
+        } catch (Exception e) {
             return false;
         }
     }
 
+    /**
+     * 检查是否是json字符串
+     *
+     * @param json
+     * @return
+     */
+    public static JSONObject checkJson(String json) {
+        try {
+            JSONObject object = new JSONObject(json);
+            return object;
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
     /**
      * 返回交易状态代码和结果
      *
@@ -83,7 +127,7 @@ public class JsonUtils {
      */
     public static String getStatus(String xml) {
 
-        if(!checkXml(xml)) return xml;
+        if (!checkXml(xml)) return xml;
         String A = JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/EXCEPTIONRS/STATUS/CODE");
         if (!"0".equals(A) && !"".equals(A))
             return JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/EXCEPTIONRS/STATUS/MESSAGE");
@@ -92,13 +136,20 @@ public class JsonUtils {
         if (!"0".equals(C) && !"".equals(C)) return JsonUtils.findXML(xml, "FOX/SIGNONMSGSRSV1/SONRS/STATUS/MESSAGE");
 
         String CODE = JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/STATUS/CODE");
-        if (!"0".equals(CODE) && !"".equals(CODE)) return JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/STATUS/MESSAGE");
+        if (!"0".equals(CODE) && !"".equals(CODE))
+            return JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/STATUS/MESSAGE");
         if ("0".equals(CODE) && "0".equals(C)) return "处理成功";
 
         String XFERPRCCODE = JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/RSBODY/XFERPRCSTS/XFERPRCCODE");
         if ("0".equals(CODE) && "PAYOUT".equals(XFERPRCCODE)) return "交易成功";
-        if ("0".equals(CODE) && !"PAYOUT".equals(XFERPRCCODE)) return JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/RSBODY/XFERPRCSTS/MESSAGE");
+        if ("0".equals(CODE) && !"PAYOUT".equals(XFERPRCCODE))
+            return JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/RSBODY/XFERPRCSTS/MESSAGE");
 
         return XFERPRCCODE + ":" + JsonUtils.findXML(xml, "FOX/SECURITIES_MSGSRSV1/*/RSBODY/XFERPRCSTS/MESSAGE");
     }
+
+    public static BigDecimal checkBigDecimal(String str) {
+        if("".equals(str)) return BigDecimal.ZERO;
+        return new BigDecimal(str);
+    }
 }

+ 25 - 1
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java

@@ -6,6 +6,8 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.system.api.RemoteExpertService;
 import com.ruoyi.system.api.domain.BsExpert;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +63,9 @@ public class SysUserController extends BaseController
     @Autowired
     private ISysConfigService configService;
 
+    @Autowired
+    private RemoteExpertService remoteExpertService;
+
 
     /**
      * 获取用户列表
@@ -209,7 +214,16 @@ public class SysUserController extends BaseController
         }
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        return toAjax(userService.insertUser(user));
+        int i = userService.insertUser(user);
+        if(user.getIsOwner() == 1){
+            BsExpert bsExpert = new BsExpert();
+            bsExpert.setUserId(user.getUserId());
+            bsExpert.setjName(user.getUserName());
+            bsExpert.setjShState(1L);
+            remoteExpertService.insertExpert(bsExpert, SecurityConstants.INNER);
+        }
+
+        return toAjax(i);
     }
 
 
@@ -341,4 +355,14 @@ public class SysUserController extends BaseController
         System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAA");
         userService.deleteExpertUserByIds(userIds);
     }
+
+    @InnerAuth
+    @GetMapping("/getLeader")
+    public SysUser getLeader(@RequestParam("ownerDept") Long ownerDept){
+        SysUser user = new SysUser();
+        user.setDeptId(ownerDept);
+        user.setIsOwner(1);
+        List<SysUser> sysUsers = userService.selectUserList(user);
+        return sysUsers.get(0);
+    }
 }

+ 8 - 1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -24,6 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"   column="update_time"  />
         <result property="remark"       column="remark"       />
 		<result property="company" 		column="company" />
+		<result property="isOwner" 		column="is_owner" />
         <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
     </resultMap>
@@ -58,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.company, d.dept_name, d.leader from sys_user u
+		select u.is_owner,u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.company, d.dept_name, d.leader from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
 		where u.del_flag = '0'
 		<if test="userId != null and userId != 0">
@@ -82,6 +83,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="deptId != null and deptId != 0">
 			AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
 		</if>
+		<if test = "isOwner != null">
+			AND u.is_owner  = #{isOwner}
+		</if>
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
 	</select>
@@ -158,6 +162,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			<if test="remark != null and remark != ''">remark,</if>
 			<if test="company != null and company != ''">company,</if>
+			<if test="isOwner != null and isOwner != ''">is_owner,</if>
  			create_time
  		)values(
  			<if test="userId != null and userId != ''">#{userId},</if>
@@ -173,6 +178,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			<if test="remark != null and remark != ''">#{remark},</if>
 			<if test="company != null and company != ''">#{company},</if>
+			<if test="isOwner != null and isOwner != ''">#{isOwner},</if>
  			sysdate()
  		)
 	</insert>
@@ -194,6 +200,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
  			<if test="remark != null">remark = #{remark},</if>
 			<if test="company != null">company = #{company},</if>
+			<if test="isOwner != null">is_owner = #{isOwner},</if>
  			update_time = sysdate()
  		</set>
  		where user_id = #{userId}

+ 8 - 0
ruoyi-ui/src/api/bank/tenderpub.js

@@ -42,3 +42,11 @@ export function delTenderpub(tenderpubid) {
     method: 'delete'
   })
 }
+
+// 生成保证金入账数据
+export function getInfo(depositid) {
+	return request({
+		url: '/bank/deposit/' + depositid,
+		method: 'get'
+	})
+}

+ 685 - 656
ruoyi-ui/src/views/bank/depositdesc/index.vue

@@ -1,668 +1,697 @@
 <template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="采购计划" prop="ppid">
-        <el-input
-          v-model="queryParams.ppid"
-          placeholder="请输入采购计划id"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="流水号" prop="trnuid">
-        <el-input
-          v-model="queryParams.trnuid"
-          placeholder="请输入客户端交易的唯一流水号建议值为yyyymmdd+序号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="报文节点" prop="rqbody">
-        <el-input
-          v-model="queryParams.rqbody"
-          placeholder="请输入报文节点"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="标段id" prop="sgtid">
-        <el-input
-          v-model="queryParams.sgtid"
-          placeholder="请输入标段id"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="标段编号" prop="sgtno">
-        <el-input
-          v-model="queryParams.sgtno"
-          placeholder="请输入标段编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="项目编号" prop="prjno">
-        <el-input
-          v-model="queryParams.prjno"
-          placeholder="请输入项目编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="核心客户号" prop="pltfmcstno">
-        <el-input
-          v-model="queryParams.pltfmcstno"
-          placeholder="请输入核心客户号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="企业名称" prop="entpnm">
-        <el-input
-          v-model="queryParams.entpnm"
-          placeholder="请输入企业名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="租户号" prop="rtnLescstno">
-        <el-input
-          v-model="queryParams.rtnLescstno"
-          placeholder="请输入租户号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="投标编号" prop="rtnTdrno">
-        <el-input
-          v-model="queryParams.rtnTdrno"
-          placeholder="请输入投标编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="客户编号" prop="rtnCstno">
-        <el-input
-          v-model="queryParams.rtnCstno"
-          placeholder="请输入客户编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="项目编号" prop="rtnPrjno">
-        <el-input
-          v-model="queryParams.rtnPrjno"
-          placeholder="请输入项目编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="项目名称" prop="rtnPrjnm">
-        <el-input
-          v-model="queryParams.rtnPrjnm"
-          placeholder="请输入项目名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="标段编号" prop="rtnSgtno">
-        <el-input
-          v-model="queryParams.rtnSgtno"
-          placeholder="请输入标段编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="标段名称" prop="rtnSgtnm">
-        <el-input
-          v-model="queryParams.rtnSgtnm"
-          placeholder="请输入标段名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="投标状态" prop="rtnSgtst">
-        <el-input
-          v-model="queryParams.rtnSgtst"
-          placeholder="请输入投标状态0-未中标1-已中标"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="保证金状态" prop="rtnMrgnst">
-        <el-input
-          v-model="queryParams.rtnMrgnst"
-          placeholder="请输入保证金状态 1-竞标"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="缴纳类型" prop="rtnDuetp">
-        <el-input
-          v-model="queryParams.rtnDuetp"
-          placeholder="请输入缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="会员编号" prop="rtnMbrshpno">
-        <el-input
-          v-model="queryParams.rtnMbrshpno"
-          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 class="app-container">
+		<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+				 label-width="68px">
+			<el-form-item label="采购计划" prop="ppid">
+				<el-input
+					v-model="queryParams.ppid"
+					placeholder="请输入采购计划id"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="流水号" prop="trnuid">
+				<el-input
+					v-model="queryParams.trnuid"
+					placeholder="请输入客户端交易的唯一流水号建议值为yyyymmdd+序号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="报文节点" prop="rqbody">
+				<el-input
+					v-model="queryParams.rqbody"
+					placeholder="请输入报文节点"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="标段id" prop="sgtid">
+				<el-input
+					v-model="queryParams.sgtid"
+					placeholder="请输入标段id"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="标段编号" prop="sgtno">
+				<el-input
+					v-model="queryParams.sgtno"
+					placeholder="请输入标段编号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="项目编号" prop="prjno">
+				<el-input
+					v-model="queryParams.prjno"
+					placeholder="请输入项目编号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="核心客户号" prop="pltfmcstno">
+				<el-input
+					v-model="queryParams.pltfmcstno"
+					placeholder="请输入核心客户号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="企业名称" prop="entpnm">
+				<el-input
+					v-model="queryParams.entpnm"
+					placeholder="请输入企业名称"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="租户号" prop="rtnLescstno">
+				<el-input
+					v-model="queryParams.rtnLescstno"
+					placeholder="请输入租户号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="投标编号" prop="rtnTdrno">
+				<el-input
+					v-model="queryParams.rtnTdrno"
+					placeholder="请输入投标编号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="客户编号" prop="rtnCstno">
+				<el-input
+					v-model="queryParams.rtnCstno"
+					placeholder="请输入客户编号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="项目编号" prop="rtnPrjno">
+				<el-input
+					v-model="queryParams.rtnPrjno"
+					placeholder="请输入项目编号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="项目名称" prop="rtnPrjnm">
+				<el-input
+					v-model="queryParams.rtnPrjnm"
+					placeholder="请输入项目名称"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="标段编号" prop="rtnSgtno">
+				<el-input
+					v-model="queryParams.rtnSgtno"
+					placeholder="请输入标段编号"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="标段名称" prop="rtnSgtnm">
+				<el-input
+					v-model="queryParams.rtnSgtnm"
+					placeholder="请输入标段名称"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="投标状态" prop="rtnSgtst">
+				<el-input
+					v-model="queryParams.rtnSgtst"
+					placeholder="请输入投标状态0-未中标1-已中标"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="保证金状态" prop="rtnMrgnst">
+				<el-input
+					v-model="queryParams.rtnMrgnst"
+					placeholder="请输入保证金状态 1-竞标"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="缴纳类型" prop="rtnDuetp">
+				<el-input
+					v-model="queryParams.rtnDuetp"
+					placeholder="请输入缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函"
+					clearable
+					@keyup.enter.native="handleQuery"
+				/>
+			</el-form-item>
+			<el-form-item label="会员编号" prop="rtnMbrshpno">
+				<el-input
+					v-model="queryParams.rtnMbrshpno"
+					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>
 
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['bank:depositdesc:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['bank:depositdesc:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['bank:depositdesc:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['bank:depositdesc:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+		<el-row :gutter="10" class="mb8">
+			<el-col :span="1.5">
+				<el-button
+					type="primary"
+					plain
+					icon="el-icon-plus"
+					size="mini"
+					@click="handleAdd"
+					v-hasPermi="['bank:depositdesc:add']"
+				>新增
+				</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button
+					type="success"
+					plain
+					icon="el-icon-edit"
+					size="mini"
+					:disabled="single"
+					@click="handleUpdate"
+					v-hasPermi="['bank:depositdesc:edit']"
+				>修改
+				</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button
+					type="danger"
+					plain
+					icon="el-icon-delete"
+					size="mini"
+					:disabled="multiple"
+					@click="handleDelete"
+					v-hasPermi="['bank:depositdesc:remove']"
+				>删除
+				</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button
+					type="warning"
+					plain
+					icon="el-icon-download"
+					size="mini"
+					@click="handleExport"
+					v-hasPermi="['bank:depositdesc:export']"
+				>批量退还保证金
+				</el-button>
+			</el-col>
+			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+		</el-row>
 
-    <el-table v-loading="loading" :data="depositdescList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="查询保证金入账明细id" align="center" prop="depositdescid" />
-      <el-table-column label="采购计划id" align="center" prop="ppid" />
-      <el-table-column label="客户端交易的唯一流水号建议值为yyyymmdd+序号" align="center" prop="trnuid" />
-      <el-table-column label="报文节点" align="center" prop="rqbody" />
-      <el-table-column label="标段id" align="center" prop="sgtid" />
-      <el-table-column label="标段编号" align="center" prop="sgtno" />
-      <el-table-column label="项目编号" align="center" prop="prjno" />
-      <el-table-column label="核心客户号" align="center" prop="pltfmcstno" />
-      <el-table-column label="企业名称" align="center" prop="entpnm" />
-      <el-table-column label="页码不输默认查询第一页" align="center" prop="pgno" />
-      <el-table-column label="版本号" align="center" prop="version" />
-      <el-table-column label="客户端交易的唯一标志" align="center" prop="rtnTrnuid" />
-      <el-table-column label="交易处理状态" align="center" prop="rtnStatus" />
-      <el-table-column label="处理结果码" align="center" prop="rtnCode" />
-      <el-table-column label="处理结果等级(info/warn/error)" align="center" prop="rtnSeverity" />
-      <el-table-column label="处理信息描述" align="center" prop="rtnMessage" />
-      <el-table-column label="报文节点" align="center" prop="rtnRsbody" />
-      <el-table-column label="记录总数" align="center" prop="rtnRcrdtotnum" />
-      <el-table-column label="当前页码" align="center" prop="rtnCrnpgno" />
-      <el-table-column label="每页记录数" align="center" prop="rtnPgrcrdnum" />
-      <el-table-column label="总页数" align="center" prop="rtnTotpgnum" />
-      <el-table-column label="明细报文标识" align="center" prop="rtnContent" />
-      <el-table-column label="租户号" align="center" prop="rtnLescstno" />
-      <el-table-column label="投标编号" align="center" prop="rtnTdrno" />
-      <el-table-column label="客户编号" align="center" prop="rtnCstno" />
-      <el-table-column label="项目编号" align="center" prop="rtnPrjno" />
-      <el-table-column label="项目名称" align="center" prop="rtnPrjnm" />
-      <el-table-column label="标段编号" align="center" prop="rtnSgtno" />
-      <el-table-column label="标段名称" align="center" prop="rtnSgtnm" />
-      <el-table-column label="投标状态0-未中标1-已中标" align="center" prop="rtnSgtst" />
-      <el-table-column label="保证金状态 1-竞标" align="center" prop="rtnMrgnst" />
-      <el-table-column label="投标账号" align="center" prop="rtnTdracctno" />
-      <el-table-column label="投标账号币种01-人民币" align="center" prop="rtnTdracctnoccycd" />
-      <el-table-column label="投标账户名称" align="center" prop="rtnTdracctnm" />
-      <el-table-column label="投标账号行号" align="center" prop="rtnTdracctnobnkno" />
-      <el-table-column label="投标账号行名" align="center" prop="rtnTdracctnobnknm" />
-      <el-table-column label="投标数量" align="center" prop="rtnTdrnum" />
-      <el-table-column label="保证金金额 double" align="center" prop="rtnMrgnamt" />
-      <el-table-column label="中标金额 double" align="center" prop="rtnTdramt" />
-      <el-table-column label="代理服务费 double" align="center" prop="rtnAgncsvcfee" />
-      <el-table-column label="冻结金额 double" align="center" prop="rtnFrzamt" />
-      <el-table-column label="罚没金额 double" align="center" prop="rtnFineamt" />
-      <el-table-column label="投标日期yyyymmdd" align="center" prop="rtnTdrdt" />
-      <el-table-column label="投标时间hhmmss" align="center" prop="rtnTdrtm" />
-      <el-table-column label="缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函" align="center" prop="rtnDuetp" />
-      <el-table-column label="会员编号" align="center" prop="rtnMbrshpno" />
-      <el-table-column label="服务费 double" align="center" prop="rtnSvcfee" />
-      <el-table-column label="交易附言" align="center" prop="rtnRemark" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['bank:depositdesc:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['bank:depositdesc:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+		<el-table v-loading="loading" :data="depositdescList" @selection-change="handleSelectionChange">
+			<el-table-column type="selection" width="55" align="center"/>
+			<el-table-column label="查询保证金入账明细id" align="center" prop="depositdescid" v-if="false"/>
+			<el-table-column label="采购公告" align="center" prop="ppid"/>
+			<el-table-column label="银行流水" align="center" prop="trnuid" v-if="false"/>
+			<el-table-column label="报文节点" align="center" prop="rqbody" v-if="false"/>
+			<el-table-column label="标段ID" align="center" prop="sgtid"/>
+			<el-table-column label="标段编号" align="center" prop="sgtno" v-if="false"/>
+			<el-table-column label="项目编号" align="center" prop="prjno" v-if="false"/>
+			<el-table-column label="核心客户号" align="center" prop="pltfmcstno" v-if="false"/>
+			<el-table-column label="企业名称" align="center" prop="entpnm" v-if="false"/>
+			<el-table-column label="页码不输默认查询第一页" align="center" prop="pgno" v-if="false"/>
+			<el-table-column label="版本号" align="center" prop="version" v-if="false"/>
+			<el-table-column label="银行流水" align="center" prop="rtnTrnuid"/>
+			<el-table-column label="交易处理状态" align="center" prop="rtnStatus" v-if="false"/>
+			<el-table-column label="处理结果码" align="center" prop="rtnCode" v-if="false"/>
+			<el-table-column label="处理结果等级" align="center" prop="rtnSeverity">
+				<template slot-scope="scope">
+					<el-tag type="info" v-if="scope.row.rtnSeverity.toLowerCase() === 'info'">info</el-tag>
+					<el-tag type="warning" v-if="scope.row.rtnSeverity.toLowerCase() === 'warn'">warn</el-tag>
+					<el-tag type="danger" v-if="scope.row.rtnSeverity.toLowerCase() === 'error'">error</el-tag>
+				</template>
+			</el-table-column>
+			<el-table-column label="处理信息描述" align="center" prop="rtnMessage"/>
+			<el-table-column label="报文节点" align="center" prop="rtnRsbody" v-if="false"/>
+			<el-table-column label="记录总数" align="center" prop="rtnRcrdtotnum" v-if="false"/>
+			<el-table-column label="当前页码" align="center" prop="rtnCrnpgno" v-if="false"/>
+			<el-table-column label="每页记录数" align="center" prop="rtnPgrcrdnum" v-if="false"/>
+			<el-table-column label="总页数" align="center" prop="rtnTotpgnum" v-if="false"/>
+			<el-table-column label="明细报文标识" align="center" prop="rtnContent" v-if="false"/>
+			<el-table-column label="租户号" align="center" prop="rtnLescstno"/>
+			<el-table-column label="投标编号" align="center" prop="rtnTdrno"/>
+			<el-table-column label="客户编号" align="center" prop="rtnCstno"/>
+			<el-table-column label="项目编号" align="center" prop="rtnPrjno"/>
+			<el-table-column label="项目名称" align="center" prop="rtnPrjnm"/>
+			<el-table-column label="标段编号" align="center" prop="rtnSgtno"/>
+			<el-table-column label="标段名称" align="center" prop="rtnSgtnm"/>
+			<el-table-column label="投标状态0-未中标1-已中标" align="center" prop="rtnSgtst" v-if="false"/>
+			<el-table-column label="保证金状态 1-竞标" align="center" prop="rtnMrgnst" v-if="false"/>
+			<el-table-column label="投标账号" align="center" prop="rtnTdracctno"/>
+			<el-table-column label="投标账号币种01-人民币" align="center" prop="rtnTdracctnoccycd" v-if="false"/>
+			<el-table-column label="投标账户名称" align="center" prop="rtnTdracctnm"/>
+			<el-table-column label="投标账号行号" align="center" prop="rtnTdracctnobnkno"/>
+			<el-table-column label="投标账号行名" align="center" prop="rtnTdracctnobnknm"/>
+			<el-table-column label="投标数量" align="center" prop="rtnTdrnum"/>
+			<el-table-column label="保证金金额" align="center" prop="rtnMrgnamt"/>
+			<el-table-column label="中标金额" align="center" prop="rtnTdramt" v-if="false"/>
+			<el-table-column label="代理服务费" align="center" prop="rtnAgncsvcfee" v-if="false"/>
+			<el-table-column label="冻结金额" align="center" prop="rtnFrzamt" v-if="false"/>
+			<el-table-column label="罚没金额" align="center" prop="rtnFineamt" v-if="false"/>
+			<el-table-column label="投标日期" align="center" prop="rtnTdrdt">
+				<template slot-scope="scope">
+					{{ formatDate(scope.row.rtnTdrdt, scope.row.rtnTdrtm) }}
+				</template>
+			</el-table-column>
+			<el-table-column label="投标时间" align="center" prop="rtnTdrtm" v-if="false"/>
+			<el-table-column label="缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函" align="center" prop="rtnDuetp"
+							 v-if="false"/>
+			<el-table-column label="会员编号" align="center" prop="rtnMbrshpno" v-if="false"/>
+			<el-table-column label="服务费" align="center" prop="rtnSvcfee"/>
+			<el-table-column label="交易附言" align="center" prop="rtnRemark"/>
+			<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+				<template slot-scope="scope">
+					<el-button
+						size="mini"
+						type="text"
+						icon="el-icon-edit"
+						@click="handleUpdate(scope.row)"
+						v-hasPermi="['bank:depositdesc:edit']"
+					>修改
+					</el-button>
+					<el-button
+						size="mini"
+						type="text"
+						icon="el-icon-delete"
+						@click="handleDelete(scope.row)"
+						v-hasPermi="['bank:depositdesc:remove']"
+					>删除
+					</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+		<pagination
+			v-show="total>0"
+			:total="total"
+			:page.sync="queryParams.pageNum"
+			:limit.sync="queryParams.pageSize"
+			@pagination="getList"
+		/>
 
-    <!-- 添加或修改查询保证金入账明细对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="采购计划id" prop="ppid">
-          <el-input v-model="form.ppid" placeholder="请输入采购计划id" />
-        </el-form-item>
-        <el-form-item label="客户端交易的唯一流水号建议值为yyyymmdd+序号" prop="trnuid">
-          <el-input v-model="form.trnuid" placeholder="请输入客户端交易的唯一流水号建议值为yyyymmdd+序号" />
-        </el-form-item>
-        <el-form-item label="报文节点" prop="rqbody">
-          <el-input v-model="form.rqbody" placeholder="请输入报文节点" />
-        </el-form-item>
-        <el-form-item label="标段id" prop="sgtid">
-          <el-input v-model="form.sgtid" placeholder="请输入标段id" />
-        </el-form-item>
-        <el-form-item label="标段编号" prop="sgtno">
-          <el-input v-model="form.sgtno" placeholder="请输入标段编号" />
-        </el-form-item>
-        <el-form-item label="项目编号" prop="prjno">
-          <el-input v-model="form.prjno" placeholder="请输入项目编号" />
-        </el-form-item>
-        <el-form-item label="核心客户号" prop="pltfmcstno">
-          <el-input v-model="form.pltfmcstno" placeholder="请输入核心客户号" />
-        </el-form-item>
-        <el-form-item label="企业名称" prop="entpnm">
-          <el-input v-model="form.entpnm" placeholder="请输入企业名称" />
-        </el-form-item>
-        <el-form-item label="页码不输默认查询第一页" prop="pgno">
-          <el-input v-model="form.pgno" placeholder="请输入页码不输默认查询第一页" />
-        </el-form-item>
-        <el-form-item label="版本号" prop="version">
-          <el-input v-model="form.version" placeholder="请输入版本号" />
-        </el-form-item>
-        <el-form-item label="客户端交易的唯一标志" prop="rtnTrnuid">
-          <el-input v-model="form.rtnTrnuid" placeholder="请输入客户端交易的唯一标志" />
-        </el-form-item>
-        <el-form-item label="处理结果码" prop="rtnCode">
-          <el-input v-model="form.rtnCode" placeholder="请输入处理结果码" />
-        </el-form-item>
-        <el-form-item label="处理结果等级(info/warn/error)" prop="rtnSeverity">
-          <el-input v-model="form.rtnSeverity" placeholder="请输入处理结果等级(info/warn/error)" />
-        </el-form-item>
-        <el-form-item label="处理信息描述" prop="rtnMessage">
-          <el-input v-model="form.rtnMessage" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="报文节点" prop="rtnRsbody">
-          <el-input v-model="form.rtnRsbody" placeholder="请输入报文节点" />
-        </el-form-item>
-        <el-form-item label="记录总数" prop="rtnRcrdtotnum">
-          <el-input v-model="form.rtnRcrdtotnum" placeholder="请输入记录总数" />
-        </el-form-item>
-        <el-form-item label="当前页码" prop="rtnCrnpgno">
-          <el-input v-model="form.rtnCrnpgno" placeholder="请输入当前页码" />
-        </el-form-item>
-        <el-form-item label="每页记录数" prop="rtnPgrcrdnum">
-          <el-input v-model="form.rtnPgrcrdnum" placeholder="请输入每页记录数" />
-        </el-form-item>
-        <el-form-item label="总页数" prop="rtnTotpgnum">
-          <el-input v-model="form.rtnTotpgnum" placeholder="请输入总页数" />
-        </el-form-item>
-        <el-form-item label="明细报文标识">
-          <editor v-model="form.rtnContent" :min-height="192"/>
-        </el-form-item>
-        <el-form-item label="租户号" prop="rtnLescstno">
-          <el-input v-model="form.rtnLescstno" placeholder="请输入租户号" />
-        </el-form-item>
-        <el-form-item label="投标编号" prop="rtnTdrno">
-          <el-input v-model="form.rtnTdrno" placeholder="请输入投标编号" />
-        </el-form-item>
-        <el-form-item label="客户编号" prop="rtnCstno">
-          <el-input v-model="form.rtnCstno" placeholder="请输入客户编号" />
-        </el-form-item>
-        <el-form-item label="项目编号" prop="rtnPrjno">
-          <el-input v-model="form.rtnPrjno" placeholder="请输入项目编号" />
-        </el-form-item>
-        <el-form-item label="项目名称" prop="rtnPrjnm">
-          <el-input v-model="form.rtnPrjnm" placeholder="请输入项目名称" />
-        </el-form-item>
-        <el-form-item label="标段编号" prop="rtnSgtno">
-          <el-input v-model="form.rtnSgtno" placeholder="请输入标段编号" />
-        </el-form-item>
-        <el-form-item label="标段名称" prop="rtnSgtnm">
-          <el-input v-model="form.rtnSgtnm" placeholder="请输入标段名称" />
-        </el-form-item>
-        <el-form-item label="投标状态0-未中标1-已中标" prop="rtnSgtst">
-          <el-input v-model="form.rtnSgtst" placeholder="请输入投标状态0-未中标1-已中标" />
-        </el-form-item>
-        <el-form-item label="保证金状态 1-竞标" prop="rtnMrgnst">
-          <el-input v-model="form.rtnMrgnst" placeholder="请输入保证金状态 1-竞标" />
-        </el-form-item>
-        <el-form-item label="投标账号" prop="rtnTdracctno">
-          <el-input v-model="form.rtnTdracctno" placeholder="请输入投标账号" />
-        </el-form-item>
-        <el-form-item label="投标账号币种01-人民币" prop="rtnTdracctnoccycd">
-          <el-input v-model="form.rtnTdracctnoccycd" placeholder="请输入投标账号币种01-人民币" />
-        </el-form-item>
-        <el-form-item label="投标账户名称" prop="rtnTdracctnm">
-          <el-input v-model="form.rtnTdracctnm" placeholder="请输入投标账户名称" />
-        </el-form-item>
-        <el-form-item label="投标账号行号" prop="rtnTdracctnobnkno">
-          <el-input v-model="form.rtnTdracctnobnkno" placeholder="请输入投标账号行号" />
-        </el-form-item>
-        <el-form-item label="投标账号行名" prop="rtnTdracctnobnknm">
-          <el-input v-model="form.rtnTdracctnobnknm" placeholder="请输入投标账号行名" />
-        </el-form-item>
-        <el-form-item label="投标数量" prop="rtnTdrnum">
-          <el-input v-model="form.rtnTdrnum" placeholder="请输入投标数量" />
-        </el-form-item>
-        <el-form-item label="保证金金额 double" prop="rtnMrgnamt">
-          <el-input v-model="form.rtnMrgnamt" placeholder="请输入保证金金额 double" />
-        </el-form-item>
-        <el-form-item label="中标金额 double" prop="rtnTdramt">
-          <el-input v-model="form.rtnTdramt" placeholder="请输入中标金额 double" />
-        </el-form-item>
-        <el-form-item label="代理服务费 double" prop="rtnAgncsvcfee">
-          <el-input v-model="form.rtnAgncsvcfee" placeholder="请输入代理服务费 double" />
-        </el-form-item>
-        <el-form-item label="冻结金额 double" prop="rtnFrzamt">
-          <el-input v-model="form.rtnFrzamt" placeholder="请输入冻结金额 double" />
-        </el-form-item>
-        <el-form-item label="罚没金额 double" prop="rtnFineamt">
-          <el-input v-model="form.rtnFineamt" placeholder="请输入罚没金额 double" />
-        </el-form-item>
-        <el-form-item label="投标日期yyyymmdd" prop="rtnTdrdt">
-          <el-input v-model="form.rtnTdrdt" placeholder="请输入投标日期yyyymmdd" />
-        </el-form-item>
-        <el-form-item label="投标时间hhmmss" prop="rtnTdrtm">
-          <el-input v-model="form.rtnTdrtm" placeholder="请输入投标时间hhmmss" />
-        </el-form-item>
-        <el-form-item label="缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函" prop="rtnDuetp">
-          <el-input v-model="form.rtnDuetp" placeholder="请输入缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函" />
-        </el-form-item>
-        <el-form-item label="会员编号" prop="rtnMbrshpno">
-          <el-input v-model="form.rtnMbrshpno" placeholder="请输入会员编号" />
-        </el-form-item>
-        <el-form-item label="服务费 double" prop="rtnSvcfee">
-          <el-input v-model="form.rtnSvcfee" placeholder="请输入服务费 double" />
-        </el-form-item>
-        <el-form-item label="交易附言" prop="rtnRemark">
-          <el-input v-model="form.rtnRemark" placeholder="请输入交易附言" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
+		<!-- 添加或修改查询保证金入账明细对话框 -->
+		<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+			<el-form ref="form" :model="form" :rules="rules" label-width="80px">
+				<el-form-item label="采购计划id" prop="ppid">
+					<el-input v-model="form.ppid" placeholder="请输入采购计划id"/>
+				</el-form-item>
+				<el-form-item label="客户端交易的唯一流水号建议值为yyyymmdd+序号" prop="trnuid">
+					<el-input v-model="form.trnuid" placeholder="请输入客户端交易的唯一流水号建议值为yyyymmdd+序号"/>
+				</el-form-item>
+				<el-form-item label="报文节点" prop="rqbody">
+					<el-input v-model="form.rqbody" placeholder="请输入报文节点"/>
+				</el-form-item>
+				<el-form-item label="标段id" prop="sgtid">
+					<el-input v-model="form.sgtid" placeholder="请输入标段id"/>
+				</el-form-item>
+				<el-form-item label="标段编号" prop="sgtno">
+					<el-input v-model="form.sgtno" placeholder="请输入标段编号"/>
+				</el-form-item>
+				<el-form-item label="项目编号" prop="prjno">
+					<el-input v-model="form.prjno" placeholder="请输入项目编号"/>
+				</el-form-item>
+				<el-form-item label="核心客户号" prop="pltfmcstno">
+					<el-input v-model="form.pltfmcstno" placeholder="请输入核心客户号"/>
+				</el-form-item>
+				<el-form-item label="企业名称" prop="entpnm">
+					<el-input v-model="form.entpnm" placeholder="请输入企业名称"/>
+				</el-form-item>
+				<el-form-item label="页码不输默认查询第一页" prop="pgno">
+					<el-input v-model="form.pgno" placeholder="请输入页码不输默认查询第一页"/>
+				</el-form-item>
+				<el-form-item label="版本号" prop="version">
+					<el-input v-model="form.version" placeholder="请输入版本号"/>
+				</el-form-item>
+				<el-form-item label="客户端交易的唯一标志" prop="rtnTrnuid">
+					<el-input v-model="form.rtnTrnuid" placeholder="请输入客户端交易的唯一标志"/>
+				</el-form-item>
+				<el-form-item label="处理结果码" prop="rtnCode">
+					<el-input v-model="form.rtnCode" placeholder="请输入处理结果码"/>
+				</el-form-item>
+				<el-form-item label="处理结果等级(info/warn/error)" prop="rtnSeverity">
+					<el-input v-model="form.rtnSeverity" placeholder="请输入处理结果等级(info/warn/error)"/>
+				</el-form-item>
+				<el-form-item label="处理信息描述" prop="rtnMessage">
+					<el-input v-model="form.rtnMessage" type="textarea" placeholder="请输入内容"/>
+				</el-form-item>
+				<el-form-item label="报文节点" prop="rtnRsbody">
+					<el-input v-model="form.rtnRsbody" placeholder="请输入报文节点"/>
+				</el-form-item>
+				<el-form-item label="记录总数" prop="rtnRcrdtotnum">
+					<el-input v-model="form.rtnRcrdtotnum" placeholder="请输入记录总数"/>
+				</el-form-item>
+				<el-form-item label="当前页码" prop="rtnCrnpgno">
+					<el-input v-model="form.rtnCrnpgno" placeholder="请输入当前页码"/>
+				</el-form-item>
+				<el-form-item label="每页记录数" prop="rtnPgrcrdnum">
+					<el-input v-model="form.rtnPgrcrdnum" placeholder="请输入每页记录数"/>
+				</el-form-item>
+				<el-form-item label="总页数" prop="rtnTotpgnum">
+					<el-input v-model="form.rtnTotpgnum" placeholder="请输入总页数"/>
+				</el-form-item>
+				<el-form-item label="明细报文标识">
+					<editor v-model="form.rtnContent" :min-height="192"/>
+				</el-form-item>
+				<el-form-item label="租户号" prop="rtnLescstno">
+					<el-input v-model="form.rtnLescstno" placeholder="请输入租户号"/>
+				</el-form-item>
+				<el-form-item label="投标编号" prop="rtnTdrno">
+					<el-input v-model="form.rtnTdrno" placeholder="请输入投标编号"/>
+				</el-form-item>
+				<el-form-item label="客户编号" prop="rtnCstno">
+					<el-input v-model="form.rtnCstno" placeholder="请输入客户编号"/>
+				</el-form-item>
+				<el-form-item label="项目编号" prop="rtnPrjno">
+					<el-input v-model="form.rtnPrjno" placeholder="请输入项目编号"/>
+				</el-form-item>
+				<el-form-item label="项目名称" prop="rtnPrjnm">
+					<el-input v-model="form.rtnPrjnm" placeholder="请输入项目名称"/>
+				</el-form-item>
+				<el-form-item label="标段编号" prop="rtnSgtno">
+					<el-input v-model="form.rtnSgtno" placeholder="请输入标段编号"/>
+				</el-form-item>
+				<el-form-item label="标段名称" prop="rtnSgtnm">
+					<el-input v-model="form.rtnSgtnm" placeholder="请输入标段名称"/>
+				</el-form-item>
+				<el-form-item label="投标状态0-未中标1-已中标" prop="rtnSgtst">
+					<el-input v-model="form.rtnSgtst" placeholder="请输入投标状态0-未中标1-已中标"/>
+				</el-form-item>
+				<el-form-item label="保证金状态 1-竞标" prop="rtnMrgnst">
+					<el-input v-model="form.rtnMrgnst" placeholder="请输入保证金状态 1-竞标"/>
+				</el-form-item>
+				<el-form-item label="投标账号" prop="rtnTdracctno">
+					<el-input v-model="form.rtnTdracctno" placeholder="请输入投标账号"/>
+				</el-form-item>
+				<el-form-item label="投标账号币种01-人民币" prop="rtnTdracctnoccycd">
+					<el-input v-model="form.rtnTdracctnoccycd" placeholder="请输入投标账号币种01-人民币"/>
+				</el-form-item>
+				<el-form-item label="投标账户名称" prop="rtnTdracctnm">
+					<el-input v-model="form.rtnTdracctnm" placeholder="请输入投标账户名称"/>
+				</el-form-item>
+				<el-form-item label="投标账号行号" prop="rtnTdracctnobnkno">
+					<el-input v-model="form.rtnTdracctnobnkno" placeholder="请输入投标账号行号"/>
+				</el-form-item>
+				<el-form-item label="投标账号行名" prop="rtnTdracctnobnknm">
+					<el-input v-model="form.rtnTdracctnobnknm" placeholder="请输入投标账号行名"/>
+				</el-form-item>
+				<el-form-item label="投标数量" prop="rtnTdrnum">
+					<el-input v-model="form.rtnTdrnum" placeholder="请输入投标数量"/>
+				</el-form-item>
+				<el-form-item label="保证金金额 double" prop="rtnMrgnamt">
+					<el-input v-model="form.rtnMrgnamt" placeholder="请输入保证金金额 double"/>
+				</el-form-item>
+				<el-form-item label="中标金额 double" prop="rtnTdramt">
+					<el-input v-model="form.rtnTdramt" placeholder="请输入中标金额 double"/>
+				</el-form-item>
+				<el-form-item label="代理服务费 double" prop="rtnAgncsvcfee">
+					<el-input v-model="form.rtnAgncsvcfee" placeholder="请输入代理服务费 double"/>
+				</el-form-item>
+				<el-form-item label="冻结金额 double" prop="rtnFrzamt">
+					<el-input v-model="form.rtnFrzamt" placeholder="请输入冻结金额 double"/>
+				</el-form-item>
+				<el-form-item label="罚没金额 double" prop="rtnFineamt">
+					<el-input v-model="form.rtnFineamt" placeholder="请输入罚没金额 double"/>
+				</el-form-item>
+				<el-form-item label="投标日期yyyymmdd" prop="rtnTdrdt">
+					<el-input v-model="form.rtnTdrdt" placeholder="请输入投标日期yyyymmdd"/>
+				</el-form-item>
+				<el-form-item label="投标时间hhmmss" prop="rtnTdrtm">
+					<el-input v-model="form.rtnTdrtm" placeholder="请输入投标时间hhmmss"/>
+				</el-form-item>
+				<el-form-item label="缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函" prop="rtnDuetp">
+					<el-input v-model="form.rtnDuetp"
+							  placeholder="请输入缴纳类型0-一般保证金 1- 长期保证金 2-现金3-保函"/>
+				</el-form-item>
+				<el-form-item label="会员编号" prop="rtnMbrshpno">
+					<el-input v-model="form.rtnMbrshpno" placeholder="请输入会员编号"/>
+				</el-form-item>
+				<el-form-item label="服务费 double" prop="rtnSvcfee">
+					<el-input v-model="form.rtnSvcfee" placeholder="请输入服务费 double"/>
+				</el-form-item>
+				<el-form-item label="交易附言" prop="rtnRemark">
+					<el-input v-model="form.rtnRemark" placeholder="请输入交易附言"/>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="submitForm">确 定</el-button>
+				<el-button @click="cancel">取 消</el-button>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-import { listDepositdesc, getDepositdesc, delDepositdesc, addDepositdesc, updateDepositdesc } from "@/api/bank/depositdesc";
+import {
+	listDepositdesc,
+	getDepositdesc,
+	delDepositdesc,
+	addDepositdesc,
+	updateDepositdesc
+} from "@/api/bank/depositdesc";
 
 export default {
-  name: "Depositdesc",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 查询保证金入账明细表格数据
-      depositdescList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        ppid: null,
-        trnuid: null,
-        rqbody: null,
-        sgtid: null,
-        sgtno: null,
-        prjno: null,
-        pltfmcstno: null,
-        entpnm: null,
-        pgno: null,
-        version: null,
-        rtnTrnuid: null,
-        rtnStatus: null,
-        rtnCode: null,
-        rtnSeverity: null,
-        rtnMessage: null,
-        rtnRsbody: null,
-        rtnRcrdtotnum: null,
-        rtnCrnpgno: null,
-        rtnPgrcrdnum: null,
-        rtnTotpgnum: null,
-        rtnContent: null,
-        rtnLescstno: null,
-        rtnTdrno: null,
-        rtnCstno: null,
-        rtnPrjno: null,
-        rtnPrjnm: null,
-        rtnSgtno: null,
-        rtnSgtnm: null,
-        rtnSgtst: null,
-        rtnMrgnst: null,
-        rtnTdracctno: null,
-        rtnTdracctnoccycd: null,
-        rtnTdracctnm: null,
-        rtnTdracctnobnkno: null,
-        rtnTdracctnobnknm: null,
-        rtnTdrnum: null,
-        rtnMrgnamt: null,
-        rtnTdramt: null,
-        rtnAgncsvcfee: null,
-        rtnFrzamt: null,
-        rtnFineamt: null,
-        rtnTdrdt: null,
-        rtnTdrtm: null,
-        rtnDuetp: null,
-        rtnMbrshpno: null,
-        rtnSvcfee: null,
-        rtnRemark: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        ppid: [
-          { required: true, message: "采购计划id不能为空", trigger: "blur" }
-        ],
-        trnuid: [
-          { required: true, message: "客户端交易的唯一流水号建议值为yyyymmdd+序号不能为空", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询查询保证金入账明细列表 */
-    getList() {
-      this.loading = true;
-      listDepositdesc(this.queryParams).then(response => {
-        this.depositdescList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        depositdescid: null,
-        ppid: null,
-        trnuid: null,
-        rqbody: null,
-        sgtid: null,
-        sgtno: null,
-        prjno: null,
-        pltfmcstno: null,
-        entpnm: null,
-        pgno: null,
-        version: null,
-        rtnTrnuid: null,
-        rtnStatus: null,
-        rtnCode: null,
-        rtnSeverity: null,
-        rtnMessage: null,
-        rtnRsbody: null,
-        rtnRcrdtotnum: null,
-        rtnCrnpgno: null,
-        rtnPgrcrdnum: null,
-        rtnTotpgnum: null,
-        rtnContent: null,
-        rtnLescstno: null,
-        rtnTdrno: null,
-        rtnCstno: null,
-        rtnPrjno: null,
-        rtnPrjnm: null,
-        rtnSgtno: null,
-        rtnSgtnm: null,
-        rtnSgtst: null,
-        rtnMrgnst: null,
-        rtnTdracctno: null,
-        rtnTdracctnoccycd: null,
-        rtnTdracctnm: null,
-        rtnTdracctnobnkno: null,
-        rtnTdracctnobnknm: null,
-        rtnTdrnum: null,
-        rtnMrgnamt: null,
-        rtnTdramt: null,
-        rtnAgncsvcfee: null,
-        rtnFrzamt: null,
-        rtnFineamt: null,
-        rtnTdrdt: null,
-        rtnTdrtm: null,
-        rtnDuetp: null,
-        rtnMbrshpno: null,
-        rtnSvcfee: null,
-        rtnRemark: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.depositdescid)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加查询保证金入账明细";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const depositdescid = row.depositdescid || this.ids
-      getDepositdesc(depositdescid).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改查询保证金入账明细";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.depositdescid != null) {
-            updateDepositdesc(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addDepositdesc(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const depositdescids = row.depositdescid || this.ids;
-      this.$modal.confirm('是否确认删除查询保证金入账明细编号为"' + depositdescids + '"的数据项?').then(function() {
-        return delDepositdesc(depositdescids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('bank/depositdesc/export', {
-        ...this.queryParams
-      }, `depositdesc_${new Date().getTime()}.xlsx`)
-    }
-  }
+	name: "Depositdesc",
+	data() {
+		return {
+			// 遮罩层
+			loading: true,
+			// 选中数组
+			ids: [],
+			// 非单个禁用
+			single: true,
+			// 非多个禁用
+			multiple: true,
+			// 显示搜索条件
+			showSearch: true,
+			// 总条数
+			total: 0,
+			// 查询保证金入账明细表格数据
+			depositdescList: [],
+			// 弹出层标题
+			title: "",
+			// 是否显示弹出层
+			open: false,
+			// 查询参数
+			queryParams: {
+				pageNum: 1,
+				pageSize: 10,
+				ppid: null,
+				trnuid: null,
+				rqbody: null,
+				sgtid: null,
+				sgtno: null,
+				prjno: null,
+				pltfmcstno: null,
+				entpnm: null,
+				pgno: null,
+				version: null,
+				rtnTrnuid: null,
+				rtnStatus: null,
+				rtnCode: null,
+				rtnSeverity: null,
+				rtnMessage: null,
+				rtnRsbody: null,
+				rtnRcrdtotnum: null,
+				rtnCrnpgno: null,
+				rtnPgrcrdnum: null,
+				rtnTotpgnum: null,
+				rtnContent: null,
+				rtnLescstno: null,
+				rtnTdrno: null,
+				rtnCstno: null,
+				rtnPrjno: null,
+				rtnPrjnm: null,
+				rtnSgtno: null,
+				rtnSgtnm: null,
+				rtnSgtst: null,
+				rtnMrgnst: null,
+				rtnTdracctno: null,
+				rtnTdracctnoccycd: null,
+				rtnTdracctnm: null,
+				rtnTdracctnobnkno: null,
+				rtnTdracctnobnknm: null,
+				rtnTdrnum: null,
+				rtnMrgnamt: null,
+				rtnTdramt: null,
+				rtnAgncsvcfee: null,
+				rtnFrzamt: null,
+				rtnFineamt: null,
+				rtnTdrdt: null,
+				rtnTdrtm: null,
+				rtnDuetp: null,
+				rtnMbrshpno: null,
+				rtnSvcfee: null,
+				rtnRemark: null
+			},
+			// 表单参数
+			form: {},
+			// 表单校验
+			rules: {
+				ppid: [
+					{required: true, message: "采购计划id不能为空", trigger: "blur"}
+				],
+				trnuid: [
+					{required: true, message: "客户端交易的唯一流水号建议值为yyyymmdd+序号不能为空", trigger: "blur"}
+				],
+			}
+		};
+	},
+	created() {
+		this.getList();
+	},
+	methods: {
+		/** 查询查询保证金入账明细列表 */
+		getList() {
+			this.loading = true;
+			listDepositdesc(this.queryParams).then(response => {
+				this.depositdescList = response.rows;
+				this.total = response.total;
+				this.loading = false;
+			});
+		},
+		// 取消按钮
+		cancel() {
+			this.open = false;
+			this.reset();
+		},
+		// 表单重置
+		reset() {
+			this.form = {
+				depositdescid: null,
+				ppid: null,
+				trnuid: null,
+				rqbody: null,
+				sgtid: null,
+				sgtno: null,
+				prjno: null,
+				pltfmcstno: null,
+				entpnm: null,
+				pgno: null,
+				version: null,
+				rtnTrnuid: null,
+				rtnStatus: null,
+				rtnCode: null,
+				rtnSeverity: null,
+				rtnMessage: null,
+				rtnRsbody: null,
+				rtnRcrdtotnum: null,
+				rtnCrnpgno: null,
+				rtnPgrcrdnum: null,
+				rtnTotpgnum: null,
+				rtnContent: null,
+				rtnLescstno: null,
+				rtnTdrno: null,
+				rtnCstno: null,
+				rtnPrjno: null,
+				rtnPrjnm: null,
+				rtnSgtno: null,
+				rtnSgtnm: null,
+				rtnSgtst: null,
+				rtnMrgnst: null,
+				rtnTdracctno: null,
+				rtnTdracctnoccycd: null,
+				rtnTdracctnm: null,
+				rtnTdracctnobnkno: null,
+				rtnTdracctnobnknm: null,
+				rtnTdrnum: null,
+				rtnMrgnamt: null,
+				rtnTdramt: null,
+				rtnAgncsvcfee: null,
+				rtnFrzamt: null,
+				rtnFineamt: null,
+				rtnTdrdt: null,
+				rtnTdrtm: null,
+				rtnDuetp: null,
+				rtnMbrshpno: null,
+				rtnSvcfee: null,
+				rtnRemark: null
+			};
+			this.resetForm("form");
+		},
+		/** 搜索按钮操作 */
+		handleQuery() {
+			this.queryParams.pageNum = 1;
+			this.getList();
+		},
+		/** 重置按钮操作 */
+		resetQuery() {
+			this.resetForm("queryForm");
+			this.handleQuery();
+		},
+		// 多选框选中数据
+		handleSelectionChange(selection) {
+			this.ids = selection.map(item => item.depositdescid)
+			this.single = selection.length !== 1
+			this.multiple = !selection.length
+		},
+		/** 新增按钮操作 */
+		handleAdd() {
+			this.reset();
+			this.open = true;
+			this.title = "添加查询保证金入账明细";
+		},
+		/** 修改按钮操作 */
+		handleUpdate(row) {
+			this.reset();
+			const depositdescid = row.depositdescid || this.ids
+			getDepositdesc(depositdescid).then(response => {
+				this.form = response.data;
+				this.open = true;
+				this.title = "修改查询保证金入账明细";
+			});
+		},
+		/** 提交按钮 */
+		submitForm() {
+			this.$refs["form"].validate(valid => {
+				if (valid) {
+					if (this.form.depositdescid != null) {
+						updateDepositdesc(this.form).then(response => {
+							this.$modal.msgSuccess("修改成功");
+							this.open = false;
+							this.getList();
+						});
+					} else {
+						addDepositdesc(this.form).then(response => {
+							this.$modal.msgSuccess("新增成功");
+							this.open = false;
+							this.getList();
+						});
+					}
+				}
+			});
+		},
+		/** 删除按钮操作 */
+		handleDelete(row) {
+			const depositdescids = row.depositdescid || this.ids;
+			this.$modal.confirm('是否确认删除查询保证金入账明细编号为"' + depositdescids + '"的数据项?').then(function () {
+				return delDepositdesc(depositdescids);
+			}).then(() => {
+				this.getList();
+				this.$modal.msgSuccess("删除成功");
+			}).catch(() => {
+			});
+		},
+		/** 导出按钮操作 */
+		handleExport() {
+			this.download('bank/depositdesc/export', {
+				...this.queryParams
+			}, `depositdesc_${new Date().getTime()}.xlsx`)
+		},
+		formatDate(dateStr, timeStr) {
+			return dateStr.substring(0, 4) + "-" + dateStr.substring(4, 6) + "-" + dateStr.substring(6, 8) + " " + timeStr.substring(0, 2) + ":" + timeStr.substring(2, 4) + ":" + timeStr.substring(4, 6)
+		}
+	}
 };
 </script>

+ 471 - 443
ruoyi-ui/src/views/bank/tenderpub/index.vue

@@ -1,457 +1,485 @@
 <template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="采购计划" prop="ppid">
-        <el-input v-model="queryParams.ppid" placeholder="请输入采购计划id" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="交易流水" prop="trnuid">
-        <el-input v-model="queryParams.trnuid" placeholder="请输入客户端交易的唯一流水号建议值为YYYYMMDD+序号" clearable
-          @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="账号" prop="acctno">
-        <el-input v-model="queryParams.acctno" placeholder="请输入账号" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="币种01" prop="ccycd">
-        <el-input v-model="queryParams.ccycd" placeholder="请输入币种01-人民币" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="项目编号" prop="prjno">
-        <el-input v-model="queryParams.prjno" placeholder="请输入项目编号" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="标段编号" prop="sgtno">
-        <el-input v-model="queryParams.sgtno" placeholder="请输入标段编号" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="标段名称" prop="sgtnm">
-        <el-input v-model="queryParams.sgtnm" placeholder="请输入标段名称" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
+	<div class="app-container">
+		<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+				 label-width="68px">
+			<el-form-item label="采购计划" prop="ppid">
+				<el-input v-model="queryParams.ppid" placeholder="请输入采购计划id" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="交易流水" prop="trnuid">
+				<el-input v-model="queryParams.trnuid" placeholder="请输入客户端交易的唯一流水号建议值为YYYYMMDD+序号"
+						  clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="账号" prop="acctno">
+				<el-input v-model="queryParams.acctno" placeholder="请输入账号" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="币种01" prop="ccycd">
+				<el-input v-model="queryParams.ccycd" placeholder="请输入币种01-人民币" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="项目编号" prop="prjno">
+				<el-input v-model="queryParams.prjno" placeholder="请输入项目编号" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="标段编号" prop="sgtno">
+				<el-input v-model="queryParams.sgtno" placeholder="请输入标段编号" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="标段名称" prop="sgtnm">
+				<el-input v-model="queryParams.sgtnm" placeholder="请输入标段名称" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
 
-      <el-form-item label="标段名称" prop="rtnSgtnm">
-        <el-input v-model="queryParams.rtnSgtnm" placeholder="请输入标段名称" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="标段id" prop="rtnSgtid">
-        <el-input v-model="queryParams.rtnSgtid" placeholder="请输入标段id" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
+			<el-form-item label="标段名称" prop="rtnSgtnm">
+				<el-input v-model="queryParams.rtnSgtnm" placeholder="请输入标段名称" clearable
+						  @keyup.enter.native="handleQuery"/>
+			</el-form-item>
+			<el-form-item label="标段id" prop="rtnSgtid">
+				<el-input v-model="queryParams.rtnSgtid" placeholder="请输入标段id" 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>
+			<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>
 
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
-          v-hasPermi="['bank:tenderpub:add']">新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
-          v-hasPermi="['bank:tenderpub:edit']">修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-          v-hasPermi="['bank:tenderpub:remove']">删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
-          v-hasPermi="['bank:tenderpub:export']">导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+		<el-row :gutter="10" class="mb8">
+			<el-col :span="1.5">
+				<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
+						   v-hasPermi="['bank:tenderpub:add']">新增
+				</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+						   v-hasPermi="['bank:tenderpub:edit']">修改
+				</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
+						   @click="handleDelete"
+						   v-hasPermi="['bank:tenderpub:remove']">删除
+				</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
+						   v-hasPermi="['bank:tenderpub:export']">导出
+				</el-button>
+			</el-col>
+			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+		</el-row>
 
-    <el-table v-loading="loading" :data="tenderpubList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="标段发布id" align="center" prop="tenderpubid" v-if="false" />
-      <el-table-column label="招标项目" align="center" prop="ppid" />
-      <el-table-column label="银行流水" align="center" prop="trnuid" />
-      <el-table-column label="账号" align="center" prop="acctno" />
-      <el-table-column label="币种01-人民币" align="center" prop="ccycd" v-if="false" />
-      <el-table-column label="项目编号" align="center" prop="prjno" />
-      <el-table-column label="标段编号" align="center" prop="sgtno" />
-      <el-table-column label="标段名称" align="center" prop="sgtnm" width="150" />
-      <el-table-column label="标段账户生成类型0-自动生成 1-自定义账号" align="center" prop="sgtacctgentp" v-if="false" />
-      <el-table-column label="标段账号:标段账户生成类型为1时必输,为0时不能传入" align="center" prop="sgtacctno" v-if="false" />
-      <el-table-column label="标段类型0-非会员模式 1-会员模式 2-公共标段模式" align="center" prop="sgttp" v-if="false" />
-      <el-table-column label="计息标志0-不计息 1-计息" align="center" prop="intacrlflg" v-if="false" />
-      <el-table-column label="保密类型0-不保密 1-保密" align="center" prop="secrettp" v-if="false" />
-      <el-table-column label="投标账号白名单校验标志0-不校验 1-校验 " align="center" prop="tdracctnovrfyflg" v-if="false" />
-      <el-table-column label="允许截止后投标标志0-不允许 1-允许 " align="center" prop="alwafddlntdrflg" v-if="false" />
-      <el-table-column label="银行退款确认标志0-不确认 1-确认 " align="center" prop="bnkrfndcfrmflg" v-if="false" />
-      <el-table-column label="保证金金额" align="center" prop="mrgnamt" width="100" />
-      <el-table-column label="发标日期" align="center" prop="strtsgtdt" width="100" />
-      <el-table-column label="到期日期 yyyyMMdd" align="center" prop="expdt" v-if="false" />
-      <el-table-column label="保证金缴纳截止日期" align="center" prop="mrgnduestopdt" width="100">
-        <template slot-scope="scope">
-          {{ formatDate(scope.row.mrgnduestopdt, scope.row.mrgnduestoptm) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="开标日期" align="center" prop="opntdrdt" width="100">
-        <template slot-scope="scope">
-          {{ formatDate(scope.row.opntdrdt, scope.row.opntdrtm) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="客户端交易的唯一标志" align="center" prop="rtnTrnuid" width="150" />
-      <el-table-column label="交易处理状态" align="center" prop="rtnStatus" v-if="false" />
-      <el-table-column label="处理结果码" align="center" prop="rtnCode" v-if="false" />
-      <el-table-column label="处理结果等级" align="center" prop="rtnSeverity" v-if="false" />
-      <el-table-column label="处理信息描述" align="center" prop="rtnMessage" />
-      <el-table-column label="账号" align="center" prop="rtnAcctno" />
-      <el-table-column label="项目编号" align="center" prop="rtnPrjno" />
-      <el-table-column label="标段编号" align="center" prop="rtnSgtno" />
-      <el-table-column label="标段名称" align="center" prop="rtnSgtnm" />
-      <el-table-column label="标段ID" align="center" prop="rtnSgtid" width="150" />
-      <el-table-column label="6位子账户序号" align="center" prop="rtnSgtvrtlno" />
-      <el-table-column label="指令处理状态报文标识" align="center" prop="rtnXferprcsts" v-if="false" />
-      <el-table-column label="指令状态编码" align="center" prop="rtnXferprccode" />
-      <el-table-column label="指令处理时间" align="center" prop="rtnDtxferprc" width="100" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
-        <template slot-scope="scope">
-          <el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">标段信息查询</el-button>
-			<el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">保证金入账数量</el-button>
-			<el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">保证金入账明细</el-button>
-			<el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">保证金管理</el-button>
-			<el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">信息查询</el-button>
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-            v-hasPermi="['bank:tenderpub:edit']">修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-            v-hasPermi="['bank:tenderpub:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+		<el-table v-loading="loading" :data="tenderpubList" @selection-change="handleSelectionChange">
+			<el-table-column type="selection" width="55" align="center"/>
+			<el-table-column label="标段发布id" align="center" prop="tenderpubid" v-if="false"/>
+			<el-table-column label="招标项目" align="center" prop="ppid"/>
+			<el-table-column label="银行流水" align="center" prop="trnuid"/>
+			<el-table-column label="账号" align="center" prop="acctno"/>
+			<el-table-column label="币种01-人民币" align="center" prop="ccycd" v-if="false"/>
+			<el-table-column label="项目编号" align="center" prop="prjno"/>
+			<el-table-column label="标段编号" align="center" prop="sgtno"/>
+			<el-table-column label="标段名称" align="center" prop="sgtnm" width="150"/>
+			<el-table-column label="标段账户生成类型0-自动生成 1-自定义账号" align="center" prop="sgtacctgentp"
+							 v-if="false"/>
+			<el-table-column label="标段账号:标段账户生成类型为1时必输,为0时不能传入" align="center" prop="sgtacctno"
+							 v-if="false"/>
+			<el-table-column label="标段类型0-非会员模式 1-会员模式 2-公共标段模式" align="center" prop="sgttp"
+							 v-if="false"/>
+			<el-table-column label="计息标志0-不计息 1-计息" align="center" prop="intacrlflg" v-if="false"/>
+			<el-table-column label="保密类型0-不保密 1-保密" align="center" prop="secrettp" v-if="false"/>
+			<el-table-column label="投标账号白名单校验标志0-不校验 1-校验 " align="center" prop="tdracctnovrfyflg"
+							 v-if="false"/>
+			<el-table-column label="允许截止后投标标志0-不允许 1-允许 " align="center" prop="alwafddlntdrflg"
+							 v-if="false"/>
+			<el-table-column label="银行退款确认标志0-不确认 1-确认 " align="center" prop="bnkrfndcfrmflg"
+							 v-if="false"/>
+			<el-table-column label="保证金金额" align="center" prop="mrgnamt" width="100"/>
+			<el-table-column label="发标日期" align="center" prop="strtsgtdt" width="100"/>
+			<el-table-column label="到期日期 yyyyMMdd" align="center" prop="expdt" v-if="false"/>
+			<el-table-column label="保证金缴纳截止日期" align="center" prop="mrgnduestopdt" width="100">
+				<template slot-scope="scope">
+					{{ formatDate(scope.row.mrgnduestopdt, scope.row.mrgnduestoptm) }}
+				</template>
+			</el-table-column>
+			<el-table-column label="开标日期" align="center" prop="opntdrdt" width="100">
+				<template slot-scope="scope">
+					{{ formatDate(scope.row.opntdrdt, scope.row.opntdrtm) }}
+				</template>
+			</el-table-column>
+			<el-table-column label="客户端交易的唯一标志" align="center" prop="rtnTrnuid" width="150"/>
+			<el-table-column label="交易处理状态" align="center" prop="rtnStatus" v-if="false"/>
+			<el-table-column label="处理结果码" align="center" prop="rtnCode" v-if="false"/>
+			<el-table-column label="处理结果等级" align="center" prop="rtnSeverity" v-if="false"/>
+			<el-table-column label="处理信息描述" align="center" prop="rtnMessage"/>
+			<el-table-column label="账号" align="center" prop="rtnAcctno"/>
+			<el-table-column label="项目编号" align="center" prop="rtnPrjno"/>
+			<el-table-column label="标段编号" align="center" prop="rtnSgtno"/>
+			<el-table-column label="标段名称" align="center" prop="rtnSgtnm"/>
+			<el-table-column label="标段ID" align="center" prop="rtnSgtid" width="150"/>
+			<el-table-column label="6位子账户序号" align="center" prop="rtnSgtvrtlno"/>
+			<el-table-column label="指令处理状态报文标识" align="center" prop="rtnXferprcsts" v-if="false"/>
+			<el-table-column label="指令状态编码" align="center" prop="rtnXferprccode"/>
+			<el-table-column label="指令处理时间" align="center" prop="rtnDtxferprc" width="100"/>
+			<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
+				<template slot-scope="scope">
+					<el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">标段信息查询</el-button>
+					<el-button size="mini" type="text" @click="getInfo(scope.row)">保证金入账查询</el-button>
+					<el-button size="mini" type="text" @click="handleInfoQuery(scope.row)">批量退还保证金</el-button>
+					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['bank:tenderpub:edit']">修改</el-button>
+					<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['bank:tenderpub:remove']">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
 
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-      @pagination="getList" />
+		<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+					:limit.sync="queryParams.pageSize"
+					@pagination="getList"/>
 
-    <!-- 添加或修改标段发布对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="采购计划id" prop="ppid">
-          <el-input v-model="form.ppid" placeholder="请输入采购计划id" />
-        </el-form-item>
-        <el-form-item label="客户端交易的唯一流水号建议值为YYYYMMDD+序号" prop="trnuid">
-          <el-input v-model="form.trnuid" placeholder="请输入客户端交易的唯一流水号建议值为YYYYMMDD+序号" />
-        </el-form-item>
-        <el-form-item label="账号" prop="acctno">
-          <el-input v-model="form.acctno" placeholder="请输入账号" />
-        </el-form-item>
-        <el-form-item label="币种01-人民币" prop="ccycd">
-          <el-input v-model="form.ccycd" placeholder="请输入币种01-人民币" />
-        </el-form-item>
-        <el-form-item label="项目编号" prop="prjno">
-          <el-input v-model="form.prjno" placeholder="请输入项目编号" />
-        </el-form-item>
-        <el-form-item label="标段编号" prop="sgtno">
-          <el-input v-model="form.sgtno" placeholder="请输入标段编号" />
-        </el-form-item>
-        <el-form-item label="标段名称" prop="sgtnm">
-          <el-input v-model="form.sgtnm" placeholder="请输入标段名称" />
-        </el-form-item>
-        <el-form-item label="标段账户生成类型0-自动生成 1-自定义账号" prop="sgtacctgentp">
-          <el-input v-model="form.sgtacctgentp" placeholder="请输入标段账户生成类型0-自动生成 1-自定义账号" />
-        </el-form-item>
-        <el-form-item label="标段账号:标段账户生成类型为1时必输,为0时不能传入" prop="sgtacctno">
-          <el-input v-model="form.sgtacctno" placeholder="请输入标段账号:标段账户生成类型为1时必输,为0时不能传入" />
-        </el-form-item>
-        <el-form-item label="标段类型0-非会员模式 1-会员模式 2-公共标段模式" prop="sgttp">
-          <el-input v-model="form.sgttp" placeholder="请输入标段类型0-非会员模式 1-会员模式 2-公共标段模式" />
-        </el-form-item>
-        <el-form-item label="计息标志0-不计息 1-计息" prop="intacrlflg">
-          <el-input v-model="form.intacrlflg" placeholder="请输入计息标志0-不计息 1-计息" />
-        </el-form-item>
-        <el-form-item label="保密类型0-不保密 1-保密" prop="secrettp">
-          <el-input v-model="form.secrettp" placeholder="请输入保密类型0-不保密 1-保密" />
-        </el-form-item>
-        <el-form-item label="投标账号白名单校验标志0-不校验 1-校验 " prop="tdracctnovrfyflg">
-          <el-input v-model="form.tdracctnovrfyflg" placeholder="请输入投标账号白名单校验标志0-不校验 1-校验 " />
-        </el-form-item>
-        <el-form-item label="允许截止后投标标志0-不允许 1-允许 " prop="alwafddlntdrflg">
-          <el-input v-model="form.alwafddlntdrflg" placeholder="请输入允许截止后投标标志0-不允许 1-允许 " />
-        </el-form-item>
-        <el-form-item label="银行退款确认标志0-不确认 1-确认 " prop="bnkrfndcfrmflg">
-          <el-input v-model="form.bnkrfndcfrmflg" placeholder="请输入银行退款确认标志0-不确认 1-确认 " />
-        </el-form-item>
-        <el-form-item label="保证金金额,double" prop="mrgnamt">
-          <el-input v-model="form.mrgnamt" placeholder="请输入保证金金额,double" />
-        </el-form-item>
-        <el-form-item label="发标日期 yyyyMMdd" prop="strtsgtdt">
-          <el-input v-model="form.strtsgtdt" placeholder="请输入发标日期 yyyyMMdd" />
-        </el-form-item>
-        <el-form-item label="到期日期 yyyyMMdd" prop="expdt">
-          <el-input v-model="form.expdt" placeholder="请输入到期日期 yyyyMMdd" />
-        </el-form-item>
-        <el-form-item label="保证金缴纳截止日期yyyyMMdd" prop="mrgnduestopdt">
-          <el-input v-model="form.mrgnduestopdt" placeholder="请输入保证金缴纳截止日期yyyyMMdd" />
-        </el-form-item>
-        <el-form-item label="保证金缴纳截止时间HHmmss" prop="mrgnduestoptm">
-          <el-input v-model="form.mrgnduestoptm" placeholder="请输入保证金缴纳截止时间HHmmss" />
-        </el-form-item>
-        <el-form-item label="开标日期,yyyyMMdd" prop="opntdrdt">
-          <el-input v-model="form.opntdrdt" placeholder="请输入开标日期,yyyyMMdd" />
-        </el-form-item>
-        <el-form-item label="开标时间,HHmmss" prop="opntdrtm">
-          <el-input v-model="form.opntdrtm" placeholder="请输入开标时间,HHmmss" />
-        </el-form-item>
-        <el-form-item label="客户端交易的唯一标志" prop="rtnTrnuid">
-          <el-input v-model="form.rtnTrnuid" placeholder="请输入客户端交易的唯一标志" />
-        </el-form-item>
-        <el-form-item label="处理结果码" prop="rtnCode">
-          <el-input v-model="form.rtnCode" placeholder="请输入处理结果码" />
-        </el-form-item>
-        <el-form-item label="处理结果等级(info/warn/error)" prop="rtnSeverity">
-          <el-input v-model="form.rtnSeverity" placeholder="请输入处理结果等级(info/warn/error)" />
-        </el-form-item>
-        <el-form-item label="处理信息描述" prop="rtnMessage">
-          <el-input v-model="form.rtnMessage" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="账号" prop="rtnAcctno">
-          <el-input v-model="form.rtnAcctno" placeholder="请输入账号" />
-        </el-form-item>
-        <el-form-item label="项目编号" prop="rtnPrjno">
-          <el-input v-model="form.rtnPrjno" placeholder="请输入项目编号" />
-        </el-form-item>
-        <el-form-item label="标段编号" prop="rtnSgtno">
-          <el-input v-model="form.rtnSgtno" placeholder="请输入标段编号" />
-        </el-form-item>
-        <el-form-item label="标段名称" prop="rtnSgtnm">
-          <el-input v-model="form.rtnSgtnm" placeholder="请输入标段名称" />
-        </el-form-item>
-        <el-form-item label="标段id" prop="rtnSgtid">
-          <el-input v-model="form.rtnSgtid" placeholder="请输入标段id" />
-        </el-form-item>
-        <el-form-item label="6位子账户序号" prop="rtnSgtvrtlno">
-          <el-input v-model="form.rtnSgtvrtlno" placeholder="请输入6位子账户序号" />
-        </el-form-item>
-        <el-form-item label="指令处理状态报文标识" prop="rtnXferprcsts">
-          <el-input v-model="form.rtnXferprcsts" placeholder="请输入指令处理状态报文标识" />
-        </el-form-item>
-        <el-form-item label="指令状态编码" prop="rtnXferprccode">
-          <el-input v-model="form.rtnXferprccode" placeholder="请输入指令状态编码" />
-        </el-form-item>
-        <el-form-item label="指令处理时间yyyymmdd hhmmss" prop="rtnDtxferprc">
-          <el-input v-model="form.rtnDtxferprc" placeholder="请输入指令处理时间yyyymmdd hhmmss" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
+		<!-- 添加或修改标段发布对话框 -->
+		<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+			<el-form ref="form" :model="form" :rules="rules" label-width="80px">
+				<el-form-item label="采购计划id" prop="ppid">
+					<el-input v-model="form.ppid" placeholder="请输入采购计划id"/>
+				</el-form-item>
+				<el-form-item label="客户端交易的唯一流水号建议值为YYYYMMDD+序号" prop="trnuid">
+					<el-input v-model="form.trnuid" placeholder="请输入客户端交易的唯一流水号建议值为YYYYMMDD+序号"/>
+				</el-form-item>
+				<el-form-item label="账号" prop="acctno">
+					<el-input v-model="form.acctno" placeholder="请输入账号"/>
+				</el-form-item>
+				<el-form-item label="币种01-人民币" prop="ccycd">
+					<el-input v-model="form.ccycd" placeholder="请输入币种01-人民币"/>
+				</el-form-item>
+				<el-form-item label="项目编号" prop="prjno">
+					<el-input v-model="form.prjno" placeholder="请输入项目编号"/>
+				</el-form-item>
+				<el-form-item label="标段编号" prop="sgtno">
+					<el-input v-model="form.sgtno" placeholder="请输入标段编号"/>
+				</el-form-item>
+				<el-form-item label="标段名称" prop="sgtnm">
+					<el-input v-model="form.sgtnm" placeholder="请输入标段名称"/>
+				</el-form-item>
+				<el-form-item label="标段账户生成类型0-自动生成 1-自定义账号" prop="sgtacctgentp">
+					<el-input v-model="form.sgtacctgentp" placeholder="请输入标段账户生成类型0-自动生成 1-自定义账号"/>
+				</el-form-item>
+				<el-form-item label="标段账号:标段账户生成类型为1时必输,为0时不能传入" prop="sgtacctno">
+					<el-input v-model="form.sgtacctno"
+							  placeholder="请输入标段账号:标段账户生成类型为1时必输,为0时不能传入"/>
+				</el-form-item>
+				<el-form-item label="标段类型0-非会员模式 1-会员模式 2-公共标段模式" prop="sgttp">
+					<el-input v-model="form.sgttp" placeholder="请输入标段类型0-非会员模式 1-会员模式 2-公共标段模式"/>
+				</el-form-item>
+				<el-form-item label="计息标志0-不计息 1-计息" prop="intacrlflg">
+					<el-input v-model="form.intacrlflg" placeholder="请输入计息标志0-不计息 1-计息"/>
+				</el-form-item>
+				<el-form-item label="保密类型0-不保密 1-保密" prop="secrettp">
+					<el-input v-model="form.secrettp" placeholder="请输入保密类型0-不保密 1-保密"/>
+				</el-form-item>
+				<el-form-item label="投标账号白名单校验标志0-不校验 1-校验 " prop="tdracctnovrfyflg">
+					<el-input v-model="form.tdracctnovrfyflg"
+							  placeholder="请输入投标账号白名单校验标志0-不校验 1-校验 "/>
+				</el-form-item>
+				<el-form-item label="允许截止后投标标志0-不允许 1-允许 " prop="alwafddlntdrflg">
+					<el-input v-model="form.alwafddlntdrflg" placeholder="请输入允许截止后投标标志0-不允许 1-允许 "/>
+				</el-form-item>
+				<el-form-item label="银行退款确认标志0-不确认 1-确认 " prop="bnkrfndcfrmflg">
+					<el-input v-model="form.bnkrfndcfrmflg" placeholder="请输入银行退款确认标志0-不确认 1-确认 "/>
+				</el-form-item>
+				<el-form-item label="保证金金额,double" prop="mrgnamt">
+					<el-input v-model="form.mrgnamt" placeholder="请输入保证金金额,double"/>
+				</el-form-item>
+				<el-form-item label="发标日期 yyyyMMdd" prop="strtsgtdt">
+					<el-input v-model="form.strtsgtdt" placeholder="请输入发标日期 yyyyMMdd"/>
+				</el-form-item>
+				<el-form-item label="到期日期 yyyyMMdd" prop="expdt">
+					<el-input v-model="form.expdt" placeholder="请输入到期日期 yyyyMMdd"/>
+				</el-form-item>
+				<el-form-item label="保证金缴纳截止日期yyyyMMdd" prop="mrgnduestopdt">
+					<el-input v-model="form.mrgnduestopdt" placeholder="请输入保证金缴纳截止日期yyyyMMdd"/>
+				</el-form-item>
+				<el-form-item label="保证金缴纳截止时间HHmmss" prop="mrgnduestoptm">
+					<el-input v-model="form.mrgnduestoptm" placeholder="请输入保证金缴纳截止时间HHmmss"/>
+				</el-form-item>
+				<el-form-item label="开标日期,yyyyMMdd" prop="opntdrdt">
+					<el-input v-model="form.opntdrdt" placeholder="请输入开标日期,yyyyMMdd"/>
+				</el-form-item>
+				<el-form-item label="开标时间,HHmmss" prop="opntdrtm">
+					<el-input v-model="form.opntdrtm" placeholder="请输入开标时间,HHmmss"/>
+				</el-form-item>
+				<el-form-item label="客户端交易的唯一标志" prop="rtnTrnuid">
+					<el-input v-model="form.rtnTrnuid" placeholder="请输入客户端交易的唯一标志"/>
+				</el-form-item>
+				<el-form-item label="处理结果码" prop="rtnCode">
+					<el-input v-model="form.rtnCode" placeholder="请输入处理结果码"/>
+				</el-form-item>
+				<el-form-item label="处理结果等级(info/warn/error)" prop="rtnSeverity">
+					<el-input v-model="form.rtnSeverity" placeholder="请输入处理结果等级(info/warn/error)"/>
+				</el-form-item>
+				<el-form-item label="处理信息描述" prop="rtnMessage">
+					<el-input v-model="form.rtnMessage" type="textarea" placeholder="请输入内容"/>
+				</el-form-item>
+				<el-form-item label="账号" prop="rtnAcctno">
+					<el-input v-model="form.rtnAcctno" placeholder="请输入账号"/>
+				</el-form-item>
+				<el-form-item label="项目编号" prop="rtnPrjno">
+					<el-input v-model="form.rtnPrjno" placeholder="请输入项目编号"/>
+				</el-form-item>
+				<el-form-item label="标段编号" prop="rtnSgtno">
+					<el-input v-model="form.rtnSgtno" placeholder="请输入标段编号"/>
+				</el-form-item>
+				<el-form-item label="标段名称" prop="rtnSgtnm">
+					<el-input v-model="form.rtnSgtnm" placeholder="请输入标段名称"/>
+				</el-form-item>
+				<el-form-item label="标段id" prop="rtnSgtid">
+					<el-input v-model="form.rtnSgtid" placeholder="请输入标段id"/>
+				</el-form-item>
+				<el-form-item label="6位子账户序号" prop="rtnSgtvrtlno">
+					<el-input v-model="form.rtnSgtvrtlno" placeholder="请输入6位子账户序号"/>
+				</el-form-item>
+				<el-form-item label="指令处理状态报文标识" prop="rtnXferprcsts">
+					<el-input v-model="form.rtnXferprcsts" placeholder="请输入指令处理状态报文标识"/>
+				</el-form-item>
+				<el-form-item label="指令状态编码" prop="rtnXferprccode">
+					<el-input v-model="form.rtnXferprccode" placeholder="请输入指令状态编码"/>
+				</el-form-item>
+				<el-form-item label="指令处理时间yyyymmdd hhmmss" prop="rtnDtxferprc">
+					<el-input v-model="form.rtnDtxferprc" placeholder="请输入指令处理时间yyyymmdd hhmmss"/>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="submitForm">确 定</el-button>
+				<el-button @click="cancel">取 消</el-button>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-import { listTenderpub, getTenderpub, delTenderpub, addTenderpub, updateTenderpub } from "@/api/bank/tenderpub";
+import {listTenderpub, getTenderpub, delTenderpub, addTenderpub, updateTenderpub, getInfo} from "@/api/bank/tenderpub";
 
 export default {
-  name: "Tenderpub",
-  data () {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 标段发布表格数据
-      tenderpubList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        ppid: null,
-        trnuid: null,
-        acctno: null,
-        ccycd: null,
-        prjno: null,
-        sgtno: null,
-        sgtnm: null,
-        sgtacctgentp: null,
-        sgtacctno: null,
-        sgttp: null,
-        intacrlflg: null,
-        secrettp: null,
-        tdracctnovrfyflg: null,
-        alwafddlntdrflg: null,
-        bnkrfndcfrmflg: null,
-        mrgnamt: null,
-        strtsgtdt: null,
-        expdt: null,
-        mrgnduestopdt: null,
-        mrgnduestoptm: null,
-        opntdrdt: null,
-        opntdrtm: null,
-        rtnTrnuid: null,
-        rtnStatus: null,
-        rtnCode: null,
-        rtnSeverity: null,
-        rtnMessage: null,
-        rtnAcctno: null,
-        rtnPrjno: null,
-        rtnSgtno: null,
-        rtnSgtnm: null,
-        rtnSgtid: null,
-        rtnSgtvrtlno: null,
-        rtnXferprcsts: null,
-        rtnXferprccode: null,
-        rtnDtxferprc: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        ppid: [
-          { required: true, message: "采购计划id不能为空", trigger: "blur" }
-        ],
-        trnuid: [
-          { required: true, message: "客户端交易的唯一流水号建议值为YYYYMMDD+序号不能为空", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  created () {
-    this.getList();
-  },
-  methods: {
-    /** 查询标段发布列表 */
-    getList () {
-      this.loading = true;
-      listTenderpub(this.queryParams).then(response => {
-        this.tenderpubList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel () {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset () {
-      this.form = {
-        tenderpubid: null,
-        ppid: null,
-        trnuid: null,
-        acctno: null,
-        ccycd: null,
-        prjno: null,
-        sgtno: null,
-        sgtnm: null,
-        sgtacctgentp: null,
-        sgtacctno: null,
-        sgttp: null,
-        intacrlflg: null,
-        secrettp: null,
-        tdracctnovrfyflg: null,
-        alwafddlntdrflg: null,
-        bnkrfndcfrmflg: null,
-        mrgnamt: null,
-        strtsgtdt: null,
-        expdt: null,
-        mrgnduestopdt: null,
-        mrgnduestoptm: null,
-        opntdrdt: null,
-        opntdrtm: null,
-        rtnTrnuid: null,
-        rtnStatus: null,
-        rtnCode: null,
-        rtnSeverity: null,
-        rtnMessage: null,
-        rtnAcctno: null,
-        rtnPrjno: null,
-        rtnSgtno: null,
-        rtnSgtnm: null,
-        rtnSgtid: null,
-        rtnSgtvrtlno: null,
-        rtnXferprcsts: null,
-        rtnXferprccode: null,
-        rtnDtxferprc: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery () {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery () {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange (selection) {
-      this.ids = selection.map(item => item.tenderpubid)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd () {
-      this.reset();
-      this.open = true;
-      this.title = "添加标段发布";
-    },
-    /** 信息查询按钮操作 */
-    handleInfoQuery (row) {
-      this.$router.push({ path: "/bank/tenderquery", query: { rtnSgtid: row.rtnSgtid } });
-    },
-    /** 修改按钮操作 */
-    handleUpdate (row) {
-      this.reset();
-      const tenderpubid = row.tenderpubid || this.ids
-      getTenderpub(tenderpubid).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改标段发布";
-      });
-    },
-    /** 提交按钮 */
-    submitForm () {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.tenderpubid != null) {
-            updateTenderpub(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addTenderpub(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete (row) {
-      const tenderpubids = row.tenderpubid || this.ids;
-      this.$modal.confirm('是否确认删除标段发布编号为"' + tenderpubids + '"的数据项?').then(function () {
-        return delTenderpub(tenderpubids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => { });
-    },
-    /** 导出按钮操作 */
-    handleExport () {
-      this.download('bank/tenderpub/export', {
-        ...this.queryParams
-      }, `tenderpub_${new Date().getTime()}.xlsx`)
-    },
-    formatDate (dateStr, timeStr) {
-      return dateStr.substring(0, 4) + "-" + dateStr.substring(4, 6) + "-" + dateStr.substring(6, 8) + " " + timeStr.substring(0, 2) + ":" + timeStr.substring(2, 4) + ":" + timeStr.substring(4, 6)
-    }
-  }
+	name: "Tenderpub",
+	data() {
+		return {
+			// 遮罩层
+			loading: true,
+			// 选中数组
+			ids: [],
+			// 非单个禁用
+			single: true,
+			// 非多个禁用
+			multiple: true,
+			// 显示搜索条件
+			showSearch: true,
+			// 总条数
+			total: 0,
+			// 标段发布表格数据
+			tenderpubList: [],
+			// 弹出层标题
+			title: "",
+			// 是否显示弹出层
+			open: false,
+			// 查询参数
+			queryParams: {
+				pageNum: 1,
+				pageSize: 10,
+				ppid: null,
+				trnuid: null,
+				acctno: null,
+				ccycd: null,
+				prjno: null,
+				sgtno: null,
+				sgtnm: null,
+				sgtacctgentp: null,
+				sgtacctno: null,
+				sgttp: null,
+				intacrlflg: null,
+				secrettp: null,
+				tdracctnovrfyflg: null,
+				alwafddlntdrflg: null,
+				bnkrfndcfrmflg: null,
+				mrgnamt: null,
+				strtsgtdt: null,
+				expdt: null,
+				mrgnduestopdt: null,
+				mrgnduestoptm: null,
+				opntdrdt: null,
+				opntdrtm: null,
+				rtnTrnuid: null,
+				rtnStatus: null,
+				rtnCode: null,
+				rtnSeverity: null,
+				rtnMessage: null,
+				rtnAcctno: null,
+				rtnPrjno: null,
+				rtnSgtno: null,
+				rtnSgtnm: null,
+				rtnSgtid: null,
+				rtnSgtvrtlno: null,
+				rtnXferprcsts: null,
+				rtnXferprccode: null,
+				rtnDtxferprc: null
+			},
+			// 表单参数
+			form: {},
+			// 表单校验
+			rules: {
+				ppid: [
+					{required: true, message: "采购计划id不能为空", trigger: "blur"}
+				],
+				trnuid: [
+					{required: true, message: "客户端交易的唯一流水号建议值为YYYYMMDD+序号不能为空", trigger: "blur"}
+				],
+			}
+		};
+	},
+	created() {
+		this.getList();
+	},
+	methods: {
+		/** 查询标段发布列表 */
+		getList() {
+			this.loading = true;
+			listTenderpub(this.queryParams).then(response => {
+				this.tenderpubList = response.rows;
+				this.total = response.total;
+				this.loading = false;
+			});
+		},
+		// 取消按钮
+		cancel() {
+			this.open = false;
+			this.reset();
+		},
+		// 表单重置
+		reset() {
+			this.form = {
+				tenderpubid: null,
+				ppid: null,
+				trnuid: null,
+				acctno: null,
+				ccycd: null,
+				prjno: null,
+				sgtno: null,
+				sgtnm: null,
+				sgtacctgentp: null,
+				sgtacctno: null,
+				sgttp: null,
+				intacrlflg: null,
+				secrettp: null,
+				tdracctnovrfyflg: null,
+				alwafddlntdrflg: null,
+				bnkrfndcfrmflg: null,
+				mrgnamt: null,
+				strtsgtdt: null,
+				expdt: null,
+				mrgnduestopdt: null,
+				mrgnduestoptm: null,
+				opntdrdt: null,
+				opntdrtm: null,
+				rtnTrnuid: null,
+				rtnStatus: null,
+				rtnCode: null,
+				rtnSeverity: null,
+				rtnMessage: null,
+				rtnAcctno: null,
+				rtnPrjno: null,
+				rtnSgtno: null,
+				rtnSgtnm: null,
+				rtnSgtid: null,
+				rtnSgtvrtlno: null,
+				rtnXferprcsts: null,
+				rtnXferprccode: null,
+				rtnDtxferprc: null
+			};
+			this.resetForm("form");
+		},
+		/** 搜索按钮操作 */
+		handleQuery() {
+			this.queryParams.pageNum = 1;
+			this.getList();
+		},
+		/** 重置按钮操作 */
+		resetQuery() {
+			this.resetForm("queryForm");
+			this.handleQuery();
+		},
+		// 多选框选中数据
+		handleSelectionChange(selection) {
+			this.ids = selection.map(item => item.tenderpubid)
+			this.single = selection.length !== 1
+			this.multiple = !selection.length
+		},
+		/** 新增按钮操作 */
+		handleAdd() {
+			this.reset();
+			this.open = true;
+			this.title = "添加标段发布";
+		},
+		/** 信息查询按钮操作 */
+		handleInfoQuery(row) {
+			this.$router.push({path: "/bank/tenderquery", query: {rtnSgtid: row.rtnSgtid}});
+		},
+		/** 查询保证金入账 */
+		getInfo(row) {
+			getInfo(row.ppid).then(response => {
+				console.log("getInfo", response.data);
+				this.$modal.msgSuccess(response.data);
+			});
+		},
+		/** 修改按钮操作 */
+		handleUpdate(row) {
+			this.reset();
+			const tenderpubid = row.tenderpubid || this.ids
+			getTenderpub(tenderpubid).then(response => {
+				this.form = response.data;
+				this.open = true;
+				this.title = "修改标段发布";
+			});
+		},
+		/** 提交按钮 */
+		submitForm() {
+			this.$refs["form"].validate(valid => {
+				if (valid) {
+					if (this.form.tenderpubid != null) {
+						updateTenderpub(this.form).then(response => {
+							this.$modal.msgSuccess("修改成功");
+							this.open = false;
+							this.getList();
+						});
+					} else {
+						addTenderpub(this.form).then(response => {
+							this.$modal.msgSuccess("新增成功");
+							this.open = false;
+							this.getList();
+						});
+					}
+				}
+			});
+		},
+		/** 删除按钮操作 */
+		handleDelete(row) {
+			const tenderpubids = row.tenderpubid || this.ids;
+			this.$modal.confirm('是否确认删除标段发布编号为"' + tenderpubids + '"的数据项?').then(function () {
+				return delTenderpub(tenderpubids);
+			}).then(() => {
+				this.getList();
+				this.$modal.msgSuccess("删除成功");
+			}).catch(() => {
+			});
+		},
+		/** 导出按钮操作 */
+		handleExport() {
+			this.download('bank/tenderpub/export', {
+				...this.queryParams
+			}, `tenderpub_${new Date().getTime()}.xlsx`)
+		},
+		formatDate(dateStr, timeStr) {
+			return dateStr.substring(0, 4) + "-" + dateStr.substring(4, 6) + "-" + dateStr.substring(6, 8) + " " + timeStr.substring(0, 2) + ":" + timeStr.substring(2, 4) + ":" + timeStr.substring(4, 6)
+		}
+	}
 };
 </script>

+ 7 - 5
ruoyi-ui/src/views/tender/tender1/bidding.vue

@@ -59,8 +59,10 @@
         <el-table-column label="供应商联系方式" prop="contactPhone" align="center" />
         <el-table-column v-if="isOverFirstTime" label="报价" prop="quotePrice" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.third ? scope.row.third : (scope.row.second ? scope.row.second : scope.row.first)
-              }}</span>
+            <span v-if="tender.sProjectState != 8">
+              {{ scope.row.third ? scope.row.third : (scope.row.second ? scope.row.second : scope.row.first) }}
+            </span>
+            <span v-else>*</span>
           </template>
         </el-table-column>
         <el-table-column v-if="isOverFirstTime" label="报价时间" prop="quoteTime" align="center">
@@ -83,7 +85,8 @@
         </el-table-column>
         <el-table-column v-if="isOverFirstTime" align="center" label="报价详情">
           <template slot-scope="scope">
-            <el-button type="text" @click="handleShowOfferDetail(scope.row)">查看报价详情</el-button>
+            <el-button type="text" @click="handleShowOfferDetail(scope.row)" 
+              :disabled="tender.sProjectState == 8">查看报价详情</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -102,8 +105,7 @@
       <el-tabs v-model="activeName4">
         <el-tab-pane v-if="plan.buyingMode != 1 && checkRole(['operator', 'commander'])" label="确定中标人"
           name="determineWin" style="font-size: 16px">
-          <el-button
-            v-if="checkRole(['operator', 'commander']) && tender && tender.sProjectState >= 3 && tender.sProjectState <= 6"
+          <el-button v-if="checkRole(['operator', 'commander']) && tender && tender.sProjectState >= 3 && tender.sProjectState <= 6"
             type="primary" @click="handleAbortiveTender" v-loading.fullscreen.lock="fullscreenLoading">流标</el-button>
           <el-button v-if="checkRole(['operator', 'commander']) && tender && tender.sProjectState == 6" type="primary"
             @click="handleReOpenBid" v-loading.fullscreen.lock="fullscreenLoading">重新开标</el-button>