Commit ba740909 by shiwenbo

修改销售计划分析查询数据错误的问题

parent d3cc7f5a
...@@ -151,9 +151,10 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant { ...@@ -151,9 +151,10 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
return (KObject)template.execute(new HibernateCallback<KObject>() { return (KObject)template.execute(new HibernateCallback<KObject>() {
@Override @Override
public KObject doInHibernate(Session session) throws HibernateException { public KObject doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + NEED_PLAN_ENTITY + " where project.id=:projectId and planningCycle.id =:planningCycleId and approveState=2 and (discard is null or discard = 0) ", KObject.class); Query<KObject> query = session.createQuery("from " + NEED_PLAN_ENTITY + " where project.id=:projectId and planningCycle.id =:planningCycleId and submitState=:submitState and (discard is null or discard = 0) ", KObject.class);
query.setParameter("projectId", projectId); query.setParameter("projectId", projectId);
query.setParameter("planningCycleId", planningCycleId); query.setParameter("planningCycleId", planningCycleId);
query.setParameter("submitState", "SUBMITTED");
List<KObject> resultList = query.getResultList(); List<KObject> resultList = query.getResultList();
if(resultList.isEmpty()) { if(resultList.isEmpty()) {
return null; return null;
......
...@@ -138,7 +138,7 @@ public class NeedPlanServiceImpl implements NeedPlanService { ...@@ -138,7 +138,7 @@ public class NeedPlanServiceImpl implements NeedPlanService {
if (salesPlanKObject != null) { if (salesPlanKObject != null) {
List<KObject> salesPlanDetails = salesPlanKObject.get("SalesPlanDetails").toList(); List<KObject> salesPlanDetails = salesPlanKObject.get("SalesPlanDetails").toList();
if (salesPlanDetails != null && salesPlanDetails.size() > 0) { if (salesPlanDetails != null && salesPlanDetails.size() > 0) {
salesPlanDetails = salesPlanDetails.stream().filter(salesPlanDetail -> salesPlanDetail.get("project").getUuid("id").equals(projectId)).collect(Collectors.toList()); salesPlanDetails = salesPlanDetails.stream().filter(salesPlanDetail -> salesPlanDetail.get("project").getUuid("id").equals(projectId) && salesPlanDetail.get("contract").getString("contractState").equals("EXECUTING") ).collect(Collectors.toList());
List<Map<String, Object>> removeList = new ArrayList<>(); List<Map<String, Object>> removeList = new ArrayList<>();
if (salesPlanDetails.size() > 0) { if (salesPlanDetails.size() > 0) {
//List<Map<String, Object>> salesPlanList = new ArrayList<>(); //List<Map<String, Object>> salesPlanList = new ArrayList<>();
...@@ -147,7 +147,7 @@ public class NeedPlanServiceImpl implements NeedPlanService { ...@@ -147,7 +147,7 @@ public class NeedPlanServiceImpl implements NeedPlanService {
Map<String, Object> salesPlanMap = new HashMap<String, Object>(); Map<String, Object> salesPlanMap = new HashMap<String, Object>();
KObject salesPlanDetail = salesPlanDetails.get(i); KObject salesPlanDetail = salesPlanDetails.get(i);
salesPlanMap.put("dinasTypeId", salesPlanDetail.get("dinasType").getUuid("id")); salesPlanMap.put("dinasTypeId", salesPlanDetail.get("dinasType").getUuid("id"));
salesPlanMap.put("dinasTypeName", salesPlanDetail.getString("dinasTypeName")); salesPlanMap.put("dinasTypeName", salesPlanDetail.get("dinasType").getString("dinasTypeName"));
salesPlanMap.put("actualSaleAmount", salesPlanDetail.getBigDecimal("actualSaleAmount")); salesPlanMap.put("actualSaleAmount", salesPlanDetail.getBigDecimal("actualSaleAmount"));
salesPlanMap.put("salesPlanAmount", salesPlanDetail.getBigDecimal("planAmount")); //销售计划量 salesPlanMap.put("salesPlanAmount", salesPlanDetail.getBigDecimal("planAmount")); //销售计划量
Map<String, Object> filterMap = planList.stream().filter(detail -> detail.get("dinasTypeId").toString().equals(salesPlanDetail.get("dinasType").getUuid("id").toString())).findAny().orElse(null); Map<String, Object> filterMap = planList.stream().filter(detail -> detail.get("dinasTypeId").toString().equals(salesPlanDetail.get("dinasType").getUuid("id").toString())).findAny().orElse(null);
......
...@@ -37,9 +37,9 @@ public class SalesPlanAutoCreateTaskRegister implements ServiceInitializer{ ...@@ -37,9 +37,9 @@ public class SalesPlanAutoCreateTaskRegister implements ServiceInitializer{
} }
TaskDetail TaskDetail = new TaskDetail(TASK_NAME, SalesPlanAutoCreateTask.class.getName()); TaskDetail TaskDetail = new TaskDetail(TASK_NAME, SalesPlanAutoCreateTask.class.getName());
// 每天凌晨12点执行调度,如测试可修改为每十五秒:*/15 * * * * ?(表达式由至少6个由空格分隔的时间元素,从左至右可分为秒,分,时,日,月,星期) // 每天凌晨12点执行调度,如测试可修改为每十五秒:*/15 * * * * ?(表达式由至少6个由空格分隔的时间元素,从左至右可分为秒,分,时,日,月,星期)
// scheduleService.scheduleTask(TaskDetail, "0 0 0 * * ?"); scheduleService.scheduleTask(TaskDetail, "0 0 0 * * ?");
// 测试调度时进行调用 // 测试调度时进行调用
scheduleService.scheduleTask(TaskDetail, "0 */5 * * * ?"); // scheduleService.scheduleTask(TaskDetail, "0 */5 * * * ?");
logger.info("销售计划自动创建任务初始化成功!"); logger.info("销售计划自动创建任务初始化成功!");
} }
......
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
SELECT SELECT
needPlan.id AS id, needPlan.id AS id,
xystorganization.NAME AS organization, xystorganization.NAME AS organization,
planningCycle.id AS planningCycleId,
planningCycle.title AS planningCycleTitle, planningCycle.title AS planningCycleTitle,
projectFiled.id AS projectId,
projectFiled.projectName AS projectName, projectFiled.projectName AS projectName,
'需用计划' AS type, '需用计划' AS type,
needPlan.needPlanTotalAmount AS needPlanTotalAmount, needPlan.needPlanTotalAmount AS needPlanTotalAmount,
...@@ -27,9 +29,10 @@ ...@@ -27,9 +29,10 @@
LEFT JOIN ( LEFT JOIN (
SELECT detail.project AS projectId, salesPlan.planningCycle AS planningCycle, SUM(detail.planAmount) AS planTotalAmount FROM SalesPlanAssociatedSalesPlanDetail AS detail SELECT detail.project AS projectId, salesPlan.planningCycle AS planningCycle, SUM(detail.planAmount) AS planTotalAmount FROM SalesPlanAssociatedSalesPlanDetail AS detail
LEFT JOIN SalesPlan AS salesPlan ON detail.master = salesPlan.id LEFT JOIN SalesPlan AS salesPlan ON detail.master = salesPlan.id
WHERE salesPlan.approveState = 2 group by detail.project, salesPlan.planningCycle LEFT JOIN Contract AS contract ON contract.id = detail.contract
WHERE salesPlan.approveState = 2 AND contract.contractState = 'EXECUTING' group by detail.project, salesPlan.planningCycle
) AS salesPlanDetail ON needPlan.project = salesPlanDetail.projectId AND needPlan.planningCycle = salesPlanDetail.planningCycle ) AS salesPlanDetail ON needPlan.project = salesPlanDetail.projectId AND needPlan.planningCycle = salesPlanDetail.planningCycle
WHERE ( needPlan.DISCARD = FALSE OR needPlan.DISCARD IS NULL ) WHERE ( needPlan.DISCARD = FALSE OR needPlan.DISCARD IS NULL ) AND needPlan.submitState = 'SUBMITTED'
AND needPlan.regionalCompany = :?regionalCompanyId AND needPlan.regionalCompany = :?regionalCompanyId
AND projectFiled.id = :?projectId AND projectFiled.id = :?projectId
AND planningCycle.startTime &gt;= :?planningCycleStartTime AND planningCycle.startTime &gt;= :?planningCycleStartTime
......
...@@ -60,6 +60,28 @@ ...@@ -60,6 +60,28 @@
}, },
{ {
"type": "VALUE", "type": "VALUE",
"title": "项目id",
"key": "projectId",
"columnType": {
"name" : "inner",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "计划周期id",
"key": "planningCycleId",
"columnType": {
"name" : "inner",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "区域公司", "title": "区域公司",
"key": "organization", "key": "organization",
"columnType": { "columnType": {
...@@ -134,22 +156,7 @@ ...@@ -134,22 +156,7 @@
"title" : "详情", "title" : "详情",
"action" : "openDetail", "action" : "openDetail",
"param" : { "param" : {
"detailModelName" : "com.xyst.dinas.sales.datamodel.NeedPlanAssociatedNeedPlanDetail", "listenerName":"need-plan-query"
"columnList":[
{
"key":"dinasType.dinasTypeName",
"title":"砂石种类"
},
{
"key":"needPlanAmount",
"title":"需用计划量(吨)"
},
{
"key":"effectiveSale",
"title":"实际销售量(吨)"
}
],
"listenerName":"execute-deatil"
}, },
"type" : "" "type" : ""
} ], } ],
......
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata">
<specification>1.0</specification>
<id>33b3994a-0a79-43db-8b59-5b8c7cb63076</id>
<name>com.xyst.dinas.sales.advanquery.NewSalesPlanAdvQuery</name>
<title>销售计划分析</title>
<description>销售计划分析</description>
<define>advanced.query.template</define>
<define-version>1.0</define-version>
<content>
<template>
<sql-type>SQL</sql-type>
<sql>
SELECT
salesPlan.id AS id,
xystorganization.NAME AS organization,
xystorganization.id AS organizationId,
planningCycle.id AS planningCycleId,
planningCycle.title AS planningCycleTitle,
planningCycle.startTime AS planningCycleStartTime,
planningCycle.endTime AS planningCycleEndTime,
projectFiled.projectName AS projectName,
projectFiled.id AS projectId,
needPlan.needPlanTotalAmount AS requiredTotalAmount,
SUM(detail.planAmount) AS totalPlanAmount,
SUM(detail.actualSaleAmount) AS actualSaleTotalAmount
FROM
SalesPlan AS salesPlan
LEFT JOIN SalesPlanAssociatedSalesPlanDetail AS detail ON detail.master = salesPlan.id
LEFT JOIN xystOrganization AS xystorganization ON xystorganization.id = salesPlan.regionalCompany
LEFT JOIN PlanningCycle AS planningCycle ON planningCycle.id = salesPlan.planningCycle
LEFT JOIN Contract AS contract ON detail.contract = contract.id
LEFT JOIN ProjectFiled AS projectFiled ON detail.project = projectFiled.id
LEFT JOIN NeedPlan AS needPlan ON needPlan.planningCycle = salesPlan.planningCycle AND needPlan.project = detail.project AND needPlan.submitState = 'SUBMITTED'
WHERE salesPlan.approveState = 2
AND contract.contractState = 'EXECUTING'
AND xystorganization.id = :?organizationId
AND projectFiled.id = :?projectId
AND planningCycle.startTime &gt;= :?planningCycleStartTime
AND planningCycle.endTime &lt;= :?planningCycleEndTime
GROUP BY salesPlan.planningCycle, detail.project
</sql>
</template>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata">
<specification>1.0</specification>
<id>fd779dfa-31c1-4dd7-ae87-6d2e4041c3e2</id>
<name>com.xyst.dinas.sales.advanquery.NewSalesPlanQueryView</name>
<title>销售计划分析</title>
<description>销售计划分析</description>
<define>advanced.query.view</define>
<define-version>1.0</define-version>
<content>
<view>
{
"name": "销售计划",
"title": "销售计划分析",
"description": "销售计划分析",
"actions": [],
"scenes" : {
"isShowScenes" : true
},
"fuzzySearch": [
],
"isShowTabCountZero": true,
"groups": [
{
"name": "all",
"title": "全部",
"content": {
"datasource": "com.xyst.dinas.sales.advanquery.NewSalesPlanAdvQuery"
}
}
],
"content": {
"isShowView": "table",
"datasource": "com.xyst.dinas.sales.advanquery.NewSalesPlanAdvQuery",
"arguments": {
"items": [
]
},
"actions": [
{
"param": [],
"enable": "ALL",
"name": "query_export",
"action": "query_export",
"permissions":"test",
"title": "导出",
"type": "",
"privage": "com.xyst.dinas.sales.auth.SalesPlanGroupAnalyseExport"
}
],
"table": {
"expand": false,
"pageSize": 10,
"columns": [
{
"type": "VALUE",
"title": "id",
"key": "id",
"columnType": {
"name" : "inner",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "项目id",
"key": "projectId",
"columnType": {
"name" : "inner",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "计划周期id",
"key": "planningCycleId",
"columnType": {
"name" : "inner",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "区域公司",
"key": "organization",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "计划周期",
"key": "planningCycleTitle",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "项目名称",
"key": "projectName",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "需用计划量(吨)",
"key": "requiredTotalAmount",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "销售计划量(吨)",
"key": "totalPlanAmount",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "实际运输量(吨)",
"key": "actualSaleTotalAmount",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type" : "ACTION",
"key" : "new_logo77b16046-4d20-4e43-b6bc-5e5e264014fe",
"title" : "操作列",
"width" : 100,
"actions" : [ {
"name" : "new_action",
"title" : "详情",
"action" : "openDetail",
"param" : {
"listenerName":"new-sales-plan-query"
},
"type" : ""
} ],
"nodeKey" : 13,
"align" : "center",
"isShow" : false
}
]
}
}
}
</view>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata">
<specification>1.0</specification>
<id>ce533b4b-2ea7-458f-99f5-0ed87a350771</id>
<name>com.xyst.dinas.sales.advanquery.NewSalesPlanTempAdvQuery</name>
<title>销售计划分析</title>
<description>销售计划分析</description>
<define>advanced.query.template</define>
<define-version>1.0</define-version>
<content>
<template>
<sql-type>SQL</sql-type>
<sql>
SELECT
salesPlanTemp.id AS id,
xystorganization.NAME AS organization,
xystorganization.id AS organizationId,
planningCycle.title AS planningCycleTitle,
planningCycle.startTime AS planningCycleStartTime,
planningCycle.endTime AS planningCycleEndTime,
projectFiled.projectName AS projectName,
projectFiled.id AS projectId,
salesPlanTemp.totalPlanAmount AS totalPlanAmount
FROM
SalesPlanTemp AS salesPlanTemp
LEFT JOIN xystOrganization AS xystorganization ON xystorganization.id = salesPlanTemp.regionalCompany
LEFT JOIN PlanningCycle AS planningCycle ON planningCycle.id = salesPlanTemp.planningCycle
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = salesPlanTemp.project
WHERE ( salesPlanTemp.DISCARD = FALSE OR salesPlanTemp.DISCARD IS NULL ) AND salesPlanTemp.approveState = 2
AND xystorganization.id = :?organizationId
AND projectFiled.id = :?projectId
AND planningCycle.startTime &gt;= :?planningCycleStartTime
AND planningCycle.endTime &lt;= :?planningCycleEndTime
</sql>
</template>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata">
<specification>1.0</specification>
<id>282e1766-72a8-40c4-b06f-589711bb6df0</id>
<name>com.xyst.dinas.sales.advanquery.NewSalesPlanTempQueryView</name>
<title>临时销售计划分析</title>
<description>临时销售计划分析</description>
<define>advanced.query.view</define>
<define-version>1.0</define-version>
<content>
<view>
{
"name": "临时销售计划",
"title": "临时销售计划分析",
"description": "临时销售计划分析",
"actions": [],
"scenes" : {
"isShowScenes" : true
},
"fuzzySearch": [
],
"isShowTabCountZero": true,
"groups": [
{
"name": "all",
"title": "全部",
"content": {
"datasource": "com.xyst.dinas.sales.advanquery.NewSalesPlanTempAdvQuery"
}
}
],
"content": {
"isShowView": "table",
"datasource": "com.xyst.dinas.sales.advanquery.NewSalesPlanTempAdvQuery",
"arguments": {
"items": [
]
},
"actions": [
{
"param": [],
"enable": "ALL",
"name": "query_export",
"action": "query_export",
"permissions":"test",
"title": "导出",
"type": "",
"privage": "com.xyst.dinas.sales.auth.SalesPlanGroupAnalyseExport"
}
],
"table": {
"expand": false,
"pageSize": 10,
"columns": [
{
"type": "VALUE",
"title": "id",
"key": "id",
"columnType": {
"name" : "inner",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "区域公司",
"key": "organization",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "计划周期",
"key": "planningCycleTitle",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "项目名称",
"key": "projectName",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type": "VALUE",
"title": "销售计划量(吨)",
"key": "totalPlanAmount",
"columnType": {
"name": "select",
"data": {
"selected": true
}
}
},
{
"type" : "ACTION",
"key" : "new_logo77b16046-4d20-4e43-b6bc-5e5e264014fe",
"title" : "操作列",
"width" : 100,
"actions" : [ {
"name" : "new_action",
"title" : "详情",
"action" : "openDetail",
"param" : {
"detailModelName" : "com.xyst.dinas.sales.datamodel.SalesPlanTempAssociatedSalesPlanTempDetail",
"privage" : "com.xyst.dinas.sales.auth.SalesPlanGroupAnalyseCard",
"columnList":[
{
"key":"dinasType.dinasTypeName",
"title":"砂石种类"
},
{
"key":"salesPlanAmount",
"title":"销售计划量(吨)"
}
],
"listenerName":"execute-deatil"
},
"type" : ""
} ],
"nodeKey" : 13,
"align" : "center",
"isShow" : false
}
]
}
}
}
</view>
</content>
</metadata>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<id>3af34512-16f3-1111-8348-0ba0125a9aa9</id> <id>3af34512-16f3-1111-8348-0ba0125a9aa9</id>
<name>com.xyst.dinas.sales.advanquery.SalesPlanAdvQuery</name> <name>com.xyst.dinas.sales.advanquery.SalesPlanAdvQuery</name>
<title>销售计划分析</title> <title>销售计划分析</title>
<description>销售计划分析</description> <description>销售计划分析(废弃)</description>
<define>advanced.query.template</define> <define>advanced.query.template</define>
<define-version>1.0</define-version> <define-version>1.0</define-version>
<content> <content>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<id>9fb8ea1b-b04b-4876-815a-1337272e9863</id> <id>9fb8ea1b-b04b-4876-815a-1337272e9863</id>
<name>com.xyst.dinas.sales.advanquery.SalesPlanDetailAdvQuery</name> <name>com.xyst.dinas.sales.advanquery.SalesPlanDetailAdvQuery</name>
<title>销售计划分析</title> <title>销售计划分析</title>
<description>销售计划分析</description> <description>销售计划分析(废弃)</description>
<define>advanced.query.template</define> <define>advanced.query.template</define>
<define-version>1.0</define-version> <define-version>1.0</define-version>
<content> <content>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<id>d6ba7ca3-e79d-43b1-b414-26cf7a96f194</id> <id>d6ba7ca3-e79d-43b1-b414-26cf7a96f194</id>
<name>com.xyst.dinas.sales.advanquery.SalesPlanDetailQueryView</name> <name>com.xyst.dinas.sales.advanquery.SalesPlanDetailQueryView</name>
<title>销售计划分析</title> <title>销售计划分析</title>
<description>销售计划分析</description> <description>销售计划分析(废弃)</description>
<define>advanced.query.view</define> <define>advanced.query.view</define>
<define-version>1.0</define-version> <define-version>1.0</define-version>
<content> <content>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<id>3af34512-16f3-5912-8348-0ba013da9aa9</id> <id>3af34512-16f3-5912-8348-0ba013da9aa9</id>
<name>com.xyst.dinas.sales.advanquery.SalesPlanQueryView</name> <name>com.xyst.dinas.sales.advanquery.SalesPlanQueryView</name>
<title>销售计划分析</title> <title>销售计划分析</title>
<description>销售计划分析</description> <description>销售计划分析(废弃)</description>
<define>advanced.query.view</define> <define>advanced.query.view</define>
<define-version>1.0</define-version> <define-version>1.0</define-version>
<content> <content>
......
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