Commit 3685e192 by 高晓磊

接驳管理&生产计划上报&流域管理

parent ef3b44a9
......@@ -9,7 +9,7 @@ target/
.classpath
*.bak
.DS_Store
.idea/
*.iml
*.ipr
*.iws
out/
......@@ -6,6 +6,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.UUID;
import com.beecode.inz.common.BaseConstants;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;
......@@ -98,7 +99,7 @@ public class SalesRecordDaoImpl implements SalesRecordDao {
} else {
for (int i = 0; i < list.size(); i++) {
KObject itemList = list.get(i);
UUID itemCreatorId = itemList.get("creator").getUuid("id");
UUID itemCreatorId = itemList.get(BaseConstants.CREATOR).getUuid("id");
if (itemCreatorId.toString().equals(staffId.toString())) {
newlist.add(itemList);
}
......
......@@ -6,6 +6,7 @@ import java.util.UUID;
import javax.transaction.Transactional;
import com.beecode.inz.common.BaseConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateOperations;
......@@ -59,7 +60,7 @@ public class SalesRecordServiceImpl extends ApplicationMetadataObjectSupport imp
kobject.set("progress", byIdService.byId("com.beecode.inz.apply.datamodel.ApplySalesRecordProgress", UUID.fromString((String) body.getProgress())));
}
}
kobject.set("creator", staff);
kobject.set(BaseConstants.CREATOR, staff);
if(body.getRecordingModelName().equals("")){
kobject.set("recording", UUID.fromString((String) body.getRecording()));
}else{
......@@ -102,7 +103,7 @@ public class SalesRecordServiceImpl extends ApplicationMetadataObjectSupport imp
KClass type = getApplicationMetadataContext().getBean(body.getToSalesRecordModelName(), KClass.class);
KObject kobject = type.newInstance();
kobject.set("type",listChild.get("type"));
kobject.set("creator",listChild.get("creator"));
kobject.set(BaseConstants.CREATOR,listChild.get(BaseConstants.CREATOR));
kobject.set("recording",byIdService.byId((String) body.getRecordingModelName(), body.getToRecording()));
kobject.set("tag",listChild.get("tag"));
kobject.set("content", listChild.get("content"));
......
......@@ -184,6 +184,38 @@ public class DateTimeUtils {
}
/**
* 获取月初第一秒 eg 2021-04-01 00:00:00
*
* @param date
* @return
*/
public static Date getStartDateTimeOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
//设置当前时间,
calendar.setTime(date);
//获取到本月起始日
int actualMinimum = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
//设置本月起始日的年月日时分秒格式
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),actualMinimum, 0, 0, 0);
return calendar.getTime();
}
/**
* 获取月末最后一秒 eg 2021-04-30 23:59:59
*
* @param date
* @return
*/
public static Date getEndDateTimeOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//获取到本月结束日
int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),actualMaximum,23,59,59);
return calendar.getTime();
}
/**
* 对日期做月份加减
*
* @param startDate
......
......@@ -31,7 +31,7 @@ public class BiztypeViewConfigController {
@RequestMapping(value = "/common/biztypeViewContent/{biztypeName}/content", method = RequestMethod.GET)
public Object getConfigContent(@PathVariable("biztypeName") String biztypeName,
@RequestParam(value = "viewType", required = true) List<String> viewTypes) {
@RequestParam(value = "viewType", required = true) List<String> viewTypes) {
Map<String, String> result = biztypeViewConfigService.getConfigContent(biztypeName, viewTypes);
JsonNode json = JSONObjectUtils.toJson(result);
......
......@@ -4,16 +4,11 @@ import com.beecode.amino.metadata.runtime.MetadataMech;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.TypeConstants;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.constant.StationConstant;
import com.xyst.dinas.biz.dao.PositionDao;
import com.xyst.dinas.biz.internal.StationInfoQueryProcessor;
import com.xyst.dinas.biz.internal.dao.PositionDaoImpl;
import com.xyst.dinas.biz.internal.dao.StationDaoImpl;
import com.xyst.dinas.biz.internal.service.PositionServiceImpl;
import com.xyst.dinas.biz.internal.service.StationServiceImpl;
import com.xyst.dinas.biz.service.PositionService;
import com.xyst.dinas.biz.web.PositionController;
import com.xyst.dinas.biz.web.StationController;
import com.xyst.dinas.biz.dao.SandMiningAreaDao;
import com.xyst.dinas.biz.internal.dao.SandMiningAreaDaoImpl;
import com.xyst.dinas.biz.internal.service.SandMiningAreaServiceImpl;
import com.xyst.dinas.biz.service.SandMiningAreaService;
import com.xyst.dinas.biz.web.SandMiningAreaController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
......@@ -33,4 +28,27 @@ public class SandMiningAreaConfiguration {
new ClassPathResource("/com/xyst/dinas/biz/datamodel/SandMiningArea.jmx", KClass.class));
}
//sandMiningAreaDaoImpl相关bean配置
@Bean
public SandMiningAreaDao sandMiningAreaDao() {
return new SandMiningAreaDaoImpl();
}
@Bean
public SandMiningAreaService sandMiningAreaService(){
return new SandMiningAreaServiceImpl();
}
@Bean
public SandMiningAreaController sandMiningAreaController(){
return new SandMiningAreaController();
}
@Bean(SandMiningAreaConstant.ENTITY)
public KClass sandMiningAreaInfoEntity() {
return typeMech.createStaticBeanByResource(
new ClassPathResource("/com/xyst/dinas/biz/datamodel/sandMiningArea.jmx", KClass.class));
}
}
......@@ -17,5 +17,9 @@ public interface DinasTypeConstant {
* 实体名
*/
String ENTITY = "com.xyst.dinas.biz.datamodel.DinasType";
/**
* 关联子表的实体名
*/
String STATION_DINAS_TYPE_DETAIL_ENTITY = "com.xyst.dinas.biz.datamodel.Station$DinasTypeDetail";
}
......@@ -25,4 +25,8 @@ public interface DinasTypeDao extends BaseDao {
boolean unCheckedStation(UUID dinasTypeId, UUID stationId);
KObject getCurrentLoginRegionalCompany();
List<KObject> getByStation(UUID stationId);
List<KObject> getByRegionalCompanyId(UUID regionalCompanyId);
}
package com.xyst.dinas.biz.dao;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.dao.BaseDao;
import java.util.List;
import java.util.UUID;
public interface SandMiningAreaDao extends BaseDao {
KObject load(UUID id);
Page<KObject> listSandMiningAreaInfoPaging(Page<KObject> page, Integer sandMiningAreaStatus);
UUID create(KObject kObject);
int selectCountByName(String sandMiningAreaName);
void deleteById(UUID id);
List<KObject> getByName(String name, UUID id);
void modify(KObject kobject);
}
package com.xyst.dinas.biz.enumeration;
/**
* 采区类型,0流域 1可采区 2禁采区 3保留区 4综合弃沙区
*/
public enum SandMiningAreaTypeEnum {
/**
* 流域
*/
WATERSHED(0),
/**
* 可采区
*/
CAN_MINE_SAND(1),
/**
* 禁采区
*/
NO_MINE_SAND(2),
/**
* 保留区
*/
PRESERVE(3),
/**
* 综合弃砂区
*/
ABANDONED_MINE_SAND(4);
int value;
SandMiningAreaTypeEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
......@@ -7,6 +7,7 @@ import java.util.Map;
import java.util.UUID;
import java.util.Map.Entry;
import com.beecode.inz.common.BaseConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
......@@ -53,7 +54,7 @@ public class OrganizationDataInitializer implements DataInitializer {
if (dinasOrganizationService.queryOrganizationByName(kObject.getString("name")) == null) {
//新增集团
kObject.set("id", UUID.randomUUID());
kObject.set("createTime", new Date());
kObject.set(BaseConstants.CREATE_TIME, new Date());
dinasOrganizationService.save(kObject);
saveFollower(kObject);
} else{
......
......@@ -36,43 +36,31 @@ public class PositionDaoImpl implements PositionDao, PositionConstant {
@Override
public List<KObject> queryPositionByDept(UUID id) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@SuppressWarnings("unchecked")
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from "+ ENTITY + " where (discard is null or discard = 0) and regionalCompany.id =:id", KObject.class);
query.setParameter("id", id);
return query.getResultList();
}
});
return template.execute(session -> {
Query<KObject> query = session.createQuery("from "+ ENTITY + " where (discard is null or discard = 0) and regionalCompany.id =:id", KObject.class);
query.setParameter("id", id);
return query.getResultList();
});
}
@Override
public List<KObject> queryStaffByPosition(String name, UUID departmentId) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@SuppressWarnings("unchecked")
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + STAFF + " where duty =:name and department.id=:departmentId ", KObject.class);
query.setParameter("name", name);
query.setParameter("departmentId", departmentId);
return query.getResultList();
}
});
return template.execute(session -> {
Query<KObject> query = session.createQuery("from " + STAFF + " where duty =:name and department.id=:departmentId ", KObject.class);
query.setParameter("name", name);
query.setParameter("departmentId", departmentId);
return query.getResultList();
});
}
@Override
public List<KObject> queryPositionByName(String name, UUID deptId) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@SuppressWarnings("unchecked")
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + ENTITY + " where (discard is null or discard = 0) and name =:name and regionalCompany.id = :deptId ", KObject.class);
query.setParameter("name", name);
query.setParameter("deptId", deptId);
return query.getResultList();
}
});
return template.execute(session -> {
Query<KObject> query = session.createQuery("from " + ENTITY + " where (discard is null or discard = 0) and name =:name and regionalCompany.id = :deptId ", KObject.class);
query.setParameter("name", name);
query.setParameter("deptId", deptId);
return query.getResultList();
});
}
}
......@@ -6,6 +6,7 @@ import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.constant.ProductionLineConstant;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.biz.dao.ProductionLineDao;
......@@ -38,11 +39,10 @@ public class ProductionLineDaoImpl extends AbstractBaseDao implements Production
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
// detachedCriteria.add(Restrictions.eq("department.id", departmentId));
detachedCriteria.add(Restrictions.eq("del", false));
if(null!=ProductionLineStatus){
detachedCriteria.add(Restrictions.eq("ProductionLineStatus", ProductionLineStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -58,7 +58,9 @@ public class ProductionLineDaoImpl extends AbstractBaseDao implements Production
KClass bean = Amino.getStaticMetadataContext().getBean(ProductionLineConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("name", name));
if(id!=null){
......@@ -71,12 +73,12 @@ public class ProductionLineDaoImpl extends AbstractBaseDao implements Production
@Override
public void modify(KObject kobject) {
KObject id = load(kobject.getUuid("id"));
kobject.set("creator",id.get("creator"));
kobject.set("createTime",id.getDate("createTime"));
kobject.set(BaseConstants.CREATOR,id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME,id.getDate(BaseConstants.CREATE_TIME));
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kobject.set("modifyTime",new Date());
kobject.set("modifier",staff);
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",false);
template.merge(kobject);
}
......@@ -85,13 +87,13 @@ public class ProductionLineDaoImpl extends AbstractBaseDao implements Production
@Override
public UUID create(KObject kObject) {
KObject staff = AminoContextHolder.getContext().getStaff();
// kObject.set("department", staff.get("department"));
if(null==kObject.getUuid("id")){
kObject.set("id",UUID.randomUUID());
}
kObject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kObject.set("creator",staff);
kObject.set("createTime", new Date());
kObject.set(BaseConstants.CREATOR,staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del",false);
return ((UUID)template.save(kObject));
}
......@@ -107,7 +109,7 @@ public class ProductionLineDaoImpl extends AbstractBaseDao implements Production
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(ENTITY, id);
kobject.set("modifyTime",new Date());
kobject.set("modifier",staff);
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",true);
template.update(kobject);
}
......
package com.xyst.dinas.biz.internal.dao;
import com.beecode.amino.core.Amino;
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.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.constant.ProductionLineConstant;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.biz.dao.SandMiningAreaDao;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
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;
public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMiningAreaDao, SandMiningAreaConstant {
@Autowired
private HibernateTemplate template;
@Autowired
private DinasTypeDao dinasTypeDao;
@Override
public KObject load(UUID id) {
return (KObject) template.load(ENTITY, id);
}
@Override
public Page<KObject> listSandMiningAreaInfoPaging(Page<KObject> page, Integer sandMiningAreaStatus) {
KClass bean = Amino.getStaticMetadataContext().getBean(SandMiningAreaConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
// detachedCriteria.add(Restrictions.eq("department.id", departmentId));
detachedCriteria.add(Restrictions.eq("del", false));
if(null!=sandMiningAreaStatus){
detachedCriteria.add(Restrictions.eq("status", sandMiningAreaStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
List<KObject> list = (List<KObject>) template.findByCriteria(detachedCriteria,offset,page.getPageSize());
page.setDatas(list);
return page;
}
@Override
public List<KObject> getByName(String name, UUID id) {
// UUID departmentId = AminoContextHolder.getContext().getStaff().get("department").getUuid("id");
KClass bean = Amino.getStaticMetadataContext().getBean(SandMiningAreaConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("sandMiningAreaName", name));
if(id!=null){
detachedCriteria.add(Restrictions.ne("id", id));
}
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
@Override
public void modify(KObject kobject) {
KObject id = load(kobject.getUuid("id"));
kobject.set(BaseConstants.CREATOR,id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME,id.getDate(BaseConstants.CREATE_TIME));
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kobject.set("modifyTime",new Date());
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",false);
template.deleteAll(id.get("productionLines").toList());
KObject productions = kobject.get("productionLines");
if(null!=productions){
List<KObject> kObjects = productions.toList();
for (KObject object : kObjects) {
if(null==object.getUuid("id")){
object.set("id",UUID.randomUUID());
}
object.set("sandMiningArea",kobject);
template.save(ProductionLineConstant.ENTITY,object);
}
}
template.merge(kobject);
}
@Override
public UUID create(KObject kObject) {
KObject staff = AminoContextHolder.getContext().getStaff();
if(null==kObject.getUuid("id")){
kObject.set("id",UUID.randomUUID());
}
kObject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kObject.set(BaseConstants.CREATOR,staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del",false);
UUID save = (UUID) template.save(kObject);
KObject productions = kObject.get("productionLines");
if(null!=productions){
List<KObject> kObjects = productions.toList();
for (KObject object : kObjects) {
if(null==object.getUuid("id")){
object.set("id",UUID.randomUUID());
}
object.set("sandMiningArea",kObject);
template.save(ProductionLineConstant.ENTITY,object);
}
}
return save;
}
@Override
public int selectCountByName(String sandMiningAreaName) {
String departmentId = AminoContextHolder.getContext().getStaff().get("department").getUuid("id").toString();
return 0;
}
@Override
public void deleteById(UUID id) {
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(ENTITY, id);
kobject.set("modifyTime",new Date());
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",true);
template.update(kobject);
}
/**
* 抽象方法,需要实现类提供HibernateTemplate
*
* @return HibernateTemplate
*/
@Override
protected HibernateTemplate getHibernateTemplate() {
return template;
}
/**
* 抽象方法,需要实现类提供当前ModelName
*
* @return String
*/
@Override
protected String getModelName() {
return SandMiningAreaConstant.ENTITY;
}
}
......@@ -6,6 +6,7 @@ import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.constant.ShipInfoConstant;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.biz.dao.ShipInfoDao;
......@@ -100,11 +101,11 @@ public class ShipInfoDaoImpl extends AbstractBaseDao implements ShipInfoDao, Shi
@Override
public void modify(KObject kobject) {
KObject id = load(kobject.getUuid("id"));
kobject.set("creator", id.get("creator"));
kobject.set("createTime", id.getDate("createTime"));
kobject.set(BaseConstants.CREATOR, id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME, id.getDate(BaseConstants.CREATE_TIME));
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("modifyTime", new Date());
kobject.set("modifier", staff);
kobject.set(BaseConstants.MODIFIER, staff);
kobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kobject.set("del", false);
template.merge(kobject);
......@@ -129,8 +130,8 @@ public class ShipInfoDaoImpl extends AbstractBaseDao implements ShipInfoDao, Shi
if(null!=kObject.getUuid("id")){
kObject.set("id", UUID.randomUUID());
}
kObject.set("creator", staff);
kObject.set("createTime", new Date());
kObject.set(BaseConstants.CREATOR, staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del", false);
kObject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kObject.validate();
......@@ -142,7 +143,7 @@ public class ShipInfoDaoImpl extends AbstractBaseDao implements ShipInfoDao, Shi
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(ENTITY, id);
kobject.set("modifyTime", new Date());
kobject.set("modifier", staff);
kobject.set(BaseConstants.MODIFIER, staff);
kobject.set("del", true);
template.update(kobject);
}
......
......@@ -7,6 +7,7 @@ import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.support.KernelArray;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.constant.ProductionLineConstant;
import com.xyst.dinas.biz.constant.StationConstant;
import com.xyst.dinas.biz.dao.DinasTypeDao;
......@@ -45,7 +46,9 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
detachedCriteria.add(Restrictions.eq("stationStatus", stationStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -60,8 +63,11 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
// UUID departmentId = AminoContextHolder.getContext().getStaff().get("department").getUuid("id");
KClass bean = Amino.getStaticMetadataContext().getBean(StationConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("stationName", name));
if(id!=null){
......@@ -74,12 +80,12 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
@Override
public void modify(KObject kobject) {
KObject id = load(kobject.getUuid("id"));
kobject.set("creator",id.get("creator"));
kobject.set("createTime",id.getDate("createTime"));
kobject.set(BaseConstants.CREATOR,id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME,id.getDate(BaseConstants.CREATE_TIME));
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kobject.set("modifyTime",new Date());
kobject.set("modifier",staff);
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",false);
template.deleteAll(id.get("productionLines").toList());
KObject productions = kobject.get("productionLines");
......@@ -101,13 +107,13 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
@Override
public UUID create(KObject kObject) {
KObject staff = AminoContextHolder.getContext().getStaff();
// kObject.set("department", staff.get("department"));
if(null==kObject.getUuid("id")){
kObject.set("id",UUID.randomUUID());
}
kObject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kObject.set("creator",staff);
kObject.set("createTime", new Date());
kObject.set(BaseConstants.CREATOR,staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del",false);
UUID save = (UUID) template.save(kObject);
KObject productions = kObject.get("productionLines");
......@@ -135,7 +141,7 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(STATION, id);
kobject.set("modifyTime",new Date());
kobject.set("modifier",staff);
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",true);
template.update(kobject);
}
......
......@@ -62,4 +62,14 @@ public class DinasTypeServiceImpl implements DinasTypeService {
public boolean unCheckedStation(UUID dinasTypeId, UUID stationId) {
return dinasTypeDao.unCheckedStation(dinasTypeId,stationId);
}
@Override
public List<KObject> getByStation(UUID stationId) {
return dinasTypeDao.getByStation(stationId);
}
@Override
public List<KObject> getByRegionalCompanyId(UUID regionalCompanyId) {
return dinasTypeDao.getByRegionalCompanyId(regionalCompanyId);
}
}
......@@ -7,6 +7,7 @@ import java.util.UUID;
import javax.persistence.Tuple;
import com.beecode.inz.common.BaseConstants;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -52,8 +53,8 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
KObject kObject = JSONObjectUtils.toObject(jsonObject.toString(), kClass);
kObject.set("id", UUID.randomUUID());
kObject.set("creator", staff);
kObject.set("createTime", new Date());
kObject.set(BaseConstants.CREATOR, staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("regionalCompany", currentRegionalCompany);
positionDao.save(kObject);
} else {
......@@ -89,7 +90,7 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
// }
}
kObject.set("modifyTime", new Date());
kObject.set("modifier", staff);
kObject.set(BaseConstants.MODIFIER, staff);
kObject.set("name", jsonObject.getString("name"));
kObject.set("description", jsonObject.isNull("description") ? "" : jsonObject.getString("description"));
positionDao.update(kObject);
......
package com.xyst.dinas.biz.internal.service;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.dao.SandMiningAreaDao;
import com.xyst.dinas.biz.service.SandMiningAreaService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.UUID;
@Transactional(rollbackFor = Exception.class)
public class SandMiningAreaServiceImpl implements SandMiningAreaService {
@Autowired
private SandMiningAreaDao sandMiningAreaDao;
@Override
public Page<KObject> queryByPaging(Page<KObject> page, Integer sandMiningAreaStatus) throws Exception {
if(page.getPageNo()==0||page.getPageSize()==0) {
throw new Exception("pageSize or offset is null");
}
return sandMiningAreaDao.listSandMiningAreaInfoPaging(page,sandMiningAreaStatus);
}
@Override
public UUID addSandMiningArea(KObject kObject) {
return sandMiningAreaDao.create(kObject);
}
@Override
public KObject getById(UUID id) {
return sandMiningAreaDao.load(id);
}
@Override
public int selectCountByName(String sandMiningAreaName) {
return sandMiningAreaDao.selectCountByName(sandMiningAreaName);
}
@Override
public KObject getByName(String name, UUID id) {
List<KObject> kObjects = sandMiningAreaDao.getByName(name,id);
if(CollectionUtils.isEmpty(kObjects)){
return null;
}
return kObjects.get(0);
}
@Override
public void update(KObject kobject) {
sandMiningAreaDao.modify(kobject);
}
@Override
public void deleteById(UUID id) {
sandMiningAreaDao.deleteById(id);
}
}
......@@ -3,6 +3,7 @@ package com.xyst.dinas.biz.service;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import java.util.List;
import java.util.UUID;
public interface DinasTypeService {
......@@ -23,4 +24,8 @@ public interface DinasTypeService {
boolean checkedStation(UUID dinasTypeId, UUID stationId);
boolean unCheckedStation(UUID dinasTypeId, UUID stationId);
List<KObject> getByStation(UUID id);
List<KObject> getByRegionalCompanyId(UUID regionalCompanyId);
}
package com.xyst.dinas.biz.service;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import java.util.UUID;
public interface SandMiningAreaService {
Page<KObject> queryByPaging(Page<KObject> page, Integer sandMiningAreaStatus) throws Exception;
UUID addSandMiningArea(KObject kObject);
KObject getById(UUID id);
int selectCountByName(String sandMiningAreaName);
KObject getByName(String name, UUID id);
void update(KObject kobject);
void deleteById(UUID id);
}
......@@ -13,6 +13,7 @@ import com.xyst.dinas.biz.service.DinasTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.UUID;
@RestController()
......@@ -84,6 +85,34 @@ public class DinasTypeController {
}
/**
* 根据场站id获取砂石种类
* @param id
* @return
*/
@GetMapping("getByStation/{stationId}")
public ResponseObj<Object> getByStationId(@PathVariable("stationId") UUID id){
if(id == null){
return ResponseObj.error(400,"'id' must be not null!");
}
List<KObject> dinasTypes = dinasTypeService.getByStation(id);
return ResponseObj.success("查询成功",dinasTypes);
}
/**
* 获取全部区域分公司下的砂石种类
* @param id
* @return
*/
@GetMapping("getByRegionalCompany/{regionalCompanyId}")
public ResponseObj<Object> getByRegionalCompanyId(@PathVariable("regionalCompanyId") UUID regionalCompanyId){
if(regionalCompanyId == null){
return ResponseObj.error(400,"'id' must be not null!");
}
List<KObject> dinasTypes = dinasTypeService.getByRegionalCompanyId(regionalCompanyId);
return ResponseObj.success("查询成功",dinasTypes);
}
/**
* 根据Id删除砂石种类
* @param id
* @return
......
package com.xyst.dinas.biz.web;
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.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.nlib.utils.StringUtils;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.service.SandMiningAreaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.UUID;
/**
* @author scol
*/
@RestController()
@RequestMapping(value="/dinasBiz/sandMiningArea")
public class SandMiningAreaController {
private static final Logger logger = LoggerFactory.getLogger(SandMiningAreaController.class);
@Autowired
private SandMiningAreaService sandMiningAreaService;
@RequestMapping(value = "list/page", method = RequestMethod.GET)
public ResponseObj getListPage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "status", required = false) Integer sandMiningAreaStatus
) throws Exception {
Page<KObject> objectPage = new Page<>();
objectPage.setPageNo(pageNo);
objectPage.setPageSize(pageSize);
return ResponseObj.success("查询成功",sandMiningAreaService.queryByPaging(objectPage,sandMiningAreaStatus));
}
/**
* 新建采砂区
* @param body
* @return ResponseObj
*/
@PostMapping
public ResponseObj create(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(SandMiningAreaConstant.ENTITY, KClass.class));
if(StringUtils.isEmpty(kobject.getString("sandMiningAreaName"))){
return ResponseObj.error(400,"采砂区名称不能为空");
}
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
UUID id = sandMiningAreaService.addSandMiningArea(kobject);
return ResponseObj.success("保存成功", id);
}
/**
* 修改采砂区
* @param body 采砂区json
* @return
*/
@PutMapping
public ResponseObj update(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(SandMiningAreaConstant.ENTITY, KClass.class));
if(StringUtils.isEmpty(kobject.getString("sandMiningAreaName"))){
return ResponseObj.error(400,"采砂区名称不能为空");
}
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
sandMiningAreaService.update(kobject);
return ResponseObj.success("修改成功");
}
/**
* 根据id获取采砂区
* @param id
* @return
*/
@GetMapping("/{id}")
public ResponseObj getById(@PathVariable("id") UUID id){
if(id == null){
return ResponseObj.error(400,"'id' must be not null!");
}
KObject sandMiningArea = sandMiningAreaService.getById(id);
return ResponseObj.success("获取成功",sandMiningArea);
}
/**
* 根据Id删除采砂区
* @param id
* @return
*/
@DeleteMapping("/{id}")
public ResponseObj deleteById(@PathVariable("id") UUID id){
if(id == null){
return ResponseObj.error(400,"'id' must be not null!");
}
sandMiningAreaService.deleteById(id);
return ResponseObj.success("删除成功");
}
/**
* 查询是否有重名
* @param name
* @return
*/
@GetMapping("/validateName")
public ResponseObj validateName(@RequestParam("name") String name,@RequestParam(value = "id",required = false) UUID id){
if(StringUtils.isEmpty(name)){
return ResponseObj.error(400,"采砂区名称不能为空");
}
KObject kObject = sandMiningAreaService.getByName(name,id);
if(kObject != null){
return ResponseObj.error("采砂区名称已存在!");
}
return ResponseObj.success();
}
}
\ No newline at end of file
......@@ -71,7 +71,7 @@
<m:id>726e8dac-46c8-429f-94db-9922840c5998</m:id>
<m:name>stations</m:name>
<m:title>售卖该砂石的场站</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Station[]</m:type>
<m:type>com.xyst.dinas.biz.datamodel.Station$DinasTypeDetail[]</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
......
......@@ -49,7 +49,6 @@
</m:attribute>
<m:attribute>
<m:annotations>
</m:annotations>
<m:id>03de3264-23d0-4fdf-bbe4-7a9ad227a7e4</m:id>
<m:name>sandMiningQuantity</m:name>
......@@ -68,6 +67,15 @@
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>28a50c42-f2e3-499a-aed2-1aa2695a9583</m:id>
<m:name>areaColor</m:name>
<m:title>采区颜色</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
......@@ -90,6 +98,31 @@
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations></m:annotations>
<m:id>7a21a119-edcb-4f41-9292-dfb4480a13b4</m:id>
<m:name>status</m:name>
<m:title>审批状态 0未通过 1通过</m:title>
<m:type>boolean</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
<m:value>300</m:value>
</m:annotation>
</m:annotations>
<m:id>0aed5880-369f-423e-861d-b920b79d92cf</m:id>
<m:name>failureReason</m:name>
<m:title>不通过原因</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes>
</m:class>
</content>
......
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>2e4c91d3-9cdf-4af7-90b6-689473b6d142</id>
<name>com.xyst.dinas.biz.datamodel.Station$DinasTypeDetail</name>
<title>砂石和场站的关联表</title>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<dependency>com.beecode.bap.biztrait.datamodel.StoreSubTableRequirement</dependency>
<dependency>com.xyst.dinas.biz.datamodel.DinasType</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Station</dependency>
<dependency>bcp.type.json.JsonIgnore</dependency>
<content>
<m:class>
<m:parents>
<m:parent>com.beecode.bap.biztrait.datamodel.StoreSubTableRequirement</m:parent>
</m:parents>
<m:attributes>
<m:attribute>
<m:id>aed98349-40f0-4e9a-944b-43f01646978b</m:id>
<m:name>station</m:name>
<m:title>所属场站</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Station</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.json.JsonIgnore</m:type>
</m:annotation>
</m:annotations>
<m:id>61699557-6afc-43c2-adeb-fecfeb844536</m:id>
<m:name>dinasType</m:name>
<m:title>砂石类型</m:title>
<m:type>com.xyst.dinas.biz.datamodel.DinasType</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:id>e130e371-4fd3-4039-9a4e-102f90b50e56</m:id>
<m:name>del</m:name>
<m:title>是否删除</m:title>
<m:type>boolean</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes>
</m:class>
</content>
</metadata>
......@@ -184,6 +184,39 @@
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>failureReason</m:name>
<m:title>不通过原因</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>areaColor</m:name>
<m:title>采区颜色</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>status</m:name>
<m:title>状态</m:title>
<m:type>boolean</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
</m:fields>
</m:query>
</content>
......
......@@ -56,9 +56,9 @@
<comment>砂石是否售卖,0不售卖 1还售卖</comment>
</column>
</property>
<bag name="stations" cascade="none" table="xyst_dinas_biz_station_dinas_type" lazy="extra">
<bag name="stations" cascade="none" inverse="true" lazy="extra">
<key column="dinas_type_id" not-null="true" />
<many-to-many class="com.xyst.dinas.biz.datamodel.Station" column="station_id"/>
<one-to-many entity-name="com.xyst.dinas.biz.datamodel.Station$DinasTypeDetail"/>
</bag>
<property name="reason" type="nstring" not-null="false">
<column name="reason" length="300" >
......@@ -72,4 +72,27 @@
</column>
</property>
</class>
<class entity-name="com.xyst.dinas.biz.datamodel.Station$DinasTypeDetail" table="xyst_dinas_biz_station_dinas_type_detail" >
<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>
<many-to-one name="station" entity-name="com.xyst.dinas.biz.datamodel.Station" fetch="select">
<column name="station_id" not-null="false">
<comment>场站id</comment>
</column>
</many-to-one>
<many-to-one name="dinasType" entity-name="com.xyst.dinas.biz.datamodel.DinasType" fetch="select">
<column name="dinas_type_id" not-null="false">
<comment>砂石类型id</comment>
</column>
</many-to-one>
<property name="del" type="boolean" not-null="false">
<column name="del">
<comment>是否删除 0不删除 1删除</comment>
</column>
</property>
</class>
</hibernate-mapping>
\ No newline at end of file
......@@ -10,34 +10,34 @@
</id>
<version name="version" type="int" column="version"/>
<property name="createTime" type="timestamp" not-null="false">
<column name="create_time"></column>
<column name="create_time"/>
</property>
<many-to-one name="creator" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="creator_id" not-null="false"/>
</many-to-one>
<property name="modifyTime" type="timestamp" not-null="false">
<column name="modify_time"></column>
<column name="modify_time"/>
</property>
<many-to-one name="modifier" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="modifier_id" not-null="false"/>
</many-to-one>
<property name="billState" type="nstring" not-null="false">
<column name="bill_state" length="100"></column>
<column name="bill_state" length="100"/>
</property>
<many-to-one name="bizProcess" entity-name="com.beecode.bap.workflow.datamodel.BizProcess" fetch="select">
<column name="biz_process_id" not-null="false"/>
</many-to-one>
<property name="billCode" type="nstring" not-null="false">
<column name="bill_code" length="200"></column>
<column name="bill_code" length="200"/>
</property>
<property name="discard" type="boolean" not-null="false">
<column name="discard"></column>
<column name="discard"/>
</property>
<property name="del" type="boolean" not-null="false">
<column name="del"></column>
<column name="del"/>
</property>
<property name="approveState" type="integer" not-null="false">
<column name="approve_state"></column>
<column name="approve_state"/>
</property>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
......@@ -58,21 +58,38 @@
</property>
<property name="sandMiningAreaType" type="integer" not-null="true">
<column name="sand_mining_area_type" >
<comment>采区类型,0流域 1可采区 2禁采区 3保留区 4综合弃</comment>
<comment>采区类型,0流域 1可采区 2禁采区 3保留区 4综合弃</comment>
</column>
</property>
<property name="stationCoordinate" type="nstring" not-null="false">
<column name="station_coordinate">
<comment>采区坐标区域 按照逗号和分号分隔</comment>
</column>
</property>
<property name="areaColor" type="nstring" not-null="false">
<column name="area_color">
<comment>采区在地图上展示的颜色</comment>
</column>
</property>
<property name="reason" type="nstring" not-null="false">
<column name="reason" length="300" >
<comment>备注</comment>
</column>
</property>
<property name="status" type="boolean" not-null="false">
<column name="status">
<comment>审批状态false未通过 true通过</comment>
</column>
</property>
<property name="failureReason" type="nstring" not-null="false">
<column name="failure_reason" length="300" >
<comment>不通过原因</comment>
</column>
</property>
<property name="sortOrder" type="int" not-null="true" unique="true" index="sand_mining_area_sort_index" >
<column name="sort_order" length="10">
<comment >排序</comment>
......
......@@ -6,6 +6,7 @@ import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.camera.constant.CameraInfoConstant;
import com.xyst.dinas.camera.dao.CameraInfoDao;
import com.xyst.dinas.biz.enumeration.OrganizationTypeEnum;
......@@ -94,8 +95,8 @@ public class CameraInfoDaoImpl extends AbstractBaseDao implements CameraInfoDao,
@Override
public void modify(KObject kobject, KObject currentLoginRegionalCompany) {
KObject id = load(kobject.getUuid("id"));
kobject.set("creator", id.get("creator"));
kobject.set("createTime", id.getDate("createTime"));
kobject.set(BaseConstants.CREATOR, id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME, id.getDate(BaseConstants.CREATE_TIME));
kobject.set("regionalCompany", currentLoginRegionalCompany);
Object cameraAccount = template.load("com.xyst.dinas.camera.dict.datamodel.CameraAccount", kobject.get("cameraAccount").getUuid("id"));
Object regionalStation = template.load("com.xyst.dinas.biz.datamodel.Station", kobject.get("regionalStation").getUuid("id"));
......@@ -103,7 +104,7 @@ public class CameraInfoDaoImpl extends AbstractBaseDao implements CameraInfoDao,
kobject.set("regionalStation",regionalStation);
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("modifyTime", new Date());
kobject.set("modifier", staff);
kobject.set(BaseConstants.MODIFIER, staff);
kobject.set("del", false);
template.merge(kobject);
}
......@@ -118,8 +119,8 @@ public class CameraInfoDaoImpl extends AbstractBaseDao implements CameraInfoDao,
Object regionalStation = template.load("com.xyst.dinas.biz.datamodel.Station", object.get("regionalStation").getUuid("id"));
object.set("cameraAccount",cameraAccount);
object.set("regionalStation",regionalStation);
object.set("creator", staff);
object.set("createTime", new Date());
object.set(BaseConstants.CREATOR, staff);
object.set(BaseConstants.CREATE_TIME, new Date());
object.set("del", false);
object.set("regionalCompany", regionalCompany);
object.validate();
......@@ -131,7 +132,7 @@ public class CameraInfoDaoImpl extends AbstractBaseDao implements CameraInfoDao,
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(ENTITY, id);
kobject.set("modifyTime", new Date());
kobject.set("modifier", staff);
kobject.set(BaseConstants.MODIFIER, staff);
kobject.set("del", true);
template.update(kobject);
}
......
package com.xyst.dinas.production.config;
import com.beecode.amino.metadata.runtime.MetadataMech;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.TypeConstants;
import com.xyst.dinas.production.constant.ProductionPlanReportConstant;
import com.xyst.dinas.production.internal.dao.ProductionPlanReportDaoImpl;
import com.xyst.dinas.production.internal.service.ProductionPlanReportServiceImpl;
import com.xyst.dinas.production.service.ProductionPlanReportService;
import com.xyst.dinas.production.web.ProductionPlanReportController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
/**
* @author scol
*/
public class ProductionPlanReportConfiguration {
@Autowired
@Qualifier(TypeConstants.CLASS_MECH)
private MetadataMech<KClass> typeMech;
@Bean(ProductionPlanReportConstant.ENTITY)
public KClass productionPlanReportEntity() {
return typeMech.createStaticBeanByResource(
new ClassPathResource("/com/xyst/dinas/production/datamodel/ProductionPlanReport.jmx", KClass.class));
}
//ProductionPlanReportDaoImpl相关bean配置
@Bean
public ProductionPlanReportDaoImpl productionPlanReportDao() {
return new ProductionPlanReportDaoImpl();
}
@Bean
public ProductionPlanReportService productionPlanReportService(){
return new ProductionPlanReportServiceImpl();
}
@Bean
public ProductionPlanReportController productionPlanReportController(){
return new ProductionPlanReportController();
}
}
......@@ -7,6 +7,8 @@ import com.xyst.dinas.production.constant.SandMiningConstant;
import com.xyst.dinas.production.internal.dao.SandMiningDaoImpl;
import com.xyst.dinas.production.internal.service.SandMiningServiceImpl;
import com.xyst.dinas.production.service.SandMiningService;
import com.xyst.dinas.production.task.SandMiningExpiredSchedule;
import com.xyst.dinas.production.task.SandMiningExpiredTask;
import com.xyst.dinas.production.web.SandMiningController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
......@@ -46,5 +48,13 @@ public class SandMiningConfiguration {
}
@Bean
public SandMiningExpiredSchedule sandMiningExpiredSchedule() {
return new SandMiningExpiredSchedule();
}
@Bean
public SandMiningExpiredTask sandMiningExpiredTask() {
return new SandMiningExpiredTask();
}
}
package com.xyst.dinas.production.constant;
public interface ProductionPlanReportConstant {
/**
* 实体名
*/
String ENTITY = "com.xyst.dinas.production.datamodel.ProductionPlanReport";
/**
* 子项目的实体名
*/
String DETAIL_ENTITY = "com.xyst.dinas.production.datamodel.ProductionPlanReport$DinasTypeDetails";
}
......@@ -4,6 +4,7 @@ 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;
......@@ -11,7 +12,7 @@ public interface DischargingDao extends BaseDao {
KObject load(UUID id);
Page<KObject> listDischargingInfoPaging(Page<KObject> page, Integer stationStatus);
Page<KObject> listDischargingInfoPaging(Page<KObject> page, UUID transportShipId, Integer type, Date startDate, Date endDate, Integer sandMiningAreaType, List<UUID> stationIds, UUID sandMiningAreaId, UUID shipId, UUID parentId);
UUID create(KObject kObject);
......@@ -22,4 +23,13 @@ public interface DischargingDao extends BaseDao {
void modify(KObject kobject);
List<KObject> getParentByDateAndStationAndSandMiningArea(UUID stationId, UUID sandMiningAreaId, Date dischargingTime, UUID sandMiningShip, UUID transportShip);
void updateToDeleteParentId(UUID id);
List<KObject> getByTimeStationShipArea(UUID sandMiningAreaId, UUID sandMiningShipId, UUID stationId, Date date, UUID id);
void updateSetParentId(KObject kObject);
Object groupInfo(UUID transportShipId, Integer type, Date startDate, Date endDate, Integer sandMiningAreaType, List<UUID> stationIds, UUID sandMiningAreaId, UUID sandMiningShipId, UUID parentId);
}
package com.xyst.dinas.production.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;
public interface ProductionPlanReportDao extends BaseDao {
KObject load(UUID id);
UUID create(KObject kObject);
void deleteById(UUID id);
Page<KObject> listProductionPlanReportInfoPaging(Page<KObject> page, UUID stationId, UUID productionLineId, Date startDate, Date endDate);
List<KObject> getByCodeNum(String name, UUID id);
void modify(KObject kobject);
List<KObject> listByStationAndDate(UUID stationId, Date date, List<UUID> ids);
void deleteDetailByMasterId(UUID planReportId);
List<?> groupInfo(UUID stationId, UUID productionLineId, Date startDate, Date endDate);
UUID creteDetails(KObject insertDetailKobject);
void deleteByStationAndDate(UUID stationId, Date convertStringToDate1);
}
......@@ -22,4 +22,6 @@ public interface SandMiningDao extends BaseDao {
void modify(KObject kobject);
void updateSandMiningStatus();
}
package com.xyst.dinas.production.enumeration;
/**
* 接驳备案类型 0每日新增 1数据修正
*/
public enum DischargingTypeEnum {
/**
* 0每日新增
*/
NOME_DATA(0),
/**
* 1数据修正
*/
REVISE_DATA(1);
int value;
DischargingTypeEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
package com.xyst.dinas.production.internal.dao;
import com.beecode.amino.core.Amino;
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.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.production.constant.ProductionPlanReportConstant;
import com.xyst.dinas.production.dao.ProductionPlanReportDao;
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.hibernate.transform.Transformers;
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;
/**
* @author scol
*/
public class ProductionPlanReportDaoImpl extends AbstractBaseDao implements ProductionPlanReportDao, ProductionPlanReportConstant {
@Autowired
private HibernateTemplate template;
@Autowired
private DinasTypeDao dinasTypeDao;
@Override
public KObject load(UUID id) {
return (KObject) template.load(ENTITY, id);
}
@Override
public Page<KObject> listProductionPlanReportInfoPaging(Page<KObject> page, UUID stationId, UUID productionLineId, Date startDate, Date endDate) {
KClass bean = Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false));
if(null!=stationId){
detachedCriteria.add(Restrictions.eq("station.id", stationId));
}
if(null!=productionLineId){
detachedCriteria.add(Restrictions.eq("productionLine.id", productionLineId));
}
if(null!=startDate){
detachedCriteria.add(Restrictions.ge("productionPlanDate", startDate));
}
if(null!=endDate){
detachedCriteria.add(Restrictions.le("productionPlanDate", startDate));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
detachedCriteria.addOrder(Order.desc("productionPlanDate"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
List<KObject> list = (List<KObject>) template.findByCriteria(detachedCriteria,offset,page.getPageSize());
page.setDatas(list);
return page;
}
@Override
public List<KObject> getByCodeNum(String permitCode, UUID id) {
KClass bean = Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false));
if(id!=null){
detachedCriteria.add(Restrictions.ne("id", id));
}
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
@Override
public void modify(KObject kobject) {
KObject id = load(kobject.getUuid("id"));
kobject.set(BaseConstants.CREATOR,id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME,id.getDate(BaseConstants.CREATE_TIME));
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kobject.set("modifyTime",new Date());
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set(BaseConstants.DEL,false);
template.merge(kobject);
}
@Override
public List<KObject> listByStationAndDate(UUID stationId, Date date, List<UUID> ids) {
KClass bean = Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false));
detachedCriteria.add(Restrictions.eq("station.id", stationId));
detachedCriteria.add(Restrictions.eq("productionPlanDate", date));
if(null!=ids && ids.size()>0){
detachedCriteria.add(Restrictions.not(Restrictions.in("id", ids)));
}
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
@Override
public void deleteDetailByMasterId(UUID planReportId) {
template.execute(session ->
{
Query query = session.createQuery("delete from " + ProductionPlanReportConstant.DETAIL_ENTITY +
" where master.id = :planReportId ");
query.setParameter("planReportId",planReportId);
return query.executeUpdate();
}
);
}
@Override
public List<?> groupInfo(UUID stationId, UUID productionLineId, Date startDate, Date endDate) {
KClass bean = Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.DETAIL_ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
detachedCriteria.createAlias("master", "master");
if(null!=stationId){
detachedCriteria.add(Restrictions.eq("master.station.id", stationId));
}
if(null!=productionLineId){
detachedCriteria.add(Restrictions.eq("master.productionLine.id", productionLineId));
}
if(null!=startDate){
detachedCriteria.add(Restrictions.ge("master.productionPlanDate", startDate));
}
if(null!=endDate){
detachedCriteria.add(Restrictions.le("master.productionPlanDate", startDate));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("master.regionalCompany.id",currentLoginRegionalCompany.getUuid("id")))
.add(Restrictions.eq("master.del",false));
detachedCriteria.setProjection(Projections.projectionList()
.add(Projections.alias(Projections.rowCount(),"count"))
.add(Projections.alias(Projections.avg("dinasWeight"),"avgDinasWeight"))
.add(Projections.alias(Projections.sum("dinasWeight"),"sumDinasWeight"))
.add(Projections.alias(Projections.groupProperty("dinasType"),"dinasType")));
detachedCriteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return template.findByCriteria(detachedCriteria);
}
@Override
public UUID creteDetails(KObject insertDetailKobject) {
insertDetailKobject.set("id",UUID.randomUUID());
return ((UUID)template.save(DETAIL_ENTITY,insertDetailKobject));
}
@Override
public UUID create(KObject kObject) {
KObject staff = AminoContextHolder.getContext().getStaff();
if(null==kObject.getUuid("id")){
kObject.set("id",UUID.randomUUID());
}
kObject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kObject.set(BaseConstants.CREATOR,staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del",false);
return ((UUID)template.save(kObject));
}
@Override
public void deleteById(UUID id) {
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(ENTITY, id);
kobject.set("modifyTime",new Date());
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",true);
template.update(kobject);
}
@Override
public void deleteByStationAndDate(UUID stationId, Date date) {
template.execute(session ->
{
Query query = session.createQuery("update " + ProductionPlanReportConstant.ENTITY +
" as a set a.del = true where a.station.id = :stationId and a.productionPlanDate = :productionPlanDate");
query.setParameter("stationId",stationId);
query.setParameter("productionPlanDate",date);
return query.executeUpdate();
}
);
}
/**
* 抽象方法,需要实现类提供HibernateTemplate
*
* @return HibernateTemplate
*/
@Override
protected HibernateTemplate getHibernateTemplate() {
return template;
}
/**
* 抽象方法,需要实现类提供当前ModelName
*
* @return String
*/
@Override
protected String getModelName() {
return ProductionPlanReportConstant.ENTITY;
}
}
......@@ -6,12 +6,14 @@ import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.internal.dao.AbstractBaseDao;
import com.beecode.inz.common.BaseConstants;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.production.constant.SandMiningConstant;
import com.xyst.dinas.production.dao.SandMiningDao;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
......@@ -44,7 +46,9 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
detachedCriteria.add(Restrictions.eq("status", sandMiningStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -59,7 +63,9 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
KClass bean = Amino.getStaticMetadataContext().getBean(SandMiningConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("permitCode", permitCode));
if(id!=null){
......@@ -72,27 +78,45 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
@Override
public void modify(KObject kobject) {
KObject id = load(kobject.getUuid("id"));
kobject.set("creator",id.get("creator"));
kobject.set("createTime",id.getDate("createTime"));
kobject.set(BaseConstants.CREATOR,id.get(BaseConstants.CREATOR));
kobject.set(BaseConstants.CREATE_TIME,id.getDate(BaseConstants.CREATE_TIME));
KObject staff = AminoContextHolder.getContext().getStaff();
kobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kobject.set("modifyTime",new Date());
kobject.set("modifier",staff);
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",false);
template.merge(kobject);
}
@Override
public void updateSandMiningStatus() {
//1.将未开始但时间已到的修改为已开始
template.execute(session -> {
Query query = session.createQuery("update " + ENTITY + " as a set a.status =1 where a.sandMiningStart >= :startDate and a.status = 0 and a.del=false");
query.setParameter("startDate",new Date());
return query;
});
//2.将已开始但超时的修改为已过期
template.execute(session -> {
Query query = session.createQuery("update " + ENTITY + " as a set a.status =2 where a.sandMiningEnd >= :endDate and a.status = 1 and a.del=false");
query.setParameter("endDate",new Date());
return query;
});
}
@Override
public UUID create(KObject kObject) {
KObject staff = AminoContextHolder.getContext().getStaff();
// kObject.set("department", staff.get("department"));
if(null==kObject.getUuid("id")){
kObject.set("id",UUID.randomUUID());
}
kObject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
kObject.set("creator",staff);
kObject.set("createTime", new Date());
kObject.set(BaseConstants.CREATOR,staff);
kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del",false);
return ((UUID)template.save(kObject));
}
......@@ -102,7 +126,7 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
KObject staff = AminoContextHolder.getContext().getStaff();
KObject kobject = (KObject) template.load(ENTITY, id);
kobject.set("modifyTime",new Date());
kobject.set("modifier",staff);
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",true);
template.update(kobject);
}
......
......@@ -2,12 +2,18 @@ package com.xyst.dinas.production.internal.service;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.dao.ShipInfoDao;
import com.xyst.dinas.biz.dao.StationDao;
import com.xyst.dinas.production.constant.DischargingConstant;
import com.xyst.dinas.production.dao.DischargingDao;
import com.xyst.dinas.production.enumeration.DischargingTypeEnum;
import com.xyst.dinas.production.service.DischargingService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.UUID;
......@@ -17,19 +23,71 @@ public class DischargingServiceImpl implements DischargingService {
@Autowired
private DischargingDao dischargingDao;
@Autowired
private StationDao stationDao;
@Autowired
private ShipInfoDao shipInfoDao;
@Override
public Page<KObject> queryByPaging(Page<KObject> page, Integer DischargingStatus) throws Exception {
public Page<KObject> queryByPaging(Page<KObject> page, UUID transportShipId, Integer type, Date startDate, Date endDate, Integer sandMiningAreaType, List<UUID> stationIds, UUID sandMiningAreaId, UUID shipId, UUID parentId) throws Exception {
if(page.getPageNo()==0||page.getPageSize()==0) {
throw new Exception("pageSize or offset is null");
}
return dischargingDao.listDischargingInfoPaging(page,DischargingStatus);
return dischargingDao.listDischargingInfoPaging(page,transportShipId,type,startDate,endDate,sandMiningAreaType, stationIds,sandMiningAreaId,shipId, parentId);
}
@Override
public KObject validateTimeStationShipArea(UUID sandMiningAreaId, Date date,UUID sandMiningShipId, UUID stationId, UUID id) {
List<KObject> kObjects = dischargingDao.getByTimeStationShipArea(sandMiningAreaId,sandMiningShipId,stationId,date,id);
if(CollectionUtils.isEmpty(kObjects)){
return null;
}
return kObjects.get(0);
}
@Override
public Object groupInfo( UUID transportShipId, Integer type, Date startDate, Date endDate, Integer sandMiningAreaType, List<UUID> stationIds, UUID sandMiningAreaId, UUID sandMiningShipId, UUID parentId) {
return dischargingDao.groupInfo(transportShipId,type,startDate,endDate,sandMiningAreaType, stationIds,sandMiningAreaId,sandMiningShipId, parentId);
}
@Override
public UUID addDischarging(KObject kObject) {
int type = kObject.getInt("type");
UUID stationId = kObject.get("station").getUuid("id");
UUID sandMiningAreaId = kObject.get("sandMiningArea").getUuid("id");
UUID sandMiningShip = kObject.get("sandMiningShip").getUuid("id");
Date dischargingTime = kObject.getDate("dischargingTime");
kObject.set("station",stationDao.load(stationId));
kObject.set("sandMiningShip",shipInfoDao.load(sandMiningShip));
kObject.set("sandMiningArea",stationDao.load(SandMiningAreaConstant.ENTITY,sandMiningAreaId));
if(DischargingTypeEnum.NOME_DATA.getValue() ==type){
//新增逻辑,如果本月有修正数据,将parentId赋值
UUID transportShip = kObject.get("transportShip").getUuid("id");
kObject.set("transportShip",shipInfoDao.load(transportShip));
List<KObject> parents = dischargingDao.getParentByDateAndStationAndSandMiningArea(stationId,sandMiningAreaId,dischargingTime,sandMiningShip,transportShip);
KObject parent=null;
if(parents.size()>0){
parent= parents.get(0);
}
if(null!=parent){
kObject.set("parentId",parent.getUuid("id"));
}
}else if(DischargingTypeEnum.REVISE_DATA.getValue()==type){
//如果是修正记录,则将本采区本场站本采砂船下本月所有数据的parentId改为自己的
updateSetParentId(kObject);
}
return dischargingDao.create(kObject);
}
private void updateSetParentId(KObject kObject) {
dischargingDao.updateSetParentId(kObject);
}
@Override
public KObject getById(UUID id) {
return dischargingDao.load(id);
......@@ -52,8 +110,15 @@ public class DischargingServiceImpl implements DischargingService {
@Override
public void deleteById(UUID id) {
//删除逻辑,删除修正记录时将该修正记录月的非修正记录全部修改为没有parentId
updateToDeleteParentId(id);
dischargingDao.deleteById(id);
}
private void updateToDeleteParentId(UUID id) {
dischargingDao.updateToDeleteParentId(id);
}
}
package com.xyst.dinas.production.internal.service;
import com.beecode.amino.core.Amino;
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.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.common.BaseConstants;
import com.beecode.util.DateUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.biz.dao.ProductionLineDao;
import com.xyst.dinas.biz.dao.StationDao;
import com.xyst.dinas.production.constant.ProductionPlanReportConstant;
import com.xyst.dinas.production.dao.ProductionPlanReportDao;
import com.xyst.dinas.production.service.ProductionPlanReportService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Transactional(rollbackFor = Exception.class)
public class ProductionPlanReportServiceImpl implements ProductionPlanReportService {
@Autowired
private ProductionPlanReportDao productionPlanReportDao;
@Autowired
private StationDao stationDao;
@Autowired
private DinasTypeDao dinasTypeDao;
@Autowired
private ProductionLineDao productionLineDao;
@Override
public Page<KObject> queryByPaging(Page<KObject> page, UUID stationId, UUID productionLineId, Date startDate, Date endDate) throws Exception {
if(page.getPageNo()==0||page.getPageSize()==0) {
throw new Exception("pageSize or offset is null");
}
return productionPlanReportDao.listProductionPlanReportInfoPaging(page,stationId,productionLineId,startDate,endDate);
}
@Override
public UUID addProductionPlanReport(KObject kObject) {
return productionPlanReportDao.create(kObject);
}
@Override
public KObject getById(UUID id) {
return productionPlanReportDao.load(id);
}
@Override
public KObject getByCodeNum(String name, UUID id) {
List<KObject> kObjects = productionPlanReportDao.getByCodeNum(name,id);
if(CollectionUtils.isEmpty(kObjects)){
return null;
}
return kObjects.get(0);
}
@Override
public void update(KObject kobject) {
productionPlanReportDao.modify(kobject);
}
@Override
public void deleteById(UUID id) {
productionPlanReportDao.deleteById(id);
}
@Override
public void deleteByIds(List<UUID> ids) {
for (UUID id : ids) {
productionPlanReportDao.deleteById(id);
}
}
@Override
public void addProductionPlanReportList(JsonNode jsonNode) {
JsonNode stationNode = jsonNode.get("station");
JsonNode productionLines = stationNode.withArray("productionLines");
Date productionPlanDate = DateUtil.convertStringToDate1(jsonNode.get("productionPlanDate").textValue());
JsonNode dinasTypes;
KObject insertKobject;
KObject insertDetailKobject;
KObject staff = AminoContextHolder.getContext().getStaff();
for (JsonNode productionLine : productionLines) {
dinasTypes = productionLine.withArray("dinasTypeDetails");
String productionLineId = productionLine.get("productionLine").get("id").textValue();
insertKobject= JSONObjectUtils.toObject(productionLine, Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class));
insertKobject.set("station",stationDao.load(UUID.fromString(stationNode.get("id").textValue())));
insertKobject.set("productionPlanDate", productionPlanDate);
insertKobject.set("productionLine",productionLineDao.load(UUID.fromString(productionLineId)));
insertKobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
insertKobject.set(BaseConstants.DEL,false);
insertKobject.set(BaseConstants.CREATOR,staff);
UUID uuid = productionPlanReportDao.create(insertKobject);
for (JsonNode dinasType : dinasTypes) {
insertDetailKobject= JSONObjectUtils.toObject(dinasType, Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.DETAIL_ENTITY, KClass.class));
insertDetailKobject.set("master",insertKobject);
insertDetailKobject.set("dinasType", dinasTypeDao.load(UUID.fromString(dinasType.get("dinasTypeId").textValue())));
UUID detailUuid = productionPlanReportDao.creteDetails(insertDetailKobject);
}
}
}
@Override
public void updateProductionPlanReportList(JsonNode jsonNode) {
JsonNode stationNode = jsonNode.get("station");
JsonNode productionLines = stationNode.withArray("productionLines");
Date productionPlanDate = DateUtil.convertStringToDate1(jsonNode.get("productionPlanDate").textValue());
JsonNode dinasTypes;
KObject insertKobject;
KObject insertDetailKobject;
KObject staff = AminoContextHolder.getContext().getStaff();
for (JsonNode productionLine : productionLines) {
dinasTypes = productionLine.withArray("dinasTypeDetails");
String productionLineId = productionLine.get("productionLine").get("id").textValue();
insertKobject= JSONObjectUtils.toObject(productionLine, Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class));
insertKobject.set("station",stationDao.load(UUID.fromString(stationNode.get("id").textValue())));
insertKobject.set("productionPlanDate", productionPlanDate);
insertKobject.set("productionLine",productionLineDao.load(UUID.fromString(productionLineId)));
insertKobject.set("regionalCompany", dinasTypeDao.getCurrentLoginRegionalCompany());
insertKobject.set(BaseConstants.DEL,false);
insertKobject.set(BaseConstants.CREATOR,staff);
productionPlanReportDao.modify(insertKobject);
deleteDetailByMasterId(insertKobject.getUuid("id"));
for (JsonNode dinasType : dinasTypes) {
insertDetailKobject= JSONObjectUtils.toObject(dinasType, Amino.getStaticMetadataContext().getBean(ProductionPlanReportConstant.DETAIL_ENTITY, KClass.class));
insertDetailKobject.set("master",insertKobject);
insertDetailKobject.set("dinasType", dinasTypeDao.load(UUID.fromString(dinasType.get("dinasTypeId").textValue())));
UUID detailUuid = productionPlanReportDao.creteDetails(insertDetailKobject);
}
}
}
private void deleteDetailByMasterId(UUID stationId) {
productionPlanReportDao.deleteDetailByMasterId(stationId);
}
@Override
public Object groupInfo(UUID stationId, UUID productionLineId, Date startDate, Date endDate) {
return productionPlanReportDao.groupInfo(stationId,productionLineId,startDate,endDate);
}
@Override
public KObject getByStationAndDate(UUID stationId, String date, List<UUID> ids) {
Date date1 = DateUtil.convertStringToDate1(date);
List<KObject> kObjects = productionPlanReportDao.listByStationAndDate(stationId,date1,ids);
if(CollectionUtils.isEmpty(kObjects)){
return null;
}
return kObjects.get(0);
}
@Override
public void deleteByStationAndDate(UUID stationId, Date convertStringToDate1) {
productionPlanReportDao.deleteByStationAndDate(stationId,convertStringToDate1);
}
@Override
public List<KObject> listByStationAndDate(UUID stationId, Date date) {
return productionPlanReportDao.listByStationAndDate(stationId,date, null);
}
}
......@@ -55,5 +55,10 @@ public class SandMiningServiceImpl implements SandMiningService {
sandMiningDao.deleteById(id);
}
@Override
public void updateSandMiningStatus() {
sandMiningDao.updateSandMiningStatus();
}
}
......@@ -3,11 +3,12 @@ package com.xyst.dinas.production.service;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import java.util.Date;
import java.util.List;
import java.util.UUID;
public interface DischargingService {
Page<KObject> queryByPaging(Page<KObject> page, Integer dischargingStatus) throws Exception;
UUID addDischarging(KObject kObject);
......@@ -18,4 +19,11 @@ public interface DischargingService {
void update(KObject kobject);
void deleteById(UUID id);
Object queryByPaging(Page<KObject> objectPage, UUID transportShipId, Integer type, Date startDate, Date endDate, Integer sandMiningAreaType, List<UUID> stationIds, UUID sandMiningAreaId, UUID shipId, UUID parentId)throws Exception;
KObject validateTimeStationShipArea(UUID sandMiningAreaId,Date date, UUID sandMiningShipId, UUID stationId, UUID id);
Object groupInfo( UUID transportShipId, Integer type, Date startDate, Date endDate, Integer sandMiningAreaType, List<UUID> stationIds, UUID sandMiningAreaId, UUID sandMiningShipId, UUID parentId);
}
package com.xyst.dinas.production.service;
import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.Date;
import java.util.List;
import java.util.UUID;
public interface ProductionPlanReportService {
Page<KObject> queryByPaging(Page<KObject> page, UUID stationId, UUID productionLineId, Date startDate, Date endDate) throws Exception;
UUID addProductionPlanReport(KObject kObject);
KObject getById(UUID id);
KObject getByCodeNum(String name, UUID id);
void update(KObject kobject);
void deleteById(UUID id);
void deleteByIds(List<UUID> ids);
void addProductionPlanReportList(JsonNode jsonNode);
List<KObject> listByStationAndDate(UUID stationId, Date date);
void updateProductionPlanReportList(JsonNode jsonNode);
Object groupInfo(UUID stationId, UUID productionLineId, Date startDate, Date endDate);
KObject getByStationAndDate(UUID stationId, String date, List<UUID> ids);
void deleteByStationAndDate(UUID stationId, Date convertStringToDate1);
}
......@@ -18,4 +18,8 @@ public interface SandMiningService {
void update(KObject kobject);
void deleteById(UUID id);
void updateSandMiningStatus();
}
......@@ -3,12 +3,16 @@ package com.xyst.dinas.production.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 java.util.Optional;
public class SandMiningExpiredSchedule implements ServiceInitializer {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
......@@ -21,7 +25,13 @@ public class SandMiningExpiredSchedule implements ServiceInitializer {
public void init(ApplicationMetadataContext applicationMetadataContext) {
Optional<ScheduleDetail> byName = scheduleService.findByName(SAND_MINING_EXPIRED_TASK);
if(byName.isPresent()){
scheduleService.removeTask(SAND_MINING_EXPIRED_TASK);
}
TaskDetail taskDetail = new TaskDetail(SAND_MINING_EXPIRED_TASK, SandMiningExpiredTask.class.getName());
//避免跑偏 4小时执行一次
scheduleService.scheduleTask(taskDetail, "0 0 0/4 * * ? *");
logger.info("采砂许可证状态任务初始化成功!");
}
}
......@@ -2,16 +2,26 @@ package com.xyst.dinas.production.task;
import com.beecode.bap.scheduler.core.Task;
import com.beecode.bap.scheduler.core.TaskContext;
import com.xyst.dinas.production.service.SandMiningService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @author scol
*/
public class SandMiningExpiredTask implements Task {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private SandMiningService sandMiningService;
@Override
public void execute(TaskContext taskContext) {
logger.info("开始修改采砂许可证状态");
sandMiningService.updateSandMiningStatus();
logger.info("修改采砂许可证状态结束");
}
}
......@@ -12,8 +12,11 @@ import com.xyst.dinas.production.service.DischargingService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.List;
import java.util.UUID;
/**
......@@ -31,20 +34,47 @@ public class DischargingController {
@RequestMapping(value = "list/page", method = RequestMethod.GET)
public ResponseObj getListPage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "dischargingStatus", required = false) Integer dischargingStatus
) throws Exception {
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "type", required = false) Integer type,
@RequestParam(name = "startDate", required = false)@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date startDate,
@RequestParam(name = "endDate", required = false)@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date endDate,
@RequestParam(name = "sandMiningAreaType", required = false)Integer sandMiningAreaType,
@RequestParam(name = "stationIds", required = false) List<UUID> stationIds,
@RequestParam(name = "sandMiningAreaId", required = false)UUID sandMiningAreaId,
@RequestParam(name = "sandMiningShipId", required = false)UUID sandMiningShipId,
@RequestParam(name = "transportShipId", required = false)UUID transportShipId,
@RequestParam(name = "parentId", required = false)UUID parentId
) throws Exception {
Page<KObject> objectPage = new Page<>();
objectPage.setPageNo(pageNo);
objectPage.setPageSize(pageSize);
return ResponseObj.success("查询成功", dischargingService.queryByPaging(objectPage,dischargingStatus));
return ResponseObj.success("查询成功", dischargingService.queryByPaging(objectPage,transportShipId,type,startDate,endDate,sandMiningAreaType,stationIds,sandMiningAreaId,sandMiningShipId,parentId));
}
@RequestMapping(value = "list/groupInfo", method = RequestMethod.GET)
public ResponseObj groupInfo(
@RequestParam(name = "type", required = false) Integer type,
@RequestParam(name = "startDate", required = false)@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date startDate,
@RequestParam(name = "endDate", required = false)@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date endDate,
@RequestParam(name = "sandMiningAreaType", required = false)Integer sandMiningAreaType,
@RequestParam(name = "stationIds", required = false) List<UUID> stationIds,
@RequestParam(name = "sandMiningAreaId", required = false)UUID sandMiningAreaId,
@RequestParam(name = "sandMiningShipId", required = false)UUID sandMiningShipId,
@RequestParam(name = "transportShipId", required = false)UUID transportShipId,
@RequestParam(name = "parentId", required = false)UUID parentId
) throws Exception {
return ResponseObj.success("查询成功", dischargingService.groupInfo(transportShipId,type,startDate,endDate,sandMiningAreaType,stationIds,sandMiningAreaId,sandMiningShipId,parentId));
}
/**
* 新建采砂许可证
* 新建接驳记录
* @param body
* @return ResponseObj
*/
......@@ -60,29 +90,13 @@ public class DischargingController {
}
/**
* 修改采砂许可证
* @param body 采砂许可证json
* 修改接驳记录
* @param body 接驳记录json
* @return
*/
@PutMapping
public ResponseObj update(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(DischargingConstant.ENTITY, KClass.class));
if(StringUtils.isEmpty(kobject.getString("DischargingName"))){
return ResponseObj.error(400,"采砂许可证编号不能为空");
}
if(StringUtils.isEmpty(kobject.getString("DischargingAddress"))){
return ResponseObj.error(400,"采砂许可证地址不能为空");
}
if(StringUtils.isEmpty(kobject.getString("DischargingCoordinate"))){
return ResponseObj.error(400,"坐标点不能为空");
}
if(StringUtils.isEmpty(kobject.getString("linkMan"))){
return ResponseObj.error(400,"联系人不能为空");
}
if(StringUtils.isEmpty(kobject.getString("telephone"))){
return ResponseObj.error(400,"联系人电话不能为空");
}
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
......@@ -92,7 +106,7 @@ public class DischargingController {
/**
* 根据id获取采砂许可证
* 根据id获取接驳记录
* @param id
* @return
*/
......@@ -106,7 +120,7 @@ public class DischargingController {
}
/**
* 根据Id删除采砂许可证
* 根据Id删除接驳记录
* @param id
* @return
*/
......@@ -122,17 +136,31 @@ public class DischargingController {
/**
* 查询是否有重名
* @param codeNum
* @param
* @return
*/
@GetMapping("/validateCodeNum")
public ResponseObj validateName(@RequestParam("codeNum") String codeNum,@RequestParam(value = "id",required = false) UUID id){
if(StringUtils.isEmpty(codeNum)){
return ResponseObj.error(400,"采砂许可证编号不能为空");
@GetMapping("/validateTimeStationShipArea")
public ResponseObj validateTimeStationShipArea(
@RequestParam("sandMiningAreaId") UUID sandMiningAreaId,
@RequestParam("stationId") UUID stationId,
@RequestParam("sandMiningShipId") UUID sandMiningShipId,
@RequestParam("date") Date date,
@RequestParam(value = "id",required = false) UUID id){
if(null==sandMiningAreaId){
return ResponseObj.error(400,"采区不能为空");
}
if(null==stationId){
return ResponseObj.error(400,"场站不能为空");
}
if(null==sandMiningShipId){
return ResponseObj.error(400,"采砂船不能为空");
}
if(null==date){
return ResponseObj.error(400,"年月不能为空");
}
KObject kObject = dischargingService.getByCodeNum(codeNum,id);
KObject kObject = dischargingService.validateTimeStationShipArea(sandMiningAreaId,date,sandMiningShipId,stationId,id);
if(kObject != null){
return ResponseObj.error("采砂许可证编号已存在!");
return ResponseObj.error("接驳记录编号已存在!");
}
return ResponseObj.success();
}
......
package com.xyst.dinas.production.web;
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.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.inz.common.BaseConstants;
import com.beecode.util.DateUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.xyst.dinas.production.constant.ProductionPlanReportConstant;
import com.xyst.dinas.production.service.ProductionPlanReportService;
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.List;
import java.util.UUID;
/**
* @author scol
*/
@RestController()
@RequestMapping(value="/production/productionPlanReport")
public class ProductionPlanReportController {
@Autowired
private ProductionPlanReportService productionPlanReportService;
@RequestMapping(value = "list/page", method = RequestMethod.GET)
public ResponseObj getListPage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "stationId", required = false) UUID stationId,
@RequestParam(name = "productionLineId", required = false) UUID productionLineId,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@RequestParam(name = "startDate", required = false) Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@RequestParam(name = "endDate", required = false) Date endDate
) throws Exception {
Page<KObject> objectPage = new Page<>();
objectPage.setPageNo(pageNo);
objectPage.setPageSize(pageSize);
return ResponseObj.success("查询成功", productionPlanReportService.queryByPaging(objectPage, stationId,productionLineId,startDate,endDate));
}
@RequestMapping(value = "list/groupInfo", method = RequestMethod.GET)
public ResponseObj groupInfo(
@RequestParam(name = "stationId", required = false) UUID stationId,
@RequestParam(name = "productionLineId", required = false) UUID productionLineId,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@RequestParam(name = "startDate", required = false) Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@RequestParam(name = "endDate", required = false) Date endDate
) {
return ResponseObj.success("查询成功", productionPlanReportService.groupInfo( stationId,productionLineId,startDate,endDate));
}
/**
* 新建生产计划
* @param body json
* @return ResponseObj
*/
@PostMapping
public ResponseObj create(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class));
if(kobject.getUuid(BaseConstants.ID) == null){
return ResponseObj.error(400,"'id' must be not null!");
}
UUID id = productionPlanReportService.addProductionPlanReport(kobject);
return ResponseObj.success("保存成功", id);
}
/**
* 新建生产计划
* @param body json
* @return ResponseObj
*/
@PostMapping("createList")
public ResponseObj createList(@RequestBody String body){
JsonNode jsonNode = JSONObjectUtils.toJson(body);
productionPlanReportService.addProductionPlanReportList(jsonNode);
return ResponseObj.success("保存成功");
}
/**
* 新建生产计划
* @param body json
* @return ResponseObj
*/
@PostMapping("updateList")
public ResponseObj updateList(@RequestBody String body){
JsonNode jsonNode = JSONObjectUtils.toJson(body);
productionPlanReportService.updateProductionPlanReportList(jsonNode);
return ResponseObj.success("修改成功");
}
/**
* 修改生产计划
* @param body 生产计划json
* @return 修改成功
*/
@PutMapping
public ResponseObj update(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(ProductionPlanReportConstant.ENTITY, KClass.class));
productionPlanReportService.update(kobject);
return ResponseObj.success("修改成功");
}
/**
* 根据id获取生产计划
* @param id id
* @return 获取成功
*/
@GetMapping("/{id}")
public ResponseObj getById(@PathVariable("id") UUID id){
if(id == null){
return ResponseObj.error(400,"'id' must be not null!");
}
KObject productionPlanReport = productionPlanReportService.getById(id);
return ResponseObj.success("获取成功",productionPlanReport);
}
/**
* 根据场站id和时间获取生产计划
* @param stationId 场站id
* @param date 时间
* @return 获取成功
*/
@GetMapping("getByStationAndDate")
public ResponseObj getByStationAndDate(@RequestParam UUID stationId ,String date){
return ResponseObj.success("获取成功",productionPlanReportService.listByStationAndDate(stationId, DateUtil.convertStringToDate1(date)));
}
/**
* 根据场站id和时间删除生产计划
* @param stationId 场站id
* @param date 时间
* @return 获取成功
*/
@DeleteMapping("deleteByStationAndDate")
public ResponseObj deleteByStationAndDate(@RequestParam UUID stationId ,String date){
productionPlanReportService.deleteByStationAndDate(stationId, DateUtil.convertStringToDate1(date));
return ResponseObj.success("删除成功");
}
/**
* 查询是否有重名
* @param stationId 场站id
* @param date yyyy-mm-dd 时间
* @return 生产计划该场站今日是否已存在
*/
@GetMapping("/validateByStationAndDate")
public ResponseObj validateByStationAndDate(@RequestParam("stationId") UUID stationId ,@RequestParam("date") String date,@RequestParam(value = "ids",required = false) List<UUID> ids){
if(stationId == null){
return ResponseObj.error(400,"'id' must be not null!");
}if(date == null){
return ResponseObj.error(400,"'date' must be not null!");
}
KObject kObject = productionPlanReportService.getByStationAndDate(stationId,date,ids);
if(kObject != null){
return ResponseObj.error("生产计划该场站今日已存在!");
}
return ResponseObj.success();
}
}
\ No newline at end of file
......@@ -52,21 +52,6 @@ public class SandMiningController {
public ResponseObj create(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(SandMiningConstant.ENTITY, KClass.class));
if(StringUtils.isEmpty(kobject.getString("SandMiningName"))){
return ResponseObj.error(400,"采砂许可证编号不能为空");
}
if(StringUtils.isEmpty(kobject.getString("SandMiningAddress"))){
return ResponseObj.error(400,"采砂许可证地址不能为空");
}
if(StringUtils.isEmpty(kobject.getString("SandMiningCoordinate"))){
return ResponseObj.error(400,"坐标点不能为空");
}
if(StringUtils.isEmpty(kobject.getString("linkMan"))){
return ResponseObj.error(400,"联系人不能为空");
}
if(StringUtils.isEmpty(kobject.getString("telephone"))){
return ResponseObj.error(400,"联系人电话不能为空");
}
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
......@@ -83,24 +68,7 @@ public class SandMiningController {
public ResponseObj update(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(SandMiningConstant.ENTITY, KClass.class));
if(StringUtils.isEmpty(kobject.getString("SandMiningName"))){
return ResponseObj.error(400,"采砂许可证编号不能为空");
}
if(StringUtils.isEmpty(kobject.getString("SandMiningAddress"))){
return ResponseObj.error(400,"采砂许可证地址不能为空");
}
if(StringUtils.isEmpty(kobject.getString("SandMiningCoordinate"))){
return ResponseObj.error(400,"坐标点不能为空");
}
if(StringUtils.isEmpty(kobject.getString("linkMan"))){
return ResponseObj.error(400,"联系人不能为空");
}
if(StringUtils.isEmpty(kobject.getString("telephone"))){
return ResponseObj.error(400,"联系人电话不能为空");
}
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
sandMiningService.update(kobject);
return ResponseObj.success("修改成功");
}
......
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xyst.dinas.production.config.SandMiningConfiguration,\
com.xyst.dinas.production.config.ProductionPlanReportConfiguration,\
com.xyst.dinas.production.config.DischargingConfiguration
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification>
<id>f8c56d27-984d-4ea6-9b9a-cd5067a9d06f</id>
<name>com.xyst.dinas.production.bill.ProductionPlanReport$sequence</name>
<title>计划上报$sequence</title>
<description>计划上报</description>
<define>bcp.sequence</define>
<define-version>1.0</define-version>
<content>
<m:sequence>
<m:start-with>0</m:start-with>
<m:increment>1</m:increment>
<m:max>99999</m:max>
<m:min>0</m:min>
<m:cycle>true</m:cycle>
<m:cache-size>10</m:cache-size>
</m:sequence>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification>
<id>e804c7a0-575d-41b3-ae86-568226f0c804</id>
<name>com.xyst.dinas.production.bill.ProductionPlanReport$serial</name>
<title>计划上报$serial</title>
<description>计划上报</description>
<define>bcp.serial</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.production.datamodel.ProductionPlanReport</dependency>
<dependency>com.xyst.dinas.production.bill.ProductionPlanReport$sequence</dependency>
<content>
<m:serial>
<m:input>com.xyst.dinas.production.datamodel.ProductionPlanReport</m:input>
<m:functionLibrarys/>
<m:segments>
<m:literal>
<m:value>PR</m:value>
</m:literal>
<m:sequence>
<m:length>5</m:length>
<m:pad-direction>left</m:pad-direction>
<m:pad-string>0</m:pad-string>
<m:key>com.xyst.dinas.production.bill.ProductionPlanReport$serial</m:key>
<m:sequenceName>com.xyst.dinas.production.bill.ProductionPlanReport$sequence</m:sequenceName>
</m:sequence>
</m:segments>
</m:serial>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification>
<id>6a063471-3c53-4755-a86f-d2cb563bb598</id>
<name>com.xyst.dinas.production.bill.ProductionPlanReport</name>
<title>计划上报</title>
<description>计划上报</description>
<define>bcp.biz.Biztype</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.production.bill.ProductionPlanReport$serial</dependency>
<dependency>com.xyst.dinas.production.datamodel.ProductionPlanReport</dependency>
<dependency>com.beecode.bap.biztrait.BasicBillBiztrait</dependency>
<content>
<m:biztype>
<m:type>com.xyst.dinas.production.datamodel.ProductionPlanReport</m:type>
<m:inheritances>
<m:inheritance>
<m:biztrait>com.beecode.bap.biztrait.BasicBillBiztrait</m:biztrait>
<m:config type="xml">
<m:content>&lt;billBasictraitConfig&gt;&lt;formulas/&gt;&lt;parents&gt;&lt;parent&gt;&lt;billCodeConfig&gt;&lt;serialName&gt;com.xyst.dinas.production.bill.ProductionPlanReport$serial&lt;/serialName&gt;&lt;buildTime&gt;add&lt;/buildTime&gt;&lt;/billCodeConfig&gt;&lt;/parent&gt;&lt;parent&gt;&lt;workflowConfig&gt;&lt;workflow&gt;&lt;/workflow&gt;&lt;/workflowConfig&gt;&lt;/parent&gt;&lt;parent&gt;&lt;printConfig&gt;&lt;templates/&gt;&lt;/printConfig&gt;&lt;/parent&gt;&lt;/parents&gt;&lt;functionLibrarys/&gt;&lt;/billBasictraitConfig&gt;</m:content>
</m:config>
</m:inheritance>
</m:inheritances>
<m:methodAuthorityItems/>
</m:biztype>
</content>
</metadata>
......@@ -111,6 +111,25 @@
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
</m:annotations>
<m:id>af40ca3f-2205-403f-903f-727f6e6f797d</m:id>
<m:name>reason</m:name>
<m:title>原因</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>8bd419c9-61bd-4a10-89d9-18032dcec695</m:id>
<m:name>parentId</m:name>
<m:title>所属的修正记录id</m:title>
<m:type>uuid</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes>
</m:class>
</content>
......
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>224beb45-2976-49d7-b408-6fd3c208494e</id>
<name>com.xyst.dinas.production.datamodel.ProductionPlanReport$DinasTypeDetails</name>
<title>生产计划子表</title>
<description>生产计划采砂类型和砂石量子表</description>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.DinasType</dependency>
<dependency>com.xyst.dinas.production.datamodel.ProductionPlanReport</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.StoreSubTableRequirement</dependency>
<dependency>bcp.type.json.JsonIgnore</dependency>
<content>
<m:class>
<m:parents>
<m:parent>com.beecode.bap.biztrait.datamodel.StoreSubTableRequirement</m:parent>
</m:parents>
<m:attributes>
<m:attribute>
<m:annotations/>
<m:id>247a0284-b15d-4872-b9fa-2a37b8ec3e88</m:id>
<m:name>dinasType</m:name>
<m:title>砂石类型</m:title>
<m:type>com.xyst.dinas.biz.datamodel.DinasType</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:id>aa48aba2-e9db-48c9-be1a-f32d75470da5</m:id>
<m:name>dinasWeight</m:name>
<m:title>重量</m:title>
<m:type>fixnum</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.json.JsonIgnore</m:type>
</m:annotation>
</m:annotations>
<m:id>0f03ad12-3195-4696-b2c7-001e3aae8dc5</m:id>
<m:name>master</m:name>
<m:title>生产计划表</m:title>
<m:type>com.xyst.dinas.production.datamodel.ProductionPlanReport</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes>
</m:class>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>bc5621f0-0b82-4d72-90b9-bad517971960</id>
<name>com.xyst.dinas.production.datamodel.ProductionPlanReport</name>
<title>生产计划上报</title>
<description>采砂许可证</description>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<dependency>bcp.type.constraint.StringLength</dependency>
<dependency>com.beecode.inz.common.datamodel.BaseInfo</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.SubTableAnnotation</dependency>
<dependency>com.beecode.bap.staff.datamodel.Staff</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Organization</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Station</dependency>
<dependency>com.xyst.dinas.biz.datamodel.DinasType</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency>
<dependency>com.xyst.dinas.biz.datamodel.ProductionLine</dependency>
<content>
<m:class>
<m:parents>
<m:parent>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</m:parent>
<m:parent>com.beecode.inz.common.datamodel.BaseInfo</m:parent>
</m:parents>
<m:attributes>
<m:attribute>
<m:annotations/>
<m:id>8a33a0d7-e5f8-4abd-b0bf-aeab76ec3142</m:id>
<m:name>regionalCompany</m:name>
<m:title>区域公司</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.NotNull</m:type>
</m:annotation>
</m:annotations>
<m:id>bf1bfe29-6e17-4ba0-8756-b2b3a3b05f3a</m:id>
<m:name>productionPlanDate</m:name>
<m:title>计划上报时间</m:title>
<m:type>datetime</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>bb32d8cc-10b6-4fe9-9e86-1760a1b1a266</m:id>
<m:name>productionLine</m:name>
<m:title>所属生产线</m:title>
<m:type>com.xyst.dinas.biz.datamodel.ProductionLine</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>037b2fd4-f140-4389-9fd0-0b0dad9fe59c</m:id>
<m:name>station</m:name>
<m:title>所属场站</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Station</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>com.beecode.bap.biztrait.datamodel.SubTableAnnotation</m:type>
</m:annotation>
</m:annotations>
<m:id>862d0182-3296-4481-a1d9-6b0c6fe91aa4</m:id>
<m:name>dinasTypeDetails</m:name>
<m:title>包含砂石种类和砂石量子表</m:title>
<m:type>com.xyst.dinas.production.datamodel.ProductionPlanReport$DinasTypeDetails[]</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes>
</m:class>
</content>
</metadata>
......@@ -31,7 +31,7 @@
<m:type>bcp.type.json.JsonIgnore</m:type>
</m:annotation>
</m:annotations>
<m:id>23fc82e2-e7b6-49fc-96cc-bb947ba2cc99</m:id>
<m:id>5452585c-7996-4d9c-aa18-071dfb28ddf7</m:id>
<m:name>master</m:name>
<m:title>采砂许可证</m:title>
<m:type>com.xyst.dinas.production.datamodel.SandMining</m:type>
......
......@@ -249,7 +249,6 @@
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>del</m:name>
<m:title>是否删除</m:title>
......@@ -260,6 +259,16 @@
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>parentId</m:name>
<m:title>所属修正记录id</m:title>
<m:type>uuid</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
</m:fields>
</m:query>
</content>
......
......@@ -93,6 +93,18 @@
<comment>数据类型,0每日新增 1数据修正新增</comment>
</column>
</property>
<property name="parentId" type="uuid-binary" >
<column name="parent_id" not-null="false" length="16">
<comment>所属的修正数据id</comment>
</column>
</property>
<property name="reason" type="nstring" >
<column name="reason" not-null="false">
<comment>修正原因</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.production.datamodel.ProductionPlanReport" table="xyst_dinas_production_plan_report" 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>
<many-to-one name="creator" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="creator_id" not-null="false"/>
</many-to-one>
<property name="modifyTime" type="timestamp" not-null="false">
<column name="modify_time"/>
</property>
<many-to-one name="modifier" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="modifier_id" not-null="false"/>
</many-to-one>
<property name="billState" type="nstring" not-null="false">
<column name="bill_state" length="100"/>
</property>
<many-to-one name="bizProcess" entity-name="com.beecode.bap.workflow.datamodel.BizProcess" fetch="select">
<column name="biz_process_id" not-null="false"/>
</many-to-one>
<property name="billCode" type="nstring" not-null="false">
<column name="bill_code" length="200"/>
</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>
<property name="approveState" type="integer" not-null="false">
<column name="approve_state"/>
</property>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="regional_company" not-null="false">
<comment>所属组织机构</comment>
</column>
</many-to-one>
<many-to-one name="productionLine" entity-name="com.xyst.dinas.biz.datamodel.ProductionLine" fetch="select">
<column name="productionLine_id" not-null="false">
<comment>所属生产线</comment>
</column>
</many-to-one>
<many-to-one name="station" entity-name="com.xyst.dinas.biz.datamodel.Station" fetch="select">
<column name="station_id" not-null="false">
<comment>所属场站</comment>
</column>
</many-to-one>
<property name="productionPlanDate" type="timestamp" not-null="true">
<column name="production_plan_date">
<comment>计划上报时间</comment>
</column>
</property>
<bag name="dinasTypeDetails" lazy="true" fetch="select" inverse="true">
<key column="master_id" not-null="true" />
<one-to-many entity-name="com.xyst.dinas.production.datamodel.ProductionPlanReport$DinasTypeDetails" />
</bag>
</class>
<class entity-name="com.xyst.dinas.production.datamodel.ProductionPlanReport$DinasTypeDetails" table="xyst_dinas_production_plan_report_dinas_type_detail" >
<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>
<many-to-one name="dinasType" entity-name="com.xyst.dinas.biz.datamodel.DinasType" fetch="select">
<column name="dinas_type_id" not-null="true">
<comment>砂石类型id</comment>
</column>
</many-to-one>
<many-to-one name="master" entity-name="com.xyst.dinas.production.datamodel.ProductionPlanReport" fetch="select">
<column name="master_id" not-null="true">
<comment>砂石类型id</comment>
</column>
</many-to-one>
<property name="dinasWeight" type="big_decimal" not-null="false">
<column name="dinas_weight" precision="12" scale="2">
<comment>砂石量</comment>
</column>
</property>
</class>
</hibernate-mapping>
\ No newline at end of file
......@@ -69,7 +69,7 @@
</property>
<property name="workMethod" type="int" >
<column name="work_method" not-null="false">
<comment>作业方式 0链条挖斗式 1抽泵式</comment>
<comment>作业方式 0链条挖斗式 1抽泵式</comment>
</column>
</property>
......
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