'111222'
This commit is contained in:
parent
61e74d35c8
commit
185ef59172
|
@ -813,6 +813,7 @@ public class QuotController extends BaseController
|
|||
sysOaQuot.setQuotTongPrice(quot.getQuotTongPrice());
|
||||
sysOaQuot.setQuotMatpriceDiff(quot.getQuotMatpriceDiff());
|
||||
sysOaQuot.setQuotMatpriceDiff2(quot.getQuotMatpriceDiff2());
|
||||
sysOaQuot.setQuotBjyRemark(quot.getQuotBjyRemark());
|
||||
|
||||
// 上传反馈清单
|
||||
QuotFile quotFile = new QuotFile();
|
||||
|
|
|
@ -134,7 +134,8 @@ public class Quot extends BaseEntity
|
|||
/** 报价单区分(1:报价生成询价单-传明细 2:创建询价单-传附件) */
|
||||
private String quotDistinguish;
|
||||
|
||||
|
||||
/** 报价员备注 */
|
||||
private String quotBjyRemark;
|
||||
|
||||
/** 技术协助 */
|
||||
private String quotJsxzStandard;//技术协助-标准
|
||||
|
@ -391,11 +392,12 @@ public class Quot extends BaseEntity
|
|||
public String getQuotHandle() { return quotHandle; }
|
||||
|
||||
public void setQuotHandle(String quotHandle) { this.quotHandle = quotHandle; }
|
||||
|
||||
public String getQuotDistinguish() {return quotDistinguish;}
|
||||
|
||||
public void setQuotDistinguish(String quotDistinguish) {this.quotDistinguish = quotDistinguish;}
|
||||
public String getQuotBjyRemark() { return quotBjyRemark; }
|
||||
|
||||
public void setQuotBjyRemark(String quotBjyRemark) { this.quotBjyRemark = quotBjyRemark; }
|
||||
public List<QuotMaterial> getQuotMaterialList() { return quotMaterialList; }
|
||||
|
||||
public void setQuotMaterialList(List<QuotMaterial> quotMaterialList)
|
||||
|
|
|
@ -0,0 +1,138 @@
|
|||
package com.ruoyi.quot.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 报价对象 quot
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-01
|
||||
*/
|
||||
public class QuotSecDiff extends BaseEntity
|
||||
{
|
||||
private String quotCode;
|
||||
|
||||
/** 业务员 */
|
||||
private String quotSalesmanName;
|
||||
|
||||
/** 客户名称 */
|
||||
private String quotCustomerName;
|
||||
|
||||
/** 询价日期 */
|
||||
private Date quotInquiryDate;
|
||||
|
||||
/** 项目名称 */
|
||||
private String quotProject;
|
||||
|
||||
/** 报价日期 */
|
||||
private Date quotQuotationDate;
|
||||
|
||||
/** 明细条数 */
|
||||
private Integer quotMaterialsCount;
|
||||
|
||||
/** 总价 */
|
||||
private String quotTotalPrice;
|
||||
|
||||
/** 审核人 */
|
||||
private String quotCheckUserNickname;
|
||||
|
||||
/** 创建人 */
|
||||
private String createName;
|
||||
|
||||
/** 处理时间 */
|
||||
private String secDiff;
|
||||
|
||||
public String getQuotCode() {
|
||||
return quotCode;
|
||||
}
|
||||
|
||||
public void setQuotCode(String quotCode) {
|
||||
this.quotCode = quotCode;
|
||||
}
|
||||
|
||||
public String getQuotSalesmanName() {
|
||||
return quotSalesmanName;
|
||||
}
|
||||
|
||||
public void setQuotSalesmanName(String quotSalesmanName) {
|
||||
this.quotSalesmanName = quotSalesmanName;
|
||||
}
|
||||
|
||||
public String getQuotCustomerName() {
|
||||
return quotCustomerName;
|
||||
}
|
||||
|
||||
public void setQuotCustomerName(String quotCustomerName) {
|
||||
this.quotCustomerName = quotCustomerName;
|
||||
}
|
||||
|
||||
public Date getQuotInquiryDate() {
|
||||
return quotInquiryDate;
|
||||
}
|
||||
|
||||
public void setQuotInquiryDate(Date quotInquiryDate) {
|
||||
this.quotInquiryDate = quotInquiryDate;
|
||||
}
|
||||
|
||||
public String getQuotProject() {
|
||||
return quotProject;
|
||||
}
|
||||
|
||||
public void setQuotProject(String quotProject) {
|
||||
this.quotProject = quotProject;
|
||||
}
|
||||
|
||||
public Date getQuotQuotationDate() {
|
||||
return quotQuotationDate;
|
||||
}
|
||||
|
||||
public void setQuotQuotationDate(Date quotQuotationDate) {
|
||||
this.quotQuotationDate = quotQuotationDate;
|
||||
}
|
||||
|
||||
public Integer getQuotMaterialsCount() {
|
||||
return quotMaterialsCount;
|
||||
}
|
||||
|
||||
public void setQuotMaterialsCount(Integer quotMaterialsCount) {
|
||||
this.quotMaterialsCount = quotMaterialsCount;
|
||||
}
|
||||
|
||||
public String getQuotTotalPrice() {
|
||||
return quotTotalPrice;
|
||||
}
|
||||
|
||||
public void setQuotTotalPrice(String quotTotalPrice) {
|
||||
this.quotTotalPrice = quotTotalPrice;
|
||||
}
|
||||
|
||||
public String getQuotCheckUserNickname() {
|
||||
return quotCheckUserNickname;
|
||||
}
|
||||
|
||||
public void setQuotCheckUserNickname(String quotCheckUserNickname) {
|
||||
this.quotCheckUserNickname = quotCheckUserNickname;
|
||||
}
|
||||
|
||||
public String getCreateName() {
|
||||
return createName;
|
||||
}
|
||||
|
||||
public void setCreateName(String createName) {
|
||||
this.createName = createName;
|
||||
}
|
||||
|
||||
public String getSecDiff() {
|
||||
BigDecimal value = new BigDecimal(secDiff);
|
||||
BigDecimal noZeros = value.stripTrailingZeros();
|
||||
String result = noZeros.toPlainString();
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setSecDiff(String secDiff) {
|
||||
this.secDiff = secDiff;
|
||||
}
|
||||
}
|
|
@ -69,6 +69,9 @@ public class SysOaQuot extends BaseEntity
|
|||
/** 总价 */
|
||||
private String quotTotalPrice;
|
||||
|
||||
/** 报价员备注 */
|
||||
private String quotBjyRemark;
|
||||
|
||||
/** OA审批状态 */
|
||||
private String state;
|
||||
|
||||
|
@ -211,6 +214,10 @@ public class SysOaQuot extends BaseEntity
|
|||
|
||||
public void setQuotTotalPrice(String quotTotalPrice) { this.quotTotalPrice = quotTotalPrice; }
|
||||
|
||||
public String getQuotBjyRemark() { return quotBjyRemark; }
|
||||
|
||||
public void setQuotBjyRemark(String quotBjyRemark) { this.quotBjyRemark = quotBjyRemark; }
|
||||
|
||||
public String getState() { return state; }
|
||||
|
||||
public void setState(String state) { this.state = state; }
|
||||
|
|
|
@ -48,6 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="updateTime" column="update_time" />
|
||||
<result property="quotHandle" column="quot_handle" />
|
||||
<result property="quotDistinguish" column="quot_distinguish" />
|
||||
<result property="quotBjyRemark" column="quot_bjy_remark" />
|
||||
|
||||
<result property="quotJsxzStandard" column="quot_jsxz_standard" />
|
||||
<result property="quotJsxzApprovalStatus" column="quot_jsxz_approval_status" />
|
||||
|
@ -122,7 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
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_jsw_check_user_nickname,a.quot_bzr_user_nickname, a.quot_approval_status,a.quot_materials_count,a.quot_rbDateUid,
|
||||
a.quot_lv_price,a.quot_tong_price,a.quot_matprice_diff,a.quot_matprice_diff2,a.quot_print,a.quot_print_user_name,u3.nick_name quot_print_user_nickName,
|
||||
a.create_by, a.create_time, a.update_by, a.update_time, u.nick_name create_name,a.quot_handle,a.quot_distinguish,
|
||||
a.create_by, a.create_time, a.update_by, a.update_time, u.nick_name create_name,a.quot_handle,a.quot_distinguish,a.quot_bjy_remark,
|
||||
|
||||
a.quot_jsxz_standard,a.quot_jsxz_approval_status,a.quot_jsxz_chapter,
|
||||
a.quot_jsxz_technical_requirement,a.quot_jsxz_group_values,a.quot_jsxz_confirm_id,
|
||||
|
@ -260,6 +261,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotPrint != null and quotPrint != ''">quot_print,</if>
|
||||
<if test="quotPrintUserName != null and quotPrintUserName != ''">quot_print_user_name,</if>
|
||||
<if test="quotDistinguish != null and quotDistinguish != ''">quot_distinguish,</if>
|
||||
<if test="quotBjyRemark != null and quotBjyRemark != ''">quot_bjy_remark,</if>
|
||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by,</if>
|
||||
|
@ -311,6 +313,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotPrint != null and quotPrint != ''">#{quotPrint},</if>
|
||||
<if test="quotPrintUserName != null and quotPrintUserName != ''">#{quotPrintUserName},</if>
|
||||
<if test="quotDistinguish != null and quotDistinguish != ''">#{quotDistinguish},</if>
|
||||
<if test="quotBjyRemark != null and quotBjyRemark != ''">#{quotBjyRemark},</if>
|
||||
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
|
||||
|
@ -356,6 +359,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotMatpriceDiff2 != null and quotMatpriceDiff2 != ''">quot_matprice_diff2,</if>
|
||||
<if test="quotFkFile != null and quotFkFile != ''">quot_fk_file,</if>
|
||||
<if test="quotTotalPrice != null and quotTotalPrice != ''">quot_total_price,</if>
|
||||
<if test="quotBjyRemark != null and quotBjyRemark != ''">quot_bjy_remark,</if>
|
||||
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="isFinish != null and isFinish != ''">isFinish,</if>
|
||||
|
@ -379,6 +383,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotMatpriceDiff2 != null and quotMatpriceDiff2 != ''">#{quotMatpriceDiff2},</if>
|
||||
<if test="quotFkFile != null and quotFkFile != ''">#{quotFkFile},</if>
|
||||
<if test="quotTotalPrice != null and quotTotalPrice != ''">#{quotTotalPrice},</if>
|
||||
<if test="quotBjyRemark != null and quotBjyRemark != ''">#{quotBjyRemark},</if>
|
||||
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="isFinish != null and isFinish != ''">#{isFinish},</if>
|
||||
|
@ -420,6 +425,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotPrintUserName != null and quotPrintUserName != ''">quot_print_user_name = #{quotPrintUserName},</if>
|
||||
<if test="quotJswCheckUserNickname != null and quotJswCheckUserNickname != ''">quot_jsw_check_user_nickname = #{quotJswCheckUserNickname},</if>
|
||||
<if test="quotBzrUserNickname != null and quotBzrUserNickname != ''">quot_bzr_user_nickname = #{quotBzrUserNickname},</if>
|
||||
<if test="quotBjyRemark != null and quotBjyRemark != ''">quot_bjy_remark = #{quotBjyRemark},</if>
|
||||
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||
|
@ -547,8 +553,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
|
||||
|
||||
<select id="selectStatisticsQuotList" parameterType="Quot" resultMap="QuotResult">
|
||||
<include refid="selectQuotVo"/>
|
||||
<select id="selectStatisticsQuotList" parameterType="Quot" resultType="QuotSecDiff">
|
||||
<!--<include refid="selectQuotVo"/>
|
||||
<where>
|
||||
<if test="quotCode != null and quotCode != ''"> and quot_code like concat('%', #{quotCode}, '%')</if>
|
||||
<if test="quotCustomerName != null and quotCustomerName != ''"> and quot_customer_name like concat('%', #{quotCustomerName}, '%')</if>
|
||||
<if test="quotProject != null and quotProject != ''"> and quot_project like concat('%', #{quotProject}, '%')</if>
|
||||
<if test="quotSalesmanName != null and quotSalesmanName != ''"> and quot_salesman_name like concat('%', #{quotSalesmanName}, '%')</if>
|
||||
<if test="params.beginTime != null and params.beginTime != ''"><!– 开始时间检索 –>
|
||||
and datediff(d, a.quot_quotation_date, #{params.beginTime}) <![CDATA[<=]]> 0
|
||||
</if>
|
||||
<if test="params.endTime != null and params.endTime != ''"><!– 结束时间检索 –>
|
||||
and datediff(d, a.quot_quotation_date, #{params.endTime}) <![CDATA[>=]]> 0
|
||||
</if>
|
||||
and (a.quot_approval_status = '2' or (a.quot_approval_status = '3' and a.quot_oa_approval_status = '3'))
|
||||
</where>
|
||||
order by a.quot_quotation_date desc-->
|
||||
|
||||
|
||||
select a.quot_code quotCode,a.quot_salesman_name quotSalesmanName,a.quot_customer_name quotCustomerName,
|
||||
a.quot_project quotProject, a.quot_materials_count quotMaterialsCount,
|
||||
a.quot_total_price quotTotalPrice,a.quot_inquiry_date quotInquiryDate,a.quot_quotation_date quotQuotationDate,
|
||||
a.quot_check_user_nickname quotCheckUserNickname,
|
||||
a.create_name createName,a.create_time createTime,
|
||||
|
||||
ROUND(
|
||||
<!--询价时间不超过11:30 并且 报价时间超过13:00 报价时间-询价时间-1.5h-->
|
||||
(case when a.dayDiff = 0 and a.secDiff1 <![CDATA[>=]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff1+a.secDiff2
|
||||
<!--询价时间超过11:30 并且 不超过13:00 并且 报价时间超过13:00 报价时间-1点-->
|
||||
when a.dayDiff = 0 and a.secDiff1 <![CDATA[<]]> 0 and a.secDiff3 <![CDATA[<]]> 0 and a.secDiff2 <![CDATA[>=]]> 0 then a.secDiff2
|
||||
<!--报价时间不超过11:30 报价时间-询价时间*//**询价时间超过13:00 报价时间-询价时间-->
|
||||
when a.dayDiff = 0 then a.secDiff
|
||||
<!--跨一天 减14个小时-->
|
||||
when a.dayDiff = 1 then a.secDiff-14*3600
|
||||
<!--跨n,n>1天 减(n-1)*24个小时-->
|
||||
when a.dayDiff > 1 then a.secDiff-(a.dayDiff-1)*24*3600
|
||||
else 0 end) / 3600.00, 2) secDiff
|
||||
FROM (
|
||||
select a.quot_code,a.quot_salesman_name,a.quot_customer_name,a.quot_project, a.quot_materials_count,
|
||||
a.quot_total_price,a.quot_inquiry_date,a.quot_quotation_date,u2.nick_name quot_check_user_nickname,
|
||||
u.nick_name create_name,a.create_time,
|
||||
<!--询价时间与11:30的差值-->
|
||||
datediff(second,quot_inquiry_date,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '11:30:00')) secDiff1,
|
||||
<!--报价时间与13:00的差值-->
|
||||
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_quotation_date,111) + ' ' + '13:00:00'),quot_quotation_date) secDiff2,
|
||||
<!--询价时间与13:00的差值-->
|
||||
datediff(second,CONVERT(DATETIME, CONVERT(VARCHAR(10),quot_inquiry_date,111) + ' ' + '13:00:00'),quot_inquiry_date) secDiff3,
|
||||
datediff(day,quot_inquiry_date,quot_quotation_date) dayDiff,
|
||||
datediff(second,quot_inquiry_date,quot_quotation_date) secDiff
|
||||
from quot a
|
||||
left join sys_user u on u.user_name=a.create_by
|
||||
left join sys_user u2 on u2.user_name=a.quot_check_user_name
|
||||
|
||||
<where>
|
||||
<if test="quotCode != null and quotCode != ''"> and quot_code like concat('%', #{quotCode}, '%')</if>
|
||||
<if test="quotCustomerName != null and quotCustomerName != ''"> and quot_customer_name like concat('%', #{quotCustomerName}, '%')</if>
|
||||
|
@ -562,6 +618,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</if>
|
||||
and (a.quot_approval_status = '2' or (a.quot_approval_status = '3' and a.quot_oa_approval_status = '3'))
|
||||
</where>
|
||||
)a
|
||||
order by a.quot_quotation_date desc
|
||||
</select>
|
||||
|
||||
|
|
|
@ -426,7 +426,14 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','SALES_MAN','HTB_QUOT'])">
|
||||
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','HTB_QUOT','admin'])">
|
||||
<el-col :span="24" v-if="this.form.quotApprovalStatus != '0' && this.form.quotApprovalStatus != null">
|
||||
<el-form-item label="报价员备注" prop="quotBjyRemark">
|
||||
<el-input type="textarea" autosize v-model="form.quotBjyRemark" placeholder="报价组填写" :disabled="this.form.quotApprovalStatus == 2 || this.form.quotApprovalStatus == 3"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','SALES_MAN','HTB_QUOT','admin'])">
|
||||
<el-col :span="14" v-if="this.form.quotApprovalStatus != '0' && this.form.quotApprovalStatus != null">
|
||||
<el-form-item label="反馈说明" prop="quotFeedbackExplanation">
|
||||
<el-input type="textarea" style="width:80%" autosize v-model="form.quotFeedbackExplanation" placeholder="报价组填写" :disabled="this.form.quotApprovalStatus == 2 || this.form.quotApprovalStatus == 3"/>
|
||||
|
@ -439,7 +446,6 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider content-position="left" class="customer_divider_text">清单附件(先保存再上传且必须是EXCEL文件)</el-divider>
|
||||
<div v-hasPermi="['quot:quot:quotXjFile']">
|
||||
<el-row :gutter="10" class="mb8">
|
||||
|
@ -1291,6 +1297,7 @@ export default {
|
|||
quotQuotationRequire: null,
|
||||
quotFeedbackExplanation: null,
|
||||
quotOAApprovalStatusRemark: null,
|
||||
quotBjyRemark: null,
|
||||
quotApprovalStatus: null,
|
||||
|
||||
quotPrintUserName: null,
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理时长(小时)" align="center" prop="secDiff" width="150px"/>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
|
Loading…
Reference in New Issue