Commit f3a1b448 by 高晓磊

采区许可证修改为不使用公共方法-预警记录

parent a287f82c
......@@ -95,8 +95,8 @@ public class DateTimeUtils {
/**
* 两个LocalDateTime之间差了*月*日
*
* @param from
* @param to
* @param fromDateTime
* @param toDateTime
* @return
*/
public static DateDiffBean getMonthDayDiffOfTwoLocalDateTime(LocalDateTime fromDateTime, LocalDateTime toDateTime) {
......@@ -183,7 +183,41 @@ public class DateTimeUtils {
return calendar.getTime();
}
/**
/**
* 获取某年第一天第一秒日期 eg 2021-01-01 00:00:00
*
* @param year
* 年份
* @return Date
*/
public static Date getYearStart(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.set(year, 1,1, 0, 0, 0);
return calendar.getTime();
}
/**
* 获取某年最后一天最后一秒日期 eg 2021-12-31 23:59:59
*
* @param year
* 年份
* @return Date
*/
public static Date getYearEnd(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.set(year, 12,31, 23, 59, 59);
return calendar.getTime();
}
/**
* 获取月初第一秒 eg 2021-04-01 00:00:00
*
* @param date
......
......@@ -8,6 +8,7 @@ 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.warn.SandAreaDinasCountWarningCalculate;
import com.xyst.dinas.biz.web.SandMiningAreaController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
......
......@@ -3,6 +3,7 @@ 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 org.hibernate.criterion.DetachedCriteria;
import java.util.List;
import java.util.UUID;
......@@ -17,6 +18,8 @@ public interface DinasTypeDao extends BaseDao {
void deleteById(UUID id);
DetachedCriteria addRegionalCompanyFilter(DetachedCriteria detachedCriteria);
List<KObject> getByName(String name, UUID id);
void modify(KObject kobject);
......
package com.xyst.dinas.biz.enumeration;
/**
* 预警状态枚举值
*/
public enum WarnStateEnum {
/**
* 未结束
*/
NOT_OVER(0),
/**
* 已结束
*/
OVER(1),
/**
* 忽略
*/
IGNORE(2);
int value;
WarnStateEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
......@@ -10,9 +10,11 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* @author scol
......@@ -34,20 +36,15 @@ public class SandMiningWarnSettingProcessor implements DataProcessor {
Assert.notNull(sandMiningArea, "找不到对应的采砂区域!");
row.put("sandMiningAreaName", sandMiningArea.isNull("sandMiningAreaName") ? "" : sandMiningArea.getString("sandMiningAreaName"));
String personnel = row.get("personnel") != null ? row.get("personnel").toString() : "";
StringBuilder personnelName = new StringBuilder();
List<String> personnelNames = new ArrayList<>();
if (StringUtils.isNotEmpty(personnel)) {
List<String> personnelList = Arrays.asList(personnel.split(","));
for (int i = 0; i < personnelList.size(); i++) {
String personnelId = personnelList.get(i);
String[] personnelList = personnel.split(",");
for (String personnelId : personnelList) {
KObject personnelKObject = staffService.getById(UUID.fromString(personnelId));
if (i == personnelList.size() - 1) {
personnelName.append(personnelKObject.getString("name"));
} else {
personnelName.append(personnelKObject.getString("name")).append(",");
}
personnelNames.add(personnelKObject.getString("name"));
}
}
row.put("personnelName", personnelName.toString());
row.put("personnelName", String.join(" ", personnelNames));
}
}
}
......@@ -16,10 +16,7 @@ import com.xyst.dinas.biz.enumeration.OrganizationTypeEnum;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.hibernate.query.NativeQuery;
import org.hibernate.sql.JoinType;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
......@@ -120,11 +117,13 @@ public class DinasTypeDaoImpl extends AbstractBaseDao implements DinasTypeDao, D
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
private void addRegionalCompanyFilter(DetachedCriteria detachedCriteria) {
@Override
public DetachedCriteria addRegionalCompanyFilter(DetachedCriteria detachedCriteria) {
KObject currentLoginRegionalCompany = getCurrentLoginRegionalCompany();
if (currentLoginRegionalCompany != null && currentLoginRegionalCompany.getString("type").equals(OrganizationTypeEnum.REGIONAL_COMPANY.name())) {
detachedCriteria.add(Restrictions.eq("regionalCompany.id", currentLoginRegionalCompany.getUuid("id")));
}
return detachedCriteria;
}
......
......@@ -39,10 +39,8 @@ 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));
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
};
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -57,10 +55,8 @@ public class ProductionLineDaoImpl extends AbstractBaseDao implements Production
// UUID departmentId = AminoContextHolder.getContext().getStaff().get("department").getUuid("id");
KClass bean = Amino.getStaticMetadataContext().getBean(ProductionLineConstant.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")));
};
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("name", name));
if(id!=null){
......
......@@ -43,10 +43,8 @@ public class RetailInfoDaoImpl extends AbstractBaseDao implements RetailInfoDao,
if(null!=retailInfoStatus){
detachedCriteria.add(Restrictions.eq("retailInfoStatus", retailInfoStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -82,10 +80,8 @@ public class RetailInfoDaoImpl extends AbstractBaseDao implements RetailInfoDao,
KClass bean = Amino.getStaticMetadataContext().getBean(RetailInfoConstant.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")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("retailInfoName", name));
if(id!=null){
......
......@@ -43,10 +43,8 @@ public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMining
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")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -62,10 +60,8 @@ public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMining
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")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("sandMiningAreaName", name));
if(id!=null){
......
......@@ -44,10 +44,8 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
if(null!=stationStatus){
detachedCriteria.add(Restrictions.eq("stationStatus", stationStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.addOrder(Order.desc("sortOrder"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -83,10 +81,8 @@ public class StationDaoImpl extends AbstractBaseDao implements StationDao, Stat
KClass bean = Amino.getStaticMetadataContext().getBean(StationConstant.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")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("stationName", name));
if(id!=null){
......
......@@ -5,6 +5,7 @@ import java.util.Date;
import java.util.List;
import java.util.UUID;
import com.xyst.dinas.biz.enumeration.WarnStateEnum;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;
......@@ -126,6 +127,7 @@ public class BaseBusinessWarn {
warnExeRecord.setRecentlyTime(currentTime);
if(!isWarning) {//2.1 如果没有处罚预警,则结束该预警记录
warnExeRecord.setEndTime(currentTime);
warnExeRecord.setWarnState(WarnStateEnum.OVER.getValue()+"");
}
warningSettingService.updateWarnExe(warnExeRecord);
}
......@@ -143,7 +145,8 @@ public class BaseBusinessWarn {
private WarnExeRecord createWarnExeRecord(WarnSetting warnSetting) {
WarnExeRecord warnExeRecord = new WarnExeRecord();
Date currentTime = new Date();
warnExeRecord.setStratTime(currentTime);
warnExeRecord.setWarnState(WarnStateEnum.NOT_OVER.getValue()+"");
warnExeRecord.setStartTime(currentTime);
warnExeRecord.setRecentlyTime(currentTime);
warnExeRecord.setTarget(warnSetting.getTarget());
warnExeRecord.setMin(warnSetting.getMin());
......
package com.xyst.dinas.biz.warn;
/**
* 上岸量比较
*
* @author Jackpot
* @date 2021年4月1日
*/
public class SandAreaDinasCountWarningCalculate implements IWarningCalculate{
/**上岸量
*
*/
private double dischargingWeight;
private final String sandAreaName;
private String warnMessage;
/**
* 上岸量比较
* @param dischargingWeight 上岸砂石量
*/
public SandAreaDinasCountWarningCalculate(double dischargingWeight,String sandAreaName) {
this.dischargingWeight = dischargingWeight;
this.sandAreaName = sandAreaName;
}
@Override
public boolean isWarning(WarnSetting warnSetting) {
String max = warnSetting.getMax();
String target = warnSetting.getTarget();
if(max==null || max.trim().length()==0) {
return false;
}
//业务数据与设置的阀值做比较,计算是否预警
if (dischargingWeight >= Double.parseDouble(max)) {
warnMessage = "["+target+"]"+sandAreaName+"开采量已经达到"+dischargingWeight+",超出预警值"+max;
return true;
}
return false;
}
public double getDinasCount() {
return dischargingWeight;
}
public void setDinasCount(double dinasCount) {
this.dischargingWeight = dinasCount;
}
@Override
public String warnMessage() {
return warnMessage;
}
}
......@@ -13,7 +13,7 @@ public class WarnExeRecord {
private UUID id;
private Long version;
private Date stratTime;
private Date startTime;
private Date endTime;
private Date recentlyTime;
......@@ -47,11 +47,11 @@ public class WarnExeRecord {
public void setId(UUID id) {
this.id = id;
}
public Date getStratTime() {
return stratTime;
public Date getStartTime() {
return startTime;
}
public void setStratTime(Date stratTime) {
this.stratTime = stratTime;
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
......
......@@ -4,10 +4,7 @@ public class WarnSettingConstant {
/** 实体名:预警设置 */
public static final String ENTITY_WARNSETTING = "com.xyst.dinas.biz.datamodel.WarnSetting";
/************************************/
/** 实体名:预警执行记录 */
......@@ -17,4 +14,22 @@ public class WarnSettingConstant {
public static final String END_TIME = "endTime";
/** 最近预警时间 */
public static final String RECENTLY_TIME = "recentlyTime";
/**
* 超采预警类型
*/
public static final String SAND_MINING_AREA_BILL_TYPE = "采区超采预警";
/**
* 超采预警指标
*/
public static final String SAND_MINING_AREA_WARN_TARGET = "采区超采预警";
/**
* 许可证船只进入告警区类型
*/
public static final String SAND_SHIP_WARN_BILL_TYPE = "采区船只预警";
}
......@@ -142,7 +142,7 @@ public class WarnSettingDao {
if (resultList.isEmpty()) return null;
KObject singleResult = resultList.get(0);
Date stratTime = singleResult.getDate("startTime");
Date startTime = singleResult.getDate("startTime");
Date endTime = singleResult.getDate("endTime");
Date recentlyTime = singleResult.getDate("recentlyTime");
String max = singleResult.getString("max");
......@@ -155,7 +155,7 @@ public class WarnSettingDao {
Long version = singleResult.getLong("version");
WarnExeRecord warnExeRecord = new WarnExeRecord();
warnExeRecord.setStratTime(stratTime);
warnExeRecord.setStartTime(startTime);
warnExeRecord.setEndTime(endTime);
warnExeRecord.setRecentlyTime(recentlyTime);
warnExeRecord.setWarnSettingId(warnSettingId);
......
......@@ -44,13 +44,6 @@ public interface IWarningSettingService {
public void updateWarnExe(WarnExeRecord warnExeRecord);
/**
* 结束一条预警设置的预警执行记录
* @param warnSettingId
*/
void endWarnStateBySettingId(UUID warnSettingId);
/**
* 查询未结束的预警执行记录
* @param warnSettingId
......
package com.xyst.dinas.biz.warn.service;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.UUID;
......@@ -45,12 +44,13 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
* @param warnExeRecord
* @return
*/
public UUID insertWarnExe(WarnExeRecord warnExeRecord) {
@Override
public UUID insertWarnExe(WarnExeRecord warnExeRecord) {
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNINGEXE, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnExeRecord);
KObject object = JSONObjectUtils.toObject(json, type);
object.set("startTime", warnExeRecord.getStratTime());
object.set("startTime", warnExeRecord.getStartTime());
object.set("recentlyTime", warnExeRecord.getRecentlyTime());
UUID warnSettingId = warnExeRecord.getWarnSettingId();
KObject warnSettingObj = warnSettingDao.queryWarnSettingById(warnSettingId);
......@@ -93,7 +93,7 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNINGEXE, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnExeRecord);
KObject object = JSONObjectUtils.toObject(json, type);
object.set("startTime", warnExeRecord.getStratTime());
object.set("startTime", warnExeRecord.getStartTime());
object.set("endTime", warnExeRecord.getEndTime());
object.set("recentlyTime", warnExeRecord.getRecentlyTime());
UUID warnSettingId = warnExeRecord.getWarnSettingId();
......@@ -124,6 +124,8 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
}
String min = warnSetting.getMin();
warSettingIdObj.set("min", min);
String max = warnSetting.getMax();
warSettingIdObj.set("max", max);
warnSettingDao.update(warSettingIdObj);
}
......
......@@ -17,7 +17,7 @@ import java.util.List;
import java.util.UUID;
@RestController()
@RequestMapping(value="/dinasBiz/dinasType")
@RequestMapping(value={"/dinasBiz/dinasType","warehouse/api/dinasBiz/dinasType"})
public class DinasTypeController {
......@@ -100,7 +100,7 @@ public class DinasTypeController {
/**
* 获取全部区域分公司下的砂石种类
* @param id
* @param regionalCompanyId
* @return
*/
@GetMapping("getByRegionalCompany/{regionalCompanyId}")
......
......@@ -18,6 +18,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.imageio.event.IIOWriteWarningListener;
import java.util.UUID;
/**
......@@ -114,17 +115,14 @@ public class SandMiningAreaController {
public ResponseObj updateWarnSettingPerson(@RequestBody UpdateWarnSetting updateWarnSetting) {
UUID settingId = updateWarnSetting.getId();
BaseBusinessWarn contractBusinessWarn = new BaseBusinessWarn(settingId);
WarnSetting warnSetting = contractBusinessWarn.getWarnSetting();
String minOld = warnSetting.getMin()!=null?warnSetting.getMin():"";
String min = updateWarnSetting.getMin()!=null?updateWarnSetting.getMin():"";
String maxOld = warnSetting.getMax()!=null?warnSetting.getMin():"";
String max = updateWarnSetting.getMax()!=null?updateWarnSetting.getMin():"";
warningSettingService.updateWarnSetting(updateWarnSetting);
if (minOld.equals(min)) {
return ResponseObj.success("预警设置更新成功");
}
return ResponseObj.success("预警设置更新成功");
}
//更新预警设置
@GetMapping("/warnRecode/ignore")//采区预警设置更新
public ResponseObj ignoreWarnExe(UUID id) {
warningSettingService.queryWarnExeRecord(id);
return ResponseObj.success("预警设置更新成功");
}
......
......@@ -5,6 +5,7 @@ import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.TypeConstants;
import com.xyst.dinas.production.constant.SandMiningConstant;
import com.xyst.dinas.production.internal.SandShipWarnSettingProcessor;
import com.xyst.dinas.production.internal.SandWarningExeProcessor;
import com.xyst.dinas.production.internal.dao.SandMiningDaoImpl;
import com.xyst.dinas.production.internal.service.SandMiningServiceImpl;
import com.xyst.dinas.production.service.SandMiningService;
......@@ -62,4 +63,9 @@ public class SandMiningConfiguration {
return new SandShipWarnSettingProcessor();
}
@Bean("com.xyst.dinas.production.internal.SandWarningExeProcessor")
public SandWarningExeProcessor sandWarningExeProcessor() {
return new SandWarningExeProcessor();
}
}
......@@ -6,5 +6,9 @@ public interface SandMiningConstant {
* 实体名
*/
String ENTITY = "com.xyst.dinas.production.datamodel.SandMining";
/**
* 实体名
*/
String STATION_DETAIL_ENTITY = "com.xyst.dinas.production.datamodel.SandMining$SandMiningStationDetail";
}
......@@ -32,4 +32,6 @@ public interface DischargingDao extends BaseDao {
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);
Double getAllDischargingWeightByYearAndSandAreaId(Date dischargingTime, UUID billId);
}
......@@ -35,6 +35,9 @@ public class SandShipWarnSettingProcessor implements DataProcessor {
row.put("sandMiningStart", sandMining.isNull("sandMiningStart") ? "" : sandMining.getDate("sandMiningStart"));
row.put("sandMiningEnd", sandMining.isNull("sandMiningEnd") ? "" : sandMining.getDate("sandMiningEnd"));
row.put("permitCode", sandMining.isNull("permitCode") ? "" : sandMining.getString("permitCode"));
String shipName=sandMining.get("ship").getString("shipName");
row.put("shipName", shipName);
String personnel = row.get("personnel") != null ? row.get("personnel").toString() : "";
StringBuilder personnelName = new StringBuilder();
if (StringUtils.isNotEmpty(personnel)) {
......
package com.xyst.dinas.production.internal;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.query.entity.RowData;
import com.beecode.inz.query.processor.DataProcessor;
import com.beecode.inz.query.processor.DataProcessorContext;
import com.xyst.dinas.biz.service.SandMiningAreaService;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.biz.warn.service.WarningSettingServiceImpl;
import com.xyst.dinas.production.service.SandMiningService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
/**
* @author scol
*/
public class SandWarningExeProcessor implements DataProcessor {
@Autowired
private SandMiningService sandMiningService;
@Autowired
private SandMiningAreaService sandMiningAreaService;
@Autowired
private StaffService staffService;
@Autowired
private IWarningSettingService warningSettingService;
@Override
public void process(DataProcessorContext context) {
List<RowData> rowDatas = context.getRowDatas();
String sandAreaName="";
String shipName="";
for (RowData row : rowDatas) {
//采区名称 人员
UUID billId = UUID.fromString(row.get("billId").toString());
String warnSettingId = row.get("warnSetting.id").toString();
WarnSetting warnSetting = warningSettingService.getWarnSetting(UUID.fromString(warnSettingId));
String billType = warnSetting.getBillType();
if(WarnSettingConstant.SAND_MINING_AREA_BILL_TYPE.equals(billType)){
KObject byId = sandMiningAreaService.getById(billId);
sandAreaName = byId.getString("sandMiningAreaName");
shipName="-";
row.put("detail", warnSetting.getMax());
}else if(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE.equals(billType)){
KObject sandMining = sandMiningService.getById(billId);
sandAreaName= sandMining.get("sandMiningArea").getString("sandMiningAreaName");
shipName=sandMining.get("ship").getString("shipName");
row.put("detail", row.get("target").toString());
}
row.put("sandAreaName", sandAreaName);
row.put("shipName", shipName);
String personnel = row.get("personnel") != null ? row.get("personnel").toString() : "";
StringBuilder personnelName = new StringBuilder();
if (StringUtils.isNotEmpty(personnel)) {
List<String> personnelList = Arrays.asList(personnel.split(","));
for (int i = 0; i < personnelList.size(); i++) {
String personnelId = personnelList.get(i);
KObject personnelKObject = staffService.getById(UUID.fromString(personnelId));
if (i == personnelList.size() - 1) {
personnelName.append(personnelKObject.getString("name"));
} else {
personnelName.append(personnelKObject.getString("name")).append(",");
}
}
}
row.put("personnelName", personnelName.toString());
}
}
}
......@@ -66,6 +66,21 @@ public class DischargingDaoImpl extends AbstractBaseDao implements DischargingDa
return sandMiningAreaCount.get(0);
}
@Override
public Double getAllDischargingWeightByYearAndSandAreaId(Date dischargingTime, UUID billId) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dischargingTime);
int i = calendar.get(Calendar.YEAR);
DetachedCriteria detachedCriteria = getDetachedCriteria(0, null, DateTimeUtils.getYearStart(i), DateTimeUtils.getYearEnd(i), null, null, billId, null, null);
detachedCriteria.setProjection(Projections.projectionList().add(Projections.alias(Projections.sum("dischargingWeight"), "sumDischargingWeight")));
detachedCriteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<HashMap<String, Object>> byCriteria = (List<HashMap<String, Object>>)template.findByCriteria(detachedCriteria);
HashMap<String, Object> stringObjectHashMap = byCriteria.get(0);
Object dischargingWeight = stringObjectHashMap.get("dischargingWeight");
return Double.valueOf(dischargingWeight.toString());
}
/**
* @param type
......@@ -114,11 +129,10 @@ public class DischargingDaoImpl extends AbstractBaseDao implements DischargingDa
} else {
criteria.add(Restrictions.isNull("parentId"));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
criteria.add(Restrictions.eq("regionalCompany.id", currentLoginRegionalCompany.getUuid("id")));
for (Criterion criterion : criteria) {
dis.add(criterion);
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.and(dis));
return detachedCriteria;
}
......@@ -157,10 +171,7 @@ public class DischargingDaoImpl extends AbstractBaseDao implements DischargingDa
public List<KObject> getParentByDateAndStationAndSandMiningArea(UUID stationId, UUID sandMiningAreaId, Date dischargingTime, UUID sandMiningShip, UUID transportShip) {
KClass bean = Amino.getStaticMetadataContext().getBean(DischargingConstant.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")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false))
.add(Restrictions.eq("sandMiningArea.id", sandMiningAreaId))
.add(Restrictions.eq("station.id", stationId))
......
......@@ -56,10 +56,8 @@ public class ProductionPlanReportDaoImpl extends AbstractBaseDao implements Prod
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")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.addOrder(Order.desc(BaseConstants.CREATE_TIME));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -73,10 +71,8 @@ public class ProductionPlanReportDaoImpl extends AbstractBaseDao implements Prod
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")));
};
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq(BaseConstants.DEL, false));
if(id!=null){
detachedCriteria.add(Restrictions.ne("id", id));
......
......@@ -7,6 +7,9 @@ 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.SandMiningAreaConstant;
import com.xyst.dinas.biz.constant.ShipInfoConstant;
import com.xyst.dinas.biz.constant.StationConstant;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.production.constant.SandMiningConstant;
import com.xyst.dinas.production.dao.SandMiningDao;
......@@ -45,10 +48,8 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
if(null!=sandMiningStatus){
detachedCriteria.add(Restrictions.eq("status", sandMiningStatus));
}
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.addOrder(Order.desc("createTime"));
int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size());
......@@ -62,10 +63,8 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
public List<KObject> getByCodeNum(String permitCode, UUID id) {
KClass bean = Amino.getStaticMetadataContext().getBean(SandMiningConstant.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")));
};
dinasTypeDao.addRegionalCompanyFilter(detachedCriteria);
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("permitCode", permitCode));
if(id!=null){
......@@ -77,20 +76,30 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
@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.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.MODIFY_TIME,new Date());
kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",false);
template.merge(kobject);
kobject.setNull("stationDetails");
kobject.set("ship", template.load(ShipInfoConstant.ENTITY,kobject.get("ship").getUuid("id")));
kobject.set("sandMiningArea", template.load(SandMiningAreaConstant.ENTITY,kobject.get("sandMiningArea").getUuid("id")));
template.update(kobject);
KObject id = load(kobject.getUuid("id"));
template.deleteAll(id.get("stationDetails").toCollection());
KObject[] stationDetails = kobject.get("stationDetails").toArray();
for (KObject stationDetail : stationDetails) {
stationDetail.set("master",kobject);
stationDetail.set("station",template.load(StationConstant.ENTITY,stationDetail.get("station").getUuid("id")));
template.save(STATION_DETAIL_ENTITY,stationDetail);
}
}
@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");
......@@ -110,15 +119,27 @@ public class SandMiningDaoImpl extends AbstractBaseDao implements SandMiningDao,
@Override
public UUID create(KObject kObject) {
KObject staff = AminoContextHolder.getContext().getStaff();
UUID uuid = UUID.randomUUID();
if(null==kObject.getUuid("id")){
kObject.set("id",UUID.randomUUID());
kObject.set("id",uuid);
}
kObject.set("ship", template.load(ShipInfoConstant.ENTITY,kObject.get("ship").getUuid("id")));
kObject.set("sandMiningArea", template.load(SandMiningAreaConstant.ENTITY,kObject.get("sandMiningArea").getUuid("id")));
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));
UUID save = (UUID) template.save(kObject);
KObject[] stationDetails = kObject.get("stationDetails").toArray();
for (KObject stationDetail : stationDetails) {
stationDetail.set("master",kObject);
stationDetail.set("station",template.load(StationConstant.ENTITY,stationDetail.get("station").getUuid("id")));
template.save(STATION_DETAIL_ENTITY,stationDetail);
}
return save;
}
@Override
......
......@@ -5,6 +5,9 @@ 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.biz.warn.BaseBusinessWarn;
import com.xyst.dinas.biz.warn.SandAreaDinasCountWarningCalculate;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.production.dao.DischargingDao;
import com.xyst.dinas.production.enumeration.DischargingTypeEnum;
import com.xyst.dinas.production.service.DischargingService;
......@@ -25,6 +28,8 @@ public class DischargingServiceImpl implements DischargingService {
@Autowired
private StationDao stationDao;
@Autowired
private IWarningSettingService warningSettingService;
@Autowired
private ShipInfoDao shipInfoDao;
@Override
......@@ -56,11 +61,11 @@ public class DischargingServiceImpl implements DischargingService {
UUID stationId = kObject.get("station").getUuid("id");
UUID sandMiningAreaId = kObject.get("sandMiningArea").getUuid("id");
UUID sandMiningShip = kObject.get("sandMiningShip").getUuid("id");
KObject sandMiningArea = stationDao.load(SandMiningAreaConstant.ENTITY, sandMiningAreaId);
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));
kObject.set("sandMiningArea",sandMiningArea);
if(DischargingTypeEnum.NORMAL_DATA.getValue() ==type){
//新增逻辑,如果本月有修正数据,将parentId赋值
UUID transportShip = kObject.get("transportShip").getUuid("id");
......@@ -74,19 +79,26 @@ public class DischargingServiceImpl implements DischargingService {
kObject.set("parentId",parent.getUuid("id"));
}
}else if(DischargingTypeEnum.REVISE_DATA.getValue()==type){
updateToDeleteParentId(kObject.getUuid("id"));
//如果是修正记录,则将本采区本场站本采砂船下本月所有数据的parentId改为自己的
updateSetParentId(kObject);
dischargingDao.updateSetParentId(kObject);
}
UUID uuid = dischargingDao.create(kObject);
//生成预警消息的逻辑
setWarningRecord("采区超采预警",sandMiningAreaId,"开采量",dischargingTime,sandMiningArea);
return uuid;
}
return dischargingDao.create(kObject);
public void setWarningRecord(String billType, UUID billId, String target,Date dischargingTime,KObject sandMiningArea) {
//查询某个采区下某的开采量
Double allDischargingWeightByYearAndSandAreaId = dischargingDao.getAllDischargingWeightByYearAndSandAreaId(dischargingTime, billId);
SandAreaDinasCountWarningCalculate sandAreaDinasCountWarningCalculate = new SandAreaDinasCountWarningCalculate(allDischargingWeightByYearAndSandAreaId, sandMiningArea.getString("sandMiningAreaName"));
BaseBusinessWarn businessWarn = new BaseBusinessWarn(billType, billId, target);
businessWarn.setWarningCalculate(sandAreaDinasCountWarningCalculate);
businessWarn.warn();
}
private void updateSetParentId(KObject kObject) {
dischargingDao.updateSetParentId(kObject);
}
@Override
public KObject getById(UUID id) {
......@@ -128,8 +140,7 @@ public class DischargingServiceImpl implements DischargingService {
}
}else if(DischargingTypeEnum.REVISE_DATA.getValue()==type){
//如果是修正记录,则将本采区本场站本采砂船下本月所有数据的parentId改为自己的
updateSetParentId(kObject);
}
dischargingDao.updateSetParentId(kObject); }
dischargingDao.modify(kObject);
}
......
......@@ -2,9 +2,8 @@ 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.warn.WarnSetting;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.WarnTargetTypeEnum;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.production.dao.SandMiningDao;
import com.xyst.dinas.production.service.SandMiningService;
......@@ -35,11 +34,10 @@ public class SandMiningServiceImpl implements SandMiningService {
@Override
public UUID addSandMining(KObject kObject) {
UUID uuid = sandMiningDao.create(kObject);
//新增采砂船非工作时间预警和采砂船非自己采区预警
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType("进入告警区");
warnSetting.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting.setBillId(uuid);
warnSetting.setTarget("进入告警区");
warnSetting.setOpen(false);
......@@ -47,7 +45,7 @@ public class SandMiningServiceImpl implements SandMiningService {
warningSettingService.insertWarnSetting(warnSetting);
WarnSettingEntity warnSetting1 = new WarnSettingEntity();
warnSetting1.setBillType("非法采砂报警");
warnSetting1.setBillType(WarnSettingConstant.SAND_SHIP_WARN_BILL_TYPE);
warnSetting1.setBillId(uuid);
warnSetting1.setTarget("非作业时间采砂");
warnSetting1.setOpen(false);
......
......@@ -12,6 +12,7 @@ public interface DischargingService {
UUID addDischarging(KObject kObject);
KObject getById(UUID id);
KObject getByCodeNum(String name, UUID id);
......
......@@ -21,13 +21,11 @@ public class SandMiningExpiredSchedule implements ServiceInitializer {
private String SAND_MINING_EXPIRED_TASK = "SandMiningExpiredTask";
@Override
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小时执行一次
......@@ -36,4 +34,9 @@ public class SandMiningExpiredSchedule implements ServiceInitializer {
}
@PostConstruct
public void init(){
init(null);
}
}
......@@ -69,10 +69,6 @@ public class DischargingController {
return ResponseObj.success("查询成功", dischargingService.groupInfo(transportShipId,type,startDate,endDate,sandMiningAreaType,stationIds,sandMiningAreaId,sandMiningShipId,parentId));
}
/**
* 新建接驳记录
* @param body
......
......@@ -33,13 +33,13 @@ public class SandMiningController {
public ResponseObj getListPage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "sandMiningStatus", required = false) Integer SandMiningStatus
@RequestParam(name = "sandMiningStatus", required = false) Integer sandMiningStatus
) throws Exception {
Page<KObject> objectPage = new Page<>();
objectPage.setPageNo(pageNo);
objectPage.setPageSize(pageSize);
return ResponseObj.success("查询成功",sandMiningService.queryByPaging(objectPage,SandMiningStatus));
return ResponseObj.success("查询成功",sandMiningService.queryByPaging(objectPage,sandMiningStatus));
}
......
......@@ -14,6 +14,7 @@
<dependency>com.xyst.dinas.biz.datamodel.Organization</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Station</dependency>
<dependency>com.xyst.dinas.biz.datamodel.ShipInfo</dependency>
<dependency>com.xyst.dinas.biz.datamodel.SandMiningArea</dependency>
<dependency>com.xyst.dinas.production.datamodel.SandMining$SandMiningStationDetail</dependency>
<content>
......@@ -175,9 +176,9 @@
</m:annotation>
</m:annotations>
<m:id>c70c0247-a436-4dba-9bf0-b2bfa8898f78</m:id>
<m:name>shipName</m:name>
<m:title>名、船号</m:title>
<m:type>string</m:type>
<m:name>ship</m:name>
<m:title></m:title>
<m:type>com.xyst.dinas.biz.datamodel.ShipInfo</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
......@@ -192,8 +193,8 @@
<m:name>sandMiningPower</m:name>
<m:title>采砂功率</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
<m:description/>
<m:default/>
</m:attribute>
<m:attribute>
<m:annotations/>
......
......@@ -8,6 +8,7 @@
<define>inz.query.Query</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.production.datamodel.SandMining</dependency>
<dependency>com.xyst.dinas.biz.datamodel.ShipInfo</dependency>
<content>
<m:query>
<m:type>com.xyst.dinas.production.datamodel.SandMining</m:type>
......@@ -28,13 +29,6 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>dd0461b4-80bb-445a-a4ce-a4675022fa35</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......@@ -235,9 +229,29 @@
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>shipName</m:name>
<m:title>船名、船号</m:title>
<m:type>string</m:type>
<m:name>ship.id</m:name>
<m:title></m:title>
<m:type>com.xyst.dinas.biz.datamodel.ShipInfo</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>ship.shipName</m:name>
<m:title>船名</m:title>
<m:type>com.xyst.dinas.biz.datamodel.ShipInfo</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>ship.shipCodeNum</m:name>
<m:title>船号</m:title>
<m:type>com.xyst.dinas.biz.datamodel.ShipInfo</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
......
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/inz-query">
<specification>1.0</specification>
<id>b91e1d0e-3051-4a09-86d0-547dbad8ce55</id>
<name>com.xyst.dinas.production.query.SandWarningExe</name>
<title>采砂预警记录</title>
<define>inz.query.Query</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.WarningExe</dependency>
<content>
<m:query>
<m:type>com.xyst.dinas.biz.datamodel.WarningExe</m:type>
<m:dataProcessor>com.xyst.dinas.production.internal.SandWarningExeProcessor</m:dataProcessor>
<m:authorityItem></m:authorityItem>
<m:innerScenes>
<m:innerScene>
<m:id>89c30181-a288-445e-ab54-e1acc7a3e03c</m:id>
<m:title>全部</m:title>
<m:javaImplement>com.beecode.inz.common.scene.CommonAllScene</m:javaImplement>
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>60818f0a-0227-49b6-bbe6-0cff19a6ba02</m:id>
<m:title>已废弃</m:title>
<m:javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</m:javaImplement>
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
<m:name>id</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:field>
<m:name>warnSetting.id</m:name>
<m:title>预警设置</m:title>
<m:type>com.xyst.dinas.biz.datamodel.WarnSetting</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>startTime</m:name>
<m:title>开始时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>endTime</m:name>
<m:title>结束时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>billId</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:field>
<m:name>target</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>memo</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>min</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>warnState</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>createTime</m:name>
<m:title>创建时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>creator.name</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>modifyTime</m:name>
<m:title>修改时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>modifier.name</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:fields>
</m:query>
</content>
</metadata>
......@@ -115,11 +115,11 @@
<comment>采砂范围</comment>
</column>
</property>
<property name="shipName" type="nstring" not-null="false">
<column name="ship_name" length="50" >
<comment>名、船号</comment>
<many-to-one name="ship" entity-name="com.xyst.dinas.biz.datamodel.ShipInfo" fetch="select">
<column name="ship_info_id" not-null="false">
<comment></comment>
</column>
</property>
</many-to-one>
<property name="shipOwner" type="nstring" not-null="false">
<column name="ship_owner" length="500" >
<comment>船只所有人 逗号分隔</comment>
......
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