rev:成品日报更新
This commit is contained in:
@@ -341,7 +341,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alicp.jetcache</groupId>
|
<groupId>com.alicp.jetcache</groupId>
|
||||||
<artifactId>jetcache-starter-redis</artifactId>
|
<artifactId>jetcache-starter-redis</artifactId>
|
||||||
<version>2.5.14</version>
|
<version>2.7.3</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- jetcache2.7.x版本需要额外添加该依赖-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>redis.clients</groupId>
|
||||||
|
<artifactId>jedis</artifactId>
|
||||||
|
<version>4.3.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package org.nl.system.service.param;
|
package org.nl.system.service.param;
|
||||||
|
|
||||||
|
import com.alicp.jetcache.anno.CacheType;
|
||||||
|
import com.alicp.jetcache.anno.CacheUpdate;
|
||||||
|
import com.alicp.jetcache.anno.Cached;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
@@ -39,6 +42,7 @@ public interface ISysParamService extends IService<Param> {
|
|||||||
*
|
*
|
||||||
* @param param
|
* @param param
|
||||||
*/
|
*/
|
||||||
|
@CacheUpdate(name = "paramDataCode.", key = "#param.code", value = "#param")
|
||||||
void update(Param param);
|
void update(Param param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,5 +58,6 @@ public interface ISysParamService extends IService<Param> {
|
|||||||
* @param code code
|
* @param code code
|
||||||
* @return Param
|
* @return Param
|
||||||
*/
|
*/
|
||||||
|
@Cached(name = "paramDataCode.", key = "#code", expire = 3600, cacheType = CacheType.REMOTE)
|
||||||
Param findByCode(String code);
|
Param findByCode(String code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.system.service.param.impl;
|
package org.nl.system.service.param.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -40,6 +41,10 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
|
|||||||
@Override
|
@Override
|
||||||
public Page<Param> queryPage(Map whereJson, PageQuery page) {
|
public Page<Param> queryPage(Map whereJson, PageQuery page) {
|
||||||
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
|
||||||
|
String code = MapUtil.getStr(whereJson, "code");
|
||||||
|
if (ObjectUtil.isNotEmpty(code)) {
|
||||||
|
queryWrapper.likeRight("code", code).or().likeRight("name", code);
|
||||||
|
}
|
||||||
queryWrapper.orderBy(true, true, "create_time");
|
queryWrapper.orderBy(true, true, "create_time");
|
||||||
Page<Param> paramPage = paramMapper.selectPage(page.build(), queryWrapper);
|
Page<Param> paramPage = paramMapper.selectPage(page.build(), queryWrapper);
|
||||||
return paramPage;
|
return paramPage;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#################################################
|
#################################################
|
||||||
输入.flag TYPEAS s_string
|
输入.flag TYPEAS s_string
|
||||||
输入.customer_name TYPEAS f_string
|
输入.customer_name TYPEAS f_string
|
||||||
|
输入.storIds TYPEAS f_string
|
||||||
|
|
||||||
[临时表]
|
[临时表]
|
||||||
--这边列出来的临时表就会在运行期动态创建
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
@@ -966,29 +967,10 @@
|
|||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "19"
|
|
||||||
QUERY
|
|
||||||
SELECT
|
|
||||||
SUM( ivt.canuse_qty ) / 1000 AS num,
|
|
||||||
sub.customer_name
|
|
||||||
FROM
|
|
||||||
st_ivt_structivt ivt
|
|
||||||
LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id
|
|
||||||
INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = ivt.pcsn AND sub.package_box_sn = attr.storagevehicle_code
|
|
||||||
WHERE
|
|
||||||
ivt.canuse_qty > '0'
|
|
||||||
|
|
||||||
GROUP BY sub.customer_name
|
|
||||||
|
|
||||||
ENDSELECT
|
|
||||||
ENDQUERY
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
IF 输入.flag = "20"
|
IF 输入.flag = "20"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
SUM( dis.plan_qty ) / 1000 AS num,
|
SUM( dis.plan_qty ) / 1000 AS num
|
||||||
sub.customer_name
|
|
||||||
FROM
|
FROM
|
||||||
( SELECT
|
( SELECT
|
||||||
MIN( a.iostorinvdis_id ) AS iostorinvdis_id
|
MIN( a.iostorinvdis_id ) AS iostorinvdis_id
|
||||||
@@ -1008,7 +990,6 @@
|
|||||||
) AS a
|
) AS a
|
||||||
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = a.iostorinvdis_id
|
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = a.iostorinvdis_id
|
||||||
LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id
|
LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id
|
||||||
INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no AND sub.bill_id = dis.iostorinv_id
|
|
||||||
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = dis.struct_id
|
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = dis.struct_id
|
||||||
|
|
||||||
WHERE
|
WHERE
|
||||||
@@ -1020,8 +1001,28 @@
|
|||||||
AND CONCAT(DATE_FORMAT(NOW(), '%Y-%m-01'), ' 08:00:00') <= mst.confirm_time
|
AND CONCAT(DATE_FORMAT(NOW(), '%Y-%m-01'), ' 08:00:00') <= mst.confirm_time
|
||||||
AND NOW() >= mst.confirm_time
|
AND NOW() >= mst.confirm_time
|
||||||
|
|
||||||
GROUP BY sub.customer_name
|
OPTION 输入.storIds <> ""
|
||||||
|
mst.stor_id in 输入.storIds
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "19"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
SUM( ivt.canuse_qty ) / 1000 AS num
|
||||||
|
FROM
|
||||||
|
st_ivt_structivt ivt
|
||||||
|
LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id
|
||||||
|
WHERE
|
||||||
|
ivt.canuse_qty > '0'
|
||||||
|
|
||||||
|
OPTION 输入.storIds <> ""
|
||||||
|
attr.stor_id in 输入.storIds
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|||||||
@@ -459,30 +459,69 @@ public class AutoQueryProudDayData {
|
|||||||
String end_date = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("END_DATE").getValue();
|
String end_date = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("END_DATE").getValue();
|
||||||
String nowDay = DateUtil.today().substring(8, 10);
|
String nowDay = DateUtil.today().substring(8, 10);
|
||||||
|
|
||||||
if (end_date.equals(nowDay)) {
|
if (Double.parseDouble(end_date) <= Double.parseDouble(nowDay)) {
|
||||||
JSONArray Arrayobject6 = new JSONArray();
|
JSONArray Arrayobject6 = new JSONArray();
|
||||||
|
|
||||||
// 当日实时库存,根据客户分组
|
// 所有仓库
|
||||||
List<JSONObject> todayCustIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "19")
|
List<JSONObject> storAllArr = storTab.query("is_used = '1'").getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||||
.process().getResultJSONArray(0).toJavaList(JSONObject.class);
|
|
||||||
|
|
||||||
// 当月入库量(调拨入库:默认1-21号),根据客户分组
|
// B公司
|
||||||
List<JSONObject> monthCustIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "20")
|
String in_B = storAllArr.stream()
|
||||||
.process().getResultJSONArray(0).toJavaList(JSONObject.class);
|
.filter(row -> row.getString("remark").equals("B"))
|
||||||
|
.map(row -> row.getString("stor_id"))
|
||||||
|
.collect(Collectors.joining("','"));
|
||||||
|
|
||||||
|
// C公司
|
||||||
|
String in_C = storAllArr.stream()
|
||||||
|
.filter(row -> row.getString("remark").equals("C"))
|
||||||
|
.map(row -> row.getString("stor_id"))
|
||||||
|
.collect(Collectors.joining("','"));
|
||||||
|
|
||||||
|
// B公司当前库存
|
||||||
|
JSONObject jsonIvtB = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "19").addParam("storIds", "('" + in_B + "')")
|
||||||
|
.process().uniqueResult(0);
|
||||||
|
|
||||||
|
// C公司当前库存
|
||||||
|
JSONObject jsonIvtC = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "19").addParam("storIds", "('" + in_C + "')")
|
||||||
|
.process().uniqueResult(0);
|
||||||
|
|
||||||
|
// B公司当月调拨入库
|
||||||
|
JSONObject monthInB = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "20").addParam("storIds", "('" + in_B + "')")
|
||||||
|
.process().uniqueResult(0);
|
||||||
|
|
||||||
|
// C公司当月调拨入库
|
||||||
|
JSONObject monthInC = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "20").addParam("storIds", "('" + in_C + "')")
|
||||||
|
.process().uniqueResult(0);
|
||||||
|
|
||||||
// ---- B公司 ----
|
// ---- B公司 ----
|
||||||
JSONObject CorpB = upMonthIvt(custB, todayCustIvtList, monthCustIvtList);
|
JSONObject CorpB = upMonthIvt(jsonIvtB, monthInB);
|
||||||
CorpB.put("Customer1", "B库存");
|
CorpB.put("Customer1", "B库存");
|
||||||
Arrayobject6.add(CorpB);
|
Arrayobject6.add(CorpB);
|
||||||
|
|
||||||
// ---- C公司 ----
|
// ---- C公司 ----
|
||||||
JSONObject CorpC = upMonthIvt(custC, todayCustIvtList, monthCustIvtList);
|
JSONObject CorpC = upMonthIvt(jsonIvtC,monthInC);
|
||||||
CorpC.put("Customer1", "C库存");
|
CorpC.put("Customer1", "C库存");
|
||||||
Arrayobject6.add(CorpC);
|
Arrayobject6.add(CorpC);
|
||||||
|
|
||||||
result.put("Arrayobject6",Arrayobject6);
|
result.put("Arrayobject6",Arrayobject6);
|
||||||
result.put("EndDate", getEndDate());
|
} else {
|
||||||
|
JSONArray Arrayobject6 = new JSONArray();
|
||||||
|
|
||||||
|
// B公司
|
||||||
|
JSONObject CorpB = new JSONObject();
|
||||||
|
CorpB.put("Customer1", "B库存");
|
||||||
|
CorpB.put("Customerqty1", "X");
|
||||||
|
Arrayobject6.add(CorpB);
|
||||||
|
|
||||||
|
// C公司
|
||||||
|
JSONObject CorpC = new JSONObject();
|
||||||
|
CorpC.put("Customer1", "C库存");
|
||||||
|
CorpC.put("Customerqty1", "X");
|
||||||
|
Arrayobject6.add(CorpC);
|
||||||
|
|
||||||
|
result.put("Arrayobject6",Arrayobject6);
|
||||||
}
|
}
|
||||||
|
result.put("EndDate", getEndDate());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -666,27 +705,16 @@ public class AutoQueryProudDayData {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上月库存公共方法
|
*
|
||||||
* @param cust 客户
|
* @param jsonIvtB 实施库存
|
||||||
* @param todayCustIvtList 实时库存客户分组
|
* @param monthInB 当月调拨入库量
|
||||||
* @param monthCustIvtList 当月入库量客户分组
|
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public JSONObject upMonthIvt(String cust, List<JSONObject> todayCustIvtList, List<JSONObject> monthCustIvtList) {
|
public JSONObject upMonthIvt(JSONObject jsonIvtB,JSONObject monthInB) {
|
||||||
|
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
|
|
||||||
double ivtCust = todayCustIvtList.stream()
|
double subIvt = NumberUtil.sub(jsonIvtB.getDoubleValue("num"), monthInB.getDoubleValue("num"));
|
||||||
.filter(row -> cust.contains(row.getString("customer_name")))
|
|
||||||
.map(row -> row.getDoubleValue("num"))
|
|
||||||
.reduce(Double::sum).orElse(0.00);
|
|
||||||
|
|
||||||
double inIvtCust = monthCustIvtList.stream()
|
|
||||||
.filter(row -> cust.contains(row.getString("customer_name")))
|
|
||||||
.map(row -> row.getDoubleValue("num"))
|
|
||||||
.reduce(Double::sum).orElse(0.00);
|
|
||||||
|
|
||||||
double subIvt = NumberUtil.sub(ivtCust, inIvtCust);
|
|
||||||
|
|
||||||
result.put("Customerqty1", subIvt > 0 ? NumberUtil.round(subIvt, 2).toString() : "0");
|
result.put("Customerqty1", subIvt > 0 ? NumberUtil.round(subIvt, 2).toString() : "0");
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,7 @@
|
|||||||
LEFT JOIN md_cs_customerbase cust ON cust.cust_code = sub.customer_name
|
LEFT JOIN md_cs_customerbase cust ON cust.cust_code = sub.customer_name
|
||||||
WHERE
|
WHERE
|
||||||
1 = 1
|
1 = 1
|
||||||
|
and ivt.canuse_qty > 0
|
||||||
|
|
||||||
OPTION 输入.stor_id <> ""
|
OPTION 输入.stor_id <> ""
|
||||||
attr.stor_id = 输入.stor_id
|
attr.stor_id = 输入.stor_id
|
||||||
|
|||||||
@@ -123,3 +123,23 @@ management:
|
|||||||
health:
|
health:
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false #取消对elasticsearch的检查 https://www.codeleading.com/article/60643988608/
|
enabled: false #取消对elasticsearch的检查 https://www.codeleading.com/article/60643988608/
|
||||||
|
jetcache:
|
||||||
|
statIntervalMinutes: 15
|
||||||
|
areaInCacheName: false
|
||||||
|
local:
|
||||||
|
default:
|
||||||
|
type: linkedhashmap
|
||||||
|
keyConvertor: fastjson
|
||||||
|
remote:
|
||||||
|
default:
|
||||||
|
type: redis
|
||||||
|
keyConvertor: fastjson2
|
||||||
|
broadcastChannel: projectA
|
||||||
|
valueEncoder: java
|
||||||
|
valueDecoder: java
|
||||||
|
poolConfig:
|
||||||
|
minIdle: 5
|
||||||
|
maxIdle: 20
|
||||||
|
maxTotal: 50
|
||||||
|
host: 127.0.0.1
|
||||||
|
port: 6379
|
||||||
|
|||||||
@@ -2,6 +2,27 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
|
<div v-if="crud.props.searchToggle">
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-position="right"
|
||||||
|
label-width="80px"
|
||||||
|
label-suffix=":"
|
||||||
|
>
|
||||||
|
<el-form-item label="模糊查询">
|
||||||
|
<el-input
|
||||||
|
v-model="query.code"
|
||||||
|
size="mini"
|
||||||
|
clearable
|
||||||
|
placeholder="编码、名称"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<rrOperation />
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
<crudOperation :permission="permission" />
|
<crudOperation :permission="permission" />
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
|
|||||||
Reference in New Issue
Block a user