This commit is contained in:
xd 2024-06-19 11:10:05 +08:00
parent 1efe171bc0
commit 1d92805116
17 changed files with 163 additions and 71 deletions

View File

@ -1,5 +1,5 @@
#for tests only !
#Mon Jun 17 15:48:27 CST 2024
#Wed Jun 19 10:12:57 CST 2024
jco.destination.pool_capacity=10
jco.client.lang=ZH
jco.client.ashost=172.19.0.125
@ -7,5 +7,5 @@ jco.client.saprouter=
jco.client.user=RFC
jco.client.sysnr=00
jco.destination.peak_limit=10
jco.client.passwd=654321
jco.client.passwd=dbTq!8PGYoMxt}M?DFv(:oQQUwH:qM9KKr$k^CHW9U;kE9uK
jco.client.client=800

BIN
BJD_20240619000073.xls Normal file

Binary file not shown.

BIN
BJD_20240619000099.xls Normal file

Binary file not shown.

BIN
BJD_20240619000115.xls Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -145,6 +145,11 @@
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!--webservice end-->
</dependencies>

View File

@ -29,12 +29,15 @@ import com.ruoyi.web.utils.ListSplitUtil;
import com.ruoyi.web.utils.rbExcel.excelUtil;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.ExecutionException;
@ -260,52 +263,75 @@ public class RedBookController extends BaseController
@DataSource(DataSourceType.MASTER)
@Log(title = "生成询价单", businessType = BusinessType.INSERT)
@PostMapping("/madeXjQuot")
public void madeXjQuot(HttpServletResponse response, @RequestBody OAQuot quot)
public AjaxResult madeXjQuot(HttpServletResponse response, @RequestBody OAQuot quot) throws Exception
{
Quot xjquot = new Quot();
xjquot.setQuotId(UUID.fastUUID().toString());
String quotCode = redBookService.getCode("BJD");
xjquot.setQuotCode(quotCode);
xjquot.setQuotApprovalStatus("0");
xjquot.setQuotSalesmanCode(getUsername());
xjquot.setQuotSalesmanBm(getLoginUser().getUser().getSapUserBm());
xjquot.setQuotSalesmanName(getLoginUser().getUser().getNickName());
xjquot.setQuotSalesmanDeptId(getLoginUser().getUser().getDept().getDeptId()+"");
xjquot.setQuotSalesmanDeptName(getLoginUser().getUser().getDept().getDeptName());
xjquot.setCreateBy(getUsername());
iQuotService.insertQuot(xjquot);
try{
xjquot.setQuotId(UUID.fastUUID().toString());
String quotCode = redBookService.getCode("BJD");
xjquot.setQuotCode(quotCode);
xjquot.setQuotApprovalStatus("0");
xjquot.setQuotSalesmanCode(getUsername());
xjquot.setQuotSalesmanBm(getLoginUser().getUser().getSapUserBm());
xjquot.setQuotSalesmanName(getLoginUser().getUser().getNickName());
xjquot.setQuotSalesmanDeptId(getLoginUser().getUser().getDept().getDeptId()+"");
xjquot.setQuotSalesmanDeptName(getLoginUser().getUser().getDept().getDeptName());
xjquot.setCreateBy(getUsername());
iQuotService.insertQuot(xjquot);
/** 上传清单附件 **/
/* String relation_id = xjquot.getQuotId();
if(!StringUtils.isEmpty(relation_id)){
if (!file.isEmpty())
{
QuotFile quotFile= new QuotFile();
quotFile.setFileId(UUID.fastUUID().toString());
List<OAQuotProduct> list = quot.getSelectedResultData();
File file = excelUtil.exportXjQuotExcel(response,xjquot,list);
MultipartFile multipartFile = convert(file);
String url = FileUploadUtils.uploadMinio(file,"quot-manage", "quot/"+relation_id);
int index = url.lastIndexOf("/")+1;
String fileName = url.substring(index);//获取文件名
/** 上传清单附件 **/
String relation_id = xjquot.getQuotId();
if(!StringUtils.isEmpty(relation_id)){
if (!multipartFile.isEmpty())
{
QuotFile quotFile= new QuotFile();
quotFile.setFileId(UUID.fastUUID().toString());
String url = FileUploadUtils.uploadMinio(multipartFile,"quot-manage", "quot/"+relation_id);
int index = url.lastIndexOf("/")+1;
String fileName = url.substring(index);//获取文件名
int index2 = url.indexOf("/quot/");
String fileBucketName = url.substring(index2);//获取文件对应文件服务器中地址-供后面删除功能用
int index2 = url.indexOf("/quot/");
String fileBucketName = url.substring(index2);//获取文件对应文件服务器中地址-供后面删除功能用
quotFile.setFileName(fileName);
quotFile.setFileBucketName(fileBucketName);
quotFile.setFileUrl(url);
quotFile.setFileSize(file.getSize());
quotFile.setFileTime(DateUtils.getTime());
quotFile.setFileType("quotXjFile");
quotFile.setRelationId(relation_id);
quotFileService.insertQuotFile(quotFile);
quotFile.setFileName(fileName);
quotFile.setFileBucketName(fileBucketName);
quotFile.setFileUrl(url);
quotFile.setFileSize(multipartFile.getSize());
quotFile.setFileTime(DateUtils.getTime());
quotFile.setFileType("quotXjFile");
quotFile.setRelationId(relation_id);
quotFileService.insertQuotFile(quotFile);
}else{
return error("系统异常,生成清单附件为空!");
}
}else{
return error("系统异常,询价单号为空!");
}
}else{
return error("系统异常,询价单号为空!");
}*/
}catch(Exception e){
return error("系统异常");
}
/** 上传清单附件 **/
// return success(xjquot);
return success(xjquot);
}
/**
* File转MultipartFile
* @param file
* @return
* @throws IOException
*/
public static MultipartFile convert(File file) throws IOException {
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile("file",
file.getName(), "application/vnd.ms-excel;charset=UTF-8", input);
return multipartFile;
}
/**
* 报价单提交
* @param quot

View File

@ -9,9 +9,11 @@ import com.ruoyi.redBook.domain.OAQuotProduct;
import com.ruoyi.web.utils.IdUtils;
import jxl.HeaderFooter;
import jxl.Workbook;
import jxl.format.*;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.Number;
import jxl.write.*;
@ -23,10 +25,7 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.*;
import java.math.BigDecimal;
import java.net.URL;
import java.util.Date;
@ -665,4 +664,91 @@ public class excelUtil {
}
}
/**
* 生成询价单-清单附件
* @param response
* @param quot
* @param list
*/
public static File exportXjQuotExcel(HttpServletResponse response, Quot quot, List<OAQuotProduct> list){
File excelFile = null;
try {
excelFile = new File(quot.getQuotCode()+".xls");
WritableWorkbook wwb = Workbook.createWorkbook(excelFile);
// 新建一张表
WritableSheet wsheet = wwb.createSheet("报价单", 0);
Label label = new Label(0, 0, "");
int i= 0;
//产品信息
WritableFont wf_merge = new WritableFont(WritableFont.ARIAL,11,WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE, Colour.WHITE);
WritableCellFormat wff_merge = new WritableCellFormat(wf_merge);
wff_merge.setAlignment(Alignment.CENTRE);
wff_merge.setBackground(jxl.format.Colour.GREY_50_PERCENT); // 设置单元格的背景颜色
wsheet.setRowView(i,400);
label = new Label(0, i, "产品型号",wff_merge);
wsheet.addCell(label);
label = new Label(1, i, "规格",wff_merge);
wsheet.addCell(label);
label = new Label(2, i, "电压",wff_merge);
wsheet.addCell(label);
label = new Label(3, i, "单位",wff_merge);
wsheet.addCell(label);
label = new Label(4, i, "数量",wff_merge);
wsheet.addCell(label);
// 列宽
wsheet.setColumnView(0, 18);
wsheet.setColumnView(1, 18);
wsheet.setColumnView(2, 18);
wsheet.setColumnView(3, 18);
wsheet.setColumnView(4, 18);
i++;
//数据
WritableCellFormat cellFormat=new WritableCellFormat();
cellFormat.setAlignment(Alignment.LEFT);
int j=1;
for(Iterator<OAQuotProduct> it = list.iterator(); it.hasNext();)
{
OAQuotProduct s = it.next();
wsheet.setRowView(i,400);
label = new Label(0, i, s.getName_1(),wff_merge);
label.setCellFormat(cellFormat);
wsheet.addCell(label);
label = new Label(1, i, s.getSpec(),wff_merge);
label.setCellFormat(cellFormat);
wsheet.addCell(label);
label = new Label(2,i, s.getVoltage(),wff_merge);
label.setCellFormat(cellFormat);
wsheet.addCell(label);
label = new Label(3,i, s.getStu(),wff_merge);
label.setCellFormat(cellFormat);
wsheet.addCell(label);
label = new Label(4,i, String.valueOf(s.getCount()),wff_merge);
label.setCellFormat(cellFormat);
wsheet.addCell(label);
i++;
j++;
}
wwb.write();
wwb.close();
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return excelFile;
}
}

View File

@ -108,7 +108,7 @@ export function saveQuot(data) {
data: data
})
}
//生成价单
//生成价单
export function madeXjQuot(data) {
return request({
url: '/redBook/redBook/madeXjQuot',

View File

@ -8,7 +8,7 @@
<el-button style="float: right;" size="mini" type="primary" icon="el-icon-search" @click="handleSearchClick">搜索</el-button>
</el-col>
<el-col :span="14">
<!--<el-button style="float: right;margin-left: 5px;" size="mini" type="primary" icon="el-icon-document" @click="handleMadeXjQuotClick" :disabled="selectedResultData.length==0 || madeQuotDis">生成询价单</el-button>-->
<el-button style="float: right;margin-left: 5px;" size="mini" type="primary" icon="el-icon-document" @click="handleMadeXjQuotClick" :disabled="selectedResultData.length==0 || madeQuotDis">生成询价单</el-button>
<el-button style="float: right;margin-left: 5px;" size="mini" type="success" icon="el-icon-document" @click="handleMadeQuotClick" :disabled="selectedResultData.length==0 || madeQuotDis">生成报价单</el-button>
<el-button style="float: right;margin-left: 5px;" size="mini" type="warning" icon="el-icon-folder" @click="handleSaveClick" :disabled="selectedResultData.length==0">保存</el-button>
<el-button style="float: right;margin-left: 5px;" size="mini" icon="el-icon-refresh" @click="handleRefreshClick">清空信息</el-button>
@ -784,27 +784,7 @@
handleMadeXjQuotClick() {
this.form.selectedResultData = this.selectedResultData;
madeXjQuot(this.form).then(response => {
//this.$modal.msgSuccess(",:"+response.data.quotCode);
//
const content = response;
const blob = new Blob([content]);
const fileName = "RB_BJD_"+this.getTodayCourse()+".xls";
if ("download" in document.createElement("a")) {
// IE
const elink = document.createElement("a");
elink.download = fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // URL
document.body.removeChild(elink);
}else {
// IE10+
navigator.msSaveBlob(blob, fileName);
}
this.$modal.msgSuccess("生成询价单成功,单号:"+response.data.quotCode);
});
},

View File

@ -84,11 +84,6 @@
</template>
</el-table-column>
<el-table-column label="审核人" align="center" prop="quotCheckUserNickname" width="160" />
<el-table-column label="报价时间" align="center" prop="quotQuotationDate" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.quotQuotationDate) }}</span>
</template>
</el-table-column>
</el-table>
</div>
</template>