Commit ddd9bf79 authored by 1650842865's avatar 1650842865

根据供应商编码、工厂查询货币码优化

parent a7092f61
......@@ -102,10 +102,11 @@ function bindEvent(){
}
});
$('#waersName').searchbox({
type: "suppliers", name: "selectSupplierWaers",
type: "system", name: "selectSupplierWaers",
getParam: function (item) {
return {
partner: $('#lifnr').val()
partner: $('#lifnr').val(),
werks: $('#werks').val()
}
},
onChange: function (value, data) {
......
......@@ -817,4 +817,47 @@ public class ResourceSearchController {
return model;
}
/**
* 根据工厂、供应商编码查询货币码
* @param sdo
* @return
*/
@EasySearch(queryName = "selectSupplierWaers")
public Map<String, Object> selectSupplierWaers(SDO sdo) {
String param = sdo.getString("partner");
String werks = sdo.getString("werks");
List<Map<String, String>> mapList = new ArrayList<>();
List<Map<String, Object>> maps = suppliersDataApplication.selectSupplierWaers(param);
String result = JSONUtil.toString(maps);
ObjectMapper objectMapper = SAPUtils.objectMapper();
try {
mapList = objectMapper.readValue(result, new TypeReference<List<Map<String, String>>>() {});
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
if (StringUtil.isNotBlank(werks)){
mapList = mapList
.stream()
.filter(map -> (map.get("werks").equals(werks) || StringUtil.isBlank(map.get("werks"))))
.collect(Collectors.toList());
}
Integer intPage = sdo.getInteger("intPage", 1);
Integer pageSize = sdo.getInteger("pageSize",10);
PageRequest pageRequest = new PageRequest(intPage - 1, pageSize);
EasySearchParse easySearchParse = new EasySearchParse();
List<QuerySchemeField> fields =
Arrays.asList(
new QuerySchemeField("工厂", "werks", "string", 100L),
new QuerySchemeField("供应商子范围", "ltsnr", "string", 150L),
new QuerySchemeField("供应商子范围描述", "ltsbz", "string", 150L),
new QuerySchemeField("货币码", "waers", "string", 100L),
new QuerySchemeField("货币码描述", "waersName","string", 100L)
);
easySearchParse.setFields(fields);
easySearchParse.setWidth(500L);
MemEasySearcher<Map<String, String>> memEasySearcher = new MemEasySearcherImpl<>();
Map<String, Object> model = memEasySearcher.search(mapList, easySearchParse, pageRequest, null);
return model;
}
}
......@@ -36,6 +36,7 @@ public interface SuppliersDataApplication {
Map<String, Object> loadSuppliersBankDatas(SuppliersBankQueryRequest queryRequest);
Map<String, Object> loadSuppliersItemPeriodDatas(SuppliersBankQueryRequest queryRequest);
List<Map<String, Object>> selectSupplierWaers(String partner);
void deleteSuppliersDataByIds( List<String> ids);
......
......@@ -481,6 +481,12 @@ public class SuppliersDataApplicationImpl extends FlowBroker implements Supplier
return this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
@Override
public List<Map<String, Object>> selectSupplierWaers(String partner) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "selectSupplierWaers");
return this.sqlExecutorDao.queryToListMap(queryDescriptor.getSql(),partner);
}
//删除数据
@Override
public void deleteSuppliersDataByIds(List<String> ids) {
......
......@@ -17,7 +17,7 @@
<condition column="name_org1" name="nameOrg1" symbol="like" alias="t"/>
</easy-search>
<easy-search name="selectSupplierWaers" desc="根据供应商编码查询货币码">
<!--<easy-search name="selectSupplierWaers" desc="根据供应商编码查询货币码">
<sql>
select * from (
SELECT DISTINCT i.partner, '' AS ltsbz, '' AS ltsnr, b.waers, d1.`NAME` as waers_name
......@@ -37,7 +37,7 @@
<field name="货币码" title="货币码" code="waers" width="100"/>
<field name="货币码描述" title="货币码描述" code="waersName" width="100"/>
<condition column="partner" name="partner" symbol="like" alias="i"/>
</easy-search>
</easy-search>-->
<easy-search name="selectQuotedSuppliers" desc="已报价供应商">
<sql>
......
......@@ -49,4 +49,21 @@
</sql-query>
<condition column="s_id" name="sId" type="java.lang.String" symbol="=" alias="t"/>
</query>
<query name="selectSupplierWaers" label="根据供应商编码查询货币码" table="sap_suppliers_item_period">
<sql-query>
select * from (
SELECT DISTINCT i.partner, '' AS ltsbz, '' AS ltsnr, b.waers, d1.`NAME` as waers_name,'' as werks
FROM sap_suppliers_buyer b
LEFT JOIN sap_suppliers_info i ON i.id = b.s_id
LEFT JOIN sa_dictionarydetail d1 ON d1.`VALUE` = b.waers AND d1.DICTIONARY_ID = 'b1d786efdd2911eea8a50242ac110003'
where i.STATUS = 3 AND i.apply_type != - 1
UNION
SELECT DISTINCT i.partner, p.ltsbz, p.ltsnr, p.waers, d2.`NAME` as waers_name,p.werks
FROM sap_suppliers_item_period p
LEFT JOIN sap_suppliers_info i ON i.id = p.s_id
LEFT JOIN sa_dictionarydetail d2 ON d2.`VALUE` = p.waers AND d2.DICTIONARY_ID = 'b1d786efdd2911eea8a50242ac110003'
where i.STATUS = 3 AND i.apply_type != - 1 ) i where 1=1 and i.partner like concat('%',?,'%')
</sql-query>
</query>
</query-mappings>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment