Compare commits
No commits in common. "4da52cefecf30de9dac1d9c1b7d7f49c9219e72b" and "5665d2b633fcc9488ecfcdd755b75ba82eb871e0" have entirely different histories.
4da52cefec
...
5665d2b633
|
@ -1,5 +1,5 @@
|
|||
#for tests only !
|
||||
#Thu Jun 06 14:19:16 CST 2024
|
||||
#Tue Jun 04 16:46:03 CST 2024
|
||||
jco.destination.pool_capacity=10
|
||||
jco.client.lang=ZH
|
||||
jco.client.ashost=172.19.0.120
|
||||
|
@ -7,5 +7,5 @@ jco.client.saprouter=
|
|||
jco.client.user=RFC
|
||||
jco.client.sysnr=00
|
||||
jco.destination.peak_limit=10
|
||||
jco.client.passwd=fyP*^^S)mI4.TUT*}uMrHy])~sv.u}p[_7L*O}z3,^XTYYOu
|
||||
jco.client.passwd=654321
|
||||
jco.client.client=300
|
||||
|
|
|
@ -329,7 +329,7 @@ public class CustomerController extends BaseController
|
|||
@PreAuthorize("@ss.hasPermi('customer:customer:qcclist')")
|
||||
@PostMapping("/checkQccCount")
|
||||
public AjaxResult checkQccCount(){
|
||||
String qccCusCount = configService.selectConfigByKey("qcc.cus.count");
|
||||
String qccCusCount = configService.selectConfigByKey("qcc:cus:count");
|
||||
Integer searchCount = redisCache.getCacheObject(getCacheKey(getUsername()));
|
||||
if (searchCount == null){
|
||||
searchCount = 1;
|
||||
|
|
|
@ -293,7 +293,7 @@ public class QuotController extends BaseController
|
|||
public AjaxResult commitQuot(@RequestBody Quot quot)
|
||||
{
|
||||
// 每天限制提交200条
|
||||
String quotCommitCount = configService.selectConfigByKey("quot.commit.count");
|
||||
String quotCommitCount = configService.selectConfigByKey("quot:commit:count");
|
||||
String count = quotService.selectQuotListCount();
|
||||
if(Integer.valueOf(count)>=Integer.valueOf(quotCommitCount)){
|
||||
return error("当前报价量已达极限,无法继续提供报价单");
|
||||
|
@ -557,7 +557,6 @@ public class QuotController extends BaseController
|
|||
@PreAuthorize("@ss.hasPermi('quot:quot:madeQuot')")
|
||||
public void madeQuot(HttpServletResponse response, @RequestBody Quot quot)
|
||||
{
|
||||
quotService.updateQuot(quot);
|
||||
List<QuotMaterial> list = quot.getQuotMaterialList();
|
||||
excelUtil.exportQuotExcel(response,quot,list);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.ruoyi.quartz.task;
|
||||
|
||||
import com.ruoyi.common.constant.CacheConstants;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.core.redis.RedisLock;
|
||||
import com.ruoyi.quartz.domain.OASysQuot;
|
||||
|
@ -12,12 +11,12 @@ import javax.annotation.Resource;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 定时任务调度-报价单OA流程状态读取
|
||||
* 定时任务调度-同步红本数据库
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component("quotTask")
|
||||
public class QuotTask
|
||||
@Component("OAQuotTask")
|
||||
public class OAQuotTask
|
||||
{
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
@ -28,7 +27,7 @@ public class QuotTask
|
|||
@Resource
|
||||
private OAQuotService quotService;
|
||||
|
||||
public static QuotTask testUtils;
|
||||
public static OAQuotTask testUtils;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
|
@ -40,7 +39,7 @@ public class QuotTask
|
|||
*/
|
||||
public void OAQuot() throws Exception {
|
||||
|
||||
Boolean lock= redisLock.getLock(getJobKey("OAQuotTaskLock"), 120, "OAQuotTask");
|
||||
Boolean lock= redisLock.getLock("OAQuotTask", -1, "1");
|
||||
if(lock){
|
||||
try{
|
||||
// 查询 报价单-OA审批状态为审批中的单号,并且在中间表显示流程已经结束的单据,根据单号更新 OA审批状态
|
||||
|
@ -51,20 +50,10 @@ public class QuotTask
|
|||
//将中间表 根据报价单号更新 isfinish=1 表示报价流程已结束
|
||||
quotService.updateOAQuotByQuotCode(sysoaquot.getQuotCode());
|
||||
}
|
||||
redisCache.deleteObject("OAQuotTask");
|
||||
}catch (Exception e) {
|
||||
throw new Exception(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时任务缓存键名
|
||||
*
|
||||
* @param jobId 任务编号
|
||||
* @return 缓存键key
|
||||
*/
|
||||
private String getJobKey(String jobId)
|
||||
{
|
||||
return CacheConstants.SYS_JOB_KEY + jobId;
|
||||
}
|
||||
}
|
|
@ -54,7 +54,7 @@ public class RbTask
|
|||
public void tongb() throws Exception {
|
||||
|
||||
String rbVersionUid = testUtils.sapTjService.selRbVersionUid();//红本调价记录uid
|
||||
Boolean lock= redisLock.getLock(getJobKey("rbTask"), 480, "rbTask");
|
||||
Boolean lock= redisLock.getLock(getJobKey("rbTask"), -1, rbVersionUid);
|
||||
if(lock){
|
||||
//判断是否已执行调价 (6.3 redbook rb_productVersion 是否有新增uid and sta='1'、sdmdm1 调价日期今日的数据是否存在)
|
||||
String locVersionUid = testUtils.sapTjService.selLocVersionUid();//本地红本调价记录uid
|
||||
|
|
|
@ -0,0 +1,192 @@
|
|||
package com.ruoyi.quot.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 报价单-产品对象 SysOaQuotMaterial
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-04-01
|
||||
*/
|
||||
public class SysOaQuotMaterial extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 产品ID */
|
||||
private String matId;
|
||||
|
||||
/** 型号 */
|
||||
private String matXingh;
|
||||
|
||||
/** 规格 */
|
||||
private String matGuig;
|
||||
|
||||
/** 电压 */
|
||||
private String matDiany;
|
||||
|
||||
/** 标准 */
|
||||
private String matStandard;
|
||||
|
||||
/** 单位 */
|
||||
private String matDanw;
|
||||
|
||||
/** 数量 */
|
||||
private BigDecimal matSl;
|
||||
|
||||
/** 备注 */
|
||||
private String matRemark;
|
||||
|
||||
/** 料价 */
|
||||
private BigDecimal matMatprice;
|
||||
|
||||
/** 红本价 */
|
||||
private BigDecimal matPrice;
|
||||
|
||||
/** 报价 */
|
||||
private BigDecimal matQuotPrice;
|
||||
|
||||
/** 报价金额 */
|
||||
private BigDecimal matQuotAllPrice;
|
||||
|
||||
/** 料价价差率 */
|
||||
private BigDecimal matMatpriceDiff;
|
||||
|
||||
/** 序号 */
|
||||
private Integer xh;//序号
|
||||
/** 行号 */
|
||||
private Integer index;//行号
|
||||
|
||||
/** 报价单ID */
|
||||
private String quotId;
|
||||
|
||||
public String getMatId() {
|
||||
return matId;
|
||||
}
|
||||
|
||||
public void setMatId(String matId) {
|
||||
this.matId = matId;
|
||||
}
|
||||
|
||||
public String getMatXingh() {
|
||||
return matXingh;
|
||||
}
|
||||
|
||||
public void setMatXingh(String matXingh) {
|
||||
this.matXingh = matXingh;
|
||||
}
|
||||
|
||||
public String getMatGuig() {
|
||||
return matGuig;
|
||||
}
|
||||
|
||||
public void setMatGuig(String matGuig) {
|
||||
this.matGuig = matGuig;
|
||||
}
|
||||
|
||||
public String getMatDiany() {
|
||||
return matDiany;
|
||||
}
|
||||
|
||||
public void setMatDiany(String matDiany) {
|
||||
this.matDiany = matDiany;
|
||||
}
|
||||
|
||||
public String getMatStandard() {
|
||||
return matStandard;
|
||||
}
|
||||
|
||||
public void setMatStandard(String matStandard) {
|
||||
this.matStandard = matStandard;
|
||||
}
|
||||
|
||||
public String getMatDanw() {
|
||||
return matDanw;
|
||||
}
|
||||
|
||||
public void setMatDanw(String matDanw) {
|
||||
this.matDanw = matDanw;
|
||||
}
|
||||
|
||||
public BigDecimal getMatSl() {
|
||||
return matSl;
|
||||
}
|
||||
|
||||
public void setMatSl(BigDecimal matSl) {
|
||||
this.matSl = matSl;
|
||||
}
|
||||
|
||||
public String getMatRemark() {
|
||||
return matRemark;
|
||||
}
|
||||
|
||||
public void setMatRemark(String matRemark) {
|
||||
this.matRemark = matRemark;
|
||||
}
|
||||
|
||||
public BigDecimal getMatMatprice() {
|
||||
return matMatprice;
|
||||
}
|
||||
|
||||
public void setMatMatprice(BigDecimal matMatprice) {
|
||||
this.matMatprice = matMatprice;
|
||||
}
|
||||
|
||||
public BigDecimal getMatPrice() {
|
||||
return matPrice;
|
||||
}
|
||||
|
||||
public void setMatPrice(BigDecimal matPrice) {
|
||||
this.matPrice = matPrice;
|
||||
}
|
||||
|
||||
public BigDecimal getMatQuotPrice() {
|
||||
return matQuotPrice;
|
||||
}
|
||||
|
||||
public void setMatQuotPrice(BigDecimal matQuotPrice) {
|
||||
this.matQuotPrice = matQuotPrice;
|
||||
}
|
||||
|
||||
public BigDecimal getMatQuotAllPrice() {
|
||||
return matQuotAllPrice;
|
||||
}
|
||||
|
||||
public void setMatQuotAllPrice(BigDecimal matQuotAllPrice) {
|
||||
this.matQuotAllPrice = matQuotAllPrice;
|
||||
}
|
||||
|
||||
public BigDecimal getMatMatpriceDiff() {
|
||||
return matMatpriceDiff;
|
||||
}
|
||||
|
||||
public void setMatMatpriceDiff(BigDecimal matMatpriceDiff) {
|
||||
this.matMatpriceDiff = matMatpriceDiff;
|
||||
}
|
||||
|
||||
public Integer getXh() {
|
||||
return xh;
|
||||
}
|
||||
|
||||
public void setXh(Integer xh) {
|
||||
this.xh = xh;
|
||||
}
|
||||
|
||||
public Integer getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
public void setIndex(Integer index) {
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String getQuotId() {
|
||||
return quotId;
|
||||
}
|
||||
|
||||
public void setQuotId(String quotId) {
|
||||
this.quotId = quotId;
|
||||
}
|
||||
}
|
|
@ -16,7 +16,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="quotSalesmanDeptId" column="quot_salesman_dept_id" />
|
||||
<result property="quotSalesmanDeptName" column="quot_salesman_dept_name" />
|
||||
<result property="quotAddress" column="quot_address" />
|
||||
<result property="quotContacts" column="quot_contacts" />
|
||||
<result property="quotPhone" column="quot_phone" />
|
||||
<result property="quotInquiryDate" column="quot_inquiry_date" />
|
||||
<result property="quotProject" column="quot_project" />
|
||||
|
@ -106,7 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<sql id="selectQuotVo">
|
||||
select a.quot_id, a.quot_code,a.quot_jsw_code, a.quot_salesman_code, a.quot_salesman_bm, a.quot_salesman_name, a.quot_customer_bm,
|
||||
a.quot_customer_name,a.quot_salesman_dept_id, a.quot_salesman_dept_name, a.quot_address, a.quot_contacts,
|
||||
a.quot_customer_name,a.quot_salesman_dept_id, a.quot_salesman_dept_name, a.quot_address,
|
||||
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,
|
||||
|
@ -151,7 +150,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="selectQuotByQuotId" parameterType="String" resultMap="QuotQuotMaterialResult">
|
||||
select a.quot_id, a.quot_code,a.quot_jsw_code, a.quot_salesman_code, a.quot_salesman_bm, a.quot_salesman_name, a.quot_customer_bm,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_salesman_dept_id, a.quot_salesman_dept_name, a.quot_address, 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,
|
||||
|
@ -218,7 +217,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotSalesmanDeptId != null">quot_salesman_dept_id,</if>
|
||||
<if test="quotSalesmanDeptName != null">quot_salesman_dept_name,</if>
|
||||
<if test="quotAddress != null">quot_address,</if>
|
||||
<if test="quotContacts != null">quot_contacts,</if>
|
||||
<if test="quotPhone != null">quot_phone,</if>
|
||||
<if test="quotInquiryDate != null">quot_inquiry_date,</if>
|
||||
<if test="quotProject != null and quotProject != ''">quot_project,</if>
|
||||
|
@ -265,7 +263,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotSalesmanDeptId != null">#{quotSalesmanDeptId},</if>
|
||||
<if test="quotSalesmanDeptName != null">#{quotSalesmanDeptName},</if>
|
||||
<if test="quotAddress != null">#{quotAddress},</if>
|
||||
<if test="quotContacts != null">#{quotContacts},</if>
|
||||
<if test="quotPhone != null">#{quotPhone},</if>
|
||||
<if test="quotInquiryDate != null">#{quotInquiryDate},</if>
|
||||
<if test="quotProject != null and quotProject != ''">#{quotProject},</if>
|
||||
|
@ -361,7 +358,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="quotSalesmanDeptId != null">quot_salesman_dept_id = #{quotSalesmanDeptId},</if>
|
||||
<if test="quotSalesmanDeptName != null">quot_salesman_dept_name = #{quotSalesmanDeptName},</if>
|
||||
<if test="quotAddress != null">quot_address = #{quotAddress},</if>
|
||||
<if test="quotContacts != null">quot_contacts = #{quotContacts},</if>
|
||||
<if test="quotPhone != null">quot_phone = #{quotPhone},</if>
|
||||
<if test="quotInquiryDate != null">quot_inquiry_date = #{quotInquiryDate},</if>
|
||||
<if test="quotProject != null and quotProject != ''">quot_project = #{quotProject},</if>
|
||||
|
|
|
@ -148,22 +148,22 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="数量" align="center" prop="quotQuantity" width="100"/>
|
||||
<el-table-column label="反馈说明" align="center" prop="quotFeedbackExplanation" width="150px"/>
|
||||
<el-table-column label="金思维提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<el-table-column label="金思维提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_jsw_approval_status" :value="scope.row.quotJswApprovalStatus" v-if="scope.row.quotJswApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="OA提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<el-table-column label="OA提交状态" align="center" prop="quotJsxzApprovalStatus" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_oa_approval_status" :value="scope.row.quotOAApprovalStatus" v-if="scope.row.quotOAApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="技术协助状态" align="center" prop="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<el-table-column label="技术协助状态" align="center" prop="quotJsxzApprovalStatus" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_jsxz_approval_status" :value="scope.row.quotJsxzApprovalStatus" v-if="scope.row.quotJsxzApprovalStatus!=0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="核价协助状态" align="center" prop="quotHjApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
||||
<el-table-column label="核价协助状态" align="center" prop="quotHjApprovalStatus" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.quot_hj_approval_status" :value="scope.row.quotHjApprovalStatus" v-if="scope.row.quotHjApprovalStatus!=0"/>
|
||||
</template>
|
||||
|
@ -370,7 +370,7 @@
|
|||
<el-divider content-position="left" class="customer_divider_text">反馈附件</el-divider>
|
||||
<div v-hasPermi="['quot:quot:quotFkFile']" >
|
||||
<el-upload class="upload-demo"
|
||||
ref="quotFkFileUpload"
|
||||
ref="upload"
|
||||
name="quotFile"
|
||||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
|
@ -481,7 +481,7 @@
|
|||
<el-divider content-position="left" class="customer_divider_text">清单附件(先保存再上传且必须是EXCEL文件)</el-divider>
|
||||
<div v-hasPermi="['quot:quot:quotXjFile']">
|
||||
<el-upload class="upload-demo"
|
||||
ref="quotXjFileUpload"
|
||||
ref="upload"
|
||||
name="quotFile"
|
||||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
|
@ -517,7 +517,7 @@
|
|||
<el-divider content-position="left" class="customer_divider_text">技术附件(先保存再上传)</el-divider>
|
||||
<div v-hasPermi="['quot:quot:quotJsgfFile']">
|
||||
<el-upload class="upload-demo"
|
||||
ref="quotJsgfFileUpload"
|
||||
ref="upload"
|
||||
name="quotFile"
|
||||
:action="uploadUrl"
|
||||
:headers="headers"
|
||||
|
@ -1563,7 +1563,6 @@ export default {
|
|||
},
|
||||
//获取报价单-技术规范附件列表
|
||||
getQuotJsgfFileList(){
|
||||
console.log(this.form.quotId)
|
||||
const param = {relationId:this.form.quotId,fileType:'quotJsgfFile'}
|
||||
quotFileList(param).then(response => {
|
||||
this.quotJsgfFileList = response.rows;
|
||||
|
@ -1637,14 +1636,8 @@ export default {
|
|||
}
|
||||
} else {
|
||||
this.$modal.msgError(res.msg);
|
||||
if(activeName=='quotXjFile'){
|
||||
this.$refs.quotXjFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}else if(activeName=='quotJsgfFile'){
|
||||
this.$refs.quotJsgfFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}else if(activeName=='quotFkFile'){
|
||||
this.$refs.quotFkFileUpload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
}
|
||||
}
|
||||
this.$refs.upload.clearFiles(); //上传成功之后清除历史记录**加粗样式**
|
||||
},
|
||||
|
||||
//下载附件
|
||||
|
@ -1655,12 +1648,10 @@ export default {
|
|||
//删除附件
|
||||
deleteFile(fileId,activeName){
|
||||
//let activeName = this.activeName;
|
||||
console.log(fileId)
|
||||
console.log(activeName)
|
||||
quotFileDelete(fileId).then(response => {
|
||||
if(activeName=='quotXjFile'){
|
||||
this.getQuotXjFileList();
|
||||
}else if(activeName=='quotJsgfFile'){
|
||||
}else if(activeName=='quotJsgfInfo'){
|
||||
this.getQuotJsgfFileList();
|
||||
}else if(activeName=='quotFkFile'){
|
||||
this.getQuotFkFileList();
|
||||
|
|
|
@ -993,9 +993,8 @@
|
|||
param.quotJsxzGroup = quotJsxzGroup;//组名
|
||||
param.type = type;//操作人、审核人、组长
|
||||
param.state = state;//通过/驳回
|
||||
param.fileNum = quotJsxzGroup=='TL'?this.quotJsqrTlFileNum:quotJsxzGroup=='Dy'?this.quotJsqrDyFileNum:quotJsxzGroup=='Zy'?this.quotJsqrZyFileNum:this.quotJsqrQtFileNum;//反馈附件数
|
||||
|
||||
param.fileNum = quotJsxzGroup=='TL'?this.quotJsqrTlFileNum:(quotJsxzGroup=='DY'?this.quotJsqrDyFileNum:(quotJsxzGroup=='ZY'?this.quotJsqrZyFileNum:this.quotJsqrQtFileNum));//反馈附件数
|
||||
console.log(param.fileNum)
|
||||
param.quotJsqrTlRemark = this.form.quotJsqrTlRemark;
|
||||
param.quotJsqrTlCheckRemark = this.form.quotJsqrTlCheckRemark;
|
||||
param.quotJsqrTlLeaderRemark = this.form.quotJsqrTlLeaderRemark;
|
||||
|
|
Loading…
Reference in New Issue