rev:成品报废审核界面新增导出功能
This commit is contained in:
@@ -369,7 +369,7 @@ public class ProductInstorServiceImpl implements ProductInstorService {
|
||||
/*
|
||||
* 如果有实际重量则需要判断重量是否超标
|
||||
*/
|
||||
// 重量阈值系统参数
|
||||
/* // 重量阈值系统参数
|
||||
double weight_sys = Double.parseDouble(SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("weight_sys").getValue());
|
||||
// 木箱系统重量
|
||||
double box_weight = sub_jo.getDoubleValue("box_weight");
|
||||
@@ -392,7 +392,7 @@ public class ProductInstorServiceImpl implements ProductInstorService {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
JSONArray now_dis_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "18").addParam("box_no", map.get("box_no")).process().getResultJSONArray(0);
|
||||
if (now_dis_rows.size() > 0) {
|
||||
|
||||
@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@@ -91,4 +93,10 @@ public class ProductScrapController {
|
||||
return new ResponseEntity<>(productScrapService.importExcel(file, request),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("导出数据")
|
||||
@GetMapping(value = "/download")
|
||||
public void download(@RequestParam Map map, HttpServletResponse response) {
|
||||
productScrapService.download(map, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -76,4 +77,6 @@ public interface ProductScrapService {
|
||||
* @return
|
||||
*/
|
||||
ArrayList<JSONObject> importExcel(MultipartFile file, HttpServletRequest request);
|
||||
|
||||
void download(Map map, HttpServletResponse response);
|
||||
}
|
||||
|
||||
@@ -12,10 +12,12 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.modules.common.utils.FileUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
@@ -33,11 +35,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -543,4 +543,73 @@ public class ProductScrapServiceImpl implements ProductScrapService {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public void download(Map whereJson, HttpServletResponse response) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
map.put("flag", "1");
|
||||
if (StrUtil.isNotEmpty(map.get("bill_code"))) {
|
||||
map.put("bill_code", "%" + map.get("bill_code") + "%");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(map.get("material_code"))) {
|
||||
map.put("material_code", "%" + map.get("material_code") + "%");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(map.get("pcsn"))) {
|
||||
map.put("pcsn", (String) whereJson.get("pcsn"));
|
||||
}
|
||||
//获取人员对应的仓库
|
||||
UserStorServiceImpl userStorService = new UserStorServiceImpl();
|
||||
String in_stor_id = userStorService.getInStor();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(in_stor_id)) {
|
||||
map.put("in_stor_id", in_stor_id);
|
||||
}
|
||||
|
||||
// 查询主表
|
||||
List<JSONObject> listMst = WQL.getWO("QST_IVT_PRODUCTSCRAP")
|
||||
.addParamMap(map).process().getResultJSONArray(0)
|
||||
.toJavaList(JSONObject.class);
|
||||
|
||||
// 筛选出主表标识
|
||||
String scrap_id_in = listMst.stream()
|
||||
.map(row -> row.getString("scrap_id"))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
JSONArray content = WQL.getWO("QST_IVT_PRODUCTSCRAP")
|
||||
.addParam("flag", "2")
|
||||
.addParam("scrap_id_in", "('" + scrap_id_in + "')")
|
||||
.process().getResultJSONArray(0);
|
||||
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (int i = 0; i < content.size(); i++) {
|
||||
JSONObject object = content.getJSONObject(i);
|
||||
|
||||
Map<String, Object> mp = new LinkedHashMap<>();
|
||||
mp.put("单据号", object.getString("scrap_code"));
|
||||
mp.put("产品编码", object.getString("material_code"));
|
||||
mp.put("产品名称", object.getString("material_name"));
|
||||
mp.put("木箱号", object.getString("storagevehicle_code"));
|
||||
mp.put("不合格品批次号", object.getString("pcsn"));
|
||||
mp.put("不合格品重量(KG)", NumberUtil.round(object.getString("qty"), 2));
|
||||
|
||||
String fail_source = object.getString("fail_source");
|
||||
if (fail_source.equals("1")) {
|
||||
mp.put("不合格品来源", "原辅材料");
|
||||
} else if (fail_source.equals("2")) {
|
||||
mp.put("不合格品来源", "半成品");
|
||||
} else if (fail_source.equals("3")) {
|
||||
mp.put("不合格品来源", "成品检查");
|
||||
} else if (fail_source.equals("4")) {
|
||||
mp.put("不合格品来源", "出货检查");
|
||||
} else if (fail_source.equals("5")) {
|
||||
mp.put("不合格品来源", "库存");
|
||||
} else if (fail_source.equals("6")) {
|
||||
mp.put("不合格品来源", "客户投诉");
|
||||
}
|
||||
mp.put("不合格品缺陷描述", object.getString("remark"));
|
||||
list.add(mp);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
输入.pcsn TYPEAS s_string
|
||||
输入.scrap_id TYPEAS s_string
|
||||
输入.in_stor_id TYPEAS f_string
|
||||
输入.scrap_id_in TYPEAS f_string
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
@@ -91,7 +92,8 @@
|
||||
dtl.*,
|
||||
dtl.package_box_sn AS storagevehicle_code,
|
||||
mater.material_code,
|
||||
mater.material_name
|
||||
mater.material_name,
|
||||
mst.scrap_code
|
||||
FROM
|
||||
ST_IVT_ProductScrapDtl dtl
|
||||
LEFT JOIN ST_IVT_ProductScrapMst mst ON mst.scrap_id = dtl.scrap_id
|
||||
@@ -102,11 +104,15 @@
|
||||
dtl.scrap_id = 输入.scrap_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.scrap_id_in <> ""
|
||||
dtl.scrap_id IN 输入.scrap_id_in
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.scrapdtl_id <> ""
|
||||
dtl.scrapdtl_id = 输入.scrapdtl_id
|
||||
ENDOPTION
|
||||
|
||||
order by dtl.seq_no
|
||||
order by mst.scrap_code, dtl.seq_no
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -118,6 +118,16 @@
|
||||
>
|
||||
不通过
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-check"
|
||||
size="mini"
|
||||
@click="downdtl"
|
||||
>
|
||||
导出Excel
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
@@ -182,6 +192,8 @@ import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import AddDialog from '@/views/wms/st/inStor/productscrap/AddDialog'
|
||||
import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
|
||||
import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'Productscrap',
|
||||
@@ -303,6 +315,22 @@ export default {
|
||||
this.onSelectAll()
|
||||
this.crud.toQuery()
|
||||
this.handleCurrentChange(null)
|
||||
},
|
||||
downdtl() {
|
||||
if (this.currentRow !== null) {
|
||||
crud.downloadLoading = true
|
||||
const queryData = this.crud.query
|
||||
if (this.crud.query.createTime !== undefined) {
|
||||
queryData.begin_time = this.crud.query.createTime[0]
|
||||
queryData.end_time = this.crud.query.createTime[1]
|
||||
}
|
||||
download('/api/productscrap/download', queryData).then(result => {
|
||||
downloadFile(result, '成品报废审核', 'xlsx')
|
||||
crud.downloadLoading = false
|
||||
}).catch(() => {
|
||||
crud.downloadLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user