package com.dy.pipIrrIrrigate.irrigateGroup;
|
|
import com.dy.common.webUtil.QueryResultVo;
|
import com.dy.pipIrrGlobal.daoIr.IrGroupClientMapper;
|
import com.dy.pipIrrGlobal.daoIr.IrGroupIntakeMapper;
|
import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper;
|
import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper;
|
import com.dy.pipIrrGlobal.pojoIr.IrGroupClient;
|
import com.dy.pipIrrGlobal.pojoIr.IrGroupIntake;
|
import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
|
import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
|
import com.dy.pipIrrGlobal.voIr.VoGroup;
|
import com.dy.pipIrrGlobal.voIr.VoGroupDetail;
|
import com.dy.pipIrrGlobal.voIr.VoGroupOne;
|
import com.dy.pipIrrGlobal.voIr.VoGroupSimple;
|
import com.dy.pipIrrIrrigate.irrigateGroup.dto.IrrigateGroup;
|
import com.dy.pipIrrIrrigate.irrigateGroup.qo.QoGroup;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.dubbo.common.utils.PojoUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author :WuZeYu
|
* @Date :2024/5/21 15:57
|
* @LastEditTime :2024/5/21 15:57
|
* @Description
|
*/
|
@Slf4j
|
@Service
|
public class IrrigateGroupSv {
|
@Autowired
|
private IrIrrigateGroupMapper irIrrigateGroupMapper;
|
|
@Autowired
|
private IrGroupUnitMapper irGroupUnitMapper;
|
|
@Autowired
|
private IrGroupClientMapper irGroupClientMapper;
|
|
@Autowired
|
private IrGroupIntakeMapper irGroupIntakeMapper;
|
|
/**
|
* 创建轮灌组
|
*
|
* @param po
|
* @return
|
*/
|
public Integer addIrrigateGroup(IrIrrigateGroup po) {
|
po.setOperateTime(new Date());
|
po.setDeleted((byte) 0);
|
int rows = irIrrigateGroupMapper.insertSelective(po);
|
if (rows == 0) {
|
return 0;
|
}
|
return 1;
|
}
|
|
/**
|
* 删除轮灌组
|
*
|
* @param id
|
*/
|
public Integer deleteIrrigateGroup(Long id) {
|
int rows = irIrrigateGroupMapper.deleteLogicById(id);
|
int rows1 = irGroupUnitMapper.deleteByGroupId(id);
|
if (rows == 0) {
|
return 0;
|
}
|
return 1;
|
}
|
|
/**
|
* 修改轮灌组
|
* @param po
|
* @return
|
*/
|
public Integer updateIrrigateGroup(IrIrrigateGroup po){
|
po.setOperateTime(new Date());
|
int rows = irIrrigateGroupMapper.updateByPrimaryKeySelective(po);
|
if (rows == 0){
|
return 0;
|
}
|
return 1;
|
}
|
|
/**
|
* 获取一个轮灌组
|
* @param id
|
* @return
|
*/
|
public VoGroupOne selectById(Long id){
|
VoGroupOne unit = irIrrigateGroupMapper.selectById(id);
|
return unit;
|
}
|
|
/**
|
* 分页查询轮灌组
|
* @param queryVo
|
* @return
|
*/
|
public QueryResultVo<List<VoGroup>> getIrrigateGroups(QueryVo queryVo){
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
|
Long itemTotal = irIrrigateGroupMapper.getRecordCount(params);
|
|
QueryResultVo<List<VoGroup>> rsVo = new QueryResultVo<>();
|
rsVo.pageSize = queryVo.pageSize;
|
rsVo.pageCurr = queryVo.pageCurr;
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = irIrrigateGroupMapper.getIrrigateGroups(params);
|
return rsVo;
|
}
|
|
/**
|
* 轮灌组添加灌溉单元
|
*
|
* @param po
|
* @return
|
*/
|
public Integer addGroupUnit(IrGroupUnit po) {
|
po.setOperateDt(new Date());
|
int rows = irGroupUnitMapper.insertSelective(po);
|
if (rows == 0) {
|
return 0;
|
}
|
return 1;
|
}
|
|
/**
|
* 轮灌组移除灌溉单元
|
*
|
* @param po
|
* @return
|
*/
|
public Integer deleteGroupUnit(IrGroupUnit po) {
|
int rows = irGroupUnitMapper.deleteByUnitIdGroupId(po);
|
if (rows == 0) {
|
return 0;
|
}
|
return 1;
|
}
|
|
/**
|
* 查一个轮灌组绑定的灌溉单元id
|
* @param groupId
|
* @return
|
*/
|
public List<Long> getGroupBindUnits(Long groupId) {
|
List<Long> groupBindUnits = irGroupUnitMapper.getGroupBindUnits(groupId);
|
return groupBindUnits;
|
}
|
|
/**
|
* //查未绑定轮灌组的灌溉单元id
|
* @return
|
*/
|
public List<Long> getNotBindUnits() {
|
List<Long> notBindUnits = irGroupUnitMapper.getNotBindUnits();
|
return notBindUnits;
|
}
|
|
//轮灌组关联农户
|
public Long addGroupClient(IrGroupClient po) {
|
irGroupClientMapper.insert(po);
|
return po.getId();
|
}
|
|
/**
|
* 根据轮灌组名称查询是否存在(添加轮灌组时使用)
|
* @param groupCode 轮灌组名称
|
* @return 是否存在
|
*/
|
public boolean existsByGroupCode(String groupCode) {
|
if (groupCode == null || "".equals(groupCode.trim())) {
|
return false;
|
}
|
return irIrrigateGroupMapper.countByGroupCode(groupCode) > 0;
|
}
|
|
/**
|
* 根据轮灌组名称查询是否存在(修改轮灌组时使用,排除当前ID)
|
* @param groupCode 轮灌组名称
|
* @param excludeId 需要排除的ID
|
* @return 是否存在
|
*/
|
public boolean existsByGroupCodeExcludeId(String groupCode, Long excludeId) {
|
if (groupCode == null || "".equals(groupCode.trim())) {
|
return false;
|
}
|
return irIrrigateGroupMapper.countByGroupCodeExcludeId(groupCode, excludeId) > 0;
|
}
|
|
/**
|
* 删除轮灌组与农户管理
|
* @param id
|
* @return
|
*/
|
public Integer deleteGroupClient (Long id) {
|
return irGroupClientMapper.deleteByPrimaryKey(id);
|
}
|
|
/**
|
* 创建轮灌组
|
* @param po
|
* @return
|
*/
|
public Map addIrrigateGroup(IrrigateGroup po) {
|
IrIrrigateGroup irrigateGroup = new IrIrrigateGroup();
|
irrigateGroup.setGroupCode(po.getGroupCode());
|
irrigateGroup.setDefaultDuration(po.getDefaultDuration());
|
irrigateGroup.setOperator(po.getOperator());
|
irrigateGroup.setOperateTime(new Date());
|
irrigateGroup.setDeleted((byte) 0);
|
irIrrigateGroupMapper.insertSelective(irrigateGroup);
|
Long groupId = irrigateGroup.getId();
|
if(groupId == null) {
|
Map map = new HashMap<>();
|
map.put("success", false);
|
map.put("msg", "创建轮灌组失败");
|
map.put("content", null);
|
return map;
|
}
|
|
String[] intakeArr = po.getIntakes().split(",");
|
Integer sort = 1;
|
for(String intekeId : intakeArr) {
|
String trimmed = intekeId.trim();
|
if(trimmed.isEmpty()) {
|
continue;
|
}
|
try {
|
Long intakeIdLong = Long.parseLong(trimmed);
|
IrGroupIntake irGroupIntake = new IrGroupIntake();
|
irGroupIntake.setGroupId(groupId);
|
irGroupIntake.setIntakeId(intakeIdLong);
|
irGroupIntakeMapper.insert(irGroupIntake);
|
} catch (NumberFormatException e) {
|
Map map = new HashMap<>();
|
map.put("success", false);
|
map.put("msg", "取水口ID格式错误");
|
map.put("content", null);
|
return map;
|
}
|
}
|
Map map = new HashMap<>();
|
map.put("success", true);
|
map.put("msg", "添加轮灌组成功");
|
map.put("content", null);
|
return map;
|
}
|
|
/**
|
* 根据组ID删除取水口关联
|
* @param groupId
|
* @return
|
*/
|
public Map deleteGroup(Long groupId) {
|
try {
|
irGroupIntakeMapper.deleteByGroupId(groupId);
|
irIrrigateGroupMapper.deleteByPrimaryKey(groupId);
|
|
Map map = new HashMap<>();
|
map.put("success", true);
|
map.put("msg", "灌溉项目删除成功");
|
map.put("content", null);
|
return map;
|
} catch (Exception e) {
|
Map map = new HashMap<>();
|
map.put("success", false);
|
map.put("msg", "轮灌组删除失败");
|
map.put("content", null);
|
return map;
|
}
|
}
|
|
/**
|
* 修改轮灌组
|
* @param po
|
* @return
|
*/
|
public Map updateIrrigateGroup(IrrigateGroup po) {
|
// 修改轮灌组
|
IrIrrigateGroup irrigateGroup = new IrIrrigateGroup();
|
irrigateGroup.setId(po.getGroupId());
|
irrigateGroup.setGroupCode(po.getGroupCode());
|
irrigateGroup.setDefaultDuration(po.getDefaultDuration());
|
irrigateGroup.setOperator(po.getOperator());
|
irrigateGroup.setOperateTime(new Date());
|
irrigateGroup.setDeleted((byte) 0);
|
irIrrigateGroupMapper.updateByPrimaryKeySelective(irrigateGroup);
|
|
// 删除轮灌组与取水口关联
|
Long groupId = po.getGroupId();
|
irGroupIntakeMapper.deleteByGroupId(groupId);
|
|
// 添加轮灌组与取水口关联
|
String[] intakeArr = po.getIntakes().split(",");
|
Integer sort = 1;
|
for(String intekeId : intakeArr) {
|
String trimmed = intekeId.trim();
|
if(trimmed.isEmpty()) {
|
continue;
|
}
|
try {
|
Long intakeIdLong = Long.parseLong(trimmed);
|
IrGroupIntake irGroupIntake = new IrGroupIntake();
|
irGroupIntake.setGroupId(groupId);
|
irGroupIntake.setIntakeId(intakeIdLong);
|
irGroupIntakeMapper.insert(irGroupIntake);
|
} catch (NumberFormatException e) {
|
Map map = new HashMap<>();
|
map.put("success", false);
|
map.put("msg", "取水口ID格式错误");
|
map.put("content", null);
|
return map;
|
}
|
|
}
|
Map map = new HashMap<>();
|
map.put("success", true);
|
map.put("msg", "修改轮灌组成功");
|
map.put("content", null);
|
return map;
|
}
|
|
/**
|
* 查询轮灌组列表
|
* @param queryVo
|
* @return
|
*/
|
public QueryResultVo<List<VoGroupSimple>> getSimpleGroups(QoGroup queryVo) {
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
|
Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params);
|
|
QueryResultVo<List<VoGroupSimple>> rsVo = new QueryResultVo<>();
|
rsVo.pageSize = queryVo.pageSize;
|
rsVo.pageCurr = queryVo.pageCurr;
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = irIrrigateGroupMapper.getSimpleGroups(params);
|
return rsVo;
|
}
|
|
/**
|
* 查询全部轮灌组
|
* @return
|
*/
|
public List<VoGroupSimple> getAllGroups() {
|
//Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
|
//Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params);
|
|
//QueryResultVo<List<VoGroupSimple>> rsVo = new QueryResultVo<>();
|
//rsVo.pageSize = queryVo.pageSize;
|
//rsVo.pageCurr = queryVo.pageCurr;
|
//rsVo.calculateAndSet(itemTotal, params);
|
//rsVo.obj = irIrrigateGroupMapper.getSimpleGroups(null);
|
//return rsVo;
|
|
return irIrrigateGroupMapper.getSimpleGroups(null);
|
}
|
|
/**
|
* 获取轮灌组详情
|
* @param groupId
|
* @return
|
*/
|
public Map getGroupDetail(Long groupId) {
|
try {
|
VoGroupDetail voGroupDetail = irIrrigateGroupMapper.getGroupDetail(groupId);
|
Map map = new HashMap<>();
|
map.put("success", true);
|
map.put("msg", "获取轮灌组详情成功");
|
map.put("content", voGroupDetail);
|
return map;
|
} catch (Exception e) {
|
Map map = new HashMap<>();
|
map.put("success", false);
|
map.put("msg", "获取轮灌组详情失败");
|
map.put("content", null);
|
return map;
|
}
|
}
|
|
}
|