Commit b81f98f8 by 闫恒

Merge branch 'feature/dibang_compatibility' into 'develop'

Feature/dibang compatibility

See merge request kunlun/xyst_dinas/xyst_dinas_backend!88
parents 42bc3c0e c9812931
package com.xyst.dinas.contract.dao;
import java.util.UUID;
import com.beecode.bcp.type.KObject;
import java.util.List;
import java.util.UUID;
public interface SelfPickupCarDao {
void update(KObject kobject);
......@@ -13,4 +14,7 @@ public interface SelfPickupCarDao {
KObject load(UUID id);
KObject getCarInfoByContractId(UUID contractId);
List<KObject> queryListByCar(String carNum);
}
package com.xyst.dinas.contract.internal.dao;
import java.util.UUID;
import com.beecode.amino.core.Amino;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.contract.constant.SelfPickupCarConstant;
import com.xyst.dinas.contract.dao.SelfPickupCarDao;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations;
import org.springframework.stereotype.Repository;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.contract.constant.SelfPickupCarConstant;
import com.xyst.dinas.contract.dao.SelfPickupCarDao;
import java.util.List;
import java.util.UUID;
@Repository
public class SelfPickupCarDaoImpl implements SelfPickupCarDao {
......@@ -43,4 +48,15 @@ public class SelfPickupCarDaoImpl implements SelfPickupCarDao {
}
});
}
@Override
public List<KObject> queryListByCar(String carNum) {
KClass bean = Amino.getStaticMetadataContext().getBean(SelfPickupCarConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.createAlias("contract", "contract");
detachedCriteria.add(Restrictions.like("carInfo", "%"+carNum+"%"));
detachedCriteria.add(Restrictions.eq("contract.contractState", ContractStateEnum.EXECUTING.name()));
detachedCriteria.add(Restrictions.eq("discard", false));
return (List<KObject>)template.findByCriteria(detachedCriteria);
}
}
package com.xyst.dinas.contract.internal.service;
import java.util.Date;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.common.BaseConstants;
......@@ -18,6 +10,14 @@ import com.xyst.dinas.contract.internal.dao.ContractDao;
import com.xyst.dinas.contract.service.SelfPickupCarService;
import com.xyst.dinas.project.dao.ProjectFiledDao;
import com.xyst.dinas.project.dao.PurchaseSandCompanyDao;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@Service
public class SelfPickupCarServiceImpl implements SelfPickupCarService {
......@@ -86,4 +86,9 @@ public class SelfPickupCarServiceImpl implements SelfPickupCarService {
return carInfo;
}
@Override
public List<KObject> queryListByCar(String carNum) {
return selfPickupCarDao.queryListByCar(carNum);
}
}
package com.xyst.dinas.contract.service;
import java.util.UUID;
import com.beecode.bcp.type.KObject;
import java.util.List;
import java.util.UUID;
public interface SelfPickupCarService {
UUID create(KObject kobject);
......@@ -11,4 +12,6 @@ public interface SelfPickupCarService {
void update(String param);
String getCarInfoByContractId(String contractId);
List<KObject> queryListByCar(String carNum);
}
package com.xyst.dinas.sales.dao;
import com.beecode.bcp.type.KObject;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import com.beecode.bcp.type.KObject;
public interface NeedPlanDao {
KObject queryNeedPlanByContractIdAndCycleId(UUID planningCycleId, UUID contractId);
......@@ -28,7 +28,7 @@ public interface NeedPlanDao {
KObject queryNeedPlanAmountByCycleId(UUID planningCycleId, UUID projectId);
List<KObject> getByCarAndPlanningCycle(String carNum, KObject planningCycleObj);
List<KObject> getByCarAndPlanningCycle(String carNum, KObject planningCycleObj,UUID contractId);
KObject queryDetailById(UUID fromString);
}
......@@ -351,7 +351,7 @@ public class SalesPlanDao {
* @param station
* @return
*/
public List<KObject> getSaleTempByCarNum(String carNum, KObject station) {
public List<KObject> getSaleTempByCarNum(String carNum, KObject station,UUID contractId) {
KClass bean = Amino.getStaticMetadataContext().getBean(SalesPlanConstant.ENTITY_TEMP, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
......@@ -361,7 +361,9 @@ public class SalesPlanDao {
detachedCriteria.add(Restrictions.le("planningCycle.startTime", new Date()));
detachedCriteria.add(Restrictions.ge("planningCycle.endTime", new Date()));
detachedCriteria.add(Restrictions.eq("station.id", station.getUuid("id")));
detachedCriteria.add(Restrictions.like("carNumber", "%"+carNum+"%"));
// modify by 销售计划车辆撤销不维护 from yanH start
// detachedCriteria.add(Restrictions.like("carNumber", "%"+carNum+"%"));
detachedCriteria.add(Restrictions.eq("contract.id", contractId));
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
......@@ -398,7 +400,7 @@ public class SalesPlanDao {
* @param station
* @return
*/
public List<KObject> getSaleByCarNum(String carNum, KObject station) {
public List<KObject> getSaleByCarNum(String carNum, KObject station,UUID contractId) {
KClass bean = Amino.getStaticMetadataContext().getBean(SalesPlanConstant.ENTITY_DETAIL, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
......@@ -411,7 +413,9 @@ public class SalesPlanDao {
detachedCriteria.add(Restrictions.ge("planningCycle.endTime", new Date()));
detachedCriteria.add(Restrictions.eq("station.id", station.getUuid("id")));
detachedCriteria.add(Restrictions.eq(BaseConstants.MASTER+"."+SalesPlanConstant.APPROVE_STATE, BizProcessState.DONE_WITH_AGREE.getValue()));
detachedCriteria.add(Restrictions.like("contract.carInfo", "%"+carNum+"%"));
// modify by 销售计划车辆撤销不维护 from yanH start
// detachedCriteria.add(Restrictions.like("contract.carInfo", "%"+carNum+"%"));
detachedCriteria.add(Restrictions.eq("contract.id", contractId));
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
}
......
......@@ -161,13 +161,15 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
}
@Override
public List<KObject> getByCarAndPlanningCycle(String carNum, KObject planningCycleObj) {
public List<KObject> getByCarAndPlanningCycle(String carNum, KObject planningCycleObj,UUID contractId) {
KClass bean = Amino.getStaticMetadataContext().getBean(NEED_PLAN_ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq("submitState", SubmitStateEnum.SUBMITTED.name()));
detachedCriteria.add(Restrictions.eq("planningCycle.id", planningCycleObj.getUuid("id")));
detachedCriteria.add(Restrictions.like("transportLicensePlateNumber", "%"+carNum+"%"));
// modify by 销售计划车辆撤销不维护 from yanH start
// detachedCriteria.add(Restrictions.like("transportLicensePlateNumber", "%"+carNum+"%"));
detachedCriteria.add(Restrictions.eq("contract.id", contractId));
return (List<KObject>)template.findByCriteria(detachedCriteria);
}
......
package com.xyst.dinas.sales.internal.service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
import com.xyst.dinas.biz.enumeration.PlanningCycleEnum;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.constant.PlanningCycleConstant;
import com.xyst.dinas.biz.enumeration.PlanningCycleEnum;
import com.xyst.dinas.biz.service.PlanningCycleService;
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;
import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
public class NeedPlanServiceImpl implements NeedPlanService {
......@@ -183,11 +177,11 @@ public class NeedPlanServiceImpl implements NeedPlanService {
}
@Override
public List<KObject> queryNeedPlanByCarNumAndPlanningCycle(KObject station, String carNum, Date date) {
public List<KObject> queryNeedPlanByCarNumAndPlanningCycle(KObject station, String carNum, Date date,UUID contractId) {
//
String planningCycle = station.get("regionalCompany").getString("planningCycle");
PlanningCycleEnum planningCycleEnum = PlanningCycleEnum.valueOf(planningCycle);
KObject planningCycleObj = planningCycleService.getPlanningCycleObj(planningCycleEnum, date);
return needPlanDao.getByCarAndPlanningCycle(carNum,planningCycleObj);
return needPlanDao.getByCarAndPlanningCycle(carNum,planningCycleObj, contractId);
}
}
......@@ -540,15 +540,15 @@ public class SalesPlanServiceImpl implements SalesPlanService {
}
@Override
public List<Map<String, Object>> querySalesPlanByCarNum(KObject station, String carNum) {
public List<Map<String, Object>> querySalesPlanByCarNum(KObject station, String carNum ,UUID contractId) {
//根据车牌号获取需用计划,每个车牌可能有多个需用计划
List<KObject> plans = needPlanService.queryNeedPlanByCarNumAndPlanningCycle(station, carNum, new Date());
List<KObject> plans = needPlanService.queryNeedPlanByCarNumAndPlanningCycle(station, carNum, new Date(),contractId);
//根据计划周期和合同编号获取本次购砂单位实际可以分配的砂石类型
//根据需用计划中计划周期和合同获取销售计划
ArrayList<Map<String, Object>> maps = new ArrayList<>();
List<KObject> saleTempByCarNum = salesPlanDao.getSaleTempByCarNum(carNum, station);
List<KObject> saleTempByCarNum = salesPlanDao.getSaleTempByCarNum(carNum, station,contractId);
//没有需用计划却提了销售计划的可能,线下提销售计划
List<KObject> saleDetails = salesPlanDao.getSaleByCarNum(carNum, station);
List<KObject> saleDetails = salesPlanDao.getSaleByCarNum(carNum, station,contractId);
for (KObject saleDetail : saleDetails) {
KObject sale = saleDetail.get("master");
......
package com.xyst.dinas.sales.service;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.sales.entity.ContractExecuteDetail;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.sales.entity.ContractExecuteDetail;
public interface NeedPlanService {
......@@ -31,5 +31,5 @@ public interface NeedPlanService {
KObject querySalePlanByCycleId(UUID fromString);
List<KObject> queryNeedPlanByCarNumAndPlanningCycle(KObject station, String carNum, Date date);
List<KObject> queryNeedPlanByCarNumAndPlanningCycle(KObject station, String carNum, Date date,UUID contractId);
}
package com.xyst.dinas.sales.service;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.sales.web.request.SaleaPlanDetailQuery;
import org.json.JSONObject;
import org.springframework.lang.Nullable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.lang.Nullable;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.sales.web.request.SaleaPlanDetailQuery;
public interface SalesPlanService {
/**
......@@ -88,6 +87,6 @@ public interface SalesPlanService {
List<KObject> getSealTempDinasTypeListByNeedPlanInfo(UUID purchaseSandUnitId, UUID planningCycleId, UUID projectId);
List<Map<String, Object>> querySalesPlanByCarNum(KObject station, String carNum);
List<Map<String, Object>> querySalesPlanByCarNum(KObject station, String carNum,UUID contractId);
}
......@@ -9,6 +9,7 @@ import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.util.Base64;
import com.xyst.dinas.biz.service.StationService;
import com.xyst.dinas.contract.service.SelfPickupCarService;
import com.xyst.dinas.sales.service.InventoryService;
import com.xyst.dinas.sales.service.SalesPlanService;
import com.xyst.dinas.sales.service.SalesRecordService;
......@@ -45,6 +46,8 @@ public class WeighbridgeSyncController {
private InventoryService inventoryService;
@Autowired
private AttachmentService attachmentService;
@Autowired
private SelfPickupCarService selfPickupCarService;
/**
......@@ -88,23 +91,30 @@ public class WeighbridgeSyncController {
if (station == null) {
return ResponseObj.error(500, "没有查询到地磅匹配的场站");
}
HashMap<String, Object> returnMap = new HashMap<>(4);
returnMap.put("code",200);
returnMap.put("message","查询成功");
if(StringUtils.isNotBlank(carNum)){
//根据车牌查询所属合同和销售计划
List<Map<String, Object>> salesPlan = salesPlanService.querySalesPlanByCarNum(station, carNum);
Collection<? extends Map<String, Object>> maps = vehicleDispatchService.vehicleDispatchService(station, carNum);
if (maps != null) {
salesPlan.addAll(maps);
}
if(salesPlan == null || salesPlan.isEmpty()){
//查询合同内自提车辆信息是否为自提
List<KObject> carInfoKObject = selfPickupCarService.queryListByCar(carNum);
if(carInfoKObject.size() > 0){ //如果有数据则为自提数据
//根据车牌查询所属合同和销售计划
//获取自提车辆对应的合同id
UUID contractId = carInfoKObject.get(0).get("contract").getUuid("id");
List<Map<String, Object>> salesPlan = salesPlanService.querySalesPlanByCarNum(station, carNum,contractId);
Collection<? extends Map<String, Object>> maps = vehicleDispatchService.vehicleDispatchService(station, carNum);
if (maps != null) {
salesPlan.addAll(maps);
}
if(salesPlan.size() > 0 ){
returnMap.put("saleType",1);
returnMap.put("data",salesPlan);
return returnMap;
}else {//否则认为是散户
return getDinasReturn(station, returnMap);
}
}else {//否则认为是散户
return getDinasReturn(station, returnMap);
}else{
returnMap.put("saleType",1);
returnMap.put("data",salesPlan);
return returnMap;
}
}else{
return getDinasReturn(station, returnMap);
......
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