Compare commits

..

No commits in common. "4da52cefecf30de9dac1d9c1b7d7f49c9219e72b" and "5665d2b633fcc9488ecfcdd755b75ba82eb871e0" have entirely different histories.

9 changed files with 215 additions and 49 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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

View File

@ -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;
}
}

View File

@ -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>

View File

@ -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();

View File

@ -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;