rev:合同台账功能优化

This commit is contained in:
2024-09-14 14:31:50 +08:00
parent cbec03671b
commit 9ccc7715fd
5 changed files with 140 additions and 43 deletions

View File

@@ -194,6 +194,21 @@
ENDQUERY ENDQUERY
ENDIF ENDIF
IF 输入.flag = "9"
QUERY
SELECT
pp.*
FROM
purchase_contract_view pp
WHERE
1=1
OPTION 输入.no_ids <> ""
pp.vbillcode in 输入.no_ids
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -186,8 +186,8 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc
orderTab.update(json); orderTab.update(json);
} }
@Override
public Map<String, Object> ledgerQuery(Map whereJson, Pageable page) { public Map<String, Object> ledgerQuery2(Map whereJson, Pageable page) {
String material_code = MapUtil.getStr(whereJson, "material_code"); String material_code = MapUtil.getStr(whereJson, "material_code");
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("flag", "11"); map.put("flag", "11");
@@ -257,9 +257,101 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc
} }
@Override @Override
public Map<String, Object> receiveQuery(Map whereJson, Pageable page) { public Map<String, Object> ledgerQuery(Map whereJson, Pageable page) {
String material_code = MapUtil.getStr(whereJson, "material_code");
HashMap<String, String> map = new HashMap<>();
map.put("flag", "11");
map.put("begin_time", MapUtil.getStr(whereJson, "begin_time"));
map.put("end_time", MapUtil.getStr(whereJson, "end_time"));
if (!ObjectUtil.isEmpty(material_code)) {
//处理转义字符
if (material_code.contains("\\")) {
material_code = material_code.replace("\\", "\\\\\\");
}
map.put("material_code", "%" + material_code + "%");
}
String vbillcode = MapUtil.getStr(whereJson, "vbillcode"); String vbillcode = MapUtil.getStr(whereJson, "vbillcode");
JSONObject json = WQL.getWO("QPCS_IF_PURCHASEORDERPROC02").addParam("vbillcode", vbillcode).addParam("flag", "2").pageQuery(WqlUtil.getHttpContext(page), "mst.receive_date desc"); String proc_status = MapUtil.getStr(whereJson, "proc_status");
String contract_no = MapUtil.getStr(whereJson, "contract_no");
String supp_name = MapUtil.getStr(whereJson, "supp_name");
String iszero = MapUtil.getStr(whereJson, "iszero");
if (!ObjectUtil.isEmpty(vbillcode)) {
map.put("vbillcode", "%" + vbillcode + "%");
}
if (!ObjectUtil.isEmpty(proc_status)) {
map.put("proc_status", proc_status);
}
if (!ObjectUtil.isEmpty(contract_no)) {
map.put("contract_no", "%" + contract_no + "%");
}
if (!ObjectUtil.isEmpty(supp_name)) {
map.put("supp_name", "%" + supp_name + "%");
}
String classIds = classstandardService.getAllChildIdStr(MaterOptTypeEnum.ZLFL.getClass_idStr());
map.put("classIds",classIds);
List<JSONObject> content = WQL.getWO("QPCS_IF_PURCHASEORDERPROC02")
.addParamMap(map).process().getResultJSONArray(0).toJavaList(JSONObject.class);
String no_ids = content.stream()
.filter(row -> ObjectUtil.isNotEmpty(row.getString("contract_no")))
.map(row -> row.getString("contract_no"))
.collect(Collectors.joining("','"));
// 查询erp视图 QTY_HT 重量 QTY_ZT 未到货重量NORIGTAXMNY 合同金额
List<JSONObject> ja = WQL.getWO("QERP").setDbname("dataSource1").addParam("flag", "8").addParam("no_ids", "('"+no_ids+"')").process().getResultJSONArray(0).toJavaList(JSONObject.class);
for (int i = 0; i < content.size(); i++) {
JSONObject jsonObject = content.get(i);
Optional<JSONObject> first = ja.stream()
.filter(row -> row.getString("vbillcode").equals(jsonObject.getString("contract_no"))
&& row.getString("item_code").equals(jsonObject.getString("material_code"))).findAny();
jsonObject.put("subscribedate",first.isPresent() ? first.get().get("subscribedate"): "");
// 合同重量
jsonObject.put("qty_ht",first.isPresent() ? first.get().get("qty_ht"): 0);
// 合同未到货重量
jsonObject.put("qty_zt",first.isPresent() ? first.get().get("qty_zt"): 0);
// 合同金额
jsonObject.put("norigtaxmny",first.isPresent() ? first.get().get("norigtaxmny"): 0);
}
// 判断是否有'合同未到货重量'的条件
if (ObjectUtil.isNotEmpty(iszero)) {
boolean is_zero = "true".equals(iszero);
if (is_zero) {
// 过滤掉不为零的数据
content = content.stream()
.filter(row -> row.getDoubleValue("qty_zt") == 0)
.collect(Collectors.toList());
} else {
// 过滤掉为零的数据
content = content.stream()
.filter(row -> row.getDoubleValue("qty_zt") != 0)
.collect(Collectors.toList());
}
}
// 根据签订时间排序(倒序)
content = content.stream()
.sorted(Comparator.comparing(row -> row.getString("subscribedate"),Comparator.reverseOrder()))
.collect(Collectors.toList());
// 组织分页查询并返回
Map<String, Object> json = PageUtil.toPage(
PageUtil.toPage(page.getPageNumber(), page.getPageSize(), content),
content.size()
);
return json;
}
@Override
public Map<String, Object> receiveQuery(Map whereJson, Pageable page) {
String id = MapUtil.getStr(whereJson, "id");
JSONObject json = WQL.getWO("QPCS_IF_PURCHASEORDERPROC02").addParam("source_billdtl_id", id).addParam("flag", "2").pageQuery(WqlUtil.getHttpContext(page), "mst.receive_date desc");
return json; return json;
} }

View File

@@ -21,6 +21,7 @@
输入.proc_status TYPEAS s_string 输入.proc_status TYPEAS s_string
输入.contract_no TYPEAS s_string 输入.contract_no TYPEAS s_string
输入.supp_name TYPEAS s_string 输入.supp_name TYPEAS s_string
输入.source_billdtl_id TYPEAS s_string
输入.classIds TYPEAS f_string 输入.classIds TYPEAS f_string
输入.vbillcodes TYPEAS f_string 输入.vbillcodes TYPEAS f_string
输入.iszero TYPEAS f_string 输入.iszero TYPEAS f_string
@@ -153,7 +154,7 @@
oder.remark oder.remark
FROM FROM
PCS_IF_PurchaseOrderProc oder PCS_IF_PurchaseOrderProc oder
LEFT JOIN PCS_RC_ReceiveDtl dtl ON dtl.source_billdtl_id = oder.id AND dtl.source_bill_code = oder.vbillcode LEFT JOIN PCS_RC_ReceiveDtl dtl ON dtl.source_billdtl_id = oder.id
LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id
LEFT JOIN md_me_materialbase mater ON oder.ITEM_ID = mater.ext_id LEFT JOIN md_me_materialbase mater ON oder.ITEM_ID = mater.ext_id
LEFT JOIN ( LEFT JOIN (
@@ -165,7 +166,7 @@
max( a.receive_id ) AS receive_id max( a.receive_id ) AS receive_id
FROM FROM
PCS_RC_ReceiveDtl a PCS_RC_ReceiveDtl a
LEFT JOIN PCS_IF_PurchaseOrderProc p ON a.source_billdtl_id = p.id AND a.source_bill_code = p.vbillcode LEFT JOIN PCS_IF_PurchaseOrderProc p ON a.source_billdtl_id = p.id
GROUP BY GROUP BY
a.source_billdtl_id a.source_billdtl_id
) )
@@ -217,19 +218,11 @@
IF 输入.flag = "2" IF 输入.flag = "2"
PAGEQUERY PAGEQUERY
SELECT SELECT
oder.contract_no, mst.receive_code,
dtl.receive_code, LEFT(mst.input_time,10) as input_time,
mater.material_code, dtl.receive_qty,
mater.material_name, dtl.receive_qty * oder.PRICE_TAX AS valmoney,
dtl.pcsn, DATE_ADD(LEFT(mst.input_time,10),INTERVAL supp.honour_days DAY) AS plan_date
dtl.receive_qty,
dtl.instor_qty,
dtl.qty_unit_name,
dtl.status,
mst.input_optname,
oder.honor_time,
supp.honour_days,
mst.receive_date
FROM FROM
PCS_RC_ReceiveDtl dtl PCS_RC_ReceiveDtl dtl
LEFT JOIN PCS_IF_PurchaseOrderProc oder ON oder.id = dtl.source_billdtl_id LEFT JOIN PCS_IF_PurchaseOrderProc oder ON oder.id = dtl.source_billdtl_id
@@ -237,7 +230,7 @@
LEFT JOIN PCS_RC_ReceiveMst mst ON dtl.receive_id = mst.receive_id LEFT JOIN PCS_RC_ReceiveMst mst ON dtl.receive_id = mst.receive_id
LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id
WHERE WHERE
oder.vbillcode = 输入.vbillcode dtl.source_billdtl_id = 输入.source_billdtl_id
ENDSELECT ENDSELECT
ENDPAGEQUERY ENDPAGEQUERY

View File

@@ -1,6 +1,6 @@
<template> <template>
<el-dialog <el-dialog
title="到货通知单" title="到货情况"
append-to-body append-to-body
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
destroy-on-close destroy-on-close
@@ -19,20 +19,11 @@
style="width: 100%;" style="width: 100%;"
@selection-change="crud.selectionChangeHandler" @selection-change="crud.selectionChangeHandler"
> >
<el-table-column show-overflow-tooltip prop="vbillcode" label="订单编号" min-width="150"/> <el-table-column prop="receive_code" label="到货通知单" width="120px" show-overflow-tooltip/>
<el-table-column show-overflow-tooltip prop="receive_code" label="到货单号" min-width="130"/> <el-table-column prop="input_time" label="到货时间" width="150px" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编号" min-width="130"/> <el-table-column prop="receive_qty" label="到货重量" show-overflow-tooltip :formatter="crud.formatNum3" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" min-width="130"/> <el-table-column prop="valmoney" label="到货金额" show-overflow-tooltip :formatter="crud.formatNum3" />
<el-table-column show-overflow-tooltip prop="pcsn" label="批次号" /> <el-table-column prop="plan_date" label="资金计划" width="150px" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="receive_qty" label="到货重量" :formatter="crud.formatNum3"/>
<el-table-column show-overflow-tooltip prop="instor_qty" label="入库重量" :formatter="crud.formatNum3"/>
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" />
<el-table-column show-overflow-tooltip prop="status" label="状态" :formatter="formatStatusName"/>
<el-table-column show-overflow-tooltip prop="input_optname" label="创建人" />
<el-table-column show-overflow-tooltip prop="honor_time" label="合同要求履约时间" width="150px" />
<el-table-column show-overflow-tooltip prop="honour_days" label="资金计划履约天数" width="150px"/>
<el-table-column show-overflow-tooltip prop="receive_date" label="到货日期" min-width="100"/>
<el-table-column show-overflow-tooltip prop="" label="资金计划履约时间" width="150px"/>
</el-table> </el-table>
<!--分页组件--> <!--分页组件-->
<pagination /> <pagination />
@@ -73,7 +64,7 @@ export default {
default: false default: false
}, },
openParam: { openParam: {
type: Object type: String
} }
}, },
data() { data() {
@@ -86,7 +77,6 @@ export default {
dialogShow: { dialogShow: {
handler(newValue, oldValue) { handler(newValue, oldValue) {
this.dialogVisible = newValue this.dialogVisible = newValue
this.crud.query.vbillcode = this.openParam
} }
} }
}, },
@@ -108,6 +98,7 @@ export default {
this.$emit('update:dialogShow', false) this.$emit('update:dialogShow', false)
}, },
open() { open() {
this.crud.query.id = this.openParam
this.crud.toQuery() this.crud.toQuery()
}, },
formatStatusName(row, column) { formatStatusName(row, column) {

View File

@@ -8,7 +8,7 @@
:inline="true" :inline="true"
class="demo-form-inline" class="demo-form-inline"
label-position="right" label-position="right"
label-width="80px" label-width="120px"
label-suffix=":" label-suffix=":"
> >
@@ -75,7 +75,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="采购未到货重量"> <el-form-item label="合同未到货重量">
<div> <div>
<el-radio-group v-model="query.iszero" @change="crud.toQuery"> <el-radio-group v-model="query.iszero" @change="crud.toQuery">
<el-radio-button label="true">为0</el-radio-button> <el-radio-button label="true">为0</el-radio-button>
@@ -121,12 +121,18 @@
<el-table-column prop="all_valmoney" label="合计金额" show-overflow-tooltip :formatter="crud.formatNum3" /> <el-table-column prop="all_valmoney" label="合计金额" show-overflow-tooltip :formatter="crud.formatNum3" />
</el-table-column> </el-table-column>
<el-table-column label="到货情况" align="center"> <el-table-column label="到货情况" align="center">
<el-table-column prop="receive_code" label="到货通知单" width="120px" show-overflow-tooltip/> <!-- <el-table-column prop="receive_code" label="到货通知单" width="120px" show-overflow-tooltip/>
<el-table-column prop="input_time" label="到货时间" width="150px" show-overflow-tooltip /> <el-table-column prop="input_time" label="到货时间" width="150px" show-overflow-tooltip />
<el-table-column prop="receive_qty" label="到货重量" show-overflow-tooltip :formatter="crud.formatNum3" /> <el-table-column prop="receive_qty" label="到货重量" show-overflow-tooltip :formatter="crud.formatNum3" />
<el-table-column prop="notqty" label="未到货重量" width="150px" show-overflow-tooltip :formatter="crud.formatNum3" /> <el-table-column prop="notqty" label="未到货重量" width="150px" show-overflow-tooltip :formatter="crud.formatNum3" />
<el-table-column prop="valmoney" label="到货金额" show-overflow-tooltip :formatter="crud.formatNum3" /> <el-table-column prop="valmoney" label="到货金额" show-overflow-tooltip :formatter="crud.formatNum3" />
<el-table-column prop="plan_date" label="资金计划" width="150px" show-overflow-tooltip /> <el-table-column prop="plan_date" label="资金计划" width="150px" show-overflow-tooltip />-->
<el-table-column show-overflow-tooltip prop="bill_code" width="150" label="点击查看到货情况">
<template slot-scope="scope">
<el-link type="warning" @click="openReceive(scope.$index, scope.row)">到货情况</el-link>
</template>
</el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center"> <el-table-column label="备注" align="center">
<el-table-column prop="remark" label="内容" width="200px" show-overflow-tooltip /> <el-table-column prop="remark" label="内容" width="200px" show-overflow-tooltip />
@@ -213,8 +219,8 @@ export default {
} }
} }
}, },
openReceive(row) { openReceive(index, row) {
this.openParam = row.vbillcode this.openParam = row.id
this.receiveDialog = true this.receiveDialog = true
}, },
openRemarkDaing(row) { openRemarkDaing(row) {