Commit 7e721b1f by 杨清松

根据项目和计划周期查询计划明细

parent 8aee5703
......@@ -25,4 +25,6 @@ public interface NeedPlanDao {
List<KObject> getPlanningCycleByNowPlanningCycleAndSandUnitId(UUID purchaseSandUnitId, Date date);
List<KObject> getProjectByNowPlanningCycle(UUID purchaseSandUnitId, UUID planningCycleId);
KObject queryNeedPlanAmountByCycleId(UUID planningCycleId, UUID projectId);
}
......@@ -14,12 +14,15 @@ import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.sales.enumeration.TransportModeEnum;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateTemplate;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.common.BaseConstants;
......@@ -316,6 +319,22 @@ public class SalesPlanDao {
}
return kObjects1;
}
public KObject querySalesPlanAmountByCycleId(UUID planningCycleId) {
return (KObject)template.execute(new HibernateCallback<KObject>() {
@Override
public KObject doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + SalesPlanConstant.ENTITY + " where planningCycle.id =:planningCycleId and approveState=2 and (discard is null or discard = 0) ", KObject.class);
query.setParameter("planningCycleId", planningCycleId);
List<KObject> resultList = query.getResultList();
if(resultList.isEmpty()) {
return null;
} else {
return resultList.get(0);
}
}
});
}
}
......@@ -40,7 +40,6 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
Query<KObject> query = session.createQuery("from " + NEED_PLAN_ENTITY + " where planningCycle.id=:planningCycleId and contract.id=:contractId and submitState=:submitState", KObject.class);
query.setParameter("planningCycleId", planningCycleId);
query.setParameter("contractId", contractId);
query.setParameter("submitState", "SUBMITTED");
List<KObject> resultList = query.getResultList();
if(resultList.isEmpty()) return null;
return resultList.get(0);
......@@ -146,4 +145,22 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
return (List<KObject>)template.findByCriteria(detachedCriteria);
}
@Override
public KObject queryNeedPlanAmountByCycleId(UUID planningCycleId, UUID projectId) {
return (KObject)template.execute(new HibernateCallback<KObject>() {
@Override
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.setParameter("projectId", projectId);
query.setParameter("planningCycleId", planningCycleId);
List<KObject> resultList = query.getResultList();
if(resultList.isEmpty()) {
return null;
} else {
return resultList.get(0);
}
}
});
}
}
......@@ -2,12 +2,14 @@ package com.xyst.dinas.sales.internal.service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.sales.dao.NeedPlanDao;
import com.xyst.dinas.sales.dao.SalesPlanDao;
import com.xyst.dinas.sales.entity.ContractExecuteDetail;
import com.xyst.dinas.sales.service.NeedPlanService;
......@@ -18,6 +20,9 @@ public class NeedPlanServiceImpl implements NeedPlanService {
private NeedPlanDao needPlanDao;
@Autowired
private SalesPlanDao salesPlanDao;
@Autowired
private ContractService contractService;
@Override
......@@ -103,4 +108,48 @@ public class NeedPlanServiceImpl implements NeedPlanService {
return needPlanDao.getProjectByNowPlanningCycle(purchaseSandUnitId,planningCycleId);
}
@Override
public Object queryNeedPlanAmountByCycleId(UUID planningCycleId, UUID projectId) {
KObject needPlanKObject = needPlanDao.queryNeedPlanAmountByCycleId(planningCycleId, projectId);
KObject salesPlanKObject = salesPlanDao.querySalesPlanAmountByCycleId(planningCycleId);
Map<String, Object> map = new HashMap<String, Object>();
if (needPlanKObject != null) {
List<KObject> needPlanDetails = needPlanKObject.get("NeedPlanDetails").toList();
if (needPlanDetails != null && needPlanDetails.size() > 0) {
List<Map<String, Object>> needPlanList = new ArrayList<>();
for (int i = 0; i < needPlanDetails.size(); i++) {
Map<String, Object> needPlanMap = new HashMap<String, Object>();
KObject needPlanDetail = needPlanDetails.get(i);
needPlanMap.put("dinasTypeId", needPlanDetail.get("dinasType").getUuid("id"));
needPlanMap.put("dinasTypeName", needPlanDetail.get("dinasType").getString("dinasTypeName"));
needPlanMap.put("effectiveSale", needPlanDetail.getBigDecimal("effectiveSale"));
needPlanMap.put("needPlanAmount", needPlanDetail.getBigDecimal("needPlanAmount"));
needPlanList.add(needPlanMap);
}
map.put("needPlanDetails", needPlanList);
}
}
if (salesPlanKObject != null) {
List<KObject> salesPlanDetails = salesPlanKObject.get("SalesPlanDetails").toList();
if (salesPlanDetails != null && salesPlanDetails.size() > 0) {
salesPlanDetails = salesPlanDetails.stream().filter(salesPlanDetail -> salesPlanDetail.get("project").getUuid("id").equals(projectId)).collect(Collectors.toList());
if (salesPlanDetails.size() > 0) {
List<Map<String, Object>> salesPlanList = new ArrayList<>();
for (int i = 0; i < salesPlanDetails.size(); i++) {
Map<String, Object> salesPlanMap = new HashMap<String, Object>();
KObject salesPlanDetail = salesPlanDetails.get(i);
salesPlanMap.put("dinasTypId", salesPlanDetail.get("dinasType").getUuid("id"));
salesPlanMap.put("dinasTypeName", salesPlanDetail.getString("dinasTypeName"));
salesPlanMap.put("actualSaleAmount", salesPlanDetail.getBigDecimal("actualSaleAmount"));
salesPlanMap.put("planAmount", salesPlanDetail.getBigDecimal("planAmount"));
salesPlanList.add(salesPlanMap);
}
map.put("salesPlanDetails", salesPlanList);
}
}
}
return map;
}
}
......@@ -26,4 +26,6 @@ public interface NeedPlanService {
List<KObject> getPlanningCycleByNowPlanningCycleAndSandUnitId(UUID purchaseSandUnitId, Date date);
List<KObject> getProjectByNowPlanningCycle(UUID purchaseSandUnitId, UUID planningCycleId);
Object queryNeedPlanAmountByCycleId(UUID fromString, UUID fromString2);
}
package com.xyst.dinas.sales.web;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -44,5 +45,18 @@ public class NeedPlanController {
List<ContractExecuteDetail> list = needPlanService.queryContractExecuteDetailByContractId(UUID.fromString(contractId));
return ResponseObj.success("success", list);
}
/**
* 根据计划周期和项目查询本期分配量和实际销售量
* @param planningCycleId
* @param projectId
* @return
*/
@ResponseBody
@RequestMapping(value = "/needplan/queryPlanDetailsByCycleId", method = RequestMethod.GET)
public Object queryNeedPlanAmountByCycleId(@RequestParam("planningCycleId") String planningCycleId, @RequestParam("projectId") String projectId) {
Object object = needPlanService.queryNeedPlanAmountByCycleId(UUID.fromString(planningCycleId), UUID.fromString(projectId));
return ResponseObj.success("success", object);
}
}
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