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 ! #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.destination.pool_capacity=10
jco.client.lang=ZH jco.client.lang=ZH
jco.client.ashost=172.19.0.125 jco.client.ashost=172.19.0.125
@ -7,5 +7,5 @@ jco.client.saprouter=
jco.client.user=RFC jco.client.user=RFC
jco.client.sysnr=00 jco.client.sysnr=00
jco.destination.peak_limit=10 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 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> <artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.4.3</version> <version>3.4.3</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!--webservice end--> <!--webservice end-->
</dependencies> </dependencies>

View File

@ -29,12 +29,15 @@ import com.ruoyi.web.utils.ListSplitUtil;
import com.ruoyi.web.utils.rbExcel.excelUtil; import com.ruoyi.web.utils.rbExcel.excelUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
@ -260,10 +263,10 @@ public class RedBookController extends BaseController
@DataSource(DataSourceType.MASTER) @DataSource(DataSourceType.MASTER)
@Log(title = "生成询价单", businessType = BusinessType.INSERT) @Log(title = "生成询价单", businessType = BusinessType.INSERT)
@PostMapping("/madeXjQuot") @PostMapping("/madeXjQuot")
public void madeXjQuot(HttpServletResponse response, @RequestBody OAQuot quot) public AjaxResult madeXjQuot(HttpServletResponse response, @RequestBody OAQuot quot) throws Exception
{ {
Quot xjquot = new Quot(); Quot xjquot = new Quot();
try{
xjquot.setQuotId(UUID.fastUUID().toString()); xjquot.setQuotId(UUID.fastUUID().toString());
String quotCode = redBookService.getCode("BJD"); String quotCode = redBookService.getCode("BJD");
xjquot.setQuotCode(quotCode); xjquot.setQuotCode(quotCode);
@ -276,15 +279,18 @@ public class RedBookController extends BaseController
xjquot.setCreateBy(getUsername()); xjquot.setCreateBy(getUsername());
iQuotService.insertQuot(xjquot); iQuotService.insertQuot(xjquot);
List<OAQuotProduct> list = quot.getSelectedResultData();
File file = excelUtil.exportXjQuotExcel(response,xjquot,list);
MultipartFile multipartFile = convert(file);
/** 上传清单附件 **/ /** 上传清单附件 **/
/* String relation_id = xjquot.getQuotId(); String relation_id = xjquot.getQuotId();
if(!StringUtils.isEmpty(relation_id)){ if(!StringUtils.isEmpty(relation_id)){
if (!file.isEmpty()) if (!multipartFile.isEmpty())
{ {
QuotFile quotFile= new QuotFile(); QuotFile quotFile= new QuotFile();
quotFile.setFileId(UUID.fastUUID().toString()); quotFile.setFileId(UUID.fastUUID().toString());
String url = FileUploadUtils.uploadMinio(multipartFile,"quot-manage", "quot/"+relation_id);
String url = FileUploadUtils.uploadMinio(file,"quot-manage", "quot/"+relation_id);
int index = url.lastIndexOf("/")+1; int index = url.lastIndexOf("/")+1;
String fileName = url.substring(index);//获取文件名 String fileName = url.substring(index);//获取文件名
@ -294,18 +300,38 @@ public class RedBookController extends BaseController
quotFile.setFileName(fileName); quotFile.setFileName(fileName);
quotFile.setFileBucketName(fileBucketName); quotFile.setFileBucketName(fileBucketName);
quotFile.setFileUrl(url); quotFile.setFileUrl(url);
quotFile.setFileSize(file.getSize()); quotFile.setFileSize(multipartFile.getSize());
quotFile.setFileTime(DateUtils.getTime()); quotFile.setFileTime(DateUtils.getTime());
quotFile.setFileType("quotXjFile"); quotFile.setFileType("quotXjFile");
quotFile.setRelationId(relation_id); quotFile.setRelationId(relation_id);
quotFileService.insertQuotFile(quotFile); quotFileService.insertQuotFile(quotFile);
}else{
return error("系统异常,生成清单附件为空!");
} }
}else{ }else{
return error("系统异常,询价单号为空!"); return error("系统异常,询价单号为空!");
}*/
/** 上传清单附件 **/
// return success(xjquot);
} }
}catch(Exception e){
return error("系统异常");
}
/** 上传清单附件 **/
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 * @param quot

View File

@ -9,9 +9,11 @@ import com.ruoyi.redBook.domain.OAQuotProduct;
import com.ruoyi.web.utils.IdUtils; import com.ruoyi.web.utils.IdUtils;
import jxl.HeaderFooter; import jxl.HeaderFooter;
import jxl.Workbook; import jxl.Workbook;
import jxl.format.*;
import jxl.format.Alignment; import jxl.format.Alignment;
import jxl.format.Border; import jxl.format.Border;
import jxl.format.BorderLineStyle; import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment; import jxl.format.VerticalAlignment;
import jxl.write.Number; import jxl.write.Number;
import jxl.write.*; import jxl.write.*;
@ -23,10 +25,7 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URL; import java.net.URL;
import java.util.Date; 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 data: data
}) })
} }
//生成价单 //生成价单
export function madeXjQuot(data) { export function madeXjQuot(data) {
return request({ return request({
url: '/redBook/redBook/madeXjQuot', 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-button style="float: right;" size="mini" type="primary" icon="el-icon-search" @click="handleSearchClick">搜索</el-button>
</el-col> </el-col>
<el-col :span="14"> <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="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" 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> <el-button style="float: right;margin-left: 5px;" size="mini" icon="el-icon-refresh" @click="handleRefreshClick">清空信息</el-button>
@ -784,27 +784,7 @@
handleMadeXjQuotClick() { handleMadeXjQuotClick() {
this.form.selectedResultData = this.selectedResultData; this.form.selectedResultData = this.selectedResultData;
madeXjQuot(this.form).then(response => { madeXjQuot(this.form).then(response => {
//this.$modal.msgSuccess(",:"+response.data.quotCode); 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);
}
}); });
}, },

View File

@ -84,11 +84,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审核人" align="center" prop="quotCheckUserNickname" width="160" /> <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> </el-table>
</div> </div>
</template> </template>