Compare commits
3 Commits
a6d884454b
...
3f14e0177e
Author | SHA1 | Date |
---|---|---|
xd | 3f14e0177e | |
xd | 2162f5ab42 | |
xd | 14c1c2bfd1 |
|
@ -157,6 +157,37 @@ public class QuotController extends BaseController
|
||||||
return success(quot);
|
return success(quot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取报价详细信息-整单通过
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('quot:quot:allPass')")
|
||||||
|
@GetMapping(value = "/allPass/{quotId}")
|
||||||
|
@Log(title = "报价单-手动更新状态为通过", businessType = BusinessType.UPDATE)
|
||||||
|
public AjaxResult getAllPassInfo(@PathVariable("quotId") String quotId)
|
||||||
|
{
|
||||||
|
Quot quot = quotService.selectQuotByQuotId(quotId);
|
||||||
|
quot.setQuotApprovalStatus("2");// 提交状态设置为 通过
|
||||||
|
quot.setQuotQuotationDate(DateUtils.getNowDate());//报价单-报价日期设置为 当前日期
|
||||||
|
quot.setQuotCheckUserName(getUsername());
|
||||||
|
quotService.updateQuot(quot);
|
||||||
|
return success(quot);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取报价详细信息-整单驳回
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('quot:quot:allReject')")
|
||||||
|
@PostMapping(value = "/allReject")
|
||||||
|
@Log(title = "报价单-手动更新状态为驳回", businessType = BusinessType.UPDATE)
|
||||||
|
public AjaxResult getAllRejectInfo(@RequestBody Quot quot)
|
||||||
|
{
|
||||||
|
quot.setQuotApprovalStatus("3");// 提交状态设置为 驳回
|
||||||
|
quot.setQuotQuotationDate(DateUtils.getNowDate());//报价单-报价日期设置为 当前日期
|
||||||
|
quot.setQuotCheckUserName(getUsername());
|
||||||
|
quotService.updateQuot(quot);
|
||||||
|
return success(quot);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出产品明细模板
|
* 导出产品明细模板
|
||||||
* @param response
|
* @param response
|
||||||
|
|
|
@ -275,7 +275,7 @@ public class RedBookController extends BaseController
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出产品明细模板
|
* 导出产品明细模板-型号、规格、电压、数量
|
||||||
* @param response
|
* @param response
|
||||||
*/
|
*/
|
||||||
@PostMapping("/importTemplate")
|
@PostMapping("/importTemplate")
|
||||||
|
@ -286,7 +286,7 @@ public class RedBookController extends BaseController
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入产品明细
|
* 导入产品明细-型号、规格、电压、数量
|
||||||
* @param file
|
* @param file
|
||||||
* @param updateSupport
|
* @param updateSupport
|
||||||
* @return
|
* @return
|
||||||
|
@ -332,7 +332,9 @@ public class RedBookController extends BaseController
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("开始时间:" + DateUtils.getTime());
|
System.out.println("开始时间:" + DateUtils.getTime());
|
||||||
List<List<OAQuotProductTemplate>> list = ListSplitUtil.averageList(tempList,10);
|
//List<List<OAQuotProductTemplate>> list = ListSplitUtil.averageList(tempList,10);
|
||||||
|
List<List<OAQuotProductTemplate>> list = ListSplitUtil.partList(tempList,20);
|
||||||
|
|
||||||
List<OAQuotProduct> OAQuotProducts = new ArrayList<>();
|
List<OAQuotProduct> OAQuotProducts = new ArrayList<>();
|
||||||
|
|
||||||
//定义一个存所有线程回调函数的list
|
//定义一个存所有线程回调函数的list
|
||||||
|
@ -363,6 +365,85 @@ public class RedBookController extends BaseController
|
||||||
return success(OAQuotProducts);
|
return success(OAQuotProducts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出产品明细模板-品名型号
|
||||||
|
* @param response
|
||||||
|
*/
|
||||||
|
@PostMapping("/importTemplate2")
|
||||||
|
public void importTemplate2(HttpServletResponse response)
|
||||||
|
{
|
||||||
|
ExcelUtil<OAQuotProductTemplate2> util = new ExcelUtil<OAQuotProductTemplate2>(OAQuotProductTemplate2.class);
|
||||||
|
util.importTemplateExcel(response, "产品数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入产品明细-品名型号
|
||||||
|
* @param file
|
||||||
|
* @param updateSupport
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@PostMapping("/importData2")
|
||||||
|
public AjaxResult importData2(String rbUid, MultipartFile file, boolean updateSupport) throws Exception
|
||||||
|
{
|
||||||
|
ExcelUtil<OAQuotProductTemplate2> util = new ExcelUtil<OAQuotProductTemplate2>(OAQuotProductTemplate2.class);
|
||||||
|
List<OAQuotProductTemplate2> tempList = util.importExcel(file.getInputStream());
|
||||||
|
|
||||||
|
if(tempList.size()==0){
|
||||||
|
return error("导入文件无产品明细数据");
|
||||||
|
}else if(tempList.size()>200){
|
||||||
|
return error("最多导入200条");
|
||||||
|
}
|
||||||
|
|
||||||
|
int index = 1;
|
||||||
|
for(OAQuotProductTemplate2 temp:tempList){
|
||||||
|
temp.setIndex(index);
|
||||||
|
temp.setRbUid(rbUid);
|
||||||
|
|
||||||
|
String name_0 = temp.getName_0();
|
||||||
|
if(StringUtils.isNotBlank(name_0)){
|
||||||
|
name_0 = name_0.trim();
|
||||||
|
name_0 = name_0.replace(" "," ");
|
||||||
|
name_0 = name_0.toUpperCase();
|
||||||
|
temp.setName_0(name_0);
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("开始时间:" + DateUtils.getTime());
|
||||||
|
//List<List<OAQuotProductTemplate>> list = ListSplitUtil.averageList(tempList,10);
|
||||||
|
List<List<OAQuotProductTemplate2>> list = ListSplitUtil.partList(tempList,20);
|
||||||
|
|
||||||
|
List<OAQuotProduct> OAQuotProducts = new ArrayList<>();
|
||||||
|
|
||||||
|
//定义一个存所有线程回调函数的list
|
||||||
|
List<Future<List<OAQuotProduct>>> futureList=new ArrayList<>();
|
||||||
|
int num = 1;
|
||||||
|
for(List<OAQuotProductTemplate2> lt:list){
|
||||||
|
futureList.add(asyncRbTaskService.executeAsyncTask3("线程"+num+"【"+lt.size()+"条】",lt));
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
//判断进程是否全部结束**
|
||||||
|
while (true){
|
||||||
|
//回调信息空了就结束**
|
||||||
|
if (futureList.isEmpty()){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < futureList.size(); i++) {
|
||||||
|
if (futureList.get(i).isDone()){
|
||||||
|
OAQuotProducts.addAll(futureList.get(i).get());
|
||||||
|
//判断线程结束,输出回调信息,并将该回调清除
|
||||||
|
futureList.remove(i);
|
||||||
|
}else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("结束时间:" + DateUtils.getTime());
|
||||||
|
Collections.sort(OAQuotProducts);
|
||||||
|
return success(OAQuotProducts);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取调价日期
|
* 获取调价日期
|
||||||
* @param oAQuot
|
* @param oAQuot
|
||||||
|
|
|
@ -359,8 +359,8 @@ public class excelUtil {
|
||||||
response.setContentType("application/vnd.ms-excel");
|
response.setContentType("application/vnd.ms-excel");
|
||||||
BigDecimal totalmoney = BigDecimal.ZERO;
|
BigDecimal totalmoney = BigDecimal.ZERO;
|
||||||
|
|
||||||
File jnlogo_file = new File("logon/"+quot.getQuotCode()+".png");
|
File jnlogo_file = new File("logon/"+IdUtils.createNo("jnlogo_",3)+".png");
|
||||||
File wc_file = new File("logon/"+quot.getQuotCode()+".png");
|
File wc_file = new File("logon/"+IdUtils.createNo("wc_",3)+".png");
|
||||||
try {
|
try {
|
||||||
OutputStream os = response.getOutputStream();
|
OutputStream os = response.getOutputStream();
|
||||||
WritableWorkbook wwb = Workbook.createWorkbook(os);
|
WritableWorkbook wwb = Workbook.createWorkbook(os);
|
||||||
|
|
|
@ -31,7 +31,7 @@ server:
|
||||||
uri-encoding: UTF-8
|
uri-encoding: UTF-8
|
||||||
# 连接数满后的排队数,默认为100
|
# 连接数满后的排队数,默认为100
|
||||||
accept-count: 1000
|
accept-count: 1000
|
||||||
connection-timeout: 120s
|
connection-timeout: 600s
|
||||||
threads:
|
threads:
|
||||||
# tomcat最大线程数,默认为200
|
# tomcat最大线程数,默认为200
|
||||||
max: 800
|
max: 800
|
||||||
|
@ -110,7 +110,7 @@ token:
|
||||||
# 令牌密钥
|
# 令牌密钥
|
||||||
secret: abcdefghijklmnopqrstuvwxyz
|
secret: abcdefghijklmnopqrstuvwxyz
|
||||||
# 令牌有效期(默认30分钟)
|
# 令牌有效期(默认30分钟)
|
||||||
expireTime: 30
|
expireTime: 60
|
||||||
|
|
||||||
# MyBatis配置
|
# MyBatis配置
|
||||||
mybatis:
|
mybatis:
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class WebSocketServer
|
||||||
/**
|
/**
|
||||||
* 默认最多允许同时在线人数100
|
* 默认最多允许同时在线人数100
|
||||||
*/
|
*/
|
||||||
public static int socketMaxOnlineCount = 100;
|
public static int socketMaxOnlineCount = 10000;
|
||||||
|
|
||||||
private static final Semaphore SOCKET_SEMAPHORE = new Semaphore(socketMaxOnlineCount);
|
private static final Semaphore SOCKET_SEMAPHORE = new Semaphore(socketMaxOnlineCount);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.ruoyi.redBook.domain;
|
||||||
|
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class OAQuotProductTemplate2 {
|
||||||
|
private Integer index;
|
||||||
|
|
||||||
|
private String rbUid;
|
||||||
|
|
||||||
|
@Excel(name = "品名型号")
|
||||||
|
private String name_0;//品名型号
|
||||||
|
|
||||||
|
@Excel(name = "数量")
|
||||||
|
private BigDecimal count;//数量
|
||||||
|
|
||||||
|
public Integer getIndex() { return index; }
|
||||||
|
|
||||||
|
public void setIndex(Integer index) { this.index = index; }
|
||||||
|
|
||||||
|
public String getRbUid() { return rbUid; }
|
||||||
|
|
||||||
|
public void setRbUid(String rbUid) { this.rbUid = rbUid; }
|
||||||
|
|
||||||
|
public String getName_0() {
|
||||||
|
return name_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName_0(String name_0) {
|
||||||
|
this.name_0 = name_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCount() {
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCount(BigDecimal count) {
|
||||||
|
this.count = count;
|
||||||
|
}
|
||||||
|
}
|
|
@ -117,14 +117,22 @@ public interface OARedBookMapper
|
||||||
String getFixDatePrice(@Param("name_0") String name_0,@Param("spec") String spec,@Param("voltage") String voltage, @Param("uid_0") String uid_0);
|
String getFixDatePrice(@Param("name_0") String name_0,@Param("spec") String spec,@Param("voltage") String voltage, @Param("uid_0") String uid_0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入明细批量获取红本价格
|
* 导入明细批量获取红本价格-型号、规格、电压、数量
|
||||||
* @param name_0
|
* @param name_1
|
||||||
* @param spec
|
* @param spec
|
||||||
* @param rbUid
|
* @param rbUid
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
OAQuotProduct getFixDatePrice2(@Param("name_1") String name_1, @Param("spec") String spec, @Param("voltage") String voltage, @Param("uid_0") String rbUid);
|
OAQuotProduct getFixDatePrice2(@Param("name_1") String name_1, @Param("spec") String spec, @Param("voltage") String voltage, @Param("uid_0") String rbUid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入明细批量获取红本价格-品名型号
|
||||||
|
* @param name_0
|
||||||
|
* @param rbUid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OAQuotProduct getFixDatePrice3(@Param("name_0") String name_0, @Param("uid_0") String rbUid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询已生成的报价单列表
|
* 查询已生成的报价单列表
|
||||||
* @param oaQuot
|
* @param oaQuot
|
||||||
|
|
|
@ -141,12 +141,20 @@ public interface IRedBookService
|
||||||
List<OAQuotProduct> setRedBookPrice(List<OAQuotProduct> list);
|
List<OAQuotProduct> setRedBookPrice(List<OAQuotProduct> list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入明细批量获取红本价格
|
* 导入明细批量获取红本价格-型号、规格、电压、数量
|
||||||
* @param list
|
* @param list
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<OAQuotProduct> setRedBookPrice2(List<OAQuotProductTemplate> list);
|
List<OAQuotProduct> setRedBookPrice2(List<OAQuotProductTemplate> list);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入明细批量获取红本价格-品名型号
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OAQuotProduct> setRedBookPrice3(List<OAQuotProductTemplate2> list);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取单据编号
|
* 获取单据编号
|
||||||
* @param type
|
* @param type
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.ruoyi.redBook.service.impl;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.redBook.domain.OAQuotProduct;
|
import com.ruoyi.redBook.domain.OAQuotProduct;
|
||||||
import com.ruoyi.redBook.domain.OAQuotProductTemplate;
|
import com.ruoyi.redBook.domain.OAQuotProductTemplate;
|
||||||
|
import com.ruoyi.redBook.domain.OAQuotProductTemplate2;
|
||||||
import com.ruoyi.redBook.service.IRedBookService;
|
import com.ruoyi.redBook.service.IRedBookService;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.scheduling.annotation.AsyncResult;
|
import org.springframework.scheduling.annotation.AsyncResult;
|
||||||
|
@ -32,7 +33,7 @@ public class AsyncRbTaskService {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入明细批量获取红本价格
|
* 导入明细批量获取红本价格-型号、规格、电压、数量
|
||||||
* @param threadname
|
* @param threadname
|
||||||
* @param list
|
* @param list
|
||||||
* @return
|
* @return
|
||||||
|
@ -44,5 +45,19 @@ public class AsyncRbTaskService {
|
||||||
System.out.println(threadname+"结束时间:" + DateUtils.getTime());
|
System.out.println(threadname+"结束时间:" + DateUtils.getTime());
|
||||||
return new AsyncResult<>( OAQuotProducts);
|
return new AsyncResult<>( OAQuotProducts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入明细批量获取红本价格-品名型号
|
||||||
|
* @param threadname
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Async
|
||||||
|
public Future<List<OAQuotProduct>> executeAsyncTask3(String threadname, List<OAQuotProductTemplate2> list) {
|
||||||
|
System.out.println(threadname+"开始时间:" + DateUtils.getTime());
|
||||||
|
List<OAQuotProduct> OAQuotProducts = iRedBookService.setRedBookPrice3(list);
|
||||||
|
System.out.println(threadname+"结束时间:" + DateUtils.getTime());
|
||||||
|
return new AsyncResult<>( OAQuotProducts);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -208,12 +208,17 @@ public class RedBookServiceImpl implements IRedBookService
|
||||||
for(OAQuotProduct oAQuotProduct : list){
|
for(OAQuotProduct oAQuotProduct : list){
|
||||||
String price = oaRedBookMapper.getFixDatePrice(oAQuotProduct.getName_0(),oAQuotProduct.getSpec(),oAQuotProduct.getVoltage(),oAQuotProduct.getUid_0());
|
String price = oaRedBookMapper.getFixDatePrice(oAQuotProduct.getName_0(),oAQuotProduct.getSpec(),oAQuotProduct.getVoltage(),oAQuotProduct.getUid_0());
|
||||||
oAQuotProduct.setPrice(price);
|
oAQuotProduct.setPrice(price);
|
||||||
|
if(StringUtils.isEmpty(price)){
|
||||||
|
oAQuotProduct.setName_1("");
|
||||||
|
oAQuotProduct.setVoltage("");
|
||||||
|
oAQuotProduct.setStu("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入明细批量获取红本价格
|
* 导入明细批量获取红本价格-型号、规格、电压、数量
|
||||||
* @param list
|
* @param list
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@ -224,19 +229,44 @@ public class RedBookServiceImpl implements IRedBookService
|
||||||
OAQuotProduct oAQuotProduct = new OAQuotProduct();
|
OAQuotProduct oAQuotProduct = new OAQuotProduct();
|
||||||
for(OAQuotProductTemplate oAQuotProductTemplate : list){
|
for(OAQuotProductTemplate oAQuotProductTemplate : list){
|
||||||
OAQuotProduct rbProduct = oaRedBookMapper.getFixDatePrice2(oAQuotProductTemplate.getName_1(),oAQuotProductTemplate.getSpec(),oAQuotProductTemplate.getVoltage(),oAQuotProductTemplate.getRbUid());
|
OAQuotProduct rbProduct = oaRedBookMapper.getFixDatePrice2(oAQuotProductTemplate.getName_1(),oAQuotProductTemplate.getSpec(),oAQuotProductTemplate.getVoltage(),oAQuotProductTemplate.getRbUid());
|
||||||
if(rbProduct!=null){
|
|
||||||
oAQuotProduct = new OAQuotProduct();
|
oAQuotProduct = new OAQuotProduct();
|
||||||
oAQuotProduct.setIndex(oAQuotProductTemplate.getIndex());
|
oAQuotProduct.setIndex(oAQuotProductTemplate.getIndex());
|
||||||
oAQuotProduct.setUid_0(rbProduct.getUid_0());
|
oAQuotProduct.setUid_0(oAQuotProductTemplate.getRbUid());
|
||||||
oAQuotProduct.setName_0(rbProduct.getName_0());
|
oAQuotProduct.setName_0(rbProduct!=null?rbProduct.getName_0():"");
|
||||||
oAQuotProduct.setName_1(oAQuotProductTemplate.getName_1());
|
oAQuotProduct.setName_1(oAQuotProductTemplate.getName_1());
|
||||||
oAQuotProduct.setSpec(oAQuotProductTemplate.getSpec());
|
oAQuotProduct.setSpec(oAQuotProductTemplate.getSpec());
|
||||||
oAQuotProduct.setVoltage(rbProduct.getVoltage());
|
oAQuotProduct.setVoltage(rbProduct!=null?rbProduct.getVoltage():"");
|
||||||
oAQuotProduct.setStu(rbProduct.getStu());
|
oAQuotProduct.setStu(rbProduct!=null?rbProduct.getStu():"");
|
||||||
oAQuotProduct.setPrice(rbProduct.getPrice());
|
oAQuotProduct.setPrice(rbProduct!=null?rbProduct.getPrice():"");
|
||||||
oAQuotProduct.setCount(oAQuotProductTemplate.getCount());
|
oAQuotProduct.setCount(oAQuotProductTemplate.getCount());
|
||||||
OAQuotProducts.add(oAQuotProduct);
|
OAQuotProducts.add(oAQuotProduct);
|
||||||
}
|
}
|
||||||
|
return OAQuotProducts;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入明细批量获取红本价格-品名型号
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@DataSource(DataSourceType.OAREDBOOK)
|
||||||
|
public List<OAQuotProduct> setRedBookPrice3(List<OAQuotProductTemplate2> list) {
|
||||||
|
List<OAQuotProduct> OAQuotProducts = new ArrayList<>();
|
||||||
|
OAQuotProduct oAQuotProduct = new OAQuotProduct();
|
||||||
|
for(OAQuotProductTemplate2 oAQuotProductTemplate : list){
|
||||||
|
OAQuotProduct rbProduct = oaRedBookMapper.getFixDatePrice3(oAQuotProductTemplate.getName_0(),oAQuotProductTemplate.getRbUid());
|
||||||
|
oAQuotProduct = new OAQuotProduct();
|
||||||
|
oAQuotProduct.setIndex(oAQuotProductTemplate.getIndex());
|
||||||
|
oAQuotProduct.setUid_0(oAQuotProductTemplate.getRbUid());
|
||||||
|
oAQuotProduct.setName_0(oAQuotProductTemplate.getName_0());
|
||||||
|
oAQuotProduct.setName_1(rbProduct!=null?rbProduct.getName_1():"");
|
||||||
|
oAQuotProduct.setSpec(rbProduct!=null?rbProduct.getSpec():"");
|
||||||
|
oAQuotProduct.setVoltage(rbProduct!=null?rbProduct.getVoltage():"品名不规范");
|
||||||
|
oAQuotProduct.setStu(rbProduct!=null?rbProduct.getStu():"");
|
||||||
|
oAQuotProduct.setPrice(rbProduct!=null?rbProduct.getPrice():"");
|
||||||
|
oAQuotProduct.setCount(oAQuotProductTemplate.getCount());
|
||||||
|
OAQuotProducts.add(oAQuotProduct);
|
||||||
}
|
}
|
||||||
return OAQuotProducts;
|
return OAQuotProducts;
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,7 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${params.dataScope}
|
${params.dataScope}
|
||||||
</where>
|
</where>
|
||||||
order by a.quot_code desc
|
order by a.quot_inquiry_date desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectQuotListCount" resultType="String">
|
<select id="selectQuotListCount" resultType="String">
|
||||||
|
|
|
@ -183,6 +183,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
and (B.sta_0=1 or sta_0=0)
|
and (B.sta_0=1 or sta_0=0)
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getFixDatePrice3" resultType="OAQuotProduct">
|
||||||
|
select top 1 B.uid_0,A.namevoltage name_0,isnull(A.电压等级,N' - ') voltage,A.单位 stu,
|
||||||
|
A.型号 name_1,isnull(A.规格,'') spec
|
||||||
|
,convert(decimal,convert(float,A.红本价格)) price,convert(varchar(10),B.date_0,23) pricedate
|
||||||
|
from [rb_product_price] A
|
||||||
|
left join rb_productVersion B on A.version_uid_0=B.uid_0
|
||||||
|
where (B.sta_0=1 or sta_0=0) and A.namevoltage=#{name_0}
|
||||||
|
and B.uid_0 = #{uid_0}
|
||||||
|
</select>
|
||||||
|
|
||||||
<sql id="quotsJoins">
|
<sql id="quotsJoins">
|
||||||
LEFT JOIN sys_user u on u.user_name=a.create_by
|
LEFT JOIN sys_user u on u.user_name=a.create_by
|
||||||
LEFT JOIN sys_dept d on u.dept_id = d.dept_id
|
LEFT JOIN sys_dept d on u.dept_id = d.dept_id
|
||||||
|
|
|
@ -39,6 +39,23 @@ export function getReturnUpdateQuot(quotId) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询报价详细-整单通过
|
||||||
|
export function getAllPass(quotId) {
|
||||||
|
return request({
|
||||||
|
url: '/quot/quot/allPass/' + quotId,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询报价详细-整单驳回
|
||||||
|
export function getAllReject(query) {
|
||||||
|
return request({
|
||||||
|
url: '/quot/quot/allReject',
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 新增报价
|
// 新增报价
|
||||||
export function addQuot(data) {
|
export function addQuot(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// 初始化WebSocket
|
// 初始化WebSocket
|
||||||
this.initWebSocket();
|
//this.initWebSocket();
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
|
@ -18,7 +18,7 @@ const service = axios.create({
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_BASE_API,
|
baseURL: process.env.VUE_APP_BASE_API,
|
||||||
// 超时
|
// 超时
|
||||||
timeout: 300000
|
timeout: 720000
|
||||||
})
|
})
|
||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
|
|
|
@ -113,6 +113,28 @@
|
||||||
v-hasPermi="['quot:quot:returnUpdate']"
|
v-hasPermi="['quot:quot:returnUpdate']"
|
||||||
>错误修订</el-button>
|
>错误修订</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleAllPass"
|
||||||
|
v-hasPermi="['quot:quot:allPass']"
|
||||||
|
>整单通过</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleAllReject"
|
||||||
|
v-hasPermi="['quot:quot:allReject']"
|
||||||
|
>整单驳回</el-button>
|
||||||
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
@ -129,29 +151,6 @@
|
||||||
<dict-tag :options="dict.type.quot_approval_status" :value="scope.row.quotApprovalStatus"/>
|
<dict-tag :options="dict.type.quot_approval_status" :value="scope.row.quotApprovalStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT'])">
|
|
||||||
<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'])">
|
|
||||||
<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'])">
|
|
||||||
<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'])">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<dict-tag :options="dict.type.quot_hj_approval_status" :value="scope.row.quotHjApprovalStatus" v-if="scope.row.quotHjApprovalStatus!=0"/>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="是否打印" align="center" prop="quotPrint" v-if="$auth.hasPermi('quot:quot:changQuotPrintStatus')">
|
<el-table-column label="是否打印" align="center" prop="quotPrint" v-if="$auth.hasPermi('quot:quot:changQuotPrintStatus')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
|
@ -164,7 +163,30 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="quotPrintUserName" width="150px" v-if="$auth.hasPermi('quot:quot:changQuotPrintStatus')"/>
|
||||||
<el-table-column label="金思维报价单号" align="center" prop="quotJswCode" width="280px" v-if="checkRole(['QUOT'])"/>
|
<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="quotJsxzApprovalStatus" width="150px" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])">
|
||||||
|
<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','PRICE_VERIFICATION'])">
|
||||||
|
<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','PRICE_VERIFICATION'])">
|
||||||
|
<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','PRICE_VERIFICATION'])">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.quot_hj_approval_status" :value="scope.row.quotHjApprovalStatus" v-if="scope.row.quotHjApprovalStatus!=0"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="金思维报价单号" align="center" prop="quotJswCode" width="280px" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])"/>
|
||||||
<el-table-column label="询价日期" align="center" prop="quotInquiryDate" width="160">
|
<el-table-column label="询价日期" align="center" prop="quotInquiryDate" width="160">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.quotInquiryDate) }}</span>
|
<span>{{ parseTime(scope.row.quotInquiryDate) }}</span>
|
||||||
|
@ -208,17 +230,17 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<div v-if="checkPermi(['quot:quot:xzInfo'])">
|
<div v-if="checkPermi(['quot:quot:xzInfo'])">
|
||||||
<el-col :span="4">
|
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||||
<el-form-item label="技术协助" prop="quotJsxzApprovalStatus">
|
<el-form-item label="技术协助" prop="quotJsxzApprovalStatus">
|
||||||
<dict-tag :options="dict.type.quot_approval_status" :value="this.form.quotJsxzApprovalStatus"/>
|
<dict-tag :options="dict.type.quot_approval_status" :value="this.form.quotJsxzApprovalStatus"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||||
<el-form-item label="核价协助" prop="quotHjApprovalStatus">
|
<el-form-item label="核价协助" prop="quotHjApprovalStatus">
|
||||||
<dict-tag :options="dict.type.quot_approval_status" :value="this.form.quotHjApprovalStatus"/>
|
<dict-tag :options="dict.type.quot_approval_status" :value="this.form.quotHjApprovalStatus"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4" v-if="!checkRole(['SALES_MAN'])">
|
||||||
<el-form-item label="金思维协助" prop="quotJswApprovalStatus">
|
<el-form-item label="金思维协助" prop="quotJswApprovalStatus">
|
||||||
<dict-tag :options="dict.type.quot_jsw_approval_status" :value="this.form.quotJswApprovalStatus"/>
|
<dict-tag :options="dict.type.quot_jsw_approval_status" :value="this.form.quotJswApprovalStatus"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -367,14 +389,14 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="8" v-if="checkRole(['QUOT','SALES_MAN'])">
|
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION','SALES_MAN'])">
|
||||||
<el-col :span="24" v-if="this.form.quotApprovalStatus != '0' && this.form.quotApprovalStatus != null">
|
<el-col :span="24" v-if="this.form.quotApprovalStatus != '0' && this.form.quotApprovalStatus != null">
|
||||||
<el-form-item label="反馈说明" prop="quotFeedbackExplanation">
|
<el-form-item label="反馈说明" prop="quotFeedbackExplanation">
|
||||||
<el-input type="textarea" autosize v-model="form.quotFeedbackExplanation" placeholder="报价组填写" :disabled="this.form.quotApprovalStatus == 2"/>
|
<el-input type="textarea" autosize v-model="form.quotFeedbackExplanation" placeholder="报价组填写" :disabled="this.form.quotApprovalStatus == 2"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="8" v-if="checkRole(['QUOT'])">
|
<el-row :gutter="8" v-if="checkRole(['QUOT','PRICE_VERIFICATION'])">
|
||||||
<el-col :span="24" v-if="this.form.quotOAApprovalStatus == '2' || this.form.quotOAApprovalStatus == '3'">
|
<el-col :span="24" v-if="this.form.quotOAApprovalStatus == '2' || this.form.quotOAApprovalStatus == '3'">
|
||||||
<el-form-item label="OA审批说明" prop="quotOAApprovalStatusRemark">
|
<el-form-item label="OA审批说明" prop="quotOAApprovalStatusRemark">
|
||||||
<el-input type="textarea" autosize v-model="form.quotOAApprovalStatusRemark" :disabled="true"/>
|
<el-input type="textarea" autosize v-model="form.quotOAApprovalStatusRemark" :disabled="true"/>
|
||||||
|
@ -576,7 +598,7 @@
|
||||||
<div v-if="checkPermi(['quot:quot:jsxzInfo'])">
|
<div v-if="checkPermi(['quot:quot:jsxzInfo'])">
|
||||||
<el-divider content-position="left" class="customer_divider_text">技术协助</el-divider>
|
<el-divider content-position="left" class="customer_divider_text">技术协助</el-divider>
|
||||||
<el-row :gutter="8">
|
<el-row :gutter="8">
|
||||||
<el-col :span="8">
|
<!--<el-col :span="8">
|
||||||
<el-form-item label="标准" prop="quotJsxzStandard">
|
<el-form-item label="标准" prop="quotJsxzStandard">
|
||||||
<el-select v-model="form.quotJsxzStandard" :disabled="this.form.quotJsxzApprovalStatus != '0'">
|
<el-select v-model="form.quotJsxzStandard" :disabled="this.form.quotJsxzApprovalStatus != '0'">
|
||||||
<el-option
|
<el-option
|
||||||
|
@ -587,7 +609,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>-->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="技术协助状态" prop="quotJsxzApprovalStatus">
|
<el-form-item label="技术协助状态" prop="quotJsxzApprovalStatus">
|
||||||
<el-select v-model="form.quotJsxzApprovalStatus" :disabled="true">
|
<el-select v-model="form.quotJsxzApprovalStatus" :disabled="true">
|
||||||
|
@ -600,7 +622,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<!--<el-col :span="8">
|
||||||
<el-form-item label="是否盖技术章" prop="quotJsxzChapter">
|
<el-form-item label="是否盖技术章" prop="quotJsxzChapter">
|
||||||
<el-select v-model="form.quotJsxzChapter" :disabled="this.form.quotJsxzApprovalStatus != '0'">
|
<el-select v-model="form.quotJsxzChapter" :disabled="this.form.quotJsxzApprovalStatus != '0'">
|
||||||
<el-option
|
<el-option
|
||||||
|
@ -611,7 +633,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>-->
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="8">
|
<el-row :gutter="8">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
@ -914,7 +936,7 @@
|
||||||
<span style="margin-left: 10px" v-hasPermi="['quot:quot:assistHj']"><el-button type="primary" plain @click="commitHjForm" v-if="this.form.quotApprovalStatus == '1'&&this.form.quotHjApprovalStatus == '0'">提交核价审核</el-button></span>
|
<span style="margin-left: 10px" v-hasPermi="['quot:quot:assistHj']"><el-button type="primary" plain @click="commitHjForm" v-if="this.form.quotApprovalStatus == '1'&&this.form.quotHjApprovalStatus == '0'">提交核价审核</el-button></span>
|
||||||
|
|
||||||
<!-- 业务员、报价组生成报价单-->
|
<!-- 业务员、报价组生成报价单-->
|
||||||
<span style="float:left" v-hasPermi="['quot:quot:madeQuot']"><el-button type="warning" plain @click="madeQuot" v-if="this.form.quotApprovalStatus == '2'||checkRole(['QUOT'])">生成报价单</el-button></span>
|
<span style="float:left" v-hasPermi="['quot:quot:madeQuot']"><el-button type="warning" plain @click="madeQuot" v-if="this.form.quotApprovalStatus == '2'||!checkRole(['SALES_MAN'])">生成报价单</el-button></span>
|
||||||
|
|
||||||
<!-- 报价组提交金思维、OA-->
|
<!-- 报价组提交金思维、OA-->
|
||||||
<span style="margin-left: 10px;float:left" v-hasPermi="['quot:quot:assistJsw']"><el-button type="warning" plain @click="commitJswForm" v-if="this.form.quotApprovalStatus == '1'&&(this.form.quotJswApprovalStatus == '0'||this.form.quotJswApprovalStatus == '2')">提交金思维</el-button></span>
|
<span style="margin-left: 10px;float:left" v-hasPermi="['quot:quot:assistJsw']"><el-button type="warning" plain @click="commitJswForm" v-if="this.form.quotApprovalStatus == '1'&&(this.form.quotJswApprovalStatus == '0'||this.form.quotJswApprovalStatus == '2')">提交金思维</el-button></span>
|
||||||
|
@ -999,7 +1021,7 @@
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import { NumberAdd } from '@/utils/number';// 数值计算
|
import { NumberAdd } from '@/utils/number';// 数值计算
|
||||||
import { changQuotPrintStatus,listQuot, getQuot, getReturnUpdateQuot, delQuot, addQuot, updateQuot, quotFileList, quotFileDelete, commitQuot, commitJsQuot, commitHjQuot, commitJswQuot, commitOAQuot, feedbackQuot, madeQuot, rejectQuot } from "@/api/quot/quot";
|
import { changQuotPrintStatus,listQuot, getQuot, getReturnUpdateQuot,getAllPass,getAllReject, delQuot, addQuot, updateQuot, quotFileList, quotFileDelete, commitQuot, commitJsQuot, commitHjQuot, commitJswQuot, commitOAQuot, feedbackQuot, madeQuot, rejectQuot } from "@/api/quot/quot";
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
import { checkPermi,checkRole } from '@/utils/permission';// 权限判断函数
|
import { checkPermi,checkRole } from '@/utils/permission';// 权限判断函数
|
||||||
import { getDicts } from "@/api/system/dict/data";
|
import { getDicts } from "@/api/system/dict/data";
|
||||||
|
@ -1296,7 +1318,6 @@ export default {
|
||||||
handleReturnUpdate(row) {
|
handleReturnUpdate(row) {
|
||||||
this.reset();
|
this.reset();
|
||||||
const quotId = row.quotId || this.ids
|
const quotId = row.quotId || this.ids
|
||||||
let self = this;
|
|
||||||
this.$modal.confirm('是否确认修订所选报价单且更新状态为协助中?').then(function() {
|
this.$modal.confirm('是否确认修订所选报价单且更新状态为协助中?').then(function() {
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getReturnUpdateQuot(quotId).then(response => {
|
getReturnUpdateQuot(quotId).then(response => {
|
||||||
|
@ -1305,6 +1326,39 @@ export default {
|
||||||
});
|
});
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
},
|
},
|
||||||
|
// 整单通过
|
||||||
|
handleAllPass(row) {
|
||||||
|
this.reset();
|
||||||
|
const quotId = row.quotId || this.ids
|
||||||
|
this.$modal.confirm('是否确认修订所选报价单且更新状态为通过?').then(function() {
|
||||||
|
}).then(() => {
|
||||||
|
getAllPass(quotId).then(response => {
|
||||||
|
this.$modal.msgSuccess("更改成功");
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
// 整单驳回
|
||||||
|
handleAllReject(row) {
|
||||||
|
this.reset();
|
||||||
|
const quotId = row.quotId || this.ids;
|
||||||
|
|
||||||
|
this.$prompt('请输入驳回原因', '是否确认修订所选报价单且更新状态为驳回?', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
inputPattern: /^.+$/,
|
||||||
|
inputErrorMessage: '驳回原因必填'
|
||||||
|
}).then(({ value }) => {
|
||||||
|
this.form = {
|
||||||
|
"quotId":quotId[0],
|
||||||
|
"quotFeedbackExplanation":value
|
||||||
|
}
|
||||||
|
getAllReject(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("更改成功");
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
|
||||||
/** 修改按钮操作-详细信息设置 */
|
/** 修改按钮操作-详细信息设置 */
|
||||||
setInfo(response){
|
setInfo(response){
|
||||||
|
@ -1613,11 +1667,13 @@ export default {
|
||||||
const param = {relationId:this.form.quotId,fileType:'quotFkFile'}
|
const param = {relationId:this.form.quotId,fileType:'quotFkFile'}
|
||||||
|
|
||||||
//协助中状态不显示反馈附件
|
//协助中状态不显示反馈附件
|
||||||
if(this.form.quotApprovalStatus!='1' && checkRole(['SALES_MAN'])){
|
if(checkRole(['SALES_MAN'])){
|
||||||
|
if(this.form.quotApprovalStatus!='1'){
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotFkFileList = response.rows;
|
this.quotFkFileList = response.rows;
|
||||||
});
|
});
|
||||||
}else if(checkRole(['QUOT'])){
|
}
|
||||||
|
}else{
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotFkFileList = response.rows;
|
this.quotFkFileList = response.rows;
|
||||||
});
|
});
|
||||||
|
@ -1692,7 +1748,8 @@ export default {
|
||||||
this.quotXjFileLoading = true;
|
this.quotXjFileLoading = true;
|
||||||
let activeName = this.activeName;
|
let activeName = this.activeName;
|
||||||
if(activeName=='quotXjFile'){
|
if(activeName=='quotXjFile'){
|
||||||
if(file.name.split('.')[1].toLowerCase() != 'xls' && file.name.split('.')[1].toLowerCase() != 'xlsx'){
|
const fileExtension = file.name.split('.').pop();
|
||||||
|
if(fileExtension.toLowerCase() != 'xls' && fileExtension.toLowerCase() != 'xlsx'){
|
||||||
this.$modal.msgError("清单附件必须是Excel格式");
|
this.$modal.msgError("清单附件必须是Excel格式");
|
||||||
this.quotXjFileLoading = false;
|
this.quotXjFileLoading = false;
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -153,7 +153,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="版本uid" align="center" prop="uid_0" v-if="false"/>
|
<el-table-column label="版本uid" align="center" prop="uid_0" v-if="false"/>
|
||||||
<el-table-column label="产品型号" align="center" prop="name_0" width="200" />
|
<el-table-column label="产品型号" align="center" prop="name_0" width="200"/>
|
||||||
<el-table-column label="型号" align="center" prop="name_1" v-if="false"/>
|
<el-table-column label="型号" align="center" prop="name_1" v-if="false"/>
|
||||||
<el-table-column label="规格" align="center" prop="spec" v-if="false"/>
|
<el-table-column label="规格" align="center" prop="spec" v-if="false"/>
|
||||||
<el-table-column label="电压" align="center" prop="voltage"/>
|
<el-table-column label="电压" align="center" prop="voltage"/>
|
||||||
|
@ -348,7 +348,7 @@
|
||||||
// 设置上传的请求头部
|
// 设置上传的请求头部
|
||||||
headers: { Authorization: "Bearer " + getToken() },
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
// 上传的地址
|
// 上传的地址
|
||||||
url: process.env.VUE_APP_BASE_API + "/redBook/redBook/importData"
|
url: process.env.VUE_APP_BASE_API + "/redBook/redBook/importData2"
|
||||||
},
|
},
|
||||||
|
|
||||||
//折扣率 初始值
|
//折扣率 初始值
|
||||||
|
@ -624,10 +624,13 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 已选结果数据里存在所选调价版本不一致的数据 */
|
/** 已选结果数据里存在所选调价版本不一致的数据 */
|
||||||
cellStyle({ row }){
|
cellStyle({ row, columnIndex }){
|
||||||
if(row.uid_0 != this.form.rbDateUid){
|
if(row.uid_0 != this.form.rbDateUid){
|
||||||
return {'background-color':'#ff494959'}
|
return {'background-color':'#ff494959'}
|
||||||
}
|
}
|
||||||
|
if(!row.stu && (columnIndex == 2 || columnIndex == 3)){
|
||||||
|
return 'color:red'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
//删除已选结果数据
|
//删除已选结果数据
|
||||||
|
@ -783,7 +786,7 @@
|
||||||
},
|
},
|
||||||
/** 下载模板操作 */
|
/** 下载模板操作 */
|
||||||
importTemplate() {
|
importTemplate() {
|
||||||
this.download('redBook/redBook/importTemplate', {
|
this.download('redBook/redBook/importTemplate2', {
|
||||||
}, `product_template_${new Date().getTime()}.xlsx`)
|
}, `product_template_${new Date().getTime()}.xlsx`)
|
||||||
},
|
},
|
||||||
// 文件上传中处理
|
// 文件上传中处理
|
||||||
|
|
Loading…
Reference in New Issue