代码更新

This commit is contained in:
2022-11-27 11:53:17 +08:00
parent 17eae55192
commit ce718d939b
3 changed files with 255 additions and 65 deletions

View File

@@ -57,61 +57,14 @@ public class IostordailyServiceImpl implements IostordailyService {
map.put("material_code", "%" + material_code + "%");
}
if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn", "%" + pcsn + "%");
JSONObject json = WQL.getWO("SendReceiveQuery_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "da.sect_date desc");
/*
* 处理所属组织
* 1.PG粉所属组织通过物料编码+批次找工令所属组织来获取
* 2.软废所属组织:物料编码去掉后缀 例如:-YZ 找最近完成的工令获取所属组织,若还有其他事业部,页面单元格底色标黄色
* 3.除PG粉和软废外其他类型物料所属组织取不到 为空就行
*/
WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表
WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表
JSONArray contentArr = json.getJSONArray("content");
for (int i = 0; i < contentArr.size(); i++) {
JSONObject jsonObject = contentArr.getJSONObject(i);
String material_id = jsonObject.getString("material_id");
String pcsn_1 = jsonObject.getString("pcsn");
/*// 判断物料是PG粉还是软废
boolean is_pgf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.PGF.getCode(), material_id, null);
boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), material_id, null);
if (is_pgf) {
JSONObject jsonWork = workTab.query("material_id = '" + material_id + "' and pcsn = '" + pcsn_1 + "' and is_delete ='0'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonWork)) continue;
JSONObject jsonDept = deptTab.query("dept_id = '" + jsonWork.getString("org_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonDept)) jsonObject.put("dept_name", jsonDept.getString("name"));
}
if (is_rf) {
// 截取 "-" 最后出现的前面的字符串
String material_code_1 = jsonObject.getString("material_code");
int lastIndexOf = material_code_1.lastIndexOf('-');
String material_code_sub = material_code_1.substring(0, lastIndexOf);
JSONArray workArr = WQL.getWO("SendReceiveQuery_query_01").addParam("flag", "3").addParam("material_code", material_code_sub).process().getResultJSONArray(0);
if (ObjectUtil.isEmpty(workArr)) continue;
if (workArr.size() > 1) {
jsonObject.put("is_yellow", "1");
JSONObject json_1 = workArr.getJSONObject(0);
jsonObject.put("dept_name",json_1.getString("dept_name"));
} else {
JSONObject json_1 = workArr.getJSONObject(0);
jsonObject.put("dept_name",json_1.getString("dept_name"));
}
}*/
}
JSONObject json = WQL.getWO("SendReceiveQuery").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "da.sect_date desc");
return json;
}
@Override
public JSONArray getStor() {
JSONArray jsonArr = WQL.getWO("SendReceiveQuery_query_01").addParam("flag", "2").process().getResultJSONArray(0);
JSONArray jsonArr = WQL.getWO("SendReceiveQuery").addParam("flag", "2").process().getResultJSONArray(0);
return jsonArr;
}
}

View File

@@ -0,0 +1,245 @@
[交易说明]
交易名: 收发存分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.begin_time TYPEAS s_string
输入.end_time TYPEAS s_string
输入.material_code TYPEAS s_string
输入.classIds TYPEAS f_string
输入.pcsn TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT
stor.stor_name,
da.sect_date,
da.pcsn,
da.quality_scode,
class.class_name,
class.class_code,
mater.material_id,
mater.material_code,
mater.material_name,
mater.material_model,
unit.unit_name,
da.start_num,
da.in_num,
da.out_num,
da.end_num,
da.more_num,
da.less_num
FROM(
SELECT
sum(start_num) AS start_num,
sum(in_num ) AS in_num,
sum(out_num ) AS out_num,
sum(end_num) AS end_num,
sum(more_num) AS more_num,
sum(less_num) AS less_num,
max(material_id) AS material_id,
max(stor_id) AS stor_id,
max(sect_date) AS sect_date,
max(quality_scode) AS quality_scode,
max(pcsn) AS pcsn
FROM
ST_IVT_IOStorDaily a
GROUP BY
a.material_id,
a.quality_scode,
a.pcsn,
a.sect_date
) AS da
LEFT JOIN MD_ME_MaterialBase mater ON da.material_id = mater.material_id
LEFT JOIN md_pb_classstandard class ON mater.material_type_id = class.class_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mater.base_unit_id
LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = da.stor_id
WHERE 1=1
OPTION 输入.stor_id <> ""
stor.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.begin_time <> ""
da.sect_date >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
da.sect_date <= 输入.end_time
ENDOPTION
OPTION 输入.material_code <> ""
(mater.material_code like 输入.material_code or
mater.material_name like 输入.material_code)
ENDOPTION
OPTION 输入.pcsn <> ""
(da.pcsn like 输入.pcsn or
da.pcsn like 输入.pcsn)
ENDOPTION
OPTION 输入.classIds <> ""
class.class_id in 输入.classIds
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "11"
QUERY
SELECT
sum(outq.start_num) AS start_num,
sum(outq.in_num) AS in_num,
sum(outq.out_num) AS out_num,
sum(outq.end_num) AS end_num
FROM
(
SELECT
stor.stor_name,
da.sect_date,
da.is_active,
da.ivt_level,
da.pcsn,
da.quality_scode,
class.class_name,
class.class_code,
mater.material_id,
mater.material_code,
mater.material_name,
mater.material_model,
unit.unit_name,
da.start_num,
da.in_num,
da.out_num,
da.end_num,
da.more_num,
da.less_num
FROM(
SELECT
sum(start_num) AS start_num,
sum(in_num ) AS in_num,
sum(out_num ) AS out_num,
sum(end_num) AS end_num,
sum(more_num) AS more_num,
sum(less_num) AS less_num,
max(material_id) AS material_id,
max(stor_id) AS stor_id,
max(sect_date) AS sect_date,
max(quality_scode) AS quality_scode,
max(pcsn) AS pcsn,
max(ivt_level) AS ivt_level,
max(is_active) AS is_active
FROM
ST_IVT_IOStorDaily a
GROUP BY
a.material_id,
a.quality_scode,
a.pcsn,
a.ivt_level,
a.is_active,
a.sect_date
) AS da
LEFT JOIN MD_ME_MaterialBase mater ON da.material_id = mater.material_id
LEFT JOIN md_pb_classstandard class ON mater.material_type_id = class.class_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mater.base_unit_id
LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = da.stor_id
WHERE 1=1
OPTION 输入.stor_id <> ""
stor.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.begin_time <> ""
da.sect_date >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
da.sect_date <= 输入.end_time
ENDOPTION
OPTION 输入.material_code <> ""
(mater.material_code like 输入.material_code or
mater.material_name like 输入.material_code)
ENDOPTION
OPTION 输入.pcsn <> ""
(da.pcsn like 输入.pcsn or
da.pcsn like 输入.pcsn)
ENDOPTION
OPTION 输入.classIds <> ""
class.class_id in 输入.classIds
ENDOPTION
) outq
where 1=1
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
t.stor_name AS label,
t.stor_id AS value
FROM
st_ivt_bsrealstorattr t
WHERE
t.is_delete = '0'
AND t.is_used = '1'
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
sum(work.ok_qty) AS ok_qty,
dept.name AS dept_name
FROM
PDM_BI_WorkOrder work
INNER JOIN md_me_materialbase mater ON mater.material_id = work.material_id
INNER JOIN sys_dept dept ON dept.dept_id = work.org_id
WHERE
work.is_delete = '0'
OPTION 输入.material_code <> ""
mater.material_code = 输入.material_code
ENDOPTION
group by work.org_id
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -65,15 +65,6 @@
/>
</el-form-item>
<el-form-item label="物料类别">
<treeselect
v-model="query.material_type_id"
:load-options="loadClass"
:options="classes"
style="width: 220px;"
placeholder="请选择"
/>
</el-form-item>
<rrOperation/>
</el-form>
@@ -83,16 +74,17 @@
<!--表格渲染-->
<el-table ref="table" :cell-style="cellStyleMst" show-summary :summary-method="getSum" :max-height="590" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column prop="stor_name" label="仓库"/>
<el-table-column prop="class_code" label="物料分类编码" width="100px" />
<el-table-column prop="class_name" label="物料分类名称" width="100px" />
<el-table-column prop="sect_date" label="日期" width="100px" />
<!-- <el-table-column prop="class_code" label="物料分类编码" width="100px" />-->
<!-- <el-table-column prop="class_name" label="物料分类名称" width="100px" />-->
<el-table-column prop="material_code" label="物料编码" min-width="150" show-overflow-tooltip/>
<el-table-column prop="material_name" label="物料名称" min-width="150" show-overflow-tooltip/>
<el-table-column prop="material_model" label="型号/牌号" min-width="150" show-overflow-tooltip/>
<el-table-column prop="material_model" label="规格/型号" min-width="150" show-overflow-tooltip/>
<el-table-column prop="unit_name" label="主单位"/>
<el-table-column prop="pcsn" label="批次号" min-width="120" show-overflow-tooltip/>
<el-table-column prop="dept_name" label="所属组织" min-width="120" show-overflow-tooltip/>
<!-- <el-table-column prop="dept_name" label="所属组织" min-width="120" show-overflow-tooltip/>-->
<!-- <el-table-column prop="quality_scode" label="品质类型" :formatter="formatQualityName" />-->
<el-table-column prop="ivt_level" label="质量等级" :formatter="formatIvtName" />
<!-- <el-table-column prop="ivt_level" label="质量等级" :formatter="formatIvtName" />-->
<!-- <el-table-column prop="is_active" label="是否可用" :formatter="formatIsName" />-->
<el-table-column prop="start_num" label="期初主数量" :formatter="crud.formatNum3" width="100px" />
<el-table-column prop="in_num" label="入库主数量" :formatter="crud.formatNum3" width="100px" />
@@ -139,7 +131,7 @@ const defaultForm = {
}
export default {
name: 'SendReceiveQuery',
components: { pagination, crudOperation, rrOperation, udOperation, DateRangePicker, Treeselect },
components: { pagination, crudOperation, rrOperation, udOperation, DateRangePicker },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -147,7 +139,7 @@ export default {
url: 'api/iostordaily',
idField: 'stordaily_id',
sort: '',
crudMethod: {...crudIostordaily},
crudMethod: { ...crudIostordaily },
props: {
// 每页数据条数
size: 20