rev:合同台账功能优化
This commit is contained in:
@@ -194,6 +194,21 @@
|
||||
ENDQUERY
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -186,8 +186,8 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc
|
||||
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");
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "11");
|
||||
@@ -257,9 +257,101 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc
|
||||
}
|
||||
|
||||
@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");
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
输入.proc_status TYPEAS s_string
|
||||
输入.contract_no TYPEAS s_string
|
||||
输入.supp_name TYPEAS s_string
|
||||
输入.source_billdtl_id TYPEAS s_string
|
||||
输入.classIds TYPEAS f_string
|
||||
输入.vbillcodes TYPEAS f_string
|
||||
输入.iszero TYPEAS f_string
|
||||
@@ -153,7 +154,7 @@
|
||||
oder.remark
|
||||
FROM
|
||||
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_me_materialbase mater ON oder.ITEM_ID = mater.ext_id
|
||||
LEFT JOIN (
|
||||
@@ -165,7 +166,7 @@
|
||||
max( a.receive_id ) AS receive_id
|
||||
FROM
|
||||
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
|
||||
a.source_billdtl_id
|
||||
)
|
||||
@@ -217,19 +218,11 @@
|
||||
IF 输入.flag = "2"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
oder.contract_no,
|
||||
dtl.receive_code,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
dtl.pcsn,
|
||||
dtl.receive_qty,
|
||||
dtl.instor_qty,
|
||||
dtl.qty_unit_name,
|
||||
dtl.status,
|
||||
mst.input_optname,
|
||||
oder.honor_time,
|
||||
supp.honour_days,
|
||||
mst.receive_date
|
||||
mst.receive_code,
|
||||
LEFT(mst.input_time,10) as input_time,
|
||||
dtl.receive_qty,
|
||||
dtl.receive_qty * oder.PRICE_TAX AS valmoney,
|
||||
DATE_ADD(LEFT(mst.input_time,10),INTERVAL supp.honour_days DAY) AS plan_date
|
||||
FROM
|
||||
PCS_RC_ReceiveDtl dtl
|
||||
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 md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id
|
||||
WHERE
|
||||
oder.vbillcode = 输入.vbillcode
|
||||
dtl.source_billdtl_id = 输入.source_billdtl_id
|
||||
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
|
||||
Reference in New Issue
Block a user