This commit is contained in:
zds
2022-10-18 11:40:34 +08:00
parent bbd44cbc31
commit 18acc68656
5 changed files with 208 additions and 10 deletions

View File

@@ -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);
}
}

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -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)