This commit is contained in:
xd 2024-06-13 10:41:12 +08:00
parent 5f61c68107
commit 748302fcde
9 changed files with 159 additions and 16 deletions

View File

@ -308,6 +308,7 @@ public class QuotController extends BaseController
String roleKey = sysRole.getRoleKey();
if("PRICE_VERIFICATION".equals(roleKey)){
hjRoleFlag = true;
break;
}
}
if(!hjRoleFlag){
@ -482,14 +483,26 @@ public class QuotController extends BaseController
{
String quotJswApprovalStatus = quot.getQuotJswApprovalStatus();
if("2".equals(quotJswApprovalStatus)){//重新调点
String quotJswCode = quot.getQuotJswCode();
String returnTdJson = "{\"bjdid\":"+quotJswCode+"}";
Map<String,String> res = HttpUtils.sendPostJson("http://price.jncable.com.cn:7778/GTHINKING/AjaxService/U20231485_N_XLXSBJ/100860101.ashx/DispatchBJD",returnTdJson,"");
String returnTdResultJson = res.get("res");
QuotJswUserResult quotJswUserResult = JSON.parseObject(returnTdResultJson, QuotJswUserResult.class);
//==============================账户认证==================================
QuotJswUser quotJswUser = new QuotJswUser("JNBJPT","1q2w3e","S","");
String quotJswUserJson = JSON.toJSONString(quotJswUser);
Map<String,String> res = HttpUtils.sendPostJson("http://price.jncable.com.cn:7778/GTHINKING/AjaxService/N_MISPRO/100208057.ashx/Login",quotJswUserJson,"");
String cookie = res.get("cookie");
System.out.println("cookie======"+cookie);
String QuotJswUserResultJson = res.get("res");
QuotJswUserResult quotJswUserResult = JSON.parseObject(QuotJswUserResultJson, QuotJswUserResult.class);
if(!quotJswUserResult.getSuccess()){
return error(quotJswUserResult.getErrorMessage());
}
String quotJswCode = quot.getQuotJswCode();
String returnTdJson = "{\"bjdid\":\""+quotJswCode+"\"}";
Map<String,String> res2 = HttpUtils.sendPostJson("http://price.jncable.com.cn:7778/GTHINKING/AjaxService/U20231485_N_XLXSBJ/100860101.ashx/DispatchBJD",returnTdJson,cookie);
String returnTdResultJson = res2.get("res");
QuotJswUserResult quotJswUserResult2 = JSON.parseObject(returnTdResultJson, QuotJswUserResult.class);
if(!quotJswUserResult2.getSuccess()){
return error(quotJswUserResult2.getMessage());
}
}else{
// ==============================对接金思维接口==============================
//==============================账户认证==================================

View File

@ -193,7 +193,7 @@ public class HttpUtils
}
/**
* 向指定 URL 发送POST方法的请求
* 向指定 URL 发送POST方法的请求 - 金思维对接用
*
* @param url 发送请求的 URL
* @param param 请求参数请求参数应该是 json字符串 的形式
@ -221,8 +221,29 @@ public class HttpUtils
conn.setRequestProperty("Content-Type", "application/json");
// 设置Cookie头部
if(StringUtils.isNotEmpty(cookie)){
conn.setRequestProperty("Cookies", "cookie="+cookie);
String cookies[] = cookie.split("; ");
String cookieString = "";
for(String c:cookies){
String v[]= c.split("=");
if(".ASPXAUTH".equals(v[0])){
if(StringUtils.isEmpty(cookieString)){
cookieString = v[0] + "=" +v[1] +"; ";
}else{
cookieString = cookieString + v[0] + "=" +v[1] +"; ";
}
}else if("uid".equals(v[0])){
if(StringUtils.isEmpty(cookieString)){
cookieString = v[0] + "=" +v[1] +"; ";
}else{
cookieString = cookieString + v[0] + "=" +v[1] +"; ";
}
}else{
continue;
}
}
conn.setRequestProperty("Cookie", cookieString);
}
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
@ -280,6 +301,81 @@ public class HttpUtils
return map;
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url 发送请求的 URL
* @param param 请求参数请求参数应该是 json字符串 的形式
* @return 所代表远程资源的响应结果
*/
public static String sendPostJson2(String url, String param)
{
PrintWriter out = null;
BufferedReader in = null;
StringBuilder result = new StringBuilder();
try
{
String urlNameString = url;
log.info("sendPost - {}", urlNameString);
URL realUrl = new URL(urlNameString);
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("contentType", "application/json");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
String line;
while ((line = in.readLine()) != null)
{
result.append(line);
}
log.info("recv - {}", result);
}
catch (ConnectException e)
{
log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
}
catch (SocketTimeoutException e)
{
log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
}
catch (IOException e)
{
log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
}
catch (Exception e)
{
log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
}
finally
{
try
{
if (out != null)
{
out.close();
}
if (in != null)
{
in.close();
}
}
catch (IOException ex)
{
log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
}
}
return result.toString();
}
public static String sendSSLPost(String url, String param)
{
StringBuilder result = new StringBuilder();

View File

@ -82,6 +82,9 @@ public class Quot extends BaseEntity
/** 反馈说明 */
private String quotFeedbackExplanation;
/** 明细条数 */
private Integer quotMaterialsCount;
/** 铝价 */
private String quotLvPrice;
@ -288,6 +291,9 @@ public class Quot extends BaseEntity
{
return quotFeedbackExplanation;
}
public Integer getQuotMaterialsCount() { return quotMaterialsCount; }
public void setQuotMaterialsCount(Integer quotMaterialsCount) { this.quotMaterialsCount = quotMaterialsCount; }
public String getQuotLvPrice() { return quotLvPrice; }
public void setQuotLvPrice(String quotLvPrice) { this.quotLvPrice = quotLvPrice; }

View File

@ -6,6 +6,7 @@ package com.ruoyi.quot.domain.jsw;
public class QuotJswUserResult {
private Boolean Success;
private String ErrorMessage;
private String Message;
public Boolean getSuccess() {
return Success;
@ -22,4 +23,8 @@ public class QuotJswUserResult {
public void setErrorMessage(String errorMessage) {
ErrorMessage = errorMessage;
}
public String getMessage() { return Message; }
public void setMessage(String message) { Message = message; }
}

View File

@ -63,10 +63,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="quotHjCode != null and quotHjCode != ''"> and quot_hj_code like concat('%', #{quotHjCode}, '%')</if>
<if test="params.beginQuotHjPricingDate != null and params.beginQuotHjPricingDate != '' and params.endQuotHjPricingDate != null and params.endQuotHjPricingDate != ''"> and quot_hj_pricing_date between #{params.beginQuotHjPricingDate} and #{params.endQuotHjPricingDate}</if>
<if test="quotHjApprovalStatus != null and quotHjApprovalStatus != ''"> and q.quot_hj_approval_status = #{quotHjApprovalStatus}</if>
<!-- 数据范围过滤 -->
<!--${params.dataScope}-->
</where>
order by a.update_time desc
order by a.quot_hj_code desc
</select>
<select id="selectQuotHjByQuotHjId" parameterType="String" resultMap="QuotHjResult">

View File

@ -29,6 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="quotCheckUserName" column="quot_check_user_name" />
<result property="quotCheckUserNickname" column="quot_check_user_nickname" />
<result property="quotApprovalStatus" column="quot_approval_status" />
<result property="quotMaterialsCount" column="quot_materials_count" />
<result property="quotLvPrice" column="quot_lv_price" />
<result property="quotTongPrice" column="quot_tong_price" />
<result property="quotMatpriceDiff" column="quot_matprice_diff" />
@ -109,7 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.quot_customer_name,a.quot_salesman_dept_id, a.quot_salesman_dept_name, a.quot_address, a.quot_contacts,
a.quot_phone, a.quot_inquiry_date, a.quot_project, a.quot_quotation_date, a.quot_quotation_from,
a.quot_quotation_require, a.quot_feedback_explanation, a.quot_quantity, a.quot_total_price,
a.quot_check_user_name, u2.nick_name quot_check_user_nickname, a.quot_approval_status,
a.quot_check_user_name, u2.nick_name quot_check_user_nickname, a.quot_approval_status,a.quot_materials_count,
a.quot_lv_price,a.quot_tong_price,a.quot_matprice_diff,a.quot_print,u3.nick_name quot_print_user_name,
a.create_by, a.create_time, a.update_by, a.update_time, u.nick_name create_name,
@ -143,7 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 数据范围过滤 -->
${params.dataScope}
</where>
order by a.update_time desc
order by a.quot_code desc
</select>
<select id="selectQuotListCount" resultType="String">
@ -155,7 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.quot_salesman_dept_id, a.quot_salesman_dept_name, a.quot_address, a.quot_contacts, a.quot_phone, a.quot_inquiry_date,
a.quot_project, a.quot_quotation_date, a.quot_quotation_from, a.quot_quotation_require, a.quot_feedback_explanation,
a.quot_quantity, a.quot_total_price, a.quot_check_user_name, u2.nick_name quot_check_user_nickname, a.quot_approval_status,
a.quot_lv_price,a.quot_tong_price,a.quot_matprice_diff,a.quot_print,u3.nick_name quot_print_user_name,
a.quot_materials_count,a.quot_lv_price,a.quot_tong_price,a.quot_matprice_diff,a.quot_print,u3.nick_name quot_print_user_name,
a.create_by, a.create_time, a.update_by, a.update_time,
a.quot_jsxz_standard,a.quot_jsxz_approval_status,a.quot_jsxz_chapter,
@ -231,6 +232,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotTotalPrice != null">quot_total_price,</if>
<if test="quotCheckUserName != null">quot_check_user_name,</if>
<if test="quotApprovalStatus != null">quot_approval_status,</if>
<if test="quotMaterialsCount != null">quot_materials_count,</if>
<if test="quotLvPrice != null">quot_lv_price,</if>
<if test="quotTongPrice != null">quot_tong_price,</if>
<if test="quotMatpriceDiff != null">quot_matprice_diff,</if>
@ -278,6 +280,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotTotalPrice != null">#{quotTotalPrice},</if>
<if test="quotCheckUserName != null">#{quotCheckUserName},</if>
<if test="quotApprovalStatus != null">#{quotApprovalStatus},</if>
<if test="quotMaterialsCount != null">#{quotMaterialsCount},</if>
<if test="quotLvPrice != null">#{quotLvPrice},</if>
<if test="quotTongPrice != null">#{quotTongPrice},</if>
<if test="quotMatpriceDiff != null">#{quotMatpriceDiff},</if>
@ -374,6 +377,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quotTotalPrice != null">quot_total_price = #{quotTotalPrice},</if>
<if test="quotCheckUserName != null">quot_check_user_name = #{quotCheckUserName},</if>
<if test="quotApprovalStatus != null">quot_approval_status = #{quotApprovalStatus},</if>
<if test="quotMaterialsCount != null">quot_materials_count = #{quotMaterialsCount},</if>
<if test="quotLvPrice != null">quot_lv_price = #{quotLvPrice},</if>
<if test="quotTongPrice != null">quot_tong_price = #{quotTongPrice},</if>
<if test="quotMatpriceDiff != null">quot_matprice_diff = #{quotMatpriceDiff},</if>

View File

@ -114,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 数据范围过滤 -->
<!--${params.dataScope}-->
</where>
order by a.update_time desc
order by a.quot_jsqr_code desc
</select>
<select id="selectQuotJsqrByQuotJsqrId" parameterType="String" resultMap="QuotJsqrResult">

View File

@ -20,6 +20,16 @@
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="核价协助状态" prop="quotHjApprovalStatus">
<el-select v-model="queryParams.quotHjApprovalStatus" placeholder="请选择核价协助状态" clearable>
<el-option
v-for="dict in dict.type.quot_hj_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</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>

View File

@ -129,6 +129,9 @@
<dict-tag :options="dict.type.quot_approval_status" :value="scope.row.quotApprovalStatus"/>
</template>
</el-table-column>
<el-table-column label="业务员" align="center" prop="quotSalesmanName" width="150px"/>
<el-table-column label="客户名称" align="center" prop="quotCustomerName" width="250px"/>
<el-table-column label="项目名称" align="center" prop="quotProject" width="250px"/>
<el-table-column label="金思维报价单号" align="center" prop="quotJswCode" width="280px" v-if="checkRole(['QUOT'])"/>
<el-table-column label="是否打印" align="center" prop="quotPrint" v-if="$auth.hasPermi('quot:quot:changQuotPrintStatus')">
<template slot-scope="scope">
@ -142,9 +145,6 @@
</template>
</el-table-column>
<el-table-column label="打印人" align="center" prop="quotPrintUserName" width="150px" v-if="$auth.hasPermi('quot:quot:changQuotPrintStatus')"/>
<el-table-column label="业务员" align="center" prop="quotSalesmanName" width="150px"/>
<el-table-column label="客户名称" align="center" prop="quotCustomerName" width="250px"/>
<el-table-column label="项目名称" align="center" prop="quotProject" width="250px"/>
<el-table-column label="询价日期" align="center" prop="quotInquiryDate" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.quotInquiryDate) }}</span>
@ -343,6 +343,11 @@
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="6" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])">
<el-form-item label="明细条数" prop="quotMaterialsCount">
<el-input v-model="form.quotMaterialsCount" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="6" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])">
<el-form-item label="铜价" prop="quotTongPrice">
<el-input v-model="form.quotTongPrice" :disabled="true"/>
@ -353,7 +358,7 @@
<el-input v-model="form.quotLvPrice" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12" v-if="checkRole(['QUOT_MAT_PRICE_DIFF'])">
<el-col :span="6" v-if="checkRole(['QUOT_MAT_PRICE_DIFF'])">
<el-form-item label="整单料价价差率" prop="quotMatpriceDiff">
<el-input v-model="form.quotMatpriceDiff" :disabled="true"/>
</el-form-item>
@ -1167,6 +1172,7 @@ export default {
quotApprovalStatus: null,
quotPrintUserName: null,
quotMaterialsCount: null,
quotTongPrice: null,
quotLvPrice: null,
quotMatpriceDiff: null,
@ -1364,6 +1370,7 @@ export default {
}
this.form.quotMaterialList = this.quotMaterialList;
console.log(this.form)
commitQuot(this.form).then(response => {
this.$modal.msgSuccess("提交成功");
this.open = false;
@ -1545,6 +1552,7 @@ export default {
});
this.form.quotQuantity = sums[6];
this.form.quotTotalPrice = checkRole(['QUOT_MAT_PRICE_DIFF'])? sums[12] : sums[11];
this.form.quotMaterialsCount = data.length;
return sums;
},