Commit 9027f80a by 高晓磊

手机端运输记录与派单

parent ff8722e4
......@@ -4,13 +4,14 @@ import com.xyst.dinas.transport.dao.VehicleDispatchDao;
import com.xyst.dinas.transport.internal.dao.VehicleDispatchDaoImpl;
import com.xyst.dinas.transport.internal.service.VehicleDispatchServiceImpl;
import com.xyst.dinas.transport.service.VehicleDispatchService;
import com.xyst.dinas.transport.task.VehicleDispatchStatusTask;
import com.xyst.dinas.transport.task.VehicleDispatchStatusTaskRegister;
import com.xyst.dinas.transport.web.VehicleDispatchController;
import org.springframework.context.annotation.Bean;
public class VehicleDispatchConfiguration {
@Bean
public VehicleDispatchController vehicleDispatchController() {
return new VehicleDispatchController();
}
......@@ -24,4 +25,12 @@ public class VehicleDispatchConfiguration {
public VehicleDispatchDao vehicleDispatchDao() {
return new VehicleDispatchDaoImpl();
}
@Bean
public VehicleDispatchStatusTask vehicleDispatchStatusTask() {
return new VehicleDispatchStatusTask();
}
@Bean
public VehicleDispatchStatusTaskRegister vehicleDispatchStatusTaskRegister() {
return new VehicleDispatchStatusTaskRegister();
}
}
package com.xyst.dinas.transport.config;
import com.xyst.dinas.transport.dao.VehicleDriverUserDao;
import com.xyst.dinas.transport.internal.dao.VehicleBindDriverUserDaoImpl;
import com.xyst.dinas.transport.internal.service.VehicleBindDriverUserServiceImpl;
import com.xyst.dinas.transport.service.VehicleBindDriverUserService;
import com.xyst.dinas.transport.internal.dao.VehicleDriverUserDaoImpl;
import com.xyst.dinas.transport.internal.service.VehicleDriverUserServiceImpl;
import com.xyst.dinas.transport.service.VehicleDriverUserService;
import com.xyst.dinas.transport.web.VehicleDriverUserController;
import org.springframework.context.annotation.Bean;
public class VehicleBindDriverUserConfiguration {
public class VehicleDriverUserConfiguration {
@Bean
public VehicleDriverUserController vehicleBindDriverUserController() {
public VehicleDriverUserController vehicleDriverUserController() {
return new VehicleDriverUserController();
}
@Bean
public VehicleBindDriverUserService vehicleBindDriverUserService() {
return new VehicleBindDriverUserServiceImpl();
public VehicleDriverUserService vehicleDriverUserService() {
return new VehicleDriverUserServiceImpl();
}
@Bean
public VehicleDriverUserDao vehicleBindDriverUserDao() {
return new VehicleBindDriverUserDaoImpl();
public VehicleDriverUserDao vehicleDriverUserDao() {
return new VehicleDriverUserDaoImpl();
}
}
......@@ -16,6 +16,8 @@ public interface VehicleDispatchConstant {
/** 计划周期*/
String PLANNING_CYCLE = "planningCycle";
/** 计划周期开始时间*/
String PLANNING_CYCLE_START_TIME = "startTime";
/** 审批状态*/
String APPROVE_STATE = "approveState";
/** 审批时间*/
......
......@@ -3,11 +3,11 @@ package com.xyst.dinas.transport.constant;
/**
* @author scol
*/
public interface VehicleBindDriverUserConstant {
public interface VehicleDriverUserConstant {
/** 运输车辆绑定用户-实体*/
String ENTITY = "com.xyst.dinas.transport.datamodel.VehicleBindDriverUser";
String ENTITY = "com.xyst.dinas.transport.datamodel.VehicleDriverUser";
/** 运输车辆-实体*/
String TRANSPORT_VEHICLE_ENTITY = "com.xyst.dinas.transport.datamodel.TransportVehicle";
/** 运输公司-实体*/
......
......@@ -16,4 +16,6 @@ public interface VehicleDispatchDao extends BaseDao {
Page<KObject> pageByVehicleId(Integer pageNo, Integer pageSize, Integer status, UUID vehicleId, Date startDate, Date endDate, Boolean isOrderByPlanCycleType, UUID driverUserId);
void updateStatusToStart();
}
package com.xyst.dinas.transport.dao;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.dao.BaseDao;
import java.util.Date;
import java.util.List;
import java.util.UUID;
......@@ -18,4 +20,6 @@ public interface VehicleDriverUserDao extends BaseDao {
void unBind(UUID id);
List<KObject> vehicleListByDriverUserId(UUID id);
Page<KObject> transportRecordPage(Integer pageNo, Integer pageSize, UUID vehicleId, Date startDate, Date endDate, UUID id);
}
......@@ -5,15 +5,22 @@ import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.config.constants.DriverUserConstants;
import com.beecode.inz.basis.dao.DriverUserDao;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.beecode.inz.common.util.DateTimeUtils;
import com.xyst.dinas.price.enumeration.PriceAdjustmentAdjustmentStatusEnum;
import com.xyst.dinas.sales.constant.SalesRecordConstant;
import com.xyst.dinas.transport.constant.VehicleDispatchConstant;
import com.xyst.dinas.transport.constant.VehicleDriverUserConstant;
import com.xyst.dinas.transport.dao.VehicleDispatchDao;
import com.xyst.dinas.transport.dao.VehicleDriverUserDao;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
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.orm.hibernate5.HibernateTemplate;
......@@ -28,7 +35,10 @@ public class VehicleDispatchDaoImpl extends AbstractBaseDao implements VehicleDi
@Autowired
private HibernateTemplate template;
@Autowired
private VehicleDriverUserDao vehicleDriverUserDao;
@Autowired
private DriverUserDao driverUserDao;
/**
......@@ -87,25 +97,26 @@ public class VehicleDispatchDaoImpl extends AbstractBaseDao implements VehicleDi
public Page<KObject> pageByVehicleId(Integer pageNo, Integer pageSize, Integer status, UUID vehicleId, Date startDate, Date endDate, Boolean isOrderByPlanCycleType, UUID driverUserId) {
List<KObject> kObjects = vehicleDriverUserDao.vehicleListByDriverUserId(driverUserId);
List<UUID> collect = kObjects.stream().map(a -> a.get("transportVehicle").getUuid(BaseConstants.ID)).collect(Collectors.toList());
if(vehicleId!=null){
Optional.of(collect).orElse(new ArrayList<>()).add(vehicleId);
if (vehicleId != null) {
collect = new ArrayList<>();
collect.add(vehicleId);
}
Page<KObject> kObjectPage = new Page<>();
KClass bean = Amino.getStaticMetadataContext().getBean(ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false));
detachedCriteria.createAlias(PLANNING_CYCLE,PLANNING_CYCLE);
detachedCriteria.add(Restrictions.in("transportVehicle",collect));
detachedCriteria.createAlias(PLANNING_CYCLE, PLANNING_CYCLE);
detachedCriteria.add(Restrictions.in("transportVehicle.id", collect));
if (null != startDate) {
detachedCriteria.add(Restrictions.ge(PLANNING_CYCLE+".endTime", startDate));
detachedCriteria.add(Restrictions.ge(PLANNING_CYCLE + ".endTime", DateTimeUtils.getStartDateTimeOfDay(startDate)));
}
if (null != endDate) {
detachedCriteria.add(Restrictions.le(PLANNING_CYCLE+".startTime", endDate));
detachedCriteria.add(Restrictions.le(PLANNING_CYCLE + ".startTime", DateTimeUtils.getEndDateTimeOfDay(endDate)));
}
if(isOrderByPlanCycleType){
detachedCriteria.addOrder(Order.desc(PLANNING_CYCLE+"cycleType"));
if (isOrderByPlanCycleType) {
detachedCriteria.addOrder(Order.desc(PLANNING_CYCLE + "cycleType"));
}
detachedCriteria.addOrder(Order.desc(PLANNING_CYCLE+"startTime"));
detachedCriteria.addOrder(Order.desc(PLANNING_CYCLE + "startTime"));
int offset = pageSize * (pageNo - 1);
List<KObject> list = (List<KObject>) template.findByCriteria(detachedCriteria, offset, pageSize);
kObjectPage.setPageNo(pageNo);
......@@ -115,4 +126,28 @@ public class VehicleDispatchDaoImpl extends AbstractBaseDao implements VehicleDi
kObjectPage.setDatas(list);
return kObjectPage;
}
@Override
public void updateStatusToStart() {
//修改为已开始
String getIds = "";
template.execute(session ->
{
Query query1 = session.createQuery("select a.id from " + ENTITY + " as a inner join a." + PLANNING_CYCLE + " as p on a.planningCycle=p.id " +
"where p." + PLANNING_CYCLE_START_TIME + " <= current_timestamp() " +
" and a.dispatchStatus =" + PriceAdjustmentAdjustmentStatusEnum.NOT_STARTED.getValue(),UUID.class);
Optional optional = query1.uniqueResultOptional();
if (optional.isPresent()) {
Query query = session.createQuery("update " + ENTITY + " as b SET b.dispatchStatus = 1 where b.id in ( :ids)");
query.setParameter("ids", optional.get());
return query.executeUpdate();
}
return null;
}
);
}
}
package com.xyst.dinas.transport.internal.dao;
import com.beecode.amino.core.Amino;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.config.constants.DriverUserConstants;
import com.beecode.inz.basis.dao.DriverUserDao;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.transport.constant.VehicleBindDriverUserConstant;
import com.beecode.inz.common.util.DateTimeUtils;
import com.xyst.dinas.sales.constant.SalesRecordConstant;
import com.xyst.dinas.transport.constant.VehicleDriverUserConstant;
import com.xyst.dinas.transport.dao.VehicleDriverUserDao;
import org.apache.commons.collections4.CollectionUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author scol
*/
public class VehicleBindDriverUserDaoImpl extends AbstractBaseDao implements VehicleDriverUserDao, VehicleBindDriverUserConstant {
public class VehicleDriverUserDaoImpl extends AbstractBaseDao implements VehicleDriverUserDao, VehicleDriverUserConstant {
@Autowired
private HibernateTemplate template;
@Autowired
private DriverUserDao driverUserDao;
/**
......@@ -80,6 +88,7 @@ public class VehicleBindDriverUserDaoImpl extends AbstractBaseDao implements Veh
load.set(BaseConstants.DEL,true);
load.set(BaseConstants.DISCARD,true);
load.set(BaseConstants.MODIFY_TIME,new Date());
template.update(load);
}
@Override
......@@ -90,5 +99,38 @@ public class VehicleBindDriverUserDaoImpl extends AbstractBaseDao implements Veh
detachedCriteria.add(Restrictions.eq("driver.id",id));
return (List<KObject>)template.findByCriteria(detachedCriteria);
}
@Override
public Page<KObject> transportRecordPage(Integer pageNo, Integer pageSize, UUID vehicleId, Date startDate, Date endDate, UUID id) {
List<KObject> kObjects = vehicleListByDriverUserId(id);
UUID companyId = driverUserDao.load(id + "").getUuid(DriverUserConstants.TRANSPORT_COMPANY_ID);
KObject company = load(VehicleDriverUserConstant.TRANSPORT_COMPANY_ENTITY, companyId);
UUID regionalCompanyId = company.get(SalesRecordConstant.REGIONALCOMPANY).getUuid(BaseConstants.ID);
List<UUID> collect = kObjects.stream().map(a -> a.get("transportVehicle").getUuid(BaseConstants.ID)).collect(Collectors.toList());
if (vehicleId != null) {
collect = new ArrayList<>();
collect.add(vehicleId);
}
Page<KObject> kObjectPage = new Page<>();
KClass bean = Amino.getStaticMetadataContext().getBean(SalesRecordConstant.TRANSPORT_RECORD_ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false));
detachedCriteria.add(Restrictions.in("transportVehicle.id", collect));
detachedCriteria.add(Restrictions.eq(SalesRecordConstant.REGIONALCOMPANY + "." + BaseConstants.ID, regionalCompanyId));
if (null != startDate) {
detachedCriteria.add(Restrictions.le(BaseConstants.CREATE_TIME, DateTimeUtils.getStartDateTimeOfDay(startDate)));
}
if (null != endDate) {
detachedCriteria.add(Restrictions.ge(BaseConstants.CREATE_TIME, DateTimeUtils.getEndDateTimeOfDay(endDate)));
}
detachedCriteria.addOrder(Order.desc(BaseConstants.CREATE_TIME));
int offset = pageSize * (pageNo - 1);
List<KObject> list = (List<KObject>) template.findByCriteria(detachedCriteria, offset, pageSize);
kObjectPage.setPageNo(pageNo);
kObjectPage.setPageSize(pageSize);
Long totalCount = (Long) detachedCriteria.setProjection(Projections.rowCount()).getExecutableCriteria(Objects.requireNonNull(template.getSessionFactory()).getCurrentSession()).setFirstResult(0).setMaxResults(1).uniqueResult();
kObjectPage.setTotal(Math.toIntExact(totalCount));
kObjectPage.setDatas(list);
return kObjectPage;
}
}
package com.xyst.dinas.transport.internal.service;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.context.driver.DriverUserContextHolder;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.price.enumeration.PriceAdjustmentAdjustmentStatusEnum;
import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.dao.SalesPlanDao;
import com.xyst.dinas.sales.service.NeedPlanService;
import com.xyst.dinas.transport.constant.VehicleBindDriverUserConstant;
import com.xyst.dinas.sales.constant.SalesRecordConstant;
import com.xyst.dinas.transport.constant.VehicleDriverUserConstant;
import com.xyst.dinas.transport.constant.VehicleDispatchConstant;
import com.xyst.dinas.transport.dao.VehicleDispatchDao;
import com.xyst.dinas.transport.enumeration.DispatchTypeEnum;
......@@ -16,9 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import javax.transaction.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.*;
/**
* 销售计划
......@@ -30,12 +28,6 @@ import java.util.UUID;
public class VehicleDispatchServiceImpl implements VehicleDispatchService {
@Autowired
private SalesPlanDao salesPlanDao;
@Autowired
private NeedPlanService needPlanService;
@Autowired
private StaffService staffService;
@Autowired
private VehicleDispatchDao vehicleDispatchDao;
@Autowired
private DinasTypeDao dinasTypeDao;
......@@ -69,27 +61,35 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
private void setInfo(KObject kobject, int dispatchType, UUID sealDetailId) {
KObject load;
KObject planningCycle;
if (dispatchType == DispatchTypeEnum.NEED_PLAN.getValue()) {
load = vehicleDispatchDao.load(SalesPlanConstant.ENTITY_DETAIL, sealDetailId);
planningCycle= load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.PLANNING_CYCLE);
kobject.set(VehicleDispatchConstant.PURCHASE_SAND_UNIT, load.get(VehicleDispatchConstant.PURCHASE_SAND_UNIT));
kobject.set(VehicleDispatchConstant.PLANNING_CYCLE, load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.PLANNING_CYCLE));
kobject.set(VehicleDispatchConstant.PLANNING_CYCLE,planningCycle );
kobject.set(VehicleDispatchConstant.PROJECT, load.get(VehicleDispatchConstant.PROJECT));
kobject.set(VehicleDispatchConstant.CONTRACT, load.get(VehicleDispatchConstant.CONTRACT));
kobject.set(VehicleDispatchConstant.DINAS_TYPE, load.get(VehicleDispatchConstant.DINAS_TYPE));
kobject.set(VehicleDispatchConstant.STATION, load.get(VehicleDispatchConstant.STATION));
kobject.set(VehicleDispatchConstant.PLAN_AMOUNT, load.getBigDecimal(VehicleDispatchConstant.PLAN_AMOUNT));
} else {
load = vehicleDispatchDao.load(SalesPlanConstant.ENTITY_TEMP_DETAIL, sealDetailId);
planningCycle=load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.PLANNING_CYCLE);
kobject.set(VehicleDispatchConstant.PURCHASE_SAND_UNIT, load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.CONTRACT).get(VehicleDispatchConstant.PURCHASE_SAND_UNIT));
kobject.set(VehicleDispatchConstant.PLANNING_CYCLE, load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.PLANNING_CYCLE));
kobject.set(VehicleDispatchConstant.PLANNING_CYCLE,planningCycle );
kobject.set(VehicleDispatchConstant.PROJECT, load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.PROJECT));
kobject.set(VehicleDispatchConstant.CONTRACT, load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.CONTRACT));
kobject.set(VehicleDispatchConstant.DINAS_TYPE, load.get(VehicleDispatchConstant.DINAS_TYPE));
kobject.set(VehicleDispatchConstant.STATION, load.get(BaseConstants.MASTER).get(VehicleDispatchConstant.STATION));
kobject.set(VehicleDispatchConstant.PLAN_AMOUNT, load.getBigDecimal("actualSaleAmount"));
}
kobject.set("transportVehicle", vehicleDispatchDao.load(VehicleBindDriverUserConstant.TRANSPORT_VEHICLE_ENTITY, kobject.get("transportVehicle").getUuid("id")));
kobject.set("transportCompany", vehicleDispatchDao.load(VehicleBindDriverUserConstant.TRANSPORT_COMPANY_ENTITY, kobject.get("transportCompany").getUuid("id")));
kobject.set("dispatchStatus",PriceAdjustmentAdjustmentStatusEnum.NOT_STARTED.getValue());
if(planningCycle.getDate(VehicleDispatchConstant.PLANNING_CYCLE_START_TIME).before(new Date())){
kobject.set("dispatchStatus",PriceAdjustmentAdjustmentStatusEnum.PROCESSING.getValue());
}
kobject.set("transportVehicle", vehicleDispatchDao.load(VehicleDriverUserConstant.TRANSPORT_VEHICLE_ENTITY, kobject.get("transportVehicle").getUuid("id")));
kobject.set("transportCompany", vehicleDispatchDao.load(VehicleDriverUserConstant.TRANSPORT_COMPANY_ENTITY, kobject.get("transportCompany").getUuid("id")));
}
......@@ -123,4 +123,26 @@ public class VehicleDispatchServiceImpl implements VehicleDispatchService {
}
}
}
@Override
public void endVehicleDispatchById(UUID id) {
vehicleDispatchDao.setAttribute(id,"dispatchStatus", PriceAdjustmentAdjustmentStatusEnum.OVER.getValue());
}
@Override
public void updateStatusToStart() {
vehicleDispatchDao.updateStatusToStart();
}
@Override
public void confirmTransportRecord(Map map) {
KObject load = vehicleDispatchDao.load(SalesRecordConstant.TRANSPORT_RECORD_ENTITY, map.get("id").toString());
load.set("confirmStatus",1);
load.set("confirmTime",new Date());
load.set("driverUser", DriverUserContextHolder.getContext().getDriverUser());
load.set("receiverName", map.get("receiverName").toString());
load.set("memo", map.get("memo").toString());
load.set("contactNumber", map.get("contactNumber").toString());
vehicleDispatchDao.update(load);
}
}
......@@ -5,17 +5,16 @@ import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.config.constants.DriverUserConstants;
import com.beecode.inz.basis.dao.DriverUserDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.transport.constant.VehicleBindDriverUserConstant;
import com.xyst.dinas.sales.constant.SalesRecordConstant;
import com.xyst.dinas.transport.constant.VehicleDriverUserConstant;
import com.xyst.dinas.transport.dao.VehicleDriverUserDao;
import com.xyst.dinas.transport.dao.VehicleDispatchDao;
import com.xyst.dinas.transport.service.VehicleBindDriverUserService;
import com.xyst.dinas.transport.service.VehicleDriverUserService;
import org.springframework.beans.factory.annotation.Autowired;
import javax.transaction.Transactional;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.math.BigDecimal;
import java.util.*;
/**
* 销售计划
......@@ -24,12 +23,10 @@ import java.util.UUID;
* @date 2021年4月33日
*/
@Transactional
public class VehicleBindDriverUserServiceImpl implements VehicleBindDriverUserService {
public class VehicleDriverUserServiceImpl implements VehicleDriverUserService {
@Autowired
private VehicleDriverUserDao vehicleBindDriverUserDao;
@Autowired
private DinasTypeDao dinasTypeDao;
private VehicleDriverUserDao vehicleDriverUserDao;
@Autowired
private DriverUserDao driverUserDao;
......@@ -40,26 +37,26 @@ public class VehicleBindDriverUserServiceImpl implements VehicleBindDriverUserSe
public UUID bindPlateNumber(String plateNumber, UUID driverUserId) {
KObject driver = driverUserDao.load(driverUserId.toString());
UUID uuid = driver.getUuid(DriverUserConstants.TRANSPORT_COMPANY_ID);
KObject transportCompanyEntity = vehicleBindDriverUserDao.load(VehicleBindDriverUserConstant.TRANSPORT_COMPANY_ENTITY, uuid);
KObject transportCompanyEntity = vehicleDriverUserDao.load(VehicleDriverUserConstant.TRANSPORT_COMPANY_ENTITY, uuid);
KObject regionalCompany = transportCompanyEntity.get("regionalCompany");
UUID regionalCompanyUuid = regionalCompany.getUuid(BaseConstants.ID);
KObject vehicle = vehicleBindDriverUserDao.selectVehicleByPlateNumber(plateNumber,regionalCompanyUuid);
KObject vehicle = vehicleDriverUserDao.selectVehicleByPlateNumber(plateNumber,regionalCompanyUuid);
if(vehicle==null){
return null;
}
UUID id = vehicleBindDriverUserDao.createBind(driver,regionalCompany,vehicle);
UUID id = vehicleDriverUserDao.createBind(driver,regionalCompany,vehicle);
return id;
}
@Override
public void unBindPlateNumber(UUID id) {
vehicleBindDriverUserDao.unBind(id);
vehicleDriverUserDao.unBind(id);
}
@Override
public List<KObject> vehicleListByDriverUserId(UUID id) {
return vehicleBindDriverUserDao.vehicleListByDriverUserId(id);
return vehicleDriverUserDao.vehicleListByDriverUserId(id);
}
@Override
......@@ -67,4 +64,60 @@ public class VehicleBindDriverUserServiceImpl implements VehicleBindDriverUserSe
return vehicleDispatchDao.pageByVehicleId(pageNo,pageSize,status,vehicleId,startDate,endDate,isOrderByPlanCycleType,driverUserId);
}
@Override
public Page<Map<String, Object>> transportRecordPage(Integer pageNo, Integer pageSize, UUID vehicleId, Date startDate, Date endDate, UUID id) {
Page<KObject> s = vehicleDriverUserDao.transportRecordPage(pageNo, pageSize, vehicleId, startDate, endDate, id);
List<KObject> datas = s.getDatas();
HashMap<String, Object> stringObjectHashMap;
List<Map<String, Object>> maps = new ArrayList<>();
for (KObject data : datas) {
stringObjectHashMap = new HashMap<>();
setInfo(stringObjectHashMap, data);
maps.add(stringObjectHashMap);
}
Page<Map<String, Object>> hashMapPage = new Page<>();
hashMapPage.setPageNo(pageNo);
hashMapPage.setPageSize(pageSize);
hashMapPage.setTotal(s.getTotal());
hashMapPage.setDatas(maps);
return hashMapPage;
}
@Override
public Map<String, Object> loadTransportRecord(UUID id) {
KObject load = vehicleDriverUserDao.load(SalesRecordConstant.TRANSPORT_RECORD_ENTITY, id);
if(load==null){
return null;
}
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
setInfo(stringObjectHashMap,load);
return stringObjectHashMap;
}
private void setInfo(HashMap<String, Object> stringObjectHashMap, KObject data) {
KObject saleRecord = data.get("saleRecord");
KObject transportVehicle = data.get("transportVehicle");
String projectName = saleRecord.get(SalesRecordConstant.PROJECT).getString("projectName");
String stationName = saleRecord.get(SalesRecordConstant.STATION).getString("stationName");
String dinasTypeName = saleRecord.get(SalesRecordConstant.DINASTYPE).getString("dinasTypeName");
BigDecimal dealAmount = saleRecord.getBigDecimal(SalesRecordConstant.DEALAMOUNT);
BigDecimal price = saleRecord.getBigDecimal(SalesRecordConstant.PRICE);
BigDecimal amount = saleRecord.getBigDecimal(SalesRecordConstant.AMOUNT);
String plateNumber = transportVehicle.getString("plateNumber");
stringObjectHashMap.put("projectName",projectName);
stringObjectHashMap.put("stationName",stationName);
stringObjectHashMap.put("dinasTypeName",dinasTypeName);
stringObjectHashMap.put("dealAmount",dealAmount);
stringObjectHashMap.put("price",price);
stringObjectHashMap.put("amount",amount);
stringObjectHashMap.put("plateNumber",plateNumber);
stringObjectHashMap.put("receiverName",data.getString("receiverName"));
stringObjectHashMap.put("memo",data.getString("memo"));
stringObjectHashMap.put("contactNumber",data.getString("contactNumber"));
stringObjectHashMap.put("confirmTime",data.getString("confirmTime"));
stringObjectHashMap.put("confirmStatus",data.getString("confirmStatus"));
}
}
package com.xyst.dinas.transport.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.Map;
import java.util.UUID;
public interface VehicleDispatchService {
......@@ -16,4 +14,10 @@ public interface VehicleDispatchService {
KObject validateBySaleDetailId(Integer type, UUID id, UUID detailId);
void endVehicleDispatchById(UUID id);
void updateStatusToStart();
void confirmTransportRecord(Map id);
}
......@@ -4,11 +4,9 @@ import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import org.springframework.lang.NonNull;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
public interface VehicleBindDriverUserService {
public interface VehicleDriverUserService {
......@@ -19,4 +17,8 @@ public interface VehicleBindDriverUserService {
List<KObject> vehicleListByDriverUserId(UUID id);
Page<KObject> pageByVehicleId(@NonNull Integer pageNo, @NonNull Integer pageSize, Integer status, UUID vehicleId, Date startDate, Date endDate, @NonNull Boolean isOrderByPlanCycleType, @NonNull UUID driverUserId);
Page<Map<String, Object>> transportRecordPage(@NonNull Integer pageNo, @NonNull Integer pageSize, UUID vehicleId, Date startDate, Date endDate, UUID id);
Map<String, Object> loadTransportRecord(@NonNull UUID id);
}
package com.xyst.dinas.transport.task;
import com.beecode.amino.core.Amino;
import com.beecode.bap.scheduler.core.Task;
import com.beecode.bap.scheduler.core.TaskContext;
import com.xyst.dinas.transport.service.VehicleDispatchService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
* 销售计划自动创建任务
*
* @author Jackpot
* @date 2021年4月12日
*/
public class VehicleDispatchStatusTask implements Task{
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private VehicleDispatchService vehicleDispatchService;
@Override
public void execute(TaskContext taskContext) {
logger.info("开始修改派单执行状态");
if(vehicleDispatchService==null){
vehicleDispatchService= Amino.getApplicationContext().getBean(VehicleDispatchService.class);
}
vehicleDispatchService.updateStatusToStart();
logger.info("派单执行状态修改结束");
}
}
package com.xyst.dinas.transport.task;
import com.beecode.amino.metadata.context.ApplicationMetadataContext;
import com.beecode.amino.metadata.runtime.ServiceInitializer;
import com.beecode.bap.scheduler.entity.ScheduleDetail;
import com.beecode.bap.scheduler.entity.TaskDetail;
import com.beecode.bap.scheduler.service.ScheduleService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.PostConstruct;
import java.util.Optional;
public class VehicleDispatchStatusTaskRegister implements ServiceInitializer{
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private ScheduleService scheduleService;
@Override
public void init(ApplicationMetadataContext arg0) {
}
public void crateScheduleTask(){
//任务名
String taskName = "VehicleDispatchStatusTask";
Optional<ScheduleDetail> optional = scheduleService.findByName(taskName);
if (optional.isPresent()) {
scheduleService.removeTask(taskName);
}
TaskDetail taskDetail = new TaskDetail(taskName, VehicleDispatchStatusTask.class.getName());
scheduleService.scheduleTask(taskDetail, "0 0 0/4 * * ? *");
logger.info("车辆派单自动开始任务创建成功!");
}
@PostConstruct
public void init() {
crateScheduleTask();
}
}
package com.xyst.dinas.transport.web;
import com.beecode.amino.core.Amino;
import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.pojo.WarehouseUser;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.inz.basis.util.JsonUtil;
import com.beecode.inz.common.BaseConstants;
import com.beecode.nlib.utils.StringUtils;
import com.beecode.xlib.runtime.Assert;
import com.beecode.xlib.utils.StringUtil;
import com.xyst.dinas.biz.constant.DinasTypeConstant;
import com.xyst.dinas.biz.constant.PlanningCycleConstant;
import com.xyst.dinas.biz.service.PlanningCycleService;
import com.xyst.dinas.sales.constant.SalesPlanConstant;
import com.xyst.dinas.sales.service.NeedPlanService;
import com.xyst.dinas.sales.service.SalesPlanService;
import com.xyst.dinas.sales.web.request.SaleaPlanApprove;
import com.xyst.dinas.sales.web.request.SaleaPlanDetailQuery;
import com.xyst.dinas.transport.constant.VehicleDispatchConstant;
import com.xyst.dinas.transport.service.VehicleDispatchService;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* @author scol
*/
@RestController
@RequestMapping("transport/dispatch")
public class VehicleDispatchController {
......@@ -44,9 +34,6 @@ public class VehicleDispatchController {
@Autowired
private VehicleDispatchService vehicleDispatchService;
@Autowired
private PlanningCycleService planningCycleService;
/**
* 查询本周期中运输方式为配送的需用计划下的所有购砂单位
......@@ -96,9 +83,11 @@ public class VehicleDispatchController {
@GetMapping("/getDinasTypeListByNeedPlanInfo")
public Object getDinasTypeListByNeedPlanInfo(@RequestParam("purchaseSandUnitId") UUID purchaseSandUnitId,@RequestParam("planningCycleId") UUID planningCycleId, @RequestParam("projectId") UUID projectId,@RequestParam(value = "type",defaultValue = "0" ,required = false) Integer type){
List<KObject> dinasTypes = salesPlanService.getDinasTypeListByNeedPlanInfo(purchaseSandUnitId,planningCycleId,projectId);
List<KObject> dinasTypes = null;
if(type==1){
if(type==0){
dinasTypes = salesPlanService.getDinasTypeListByNeedPlanInfo(purchaseSandUnitId,planningCycleId,projectId);
}else if(type==1){
dinasTypes=salesPlanService.getSealTempDinasTypeListByNeedPlanInfo(purchaseSandUnitId,planningCycleId,projectId);
}
return ResponseObj.success("查询成功",dinasTypes);
......@@ -154,4 +143,16 @@ public class VehicleDispatchController {
return ResponseObj.success();
}
/**
* 生效未开始的派单数据
* @param
* @return
*/
@GetMapping("/updateStatusToStart")
public ResponseObj updateStatusToStart(){
vehicleDispatchService.updateStatusToStart();
return ResponseObj.success();
}
}
package com.xyst.dinas.transport.web;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.context.driver.DriverUserContext;
import com.beecode.inz.basis.context.driver.DriverUserContextHolder;
import com.beecode.inz.basis.context.sand.SandUserContextHolder;
import com.beecode.inz.basis.pojo.DriverUser;
import com.beecode.inz.basis.pojo.SandUser;
import com.beecode.inz.basis.service.DriverUserService;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.transport.service.VehicleBindDriverUserService;
import com.xyst.dinas.transport.service.VehicleDriverUserService;
import com.xyst.dinas.transport.service.VehicleDispatchService;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @author scol
*/
@RestController
@RequestMapping("driver/user/transport/vehicle")
@RequestMapping("driver/user/transport")
public class VehicleDriverUserController {
@Autowired
private VehicleBindDriverUserService transportVehicleService;
private VehicleDispatchService vehicleDispatchService;
@Autowired
private VehicleDriverUserService vehicleDriverUserService;
@Autowired
private DriverUserService driverUserService;
......@@ -31,12 +44,12 @@ public class VehicleDriverUserController {
* 绑定车牌号
*
* @param plateNumber
* @param driverUserId
* @return
*/
@PostMapping("bindPlateNumber")
public Object bindPlateNumber(@RequestParam("plateNumber") String plateNumber, @RequestParam("driverUserId") UUID driverUserId) {
UUID vehicle = transportVehicleService.bindPlateNumber(plateNumber, driverUserId);
@PostMapping("vehicle/bindPlateNumber")
public Object bindPlateNumber(@RequestParam("plateNumber") String plateNumber) {
DriverUser driverUser = DriverUserContextHolder.getContext().getDriverUser();
UUID vehicle = vehicleDriverUserService.bindPlateNumber(plateNumber, driverUser.getId());
if (null != vehicle) {
return ResponseObj.success("绑定成功");
}
......@@ -49,10 +62,12 @@ public class VehicleDriverUserController {
* @return
*/
@GetMapping("driverUserInfoById")
public ResponseObj driverUserInfoById(UUID driverUserId) {
DriverUser vehicle = driverUserService.getById(driverUserId);
return ResponseObj.success("查询成功",vehicle);
public ResponseObj driverUserInfoById() {
DriverUser driverUser = DriverUserContextHolder.getContext().getDriverUser();
DriverUser vehicle = driverUserService.getById(driverUser.getId());
JSONObject jsonObject = net.sf.json.JSONObject.fromObject(vehicle);
jsonObject.put("transportCompanyName", driverUserService.getTransportCompanyNameByDriverUser(driverUser));
return ResponseObj.success("查询成功", jsonObject);
}
/**
......@@ -61,21 +76,23 @@ public class VehicleDriverUserController {
* @param id
* @return
*/
@PostMapping("unBindPlateNumberById")
@PostMapping("vehicle/unBindPlateNumberById")
public Object unBindPlateNumber(@RequestParam("id") UUID id) {
transportVehicleService.unBindPlateNumber(id);
vehicleDriverUserService.unBindPlateNumber(id);
return ResponseObj.success("删除成功");
}
/**
* 查询当前司机用户已经绑定的 车辆与司机表
*
* @param id
* @param
* @return list
*/
@PostMapping("vehicleListByDriverUserId")
public Object listById(@RequestParam("id") UUID id) {
return ResponseObj.success("查询成功", transportVehicleService.vehicleListByDriverUserId(id));
@PostMapping("vehicle/vehicleListByDriverUserId")
public Object listById() {
DriverUser driverUser = DriverUserContextHolder.getContext().getDriverUser();
return ResponseObj.success("查询成功", vehicleDriverUserService.vehicleListByDriverUserId(driverUser.getId()));
}
......@@ -83,7 +100,6 @@ public class VehicleDriverUserController {
* 根据车辆id分页查询当前车辆的派单记录
*
* @param vehicleId 当前车辆的id
* @param driverUserId 当前司机用户的id
* @param pageNo 页码
* @param pageSize 每页条数
* @param status 状态 0未开始 1进行中 2已结束 3异常
......@@ -92,23 +108,88 @@ public class VehicleDriverUserController {
* @param isOrderByPlanCycleType 是否根据计划时间类型排序
* @return list 集合
*/
@GetMapping("/pageByVehicleId")
public ResponseObj listByVehicleId(
@GetMapping("vehicleDispatch/vehiclePage")
public ResponseObj vehiclePage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "status", required = false) Integer status,
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam(name = "startDate", required = false) Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam(name = "endDate", required = false) Date endDate,
@RequestParam(value = "vehicleId", required = false) UUID vehicleId,
@RequestParam(value = "driverUserId") UUID driverUserId,
@RequestParam(value = "isOrderByPlanCycleType", required = false, defaultValue = "true") Boolean isOrderByPlanCycleType
) {
boolean a = (startDate == null && endDate != null) || (startDate != null && endDate == null);
if (a) {
return ResponseObj.error("请同时输入开始和结束时间");
}
DriverUser driverUser = DriverUserContextHolder.getContext().getDriverUser();
Page<KObject> kObject = transportVehicleService.pageByVehicleId(pageNo, pageSize, status, vehicleId, startDate, endDate, isOrderByPlanCycleType, driverUserId);
Page<KObject> kObject = vehicleDriverUserService.pageByVehicleId(pageNo, pageSize, status, vehicleId, startDate, endDate, isOrderByPlanCycleType, driverUser.getId());
return ResponseObj.success("查询成功", kObject);
}
/**
* 根据id结束派单记录
*
* @param id 派单记录id
* @return
*/
@GetMapping("vehicleDispatch/endVehicleDispatchById/{id}")
public ResponseObj endVehicleDispatchById(@PathVariable UUID id) {
vehicleDispatchService.endVehicleDispatchById(id);
return ResponseObj.success("确认成功");
}
/**
* 根据车辆id分页查询当前车辆的运输记录
*
* @param vehicleId 当前车辆的id
* @param pageNo 页码
* @param pageSize 每页条数
* @param startDate 开始时间 yyyy-MM-dd
* @param endDate 结束时间 yyyy-MM-dd
* @return list 集合
*/
@GetMapping("transportRecord/transportRecordPage")
public ResponseObj transportRecordPage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam(name = "startDate", required = false) Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam(name = "endDate", required = false) Date endDate,
@RequestParam(value = "vehicleId", required = false) UUID vehicleId
) {
boolean a = (startDate == null && endDate != null) || (startDate != null && endDate == null);
if (a) {
return ResponseObj.error("请同时输入开始和结束时间");
}
DriverUser driverUser = DriverUserContextHolder.getContext().getDriverUser();
Page<Map<String, Object>> kObject = vehicleDriverUserService.transportRecordPage(pageNo, pageSize, vehicleId, startDate, endDate, driverUser.getId());
return ResponseObj.success("查询成功", kObject);
}
@GetMapping("transportRecord/loadById/{id}")
public ResponseObj loadById(@PathVariable UUID id
) {
Map<String,Object> byId = vehicleDriverUserService.loadTransportRecord(id);
return ResponseObj.success("查询成功", byId);
}
/**
* 根据id确认运输记录
*
* @param body 运输记录信息
* @return
*/
@PutMapping("/confirmTransportRecord")
public ResponseObj confirmTransportRecord(@RequestBody String body) {
Map hashMap = JSONObjectUtils.toObject(body, HashMap.class);
vehicleDispatchService.confirmTransportRecord(hashMap);
return ResponseObj.success("确认成功");
}
}
<model>
<header>
<type>bcp.type.DataModel</type>
<package>com.xyst.dinas.transport.datamodel</package>
<title>运输记录</title>
<name>TransportRecord</name>
<description>运输记录</description>
<templateName>mk.ide.ui.editor.data.model.template.bill</templateName>
<tablePrefix>xyst_dinas_transport_</tablePrefix>
</header>
<content>
<dataModel id='94a21d60-5719-4932-88a3-292287d140de' multiVersion='' domainInherit='undefined' tableName='xyst_dinas_transport_transport_record'>
<attribute id='3165ab76-4c39-4a40-ab5b-e77cee1fb51a' name='id' columnName='id' title='id' type='uuid' default='' precision='' isArray='false'>
<annotation id='b45ddb39-d595-48e7-9014-9bff93f11bd2' attributeId='b5a8a80b-c5ef-48e0-8cc1-c6f6bc8a8c2f'
name='length' value='undefined'/>
<annotation id='50a91f17-f913-4278-99f3-e34d12862f14' attributeId='ec93471e-d5d6-4274-ba80-2d7cb7dc9050'
name='unique' value='false'/>
</attribute>
<attribute id='7e7decf0-165c-4b95-8ceb-ee238dedb12b' name='regionalCompany' columnName='regional_company_id' title='所属区域公司' type='com.xyst.dinas.biz.datamodel.xystOrganization' default='' precision='' isArray='false'>
<annotation id='3f0ffd7b-b700-47a6-b425-90dc01106a69' attributeId='fea05944-853f-4702-9b68-a897634e884d' name='length' value='undefined'>
</annotation>
<annotation id='d81fe8c4-0afe-4f31-a154-cde8d1fd66fd' attributeId='e53d8cc2-2469-4cc0-9876-57c49c78799a' name='mappingType' value='many-to-one'>
</annotation>
</attribute>
<attribute id='54286015-3bd2-4a38-b2bd-a2e73d936cc5' name='driverUser' columnName='driver_user_id' title='司机' type='com.beecode.inz.basis.datamodel.DriverUser' default='' precision='' isArray='false'>
<annotation id='71b02aeb-4a52-48ee-ae92-411aaa300fc0' attributeId='3f81edb1-cef7-491d-af72-d4dbe2516744' name='length' value='undefined'>
</annotation>
<annotation id='442060ef-34f9-4d44-bef1-a87e158ea181' attributeId='ba0ec801-ffdc-44af-ad8b-3482dbcaa718' name='mappingType' value='many-to-one'>
</annotation>
</attribute>
<attribute id='54286015-3bd2-4a38-b2bd-a2e73d936cc5' name='saleRecord' columnName='sale_record_id' title='销售记录' type='com.xyst.dinas.sales.datamodel.SalesRecord' default='' precision='' isArray='false'>
<annotation id='71b02aeb-4a52-48ee-ae92-411aaa300fc0' attributeId='3f81edb1-cef7-491d-af72-d4dbe2516744' name='length' value='undefined'>
</annotation>
<annotation id='442060ef-34f9-4d44-bef1-a87e158ea181' attributeId='ba0ec801-ffdc-44af-ad8b-3482dbcaa718' name='mappingType' value='many-to-one'>
</annotation>
</attribute>
<attribute id='598831e5-8d59-4a73-93c4-c4bfbf07eeff' name='transportVehicle' columnName='transport_vehicle_id' title='车辆' type='com.xyst.dinas.transport.datamodel.TransportVehicle' default='' precision='' isArray='false'>
<annotation id='aabd0b7d-430d-4527-8d1c-80e4f38078b1' attributeId='f2b3736f-6ef5-410b-a9f1-4bb352333c87' name='length' value='undefined'>
</annotation>
<annotation id='74959578-e96a-4b58-b991-fa514f0c557a' attributeId='033e51c6-6659-4875-a837-98d7ed499f3f' name='mappingType' value='many-to-one'>
</annotation>
</attribute>
<attribute id='2cfada0b-70fe-47f1-a74e-1a4ec6f172cc' name='receiverName' columnName='receiver_name'
title='接收人' type='string' default='' precision='' isArray='false'>
<annotation id='7ad2d9cb-f4ec-4559-afc2-50efadba47c6' attributeId='23bae94a-c61f-4ed3-8c95-d9994b85416d'
name='length' value='50'>
</annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='memo' columnName='memo' title='备注' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd'
name='length' value='1000'/>
</attribute>
<attribute id='2cfada0b-70fe-47f1-a74e-1a4ec6f172cc' name='contactNumber' columnName='contact_number'
title='联系电话' type='string' default='' precision='' isArray='false'>
<annotation id='7ad2d9cb-f4ec-4559-afc2-50efadba47c6' attributeId='23bae94a-c61f-4ed3-8c95-d9994b85416d'
name='length' value='50'>
</annotation>
</attribute>
<attribute id="836fc160-8bc5-45f4-a8fc-42ff9e4fb553" name="confirmTime" columnName='confirm_time' title="确认时间" type="datetime" default="" precision="" isArray="false">
<annotation name="length" value="undefined" id="bb8ff073-8e51-402c-b42f-c80109fd1e9c" attributeId="e71b6738-1d40-47b6-ac6c-bb83c0ff6137"/>
</attribute>
<attribute id="7cbd95c7-b162-47ab-a7a4-76eb3a0d2040" name="confirmStatus" columnName='confirm_status' title="是否确认0未确认 1已确认" type="int" default="0" precision="" isArray="false">
<annotation name="length" value="undefined" id="9717e371-c3cd-4f89-998e-a7e7343e9477" attributeId="87f945e0-9dcf-4d3a-8185-cd1341cc4a59"/>
</attribute>
<attribute id="7cbd95c7-b162-47ab-a7a4-76eb3a0d2040" name="discard" title="是否废弃" type="boolean" default="false" precision="" isArray="false">
<annotation name="length" value="undefined" id="9717e371-c3cd-4f89-998e-a7e7343e9477" attributeId="87f945e0-9dcf-4d3a-8185-cd1341cc4a59"/>
</attribute>
<attribute id="73706086-0041-467a-bf16-307ae750dc90" name="del" title="是否删除" type="boolean" default="false" precision="" isArray="false">
<annotation name="length" value="undefined" id="c25aad00-28aa-4fa2-baa5-6c1a5f31dbbc" attributeId="7b2a5faf-b67d-4f34-bf4f-6cd700405169"/>
</attribute>
<attribute id="ebedbcd6-3851-417a-8397-9346a7c196e4" name="version" title="version" type="int" default="" precision="" isArray="false">
<annotation name="length" value="undefined" id="cf07afb7-1d8c-44d5-802a-378ac371cad8" attributeId="46164ade-553d-4966-a0d5-f978bcbf4523"/>
</attribute>
<attribute id="836fc160-8bc5-45f4-a8fc-42ff9e4fb553" name="createTime" columnName='create_time' title="创建时间" type="datetime" default="" precision="" isArray="false">
<annotation name="length" value="undefined" id="bb8ff073-8e51-402c-b42f-c80109fd1e9c" attributeId="e71b6738-1d40-47b6-ac6c-bb83c0ff6137"/>
</attribute>
<attribute id="ef43d29e-3770-49ae-a1f7-3197cba424a2" name="modifyTime" columnName='modify_time' title="最后修改时间" type="datetime" default="" precision="" isArray="false">
<annotation name="length" value="undefined" id="52d4a2b1-3e26-46a1-9350-0e61d2f774ba" attributeId="b559c4b6-4f6e-4f58-9309-c12373f70dcb"/>
</attribute>
<hibernate>/xyst.dinas.transport/src/main/resources/config/TransportRecord.hbm.xml</hibernate>
</dataModel>
</content>
</model>
\ No newline at end of file
......@@ -3,13 +3,13 @@
<type>bcp.type.DataModel</type>
<package>com.xyst.dinas.transport.datamodel</package>
<title>司机用户与车牌号</title>
<name>VehicleBindDriverUser</name>
<description>派单</description>
<name>VehicleDriverUser</name>
<description>司机用户与车牌号</description>
<templateName>mk.ide.ui.editor.data.model.template.bill</templateName>
<tablePrefix>xyst_dinas_transport_</tablePrefix>
</header>
<content>
<dataModel id='94a21d60-5719-4932-88a3-292287d140de' multiVersion='' domainInherit='undefined' tableName='xyst_dinas_transport_vehicle_bind_driver_user'>
<dataModel id='94a21d60-5719-4932-88a3-292287d140de' multiVersion='' domainInherit='undefined' tableName='xyst_dinas_transport_vehicle_driver_user'>
<attribute id='3165ab76-4c39-4a40-ab5b-e77cee1fb51a' name='id' columnName='id' title='id' type='uuid' default='' precision='' isArray='false'>
<annotation id='b45ddb39-d595-48e7-9014-9bff93f11bd2' attributeId='b5a8a80b-c5ef-48e0-8cc1-c6f6bc8a8c2f'
name='length' value='undefined'/>
......@@ -52,7 +52,7 @@
<attribute id="ef43d29e-3770-49ae-a1f7-3197cba424a2" name="modifyTime" columnName='modify_time' title="最后修改时间" type="datetime" default="" precision="" isArray="false">
<annotation name="length" value="undefined" id="52d4a2b1-3e26-46a1-9350-0e61d2f774ba" attributeId="b559c4b6-4f6e-4f58-9309-c12373f70dcb"/>
</attribute>
<hibernate>/xyst.dinas.transport/src/main/resources/config/VehicleBindDriverUser.hbm.xml</hibernate>
<hibernate>/xyst.dinas.transport/src/main/resources/config/VehicleDriverUser.hbm.xml</hibernate>
</dataModel>
</content>
</model>
\ No newline at end of file
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xyst.dinas.transport.config.VehicleDispatchConfiguration
\ No newline at end of file
com.xyst.dinas.transport.config.VehicleDispatchConfiguration,\
com.xyst.dinas.transport.config.VehicleDriverUserConfiguration
\ No newline at end of file
......@@ -2,9 +2,9 @@
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>94a21d60-5719-4932-88a3-292287d140de</id>
<name>com.xyst.dinas.transport.datamodel.VehicleBindDriverUser</name>
<name>com.xyst.dinas.transport.datamodel.VehicleDriverUser</name>
<title>司机用户与车牌号</title>
<description>派单</description>
<description>司机用户与车牌号</description>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<dependency>javax.persistence.Entity</dependency>
......@@ -28,7 +28,7 @@
<m:properties>
<m:property>
<m:key>name</m:key>
<m:value>xyst_dinas_transport_vehicle_bind_driver_user</m:value>
<m:value>xyst_dinas_transport_vehicle_driver_user</m:value>
</m:property>
</m:properties>
</m:annotation>
......
<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping
http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">
<class entity-name="com.xyst.dinas.transport.datamodel.TransportRecord" table="xyst_dinas_transport_transport_record" optimistic-lock="version">
<tuplizer entity-mode="dynamic-map" class="com.beecode.bcp.store.hibernate.KObjectEntityTuplizer" />
<id name="id" type="uuid-binary" column="id" length="16">
<generator class="assigned" />
</id>
<version name="version" type="int" column="version"/>
<property name="createTime" type="timestamp" not-null="false">
<column name="create_time"/>
</property>
<property name="modifyTime" type="timestamp" not-null="false">
<column name="modify_time"/>
</property>
<property name="discard" type="boolean" not-null="false">
<column name="discard"/>
</property>
<property name="del" type="boolean" not-null="false">
<column name="del"/>
</property>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.xystOrganization" fetch="select">
<column name="regional_company" not-null="false">
<comment>所属组织机构</comment>
</column>
</many-to-one>
<many-to-one name="driverUser" entity-name="com.beecode.inz.basis.datamodel.DriverUser" fetch="select">
<column name="driver_user_id" not-null="false">
<comment>所属司机</comment>
</column>
</many-to-one>
<many-to-one name="transportVehicle" entity-name="com.xyst.dinas.transport.datamodel.TransportVehicle" fetch="select">
<column name="transport_vehicle_id" not-null="false">
<comment>所属车辆</comment>
</column>
</many-to-one>
<many-to-one name="saleRecord" entity-name="com.xyst.dinas.transport.datamodel.SaleRecord" fetch="select">
<column name="sale_record_id" not-null="false">
<comment>所属销售记录</comment>
</column>
</many-to-one>
<property name="receiverName" type="nstring" not-null="false">
<column name="receiver_name" length="50">
<comment>接收人</comment>
</column>
</property>
<property name="memo" type="nstring" not-null="false">
<column name="memo" length="50">
<comment>备注</comment>
</column>
</property>
<property name="contactNumber" type="nstring" not-null="false">
<column name="contactNumber" length="50">
<comment>联系电话</comment>
</column>
</property>
<property name="confirmTime" type="timestamp" not-null="false">
<column name="confirm_time">
<comment>确认时间</comment>
</column>
</property>
<property name="confirmStatus" type="int" not-null="false">
<column name="confirm_status">
<comment>是否确认. 0未确认 1已确认</comment>
</column>
</property>
</class>
</hibernate-mapping>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping
http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">
<class entity-name="com.xyst.dinas.transport.datamodel.VehicleDriverUser" table="xyst_dinas_transport_vehicle_driver_user" optimistic-lock="version">
<tuplizer entity-mode="dynamic-map" class="com.beecode.bcp.store.hibernate.KObjectEntityTuplizer" />
<id name="id" type="uuid-binary" column="id" length="16">
<generator class="assigned" />
</id>
<version name="version" type="int" column="version"/>
<property name="createTime" type="timestamp" not-null="false">
<column name="create_time"/>
</property>
<property name="modifyTime" type="timestamp" not-null="false">
<column name="modify_time"/>
</property>
<property name="discard" type="boolean" not-null="false">
<column name="discard"/>
</property>
<property name="del" type="boolean" not-null="false">
<column name="del"/>
</property>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.xystOrganization" fetch="select">
<column name="regional_company" not-null="false">
<comment>所属组织机构</comment>
</column>
</many-to-one>
<many-to-one name="driverUser" entity-name="com.beecode.inz.basis.datamodel.DriverUser" fetch="select">
<column name="driver_user_id" not-null="false">
<comment>所属司机</comment>
</column>
</many-to-one>
<many-to-one name="transportVehicle" entity-name="com.xyst.dinas.transport.datamodel.TransportVehicle" fetch="select">
<column name="transport_vehicle_id" not-null="false">
<comment>所属车辆</comment>
</column>
</many-to-one>
</class>
</hibernate-mapping>
\ 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