rev:修改:1、库存查询报表新增库存类型可多选;2、发货信息送货单位改为下拉框,车型改为下拉框且支持自定义输入;3、对报表的幅宽进行保留小数限制;4、入库管理新增销售订单及行号查询条件

This commit is contained in:
2023-09-22 08:54:38 +08:00
parent ec5a330508
commit 8a21fdb289
13 changed files with 87 additions and 45 deletions

View File

@@ -37,8 +37,8 @@ public class StructivtController {
@Log("查询库存管理")
@ApiOperation("查询库存管理")
//@PreAuthorize("@el.check('structivt:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page,String[] product_area){
return new ResponseEntity<>(structivtService.queryAll(whereJson,page,product_area),HttpStatus.OK);
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page,String[] product_area,String[] ivt_flag){
return new ResponseEntity<>(structivtService.queryAll(whereJson,page,product_area, ivt_flag),HttpStatus.OK);
}
@PostMapping

View File

@@ -24,7 +24,7 @@ public interface StructivtService {
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page, String[] product_area);
Map<String,Object> queryAll(Map whereJson, Pageable page, String[] product_area, String[] ivt_flag);
/**
* 查询所有数据不分页

View File

@@ -27,10 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author geng by
@@ -44,7 +41,7 @@ public class StructivtServiceImpl implements StructivtService {
private final ClassstandardService classstandardService;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page, String[] product_area) {
public Map<String, Object> queryAll(Map whereJson, Pageable page, String[] product_area,String[] ivt_flag) {
String material = MapUtil.getStr(whereJson, "material");
String struct = MapUtil.getStr(whereJson, "struct");
String stor_id = MapUtil.getStr(whereJson, "stor_id");
@@ -55,7 +52,6 @@ public class StructivtServiceImpl implements StructivtService {
String sale_order_name = MapUtil.getStr(whereJson, "sale_order_name");
String ivt_status = MapUtil.getStr(whereJson, "ivt_status");
String is_virtual = MapUtil.getStr(whereJson, "is_virtual");
String rein_flag = MapUtil.getStr(whereJson, "rein_flag");
JSONObject map = new JSONObject();
map.put("flag", "1");
map.put("stor_id", stor_id);
@@ -91,12 +87,21 @@ public class StructivtServiceImpl implements StructivtService {
}
map.put("areas", areas);
}
if (ObjectUtil.isNotNull(ivt_flag)){
StringJoiner joiner = new StringJoiner(",","(",")");
for (String type : ivt_flag){
joiner.add("'"+type+"'");
}
map.put("rein_flag",joiner.toString());
}
//获取人员对应的仓库
UserStorServiceImpl userStorService = new UserStorServiceImpl();
String in_stor_id = userStorService.getInStor();
if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id", in_stor_id);
if (ObjectUtil.isNotEmpty(rein_flag)) map.put("rein_flag", rein_flag);
JSONObject jsonObject = WQL.getWO("QST_STRUCTIVT001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "a.instorage_time desc");
return jsonObject;
@@ -266,7 +271,7 @@ public class StructivtServiceImpl implements StructivtService {
mp.put("销售订单", json.getString("sale_order_name"));
mp.put("入库日期", json.getString("instorage_time"));
mp.put("生产日期", json.getString("date_of_production"));
mp.put("产品规格(幅宽)", json.getString("width"));
mp.put("产品规格(幅宽)", json.getIntValue("width"));
mp.put("产品厚度", json.getString("thickness"));
mp.put("单位面积重量", json.getString("mass_per_unit_area"));
mp.put("净重", json.getString("net_weight"));

View File

@@ -25,7 +25,7 @@
输入.sale_order_name TYPEAS s_string
输入.package_box_sn TYPEAS s_string
输入.is_virtual TYPEAS s_string
输入.rein_flag TYPEAS s_string
输入.rein_flag TYPEAS f_string
输入.in_stor_id TYPEAS f_string
[临时表]
@@ -154,27 +154,14 @@
ivt.warehousing_qty > 0
ENDOPTION
OPTION 输入.rein_flag <> ""
IFNULL(sub.sub_type,'') in 输入.rein_flag
ENDOPTION
OPTION 输入.ivt_status = "frozen_qty"
ivt.frozen_qty > 0
ENDOPTION
) a
INNER JOIN (
SELECT
dis.pcsn,
mst.bill_type
FROM
st_ivt_iostorinvdis dis
INNER JOIN ( SELECT MAX( iostorinvdis_id ) AS iostorinvdis_id, pcsn FROM st_ivt_iostorinvdis GROUP BY pcsn ) a ON a.iostorinvdis_id = dis.iostorinvdis_id
INNER JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
) b ON a.pcsn = b.pcsn
WHERE
1=1
OPTION 输入.rein_flag = "1"
b.bill_type = '0002'
ENDOPTION
OPTION 输入.rein_flag = "0"
b.bill_type <> '0002'
ENDOPTION
ENDSELECT
ENDPAGEQUERY

View File

@@ -25,9 +25,9 @@ public class AutoQueryBillInfo {
String nofity_day = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("NOFITY_DAY").getValue();
JSONArray send_rows = new JSONArray();
if (Integer.parseInt(nofity_day) == 0) {
send_rows = wo.query("bill_type = '1001' AND bill_status = '99' AND confirm_time > '2023-09-01' AND is_delete = '0' AND (IFNULL(carno,'') = '' OR IFNULL(trans_code,'') = '' OR IFNULL(estimated_freight,'') = '' OR IFNULL(order_number,'') = '' OR IFNULL(car_type,'') = '')").getResultJSONArray(0);
send_rows = wo.query("(bill_type = '1001' OR bill_type = '1004') AND bill_status = '99' AND confirm_time > '2023-09-01' AND is_delete = '0' AND ( IFNULL(trans_code,'') = '' OR IFNULL( deliveryaddress, '' ) = '' OR IFNULL( deliveryunit, '' ) = '' OR (IFNULL(trans_code,'') <> '00000000' AND IFNULL(estimated_freight,0) = 0) OR IFNULL(estimated_freight,'') = '' OR IFNULL(order_number,'') = '' OR IFNULL(car_type,'') = '')").getResultJSONArray(0);
} else {
send_rows = wo.query("bill_type = '1001' AND bill_status = '99' AND confirm_time > '2023-09-01' AND is_delete = '0' AND (IFNULL(carno,'') = '' OR IFNULL(trans_code,'') = '' OR IFNULL(estimated_freight,'') = '' OR IFNULL(order_number,'') = '' OR IFNULL(car_type,'') = '') AND TIMESTAMPDIFF(DAY,confirm_time,NOW()) >= " + nofity_day).getResultJSONArray(0);
send_rows = wo.query("(bill_type = '1001' OR bill_type = '1004') AND bill_status = '99' AND confirm_time > '2023-09-01' AND is_delete = '0' AND ( IFNULL(trans_code,'') = '' OR IFNULL( deliveryaddress, '' ) = '' OR IFNULL( deliveryunit, '' ) = '' OR (IFNULL(trans_code,'') <> '00000000' AND IFNULL(estimated_freight,0) = 0) OR IFNULL(estimated_freight,'') = '' OR IFNULL(order_number,'') = '' OR IFNULL(car_type,'') = '') AND TIMESTAMPDIFF(DAY,confirm_time,NOW()) >= " + nofity_day).getResultJSONArray(0);
}
this.sendInfo(send_rows);
}

View File

@@ -51,6 +51,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
String end_time = MapUtil.getStr(whereJson, "end_time");
String is_virtual = MapUtil.getStr(whereJson, "is_virtual");
String classes = MapUtil.getStr(whereJson, "classes");
String sale_order_name = MapUtil.getStr(whereJson, "sale_order_name");
String pcsn = MapUtil.getStr(whereJson, "pcsn");
String is_all = MapUtil.getStr(whereJson, "is_all");
String thickness_request = MapUtil.getStr(whereJson, "thickness_request");
@@ -64,6 +65,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
map.put("stor_id", stor_id);
map.put("bill_type", bill_type);
map.put("with", with);
map.put("sale_order_name", sale_order_name);
map.put("is_virtual", is_virtual);
map.put("classes", classes);
map.put("pcsn", pcsn);
@@ -113,6 +115,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
String end_time = MapUtil.getStr(whereJson, "end_time");
String is_virtual = MapUtil.getStr(whereJson, "is_virtual");
String classes = MapUtil.getStr(whereJson, "classes");
String sale_order_name = MapUtil.getStr(whereJson, "sale_order_name");
String is_all = MapUtil.getStr(whereJson, "is_all");
String pcsn = MapUtil.getStr(whereJson, "pcsn");
String thickness_request = MapUtil.getStr(whereJson, "thickness_request");
@@ -128,6 +131,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
map.put("with", with);
map.put("pcsn", pcsn);
map.put("is_virtual", is_virtual);
map.put("sale_order_name", sale_order_name);
map.put("classes", classes);
map.put("thickness_request", thickness_request);
@@ -212,6 +216,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
String end_time = MapUtil.getStr(map, "end_time");
String is_virtual = MapUtil.getStr(map, "is_virtual");
String classes = MapUtil.getStr(map, "classes");
String sale_order_name = MapUtil.getStr(map, "sale_order_name");
String pcsn = MapUtil.getStr(map, "pcsn");
String is_all = MapUtil.getStr(map, "is_all");
String thickness_request = MapUtil.getStr(map, "thickness_request");
@@ -226,6 +231,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
mapParam.put("bill_type", bill_type);
mapParam.put("with", with);
mapParam.put("pcsn", pcsn);
mapParam.put("sale_order_name", sale_order_name);
mapParam.put("is_virtual", is_virtual);
mapParam.put("classes", classes);
mapParam.put("thickness_request", thickness_request);
@@ -271,9 +277,9 @@ public class InBillQueryServiceImpl implements InBillQueryService {
mp.put("班次", json.getString("classes"));
mp.put("销售订单", json.getString("sale_order_name"));
mp.put("客户编码", json.getString("customer_name"));
mp.put("规格", json.getString("thickness_request"));
mp.put("尺寸mm客户要求幅宽", json.getString("width_standard"));
mp.put("实际尺寸mm实际幅宽", json.getString("width"));
mp.put("规格", json.getIntValue("thickness_request"));
mp.put("尺寸mm客户要求幅宽", json.getIntValue("width_standard"));
mp.put("实际尺寸mm实际幅宽", json.getIntValue("width"));
String box_name = json.getString("box_name");
if (StrUtil.isNotEmpty(box_name)){
String[] s = box_name.split("木箱");
@@ -336,6 +342,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
String end_time = MapUtil.getStr(map, "end_time");
String is_virtual = MapUtil.getStr(map, "is_virtual");
String classes = MapUtil.getStr(map, "classes");
String sale_order_name = MapUtil.getStr(map, "sale_order_name");
String pcsn = MapUtil.getStr(map, "pcsn");
String is_all = MapUtil.getStr(map, "is_all");
String thickness_request = MapUtil.getStr(map, "thickness_request");
@@ -350,6 +357,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
mapParam.put("bill_type", bill_type);
mapParam.put("with", with);
mapParam.put("pcsn", pcsn);
mapParam.put("sale_order_name", sale_order_name);
mapParam.put("is_virtual", is_virtual);
mapParam.put("classes", classes);
mapParam.put("thickness_request", thickness_request);
@@ -396,8 +404,8 @@ public class InBillQueryServiceImpl implements InBillQueryService {
mp.put("销售订单", json.getString("sale_order_name"));
mp.put("客户编码", json.getString("customer_name"));
mp.put("规格", json.getString("thickness_request"));
mp.put("尺寸mm客户要求幅宽", json.getString("width_standard"));
mp.put("实际尺寸mm实际幅宽", json.getString("width"));
mp.put("尺寸mm客户要求幅宽", json.getIntValue("width_standard"));
mp.put("实际尺寸mm实际幅宽", json.getIntValue("width"));
String box_name = json.getString("box_name");
if (StrUtil.isNotEmpty(box_name)){
String[] s = box_name.split("木箱");
@@ -408,10 +416,10 @@ public class InBillQueryServiceImpl implements InBillQueryService {
mp.put("木箱规格/尺寸", "");
}
mp.put("毛重合计", NumberUtil.round(StrUtil.isEmpty(json.getString("box_weight")) ? "0" : json.getString("box_weight"), 1));
mp.put("小卷号", json.getString("pcsn"));
mp.put("净重KG", NumberUtil.round(StrUtil.isEmpty(json.getString("net_weight")) ? "0" : json.getString("net_weight"), 1));
mp.put("卷数", json.getString("quanlity_in_box"));
mp.put("品级", "A");
mp.put("小卷号", json.getString("pcsn"));
mp.put("箱号", json.getString("box_no"));
mp.put("母卷号", json.getString("parent_container_name"));
mp.put("基重g/m³面密度", NumberUtil.round(StrUtil.isEmpty(json.getString("mass_per_unit_area")) ? "0" : json.getString("mass_per_unit_area"), 1));
@@ -425,7 +433,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
mp.put("内控标准抗拉下限", json.getString("standard_limit"));
mp.put("客户需求抗拉下限", json.getString("demand_limit"));
mp.put("生产日期", json.getString("date_of_production").replace("-","/"));
mp.put("入库日期", json.getString("confirm_time").substring(0,10).replace("-","/"));
mp.put("入库日期", json.getString("confirm_time"));
list.add(mp);
}
}else {

View File

@@ -247,7 +247,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
mp.put("发货客户名称", json.getString("customer_description"));
mp.put("销售订单", json.getString("sale_order_name"));
mp.put("出库日期", json.getString("input_time"));
mp.put("产品规格", json.getString("width"));
mp.put("产品规格", json.getIntValue("width"));
mp.put("产品厚度", json.getString("thickness"));
mp.put("单位面积", json.getString("mass_per_unit_area"));
mp.put("制单人", json.getString("input_optname"));

View File

@@ -19,6 +19,7 @@
输入.with TYPEAS s_string
输入.begin_time TYPEAS s_string
输入.end_time TYPEAS s_string
输入.sale_order_name TYPEAS s_string
输入.pcsn TYPEAS s_string
输入.is_virtual TYPEAS s_string
输入.classes TYPEAS s_string
@@ -168,6 +169,10 @@
mst.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION
OPTION 输入.begin_time <> ""
mst.confirm_time >= 输入.begin_time
ENDOPTION
@@ -286,6 +291,10 @@
mst.confirm_time >= 输入.begin_time
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION
OPTION 输入.end_time <> ""
mst.confirm_time <= 输入.end_time
ENDOPTION
@@ -441,6 +450,10 @@
mst.confirm_time <= 输入.end_time
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION
OPTION 输入.with <> ""
CONCAT( sub.thickness_request,'*',sub.width) = 输入.with
ENDOPTION
@@ -549,6 +562,10 @@
mst.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION
OPTION 输入.begin_time <> ""
mst.confirm_time >= 输入.begin_time
ENDOPTION
@@ -725,6 +742,10 @@
IFNULL(sub.sub_type,'') = ''
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION
OPTION 输入.bill_type = "0007"
sub.sub_type = '2'
ENDOPTION
@@ -844,6 +865,10 @@
mst.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.sale_order_name <> ""
sub.sale_order_name = 输入.sale_order_name
ENDOPTION
OPTION 输入.begin_time <> ""
mst.confirm_time >= 输入.begin_time
ENDOPTION

View File

@@ -86,6 +86,9 @@
OPTION 输入.bill_type <> ""
b.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.pcsn <> ""
a.pcsn = 输入.pcsn
ENDOPTION
AND b.bill_status = '99'
GROUP BY
pcsn

View File

@@ -134,17 +134,18 @@
/>
</el-select>
</el-form-item>
<el-form-item label="退货库存">
<el-form-item label="库存类型">
<el-select
v-model="query.rein_flag"
v-model="query.ivt_flag"
clearable
multiple
size="mini"
placeholder="请选择"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.IS_OR_NOT"
v-for="item in ivtTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
@@ -239,6 +240,11 @@ export default {
{ 'value': 'warehousing_qty', 'label': '待入数' },
{ 'value': 'frozen_qty', 'label': '冻结数' }
],
ivtTypeList: [
{ 'value': ' ', 'label': '生产' },
{ 'value': '2', 'label': '改切' },
{ 'value': '1', 'label': '返检' }
],
permission: {
},
rules: {

View File

@@ -446,7 +446,7 @@
/>
<el-table-column sortable prop="sap_pcsn" label="sap批次" :min-width="flexWidth('sap_pcsn',crud.data,'SAP批次')" />
<el-table-column prop="width" label="产品规格(幅宽)" :min-width="flexWidth('width',crud.data,'产品规格(幅宽)')" />
<el-table-column prop="width_standard" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
<el-table-column prop="width_standard" :formatter="crud.formatNum0" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
<el-table-column prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
<el-table-column
prop="mass_per_unit_area"

View File

@@ -83,6 +83,14 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label-width="120" label="销售订单及行号">
<el-input
v-model="query.sale_order_name"
size="mini"
clearable
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="生产区域">
<el-select
v-model="query.product_area"
@@ -195,7 +203,7 @@
<el-table-column show-overflow-tooltip prop="input_time" label="入库日期" :min-width="flexWidth('input_time',crud.data,'入库日期')" />
<el-table-column show-overflow-tooltip prop="date_of_production" label="生产日期" :min-width="flexWidth('date_of_production',crud.data,'生产日期')" />
<el-table-column show-overflow-tooltip prop="input_optname" label="入库人" :min-width="flexWidth('input_optname',crud.data,'入库人')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width" label="产品规格" :min-width="flexWidth('width',crud.data,'产品规格')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width" label="产品规格" :formatter="crud.formatNum0" :min-width="flexWidth('width',crud.data,'产品规格')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="paper_type" label="管件类型" :min-width="flexWidth('paper_type',crud.data,'管件类型')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="paper_code" label="管件编码" :min-width="flexWidth('paper_code',crud.data,'管件编码')" />

View File

@@ -195,7 +195,7 @@
<el-table-column show-overflow-tooltip prop="input_time" label="入库日期" :min-width="flexWidth('input_time',crud.data,'入库日期')" />
<el-table-column show-overflow-tooltip prop="date_of_production" label="生产日期" :min-width="flexWidth('date_of_production',crud.data,'生产日期')" />
<el-table-column show-overflow-tooltip prop="input_optname" label="入库人" :min-width="flexWidth('input_optname',crud.data,'入库人')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width" label="产品规格" :min-width="flexWidth('width',crud.data,'产品规格')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width" label="产品规格" :formatter="crud.formatNum0" :min-width="flexWidth('width',crud.data,'产品规格')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="paper_type" label="管件类型" :min-width="flexWidth('paper_type',crud.data,'管件类型')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="paper_code" label="管件编码" :min-width="flexWidth('paper_code',crud.data,'管件编码')" />