优化
This commit is contained in:
@@ -17,9 +17,13 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import io.swagger.annotations.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* @author Liuxy
|
||||
* @date 2021-12-15
|
||||
@@ -133,4 +137,9 @@ public class ReceivemstController {
|
||||
receivemstService.createQc(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@ApiOperation("导出数据")
|
||||
@GetMapping(value = "/download")
|
||||
public void download(HttpServletResponse response, ReceivemstQueryDto dto) throws IOException {
|
||||
receivemstService.download(dto, response);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,4 +101,11 @@ public interface ReceivemstService {
|
||||
* @param whereJson/
|
||||
*/
|
||||
void createQc(Map whereJson);
|
||||
/**
|
||||
*
|
||||
* @param whereJson
|
||||
* @param response
|
||||
* @throws IOException
|
||||
*/
|
||||
void download(ReceivemstQueryDto dto, HttpServletResponse response) throws IOException;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package org.nl.wms.pcs.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
@@ -16,6 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.exception.BadRequestException;
|
||||
import org.nl.modules.security.service.dto.JwtUserDto;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.utils.FileUtil;
|
||||
import org.nl.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
||||
import org.nl.wms.basedata.master.service.ClassstandardService;
|
||||
@@ -34,9 +36,9 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author Liuxy
|
||||
@@ -539,4 +541,87 @@ public class ReceivemstServiceImpl implements ReceivemstService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void download(ReceivemstQueryDto dto, HttpServletResponse response) throws IOException {
|
||||
|
||||
//根据登陆人员的所在部门查找对应的计划
|
||||
String user_id = String.valueOf(SecurityUtils.getCurrentUserId());
|
||||
JSONObject jsonUser = WQLObject.getWQLObject("sys_user").query("user_id = '" + user_id + "'").uniqueResult(0);
|
||||
|
||||
String begin_time = dto.getBegin_time();
|
||||
String end_time = dto.getEnd_time();
|
||||
String vbillcode = dto.getVbillcode();
|
||||
String receive_code = dto.getReceive_code();
|
||||
String material_code = dto.getMaterial_code();
|
||||
String supp_code = dto.getSupp_code();
|
||||
String pcsn = dto.getPcsn();
|
||||
String[] statusArr = dto.getStatus();
|
||||
String status = "('";
|
||||
if (ObjectUtil.isNotEmpty(statusArr)) {
|
||||
for (int i = 0; i < statusArr.length; i++) {
|
||||
|
||||
if ((i+1) == statusArr.length) {
|
||||
status = status +statusArr[i] + "')";
|
||||
} else {
|
||||
status = status + statusArr[i] + "','";
|
||||
}
|
||||
}
|
||||
}
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "11");
|
||||
map.put("begin_time", begin_time);
|
||||
map.put("end_time", end_time);
|
||||
map.put("vbillcode", vbillcode);
|
||||
map.put("receive_code", receive_code);
|
||||
map.put("supp_code", supp_code);
|
||||
if (ObjectUtil.isNotEmpty(statusArr)) {
|
||||
map.put("status", status);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(pcsn)) {
|
||||
map.put("pcsn", "%"+pcsn+"%");
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(material_code)) {
|
||||
map.put("material_code", "%"+material_code+"%");
|
||||
}
|
||||
JSONArray rows = WQL.getWO("QPCS_RC_RECEIVEMST01").addParamMap(map).process().getResultJSONArray(0);
|
||||
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
JSONObject jo = rows.getJSONObject(i);
|
||||
Map<String, Object> dtl_map = new LinkedHashMap<>();
|
||||
String status2 = jo.getString("status");
|
||||
if(status2.equals("10")){
|
||||
dtl_map.put("状态", "生成");
|
||||
}else if(status2.equals("20")){
|
||||
dtl_map.put("状态", "提交");
|
||||
}else if(status2.equals("30")){
|
||||
dtl_map.put("状态", "到货中");
|
||||
}else if(status2.equals("99")){
|
||||
dtl_map.put("状态", "确认");
|
||||
}
|
||||
dtl_map.put("订单编号", jo.getString("vbillcode"));
|
||||
dtl_map.put("到货单号", jo.getString("receive_code"));
|
||||
dtl_map.put("供应商", jo.getString("supp_name"));
|
||||
dtl_map.put("物料编码", jo.getString("material_code"));
|
||||
dtl_map.put("物料名称", jo.getString("material_name"));
|
||||
dtl_map.put("批次号", jo.getString("pcsn"));
|
||||
|
||||
String is_no = jo.getString("is_no");
|
||||
if (StrUtil.isEmpty(is_no)) {
|
||||
dtl_map.put("质检单是否已生成", "否");
|
||||
}else{
|
||||
dtl_map.put("质检单是否已生成", "是");
|
||||
}
|
||||
|
||||
dtl_map.put("到货重量", jo.getString("receive_qty"));
|
||||
dtl_map.put("入库重量", jo.getString("instor_qty"));
|
||||
dtl_map.put("剩余重量", jo.getString("surplus_qty"));
|
||||
dtl_map.put("单位", jo.getString("qty_unit_name"));
|
||||
dtl_map.put("创建人", jo.getString("input_optname"));
|
||||
dtl_map.put("到货日期", jo.getString("receive_date"));
|
||||
list.add(dtl_map);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -124,6 +124,82 @@
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "11"
|
||||
QUERY
|
||||
SELECT
|
||||
dtl.*,
|
||||
supp.supp_name,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
mst.receive_date,
|
||||
mst.input_optname,
|
||||
mst.source_type,
|
||||
mst.create_mode,
|
||||
mst.receive_type,
|
||||
mst.stor_id,
|
||||
mst.stor_name,
|
||||
mst.remark,
|
||||
mst.dtl_num,
|
||||
mst.total_qty,
|
||||
proc.vbillcode,
|
||||
ext.standard_weight,
|
||||
(dtl.receive_qty - dtl.instor_qty) AS surplus_qty,
|
||||
SUBSTR(proc.vbillcode,1,6) AS order_code_1,
|
||||
SUBSTR(proc.vbillcode,8,10) AS order_code_2,
|
||||
sheetMst.inspection_id AS is_no
|
||||
FROM
|
||||
PCS_RC_ReceiveDtl dtl
|
||||
LEFT JOIN pcs_rc_receivemst mst ON mst.receive_id = dtl.receive_id
|
||||
LEFT JOIN MD_ME_MaterialBase mater ON mater.material_id = dtl.material_id
|
||||
LEFT JOIN PCS_IF_PurchaseOrderProc proc ON proc.id = dtl.source_billdtl_id
|
||||
LEFT JOIN MD_CS_SUPPLIERBASE supp ON proc.vend_id = supp.ext_id
|
||||
LEFT JOIN MD_ME_StockMaterialExt ext ON mater.material_id = ext.material_id
|
||||
LEFT JOIN QL_TEST_InspectionSheetDtl sheetDtl ON dtl.material_id = sheetDtl.material_id AND dtl.pcsn = sheetDtl.pcsn
|
||||
LEFT JOIN QL_TEST_InspectionSheetMst sheetMst ON sheetMst.inspection_id = sheetDtl.inspection_id and sheetMst.is_delete = '0'
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
|
||||
OPTION 输入.dept_id <> ""
|
||||
mst.sysdeptid = 输入.dept_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.receive_date >= 输入.begin_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.receive_date <= 输入.end_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.vbillcode <> ""
|
||||
proc.vbillcode = 输入.vbillcode
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.receive_code <> ""
|
||||
dtl.receive_code = 输入.receive_code
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.material_code <> ""
|
||||
( mater.material_code like "%" 输入.material_code "%" or
|
||||
mater.material_name like "%" 输入.material_code "%")
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.pcsn <> ""
|
||||
dtl.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.supp_code <> ""
|
||||
( supp.supp_code like "%" 输入.supp_code "%" or
|
||||
supp.supp_name like "%" 输入.supp_code "%")
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.status <> ""
|
||||
dtl.status in 输入.status
|
||||
ENDOPTION
|
||||
order by order_code_1 DESC,order_code_2 ASC,mst.receive_code ASC
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
PAGEQUERY
|
||||
|
||||
@@ -134,6 +134,16 @@
|
||||
>
|
||||
打印
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
@click="downdtl()"
|
||||
>
|
||||
导出excel
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
@@ -193,17 +203,17 @@
|
||||
</el-table-column>
|
||||
<el-table-column v-if="false" prop="receive_id" label="到货单标识" />
|
||||
<el-table-column prop="status" label="状态" :formatter="formatStatusName" />
|
||||
<el-table-column prop="vbillcode" label="订单编号" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column show-overflow-tooltip prop="receive_code" label="到货单号" width="160px">
|
||||
<el-table-column prop="vbillcode" label="订单编号" min-width="100" />
|
||||
<el-table-column prop="receive_code" label="到货单号" width="160px">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="warning" @click="crud.toView(scope.row)">{{ scope.row.receive_code }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="supp_name" label="供应商" min-width="220" show-overflow-tooltip />
|
||||
<el-table-column prop="material_code" label="物料编码" width="120px" show-overflow-tooltip />
|
||||
<el-table-column prop="material_name" label="物料名称" min-width="120px" show-overflow-tooltip />
|
||||
<el-table-column prop="pcsn" label="批次号" show-overflow-tooltip min-width="120" />
|
||||
<el-table-column prop="whether" label="质检单是否已生成" show-overflow-tooltip min-width="120" :formatter="formatWhether"/>
|
||||
<el-table-column prop="supp_name" label="供应商" min-width="220" />
|
||||
<el-table-column prop="material_code" label="物料编码" width="120px" />
|
||||
<el-table-column prop="material_name" label="物料名称" min-width="120px" />
|
||||
<el-table-column prop="pcsn" label="批次号" min-width="120" />
|
||||
<el-table-column prop="whether" label="质检单是否已生成" min-width="120" :formatter="formatWhether"/>
|
||||
<el-table-column prop="receive_qty" label="到货重量" width="120px" :formatter="crud.formatNum3" />
|
||||
<el-table-column prop="instor_qty" label="入库重量" width="120px" :formatter="crud.formatNum3" />
|
||||
<el-table-column prop="surplus_qty" label="剩余重量" width="120px" :formatter="crud.formatNum3" />
|
||||
@@ -228,6 +238,8 @@ import pagination from '@crud/Pagination'
|
||||
import DateRangePicker from '@/components/DateRangePicker'
|
||||
import AddShowDialog from '@/views/wms/pcs/receivemst/AddShowDialog'
|
||||
import { getLodop } from '@/assets/js/lodop/LodopFuncs'
|
||||
import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'Receivemst',
|
||||
@@ -331,6 +343,15 @@ export default {
|
||||
this.printDialog = true
|
||||
this.acuTotal()
|
||||
},
|
||||
downdtl() {
|
||||
crud.downloadLoading = true
|
||||
download('/api/receivemst/download', this.crud.query).then(result => {
|
||||
downloadFile(result, '到货通知单', 'xlsx')
|
||||
crud.downloadLoading = false
|
||||
}).catch(() => {
|
||||
crud.downloadLoading = false
|
||||
})
|
||||
},
|
||||
print() {
|
||||
if (this.form.print_qty <= 0) {
|
||||
this.crud.notify('数量不能为0!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
|
||||
Reference in New Issue
Block a user