Commit 3be6cca3 by 王衍超

Merge branch 'develop' of gitlab.beecode.cn:kunlun/xyst_dinas/xyst_dinas_backend into develop

parents 7ece110d 539f3fa1
package com.xyst.dinas.biz.config;
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.RetailInfoConstant;
import com.xyst.dinas.biz.dao.RetailInfoDao;
import com.xyst.dinas.biz.internal.dao.RetailInfoDaoImpl;
import com.xyst.dinas.biz.internal.service.RetailInfoServiceImpl;
import com.xyst.dinas.biz.service.RetailInfoService;
import com.xyst.dinas.biz.web.RetailInfoController;
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;
public class RetailInfoConfiguration {
@Autowired
@Qualifier(TypeConstants.CLASS_MECH)
private MetadataMech<KClass> typeMech;
//RetailInfoDaoImpl相关bean配置
@Bean
public RetailInfoDao retailInfoDao() {
return new RetailInfoDaoImpl();
}
@Bean
public RetailInfoService retailInfoService(){
return new RetailInfoServiceImpl();
}
@Bean
public RetailInfoController retailInfoController(){
return new RetailInfoController();
}
@Bean(RetailInfoConstant.ENTITY)
public KClass retailInfoInfoEntity() {
return typeMech.createStaticBeanByResource(
new ClassPathResource("/com/xyst/dinas/biz/datamodel/RetailInfo.jmx", KClass.class));
}
}
...@@ -6,6 +6,7 @@ import com.beecode.bcp.type.TypeConstants; ...@@ -6,6 +6,7 @@ import com.beecode.bcp.type.TypeConstants;
import com.xyst.dinas.biz.constant.StationConstant; import com.xyst.dinas.biz.constant.StationConstant;
import com.xyst.dinas.biz.dao.PositionDao; import com.xyst.dinas.biz.dao.PositionDao;
import com.xyst.dinas.biz.dao.StationDao; import com.xyst.dinas.biz.dao.StationDao;
import com.xyst.dinas.biz.internal.SandMiningWarnSettingProcessor;
import com.xyst.dinas.biz.internal.StationInfoQueryProcessor; import com.xyst.dinas.biz.internal.StationInfoQueryProcessor;
import com.xyst.dinas.biz.internal.dao.PositionDaoImpl; import com.xyst.dinas.biz.internal.dao.PositionDaoImpl;
import com.xyst.dinas.biz.internal.dao.StationDaoImpl; import com.xyst.dinas.biz.internal.dao.StationDaoImpl;
...@@ -41,6 +42,10 @@ public class StationConfiguration { ...@@ -41,6 +42,10 @@ public class StationConfiguration {
public StationInfoQueryProcessor createStationInfoQueryProcessor() { public StationInfoQueryProcessor createStationInfoQueryProcessor() {
return new StationInfoQueryProcessor(); return new StationInfoQueryProcessor();
} }
@Bean("com.xyst.dinas.biz.internal.SandMiningWarnSettingProcessor")
public SandMiningWarnSettingProcessor createSandMiningWarnSettingProcessor() {
return new SandMiningWarnSettingProcessor();
}
@Autowired @Autowired
......
package com.xyst.dinas.biz.constant;
public interface RetailInfoConstant {
/**
* 实体名
*/
String ENTITY = "com.xyst.dinas.biz.datamodel.RetailInfo";
}
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 RetailInfoDao extends BaseDao {
KObject load(UUID id);
Page<KObject> listRetailInfoInfoPaging(Page<KObject> page, Integer retailInfoStatus);
UUID create(KObject kObject);
int selectCountByName(String retailInfoName);
void deleteById(UUID id);
List<KObject> listRetailInfoInfoByRegionalCompany(UUID regionalCompanyId);
List<KObject> getByName(String name, UUID id);
void modify(KObject kobject);
}
package com.xyst.dinas.biz.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 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 SandMiningWarnSettingProcessor implements DataProcessor {
@Autowired
SandMiningAreaService sandMiningAreaService;
@Autowired
StaffService staffService;
@Override
public void process(DataProcessorContext context) {
List<RowData> rowDatas = context.getRowDatas();
for (RowData row : rowDatas) {
//采区名称 人员
UUID contractId = UUID.fromString(row.get("billId").toString());
KObject sandMiningArea = sandMiningAreaService.getById(contractId);
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();
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());
}
}
}
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.RetailInfoConstant;
import com.xyst.dinas.biz.dao.DinasTypeDao;
import com.xyst.dinas.biz.dao.RetailInfoDao;
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 RetailInfoDaoImpl extends AbstractBaseDao implements RetailInfoDao, RetailInfoConstant {
@Autowired
private HibernateTemplate template;
@Autowired
private DinasTypeDao dinasTypeDao;
@Override
public KObject load(UUID id) {
return (KObject) template.load(ENTITY, id);
}
@Override
public Page<KObject> listRetailInfoInfoPaging(Page<KObject> page, Integer retailInfoStatus) {
KClass bean = Amino.getStaticMetadataContext().getBean(RetailInfoConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
// detachedCriteria.add(Restrictions.eq("department.id", departmentId));
detachedCriteria.add(Restrictions.eq("del", false));
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")));
}
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> listRetailInfoInfoByRegionalCompany(UUID regionalCompanyId) {
KClass bean = Amino.getStaticMetadataContext().getBean(RetailInfoConstant.ENTITY, KClass.class);
DetachedCriteria detachedCriteria = DetachedCriteria.forEntityName(bean.getName());
// detachedCriteria.add(Restrictions.eq("department.id", departmentId));
detachedCriteria.add(Restrictions.eq("del", false));
if(null==regionalCompanyId){
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){
regionalCompanyId=currentLoginRegionalCompany.getUuid("id");
}
}
if(null!=regionalCompanyId){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",regionalCompanyId));
}
detachedCriteria.addOrder(Order.desc("sortOrder"));
return (List<KObject>) template.findByCriteria(detachedCriteria);
}
@Override
public List<KObject> getByName(String name, UUID id) {
// UUID departmentId = AminoContextHolder.getContext().getStaff().get("department").getUuid("id");
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")));
}
detachedCriteria.add(Restrictions.eq("del", false));
detachedCriteria.add(Restrictions.eq("retailInfoName", 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("retailInfo",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("retailInfo",kObject);
template.save(ProductionLineConstant.ENTITY,object);
}
}
return save;
}
@Override
public int selectCountByName(String retailInfoName) {
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 RetailInfoConstant.ENTITY;
}
}
...@@ -85,20 +85,8 @@ public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMining ...@@ -85,20 +85,8 @@ public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMining
kobject.set("modifyTime",new Date()); kobject.set("modifyTime",new Date());
kobject.set(BaseConstants.MODIFIER,staff); kobject.set(BaseConstants.MODIFIER,staff);
kobject.set("del",false); 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); template.merge(kobject);
//生成采区预警设置信息
} }
...@@ -114,17 +102,6 @@ public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMining ...@@ -114,17 +102,6 @@ public class SandMiningAreaDaoImpl extends AbstractBaseDao implements SandMining
kObject.set(BaseConstants.CREATE_TIME, new Date()); kObject.set(BaseConstants.CREATE_TIME, new Date());
kObject.set("del",false); kObject.set("del",false);
UUID save = (UUID) template.save(kObject); 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; return save;
} }
......
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.RetailInfoDao;
import com.xyst.dinas.biz.service.RetailInfoService;
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 RetailInfoServiceImpl implements RetailInfoService {
@Autowired
private RetailInfoDao retailInfoDao;
@Override
public Page<KObject> queryByPaging(Page<KObject> page, Integer retailInfoStatus) throws Exception {
if(page.getPageNo()==0||page.getPageSize()==0) {
throw new Exception("pageSize or offset is null");
}
return retailInfoDao.listRetailInfoInfoPaging(page,retailInfoStatus);
}
@Override
public List<KObject> listRetailInfoInfoByRegionalCompany(UUID regionalCompanyId) throws Exception {
return retailInfoDao.listRetailInfoInfoByRegionalCompany(regionalCompanyId);
}
@Override
public UUID addRetailInfo(KObject kObject) {
return retailInfoDao.create(kObject);
}
@Override
public KObject getById(UUID id) {
return retailInfoDao.load(id);
}
@Override
public int selectCountByName(String retailInfoName) {
return retailInfoDao.selectCountByName(retailInfoName);
}
@Override
public KObject getByName(String name, UUID id) {
List<KObject> kObjects = retailInfoDao.getByName(name,id);
if(CollectionUtils.isEmpty(kObjects)){
return null;
}
return kObjects.get(0);
}
@Override
public void update(KObject kobject) {
retailInfoDao.modify(kobject);
}
@Override
public void deleteById(UUID id) {
retailInfoDao.deleteById(id);
}
}
...@@ -4,18 +4,29 @@ import com.beecode.bap.attachment.common.Page; ...@@ -4,18 +4,29 @@ import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.dao.SandMiningAreaDao; import com.xyst.dinas.biz.dao.SandMiningAreaDao;
import com.xyst.dinas.biz.service.SandMiningAreaService; import com.xyst.dinas.biz.service.SandMiningAreaService;
import com.xyst.dinas.biz.warn.WarnSetting;
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.biz.warn.service.WarningSettingServiceImpl;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
/**
* @author scol
*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class SandMiningAreaServiceImpl implements SandMiningAreaService { public class SandMiningAreaServiceImpl implements SandMiningAreaService {
@Autowired @Autowired
private SandMiningAreaDao sandMiningAreaDao; private SandMiningAreaDao sandMiningAreaDao;
@Autowired
private IWarningSettingService warningSettingService;
@Override @Override
public Page<KObject> queryByPaging(Page<KObject> page, Integer sandMiningAreaStatus) throws Exception { public Page<KObject> queryByPaging(Page<KObject> page, Integer sandMiningAreaStatus) throws Exception {
...@@ -27,7 +38,16 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService { ...@@ -27,7 +38,16 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService {
@Override @Override
public UUID addSandMiningArea(KObject kObject) { public UUID addSandMiningArea(KObject kObject) {
return sandMiningAreaDao.create(kObject); UUID uuid = sandMiningAreaDao.create(kObject);
return uuid;
}
private String getAreaWarningInfo(KObject kObject) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("regionalCompanyId", kObject.get("regionalCompany").getUuid("id").toString());
return jsonObject.toString();
} }
@Override @Override
...@@ -51,8 +71,18 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService { ...@@ -51,8 +71,18 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService {
@Override @Override
public void update(KObject kobject) { public void update(KObject kobject) {
sandMiningAreaDao.modify(kobject); sandMiningAreaDao.modify(kobject);
if(2==kobject.getInt("status")){
//新建采区后同步新建一条预警设置
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType("采区超采预警");
warnSetting.setBillId(kobject.getUuid("id"));
warnSetting.setTarget("开采量");
warnSetting.setTargetType(WarnTargetTypeEnum.NUMBER_TYPE.getCode());
warnSetting.setOpen(false);
warnSetting.setMemo(getAreaWarningInfo(kobject));
warningSettingService.insertWarnSetting(warnSetting);
}
} }
@Override @Override
......
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 RetailInfoService {
Page<KObject> queryByPaging(Page<KObject> page, Integer retailInfoStatus) throws Exception;
List<KObject> listRetailInfoInfoByRegionalCompany(UUID regionalCompanyId) throws Exception;
UUID addRetailInfo(KObject kObject);
KObject getById(UUID id);
int selectCountByName(String retailInfoName);
KObject getByName(String name, UUID id);
void update(KObject kobject);
void deleteById(UUID id);
}
...@@ -30,12 +30,12 @@ public class WarningSettingServiceImpl implements IWarningSettingService{ ...@@ -30,12 +30,12 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
/** /**
* 新增预警设置 * 新增预警设置
*/ */
@Override
public UUID insertWarnSetting(WarnSetting warnSetting) { public UUID insertWarnSetting(WarnSetting warnSetting) {
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNSETTING, KClass.class); KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNSETTING, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnSetting); JsonNode json = JSONObjectUtils.toJson(warnSetting);
KObject object = JSONObjectUtils.toObject(json, type); KObject object = JSONObjectUtils.toObject(json, type);
object.set(BaseConstants.CREATE_TIME, LocalDateTime.now()); object.set(BaseConstants.CREATE_TIME, LocalDateTime.now());
return warnSettingDao.create(object); return warnSettingDao.create(object);
} }
......
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.RetailInfoConstant;
import com.xyst.dinas.biz.service.RetailInfoService;
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="/warehouse/api/dinasBiz/retailInfo")
public class RetailInfoController {
private static final Logger logger = LoggerFactory.getLogger(RetailInfoController.class);
@Autowired
private RetailInfoService retailInfoService;
@RequestMapping(value = "list/page", method = RequestMethod.GET)
public ResponseObj getListPage(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "retailInfoStatus", required = false) Integer retailInfoStatus
) throws Exception {
Page<KObject> objectPage = new Page<>();
objectPage.setPageNo(pageNo);
objectPage.setPageSize(pageSize);
return ResponseObj.success("查询成功", retailInfoService.queryByPaging(objectPage,retailInfoStatus));
}
/**
* 新建散户
* @param body
* @return ResponseObj
*/
@PostMapping
public ResponseObj create(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(RetailInfoConstant.ENTITY, KClass.class));
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
UUID id = retailInfoService.addRetailInfo(kobject);
return ResponseObj.success("保存成功", id);
}
/**
* 修改散户
* @param body 散户json
* @return
*/
@PutMapping
public ResponseObj update(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(RetailInfoConstant.ENTITY, KClass.class));
if(kobject.getUuid("id") == null){
return ResponseObj.error(400,"'id' must be not null!");
}
retailInfoService.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 RetailInfo = retailInfoService.getById(id);
return ResponseObj.success("获取成功",RetailInfo);
}
/**
* 根据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!");
}
retailInfoService.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 = retailInfoService.getByName(name,id);
if(kObject != null){
return ResponseObj.error("散户名称已存在!");
}
return ResponseObj.success();
}
}
\ No newline at end of file
...@@ -8,7 +8,11 @@ import com.beecode.bcp.type.json.JSONObjectUtils; ...@@ -8,7 +8,11 @@ import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj; import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.nlib.utils.StringUtils; import com.beecode.nlib.utils.StringUtils;
import com.xyst.dinas.biz.constant.SandMiningAreaConstant; import com.xyst.dinas.biz.constant.SandMiningAreaConstant;
import com.xyst.dinas.biz.request.UpdateWarnSetting;
import com.xyst.dinas.biz.service.SandMiningAreaService; import com.xyst.dinas.biz.service.SandMiningAreaService;
import com.xyst.dinas.biz.warn.BaseBusinessWarn;
import com.xyst.dinas.biz.warn.WarnSetting;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -28,6 +32,8 @@ public class SandMiningAreaController { ...@@ -28,6 +32,8 @@ public class SandMiningAreaController {
@Autowired @Autowired
private SandMiningAreaService sandMiningAreaService; private SandMiningAreaService sandMiningAreaService;
@Autowired
private IWarningSettingService warningSettingService;
@RequestMapping(value = "list/page", method = RequestMethod.GET) @RequestMapping(value = "list/page", method = RequestMethod.GET)
public ResponseObj getListPage( public ResponseObj getListPage(
...@@ -81,6 +87,47 @@ public class SandMiningAreaController { ...@@ -81,6 +87,47 @@ public class SandMiningAreaController {
return ResponseObj.success("修改成功"); return ResponseObj.success("修改成功");
} }
/**
* 采区审批
* @param status 审核状态
* @param id id
* @return
*/
@PutMapping("approve")
public ResponseObj approve(@RequestParam("status") Integer status ,@RequestParam("id") UUID id){
if(id == null){
return ResponseObj.error(400,"'id' must be not null!");
}
if(status == null){
return ResponseObj.error(400,"'status' must be not null!");
}
KObject byId = sandMiningAreaService.getById(id);
byId.set("status",status);
sandMiningAreaService.update(byId);
return ResponseObj.success("审批成功");
}
//更新预警设置
@PostMapping("/warnSetting/update")//采区预警设置更新
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("预警设置更新成功");
}
/** /**
* 根据id获取采砂区 * 根据id获取采砂区
......
# Auto Configure # Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xyst.dinas.biz.config.StationConfiguration,\ com.xyst.dinas.biz.config.StationConfiguration,\
com.xyst.dinas.biz.config.RetailInfoConfiguration,\
com.xyst.dinas.biz.config.SandMiningAreaConfiguration,\ com.xyst.dinas.biz.config.SandMiningAreaConfiguration,\
com.xyst.dinas.biz.config.DinasTypeConfiguration,\ com.xyst.dinas.biz.config.DinasTypeConfiguration,\
com.xyst.dinas.biz.config.ProductionLineConfiguration,\ com.xyst.dinas.biz.config.ProductionLineConfiguration,\
......
...@@ -10,6 +10,9 @@ ...@@ -10,6 +10,9 @@
<dependency>bcp.type.constraint.StringLength</dependency> <dependency>bcp.type.constraint.StringLength</dependency>
<dependency>com.beecode.inz.common.datamodel.BaseInfo</dependency> <dependency>com.beecode.inz.common.datamodel.BaseInfo</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Organization</dependency> <dependency>com.xyst.dinas.biz.datamodel.Organization</dependency>
<dependency>com.beecode.inz.basis.datamodel.WarehouseUser</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Station</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.SubTableAnnotation</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency> <dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency>
<dependency>com.xyst.dinas.biz.datamodel.DinasType</dependency> <dependency>com.xyst.dinas.biz.datamodel.DinasType</dependency>
<content> <content>
...@@ -26,7 +29,7 @@ ...@@ -26,7 +29,7 @@
<m:title>散户姓名</m:title> <m:title>散户姓名</m:title>
<m:type>string</m:type> <m:type>string</m:type>
<m:description>场站名称</m:description> <m:description>场站名称</m:description>
<m:default></m:default> <m:default/>
</m:attribute> </m:attribute>
<m:attribute> <m:attribute>
<m:annotations/> <m:annotations/>
...@@ -35,7 +38,7 @@ ...@@ -35,7 +38,7 @@
<m:title>身份证号</m:title> <m:title>身份证号</m:title>
<m:type>string</m:type> <m:type>string</m:type>
<m:description>身份证号</m:description> <m:description>身份证号</m:description>
<m:default></m:default> <m:default/>
</m:attribute> </m:attribute>
<m:attribute> <m:attribute>
<m:annotations/> <m:annotations/>
...@@ -44,7 +47,16 @@ ...@@ -44,7 +47,16 @@
<m:title>居住地址</m:title> <m:title>居住地址</m:title>
<m:type>string</m:type> <m:type>string</m:type>
<m:description>居住地址</m:description> <m:description>居住地址</m:description>
<m:default></m:default> <m:default/>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>85e5d156-6d1b-476d-a0f8-4639c8db74f6</m:id>
<m:name>reason</m:name>
<m:title>备注</m:title>
<m:type>string</m:type>
<m:description>备注</m:description>
<m:default/>
</m:attribute> </m:attribute>
<m:attribute> <m:attribute>
<m:annotations/> <m:annotations/>
...@@ -52,8 +64,26 @@ ...@@ -52,8 +64,26 @@
<m:name>regionalCompany</m:name> <m:name>regionalCompany</m:name>
<m:title>所属区域公司</m:title> <m:title>所属区域公司</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type> <m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description> <m:description/>
<m:default></m:default> <m:default/>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>0bc855ea-5d5a-4231-9d75-be63daf0bfd6</m:id>
<m:name>createUser</m:name>
<m:title>所属用户</m:title>
<m:type>com.beecode.inz.basis.datamodel.WarehouseUser</m:type>
<m:description/>
<m:default/>
</m:attribute>
<m:attribute>
<m:annotations/>
<m:id>f5112aa7-1866-4282-91a7-6da28ea3d333</m:id>
<m:name>station</m:name>
<m:title>所属场站</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Station</m:type>
<m:description/>
<m:default/>
</m:attribute> </m:attribute>
<m:attribute> <m:attribute>
<m:annotations> <m:annotations>
...@@ -65,10 +95,11 @@ ...@@ -65,10 +95,11 @@
<m:name>dinasTypeDetails</m:name> <m:name>dinasTypeDetails</m:name>
<m:title>售卖的砂石</m:title> <m:title>售卖的砂石</m:title>
<m:type>com.xyst.dinas.biz.datamodel.RetailInfo$DinasTypeDetail[]</m:type> <m:type>com.xyst.dinas.biz.datamodel.RetailInfo$DinasTypeDetail[]</m:type>
<m:description></m:description> <m:description/>
<m:default></m:default> <m:default/>
</m:attribute> </m:attribute>
</m:attributes> </m:attributes>
</m:class> </m:class>
</content> </content>
</metadata> </metadata>
...@@ -103,8 +103,8 @@ ...@@ -103,8 +103,8 @@
<m:annotations></m:annotations> <m:annotations></m:annotations>
<m:id>7a21a119-edcb-4f41-9292-dfb4480a13b4</m:id> <m:id>7a21a119-edcb-4f41-9292-dfb4480a13b4</m:id>
<m:name>status</m:name> <m:name>status</m:name>
<m:title>审批状态 0未通过 1通过</m:title> <m:title>审批状态 0待审核 1通过 2未通过</m:title>
<m:type>boolean</m:type> <m:type>int</m:type>
<m:description></m:description> <m:description></m:description>
<m:default></m:default> <m:default></m:default>
</m:attribute> </m:attribute>
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<define>inz.query.Query</define> <define>inz.query.Query</define>
<define-version>1.0</define-version> <define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.RetailInfo</dependency> <dependency>com.xyst.dinas.biz.datamodel.RetailInfo</dependency>
<dependency>com.beecode.inz.basis.datamodel.WarehouseUser</dependency>
<content> <content>
<m:query> <m:query>
<m:type>com.xyst.dinas.biz.datamodel.RetailInfo</m:type> <m:type>com.xyst.dinas.biz.datamodel.RetailInfo</m:type>
...@@ -28,13 +29,6 @@ ...@@ -28,13 +29,6 @@
<m:defaultExecute></m:defaultExecute> <m:defaultExecute></m:defaultExecute>
<m:hide></m:hide> <m:hide></m:hide>
</m:innerScene> </m:innerScene>
<m:innerScene>
<m:id>9d05497c-061c-4168-af47-90791870b3cf</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:innerScenes>
<m:fields> <m:fields>
<m:field> <m:field>
...@@ -68,6 +62,26 @@ ...@@ -68,6 +62,26 @@
<m:desc></m:desc> <m:desc></m:desc>
</m:field> </m:field>
<m:field> <m:field>
<m:name>station.id</m:name>
<m:title>场站</m:title>
<m:type>uuid</m:type>
<m:ref>
<m:name>com.xyst.dinas.biz.datamodel.Station</m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>station.stationName</m:name>
<m:title>场站名称</m:title>
<m:type>string</m:type>
<m:ref>
<m:name>com.xyst.dinas.biz.datamodel.Station</m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>createTime</m:name> <m:name>createTime</m:name>
<m:title>创建时间</m:title> <m:title>创建时间</m:title>
<m:type>datetime</m:type> <m:type>datetime</m:type>
...@@ -78,7 +92,7 @@ ...@@ -78,7 +92,7 @@
<m:desc></m:desc> <m:desc></m:desc>
</m:field> </m:field>
<m:field> <m:field>
<m:name>creator.name</m:name> <m:name>createUser.name</m:name>
<m:title>创建人</m:title> <m:title>创建人</m:title>
<m:type>string</m:type> <m:type>string</m:type>
<m:ref/> <m:ref/>
......
...@@ -209,7 +209,7 @@ ...@@ -209,7 +209,7 @@
<m:field> <m:field>
<m:name>status</m:name> <m:name>status</m:name>
<m:title>状态</m:title> <m:title>状态</m:title>
<m:type>boolean</m:type> <m:type>int</m:type>
<m:ref> <m:ref>
<m:name></m:name> <m:name></m:name>
<m:type></m:type> <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>35407203-1e53-40f4-91b8-5927577dd094</id>
<name>com.xyst.dinas.biz.query.SandMiningWarnSetting</name>
<title>采砂预警设置</title>
<define>inz.query.Query</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.WarnSetting</dependency>
<content>
<m:query>
<m:type>com.xyst.dinas.biz.datamodel.WarnSetting</m:type>
<m:dataProcessor>com.xyst.dinas.biz.internal.SandMiningWarnSettingProcessor</m:dataProcessor>
<m:authorityItem/>
<m:innerScenes>
<m:innerScene>
<m:id>fa6d9e0d-a774-4f90-b20a-b4b3d5b468a6</m:id>
<m:title>全部</m:title>
<m:javaImplement>com.beecode.inz.common.scene.CommonAllScene</m:javaImplement>
<m:defaultExecute/>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>12cb7e87-edde-4447-ac5f-53fcd2bdc163</m:id>
<m:title>已废弃</m:title>
<m:javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</m:javaImplement>
<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>version</m:name>
<m:title>version</m:title>
<m:type>int</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>max</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>personnel</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>
...@@ -45,6 +45,16 @@ ...@@ -45,6 +45,16 @@
<comment>所属组织机构</comment> <comment>所属组织机构</comment>
</column> </column>
</many-to-one> </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>
<many-to-one name="createUser" entity-name="com.beecode.inz.basis.datamodel.WarehouseUser" fetch="select">
<column name="create_user_id" not-null="false">
<comment>所属用户</comment>
</column>
</many-to-one>
<property name="retailInfoName" type="nstring"> <property name="retailInfoName" type="nstring">
<column name="retail_info_name" length="30" > <column name="retail_info_name" length="30" >
<comment>散户姓名</comment> <comment>散户姓名</comment>
......
...@@ -80,9 +80,9 @@ ...@@ -80,9 +80,9 @@
</column> </column>
</property> </property>
<property name="status" type="boolean" not-null="false"> <property name="status" type="int" not-null="false">
<column name="status"> <column name="status">
<comment>审批状态false未通过 true通过</comment> <comment>审批状态2未通过 1通过 0待审核</comment>
</column> </column>
</property> </property>
<property name="failureReason" type="nstring" not-null="false"> <property name="failureReason" type="nstring" not-null="false">
......
...@@ -4,6 +4,7 @@ import com.beecode.amino.metadata.runtime.MetadataMech; ...@@ -4,6 +4,7 @@ import com.beecode.amino.metadata.runtime.MetadataMech;
import com.beecode.bcp.type.KClass; import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.TypeConstants; import com.beecode.bcp.type.TypeConstants;
import com.xyst.dinas.production.constant.SandMiningConstant; import com.xyst.dinas.production.constant.SandMiningConstant;
import com.xyst.dinas.production.internal.SandShipWarnSettingProcessor;
import com.xyst.dinas.production.internal.dao.SandMiningDaoImpl; import com.xyst.dinas.production.internal.dao.SandMiningDaoImpl;
import com.xyst.dinas.production.internal.service.SandMiningServiceImpl; import com.xyst.dinas.production.internal.service.SandMiningServiceImpl;
import com.xyst.dinas.production.service.SandMiningService; import com.xyst.dinas.production.service.SandMiningService;
...@@ -56,5 +57,9 @@ public class SandMiningConfiguration { ...@@ -56,5 +57,9 @@ public class SandMiningConfiguration {
public SandMiningExpiredTask sandMiningExpiredTask() { public SandMiningExpiredTask sandMiningExpiredTask() {
return new SandMiningExpiredTask(); return new SandMiningExpiredTask();
} }
@Bean("com.xyst.dinas.production.internal.SandShipWarnSettingProcessor")
public SandShipWarnSettingProcessor sandShipWarnSettingProcessor() {
return new SandShipWarnSettingProcessor();
}
} }
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.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 SandShipWarnSettingProcessor implements DataProcessor {
@Autowired
private SandMiningService sandMiningService;
@Autowired
private StaffService staffService;
@Override
public void process(DataProcessorContext context) {
List<RowData> rowDatas = context.getRowDatas();
for (RowData row : rowDatas) {
//采区名称 人员
UUID contractId = UUID.fromString(row.get("billId").toString());
KObject sandMining = sandMiningService.getById(contractId);
Assert.notNull(sandMining, "找不到对应的采砂许可证!");
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 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());
}
}
}
...@@ -196,7 +196,7 @@ public class DischargingDaoImpl extends AbstractBaseDao implements DischargingDa ...@@ -196,7 +196,7 @@ public class DischargingDaoImpl extends AbstractBaseDao implements DischargingDa
.add(Restrictions.eq("type", DischargingTypeEnum.REVISE_DATA.getValue())) .add(Restrictions.eq("type", DischargingTypeEnum.REVISE_DATA.getValue()))
.add(Restrictions.sqlRestriction(" discharging_time like '" + DateUtil.convertDateToString1(date) + "%'")); .add(Restrictions.sqlRestriction(" discharging_time like '" + DateUtil.convertDateToString1(date) + "%'"));
if (id != null) { if (id != null) {
detachedCriteria.add(Restrictions.eq(BaseConstants.ID, id)); detachedCriteria.add(Restrictions.ne(BaseConstants.ID, id));
} }
return (List<KObject>) template.findByCriteria(detachedCriteria); return (List<KObject>) template.findByCriteria(detachedCriteria);
} }
......
...@@ -59,9 +59,8 @@ public class ProductionPlanReportDaoImpl extends AbstractBaseDao implements Prod ...@@ -59,9 +59,8 @@ public class ProductionPlanReportDaoImpl extends AbstractBaseDao implements Prod
KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany(); KObject currentLoginRegionalCompany = dinasTypeDao.getCurrentLoginRegionalCompany();
if(null!=currentLoginRegionalCompany){ if(null!=currentLoginRegionalCompany){
detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id"))); detachedCriteria.add(Restrictions.eq("regionalCompany.id",currentLoginRegionalCompany.getUuid("id")));
}; }
detachedCriteria.addOrder(Order.desc("createDate")); detachedCriteria.addOrder(Order.desc(BaseConstants.CREATE_TIME));
detachedCriteria.addOrder(Order.desc("productionPlanDate"));
int offset = page.getPageSize() * (page.getPageNo() - 1); int offset = page.getPageSize() * (page.getPageNo() - 1);
page.setTotal(template.findByCriteria(detachedCriteria).size()); page.setTotal(template.findByCriteria(detachedCriteria).size());
List<KObject> list = (List<KObject>) template.findByCriteria(detachedCriteria,offset,page.getPageSize()); List<KObject> list = (List<KObject>) template.findByCriteria(detachedCriteria,offset,page.getPageSize());
......
...@@ -2,9 +2,14 @@ package com.xyst.dinas.production.internal.service; ...@@ -2,9 +2,14 @@ package com.xyst.dinas.production.internal.service;
import com.beecode.bap.attachment.common.Page; import com.beecode.bap.attachment.common.Page;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.warn.WarnSetting;
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.dao.SandMiningDao;
import com.xyst.dinas.production.service.SandMiningService; import com.xyst.dinas.production.service.SandMiningService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -17,6 +22,9 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -17,6 +22,9 @@ public class SandMiningServiceImpl implements SandMiningService {
@Autowired @Autowired
private SandMiningDao sandMiningDao; private SandMiningDao sandMiningDao;
@Autowired
private IWarningSettingService warningSettingService;
@Override @Override
public Page<KObject> queryByPaging(Page<KObject> page, Integer sandMiningStatus) throws Exception { public Page<KObject> queryByPaging(Page<KObject> page, Integer sandMiningStatus) throws Exception {
if(page.getPageNo()==0||page.getPageSize()==0) { if(page.getPageNo()==0||page.getPageSize()==0) {
...@@ -27,7 +35,32 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -27,7 +35,32 @@ public class SandMiningServiceImpl implements SandMiningService {
@Override @Override
public UUID addSandMining(KObject kObject) { public UUID addSandMining(KObject kObject) {
return sandMiningDao.create(kObject);
UUID uuid = sandMiningDao.create(kObject);
//新增采砂船非工作时间预警和采砂船非自己采区预警
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType("进入告警区");
warnSetting.setBillId(uuid);
warnSetting.setTarget("进入告警区");
warnSetting.setOpen(false);
warnSetting.setMemo(getSandShipInfo(kObject));
warningSettingService.insertWarnSetting(warnSetting);
WarnSettingEntity warnSetting1 = new WarnSettingEntity();
warnSetting1.setBillType("非法采砂报警");
warnSetting1.setBillId(uuid);
warnSetting1.setTarget("非作业时间采砂");
warnSetting1.setOpen(false);
warnSetting1.setMemo(getSandShipInfo(kObject));
warningSettingService.insertWarnSetting(warnSetting1);
return uuid;
}
private String getSandShipInfo(KObject kObject) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("regionalCompanyId", kObject.get("regionalCompany").getUuid("id").toString());
return jsonObject.toString();
} }
@Override @Override
...@@ -46,7 +79,7 @@ public class SandMiningServiceImpl implements SandMiningService { ...@@ -46,7 +79,7 @@ public class SandMiningServiceImpl implements SandMiningService {
@Override @Override
public void update(KObject kobject) { public void update(KObject kobject) {
UUID id = kobject.getUuid("id");
sandMiningDao.modify(kobject); sandMiningDao.modify(kobject);
} }
......
...@@ -9,6 +9,7 @@ import org.slf4j.Logger; ...@@ -9,6 +9,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.PostConstruct;
import java.util.Optional; import java.util.Optional;
public class SandMiningExpiredSchedule implements ServiceInitializer { public class SandMiningExpiredSchedule implements ServiceInitializer {
...@@ -34,4 +35,5 @@ public class SandMiningExpiredSchedule implements ServiceInitializer { ...@@ -34,4 +35,5 @@ public class SandMiningExpiredSchedule implements ServiceInitializer {
logger.info("采砂许可证状态任务初始化成功!"); logger.info("采砂许可证状态任务初始化成功!");
} }
} }
...@@ -67,8 +67,6 @@ public class SandMiningController { ...@@ -67,8 +67,6 @@ public class SandMiningController {
@PutMapping @PutMapping
public ResponseObj update(@RequestBody String body){ public ResponseObj update(@RequestBody String body){
KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(SandMiningConstant.ENTITY, KClass.class)); KObject kobject = JSONObjectUtils.toObject(body,Amino.getApplicationMetadataContext().getBean(SandMiningConstant.ENTITY, KClass.class));
sandMiningService.update(kobject); sandMiningService.update(kobject);
return ResponseObj.success("修改成功"); return ResponseObj.success("修改成功");
} }
......
<?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>d050b6c5-fc17-45c0-8e7f-0159b2e081d2</id>
<name>com.xyst.dinas.production.query.SandShipWarnSetting</name>
<title>船只预警设置</title>
<define>inz.query.Query</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.WarnSetting</dependency>
<content>
<m:query>
<m:type>com.xyst.dinas.biz.datamodel.WarnSetting</m:type>
<m:dataProcessor>com.xyst.dinas.production.internal.SandShipWarnSettingProcessor</m:dataProcessor>
<m:authorityItem/>
<m:innerScenes>
<m:innerScene>
<m:id>d9a983a6-0c40-45d5-ac07-32c6fdc85051</m:id>
<m:title>全部</m:title>
<m:javaImplement>com.beecode.inz.common.scene.CommonAllScene</m:javaImplement>
<m:defaultExecute/>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>c6a7fed5-8ba2-4c07-b86a-bf8a90d527f3</m:id>
<m:title>已废弃</m:title>
<m:javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</m:javaImplement>
<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>version</m:name>
<m:title>version</m:title>
<m:type>int</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>max</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>personnel</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>
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