|
|
@@ -0,0 +1,119 @@
|
|
|
+package cn.sciento.farm.automationv2.app.service.irrigationGroup.impl;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+import cn.sciento.core.domain.Page;
|
|
|
+import cn.sciento.core.exception.CommonException;
|
|
|
+import cn.sciento.core.util.ValidUtils;
|
|
|
+import cn.sciento.farm.automationv2.api.dto.BallValuesDTO;
|
|
|
+import cn.sciento.farm.automationv2.api.dto.IrrigationGroupDTO;
|
|
|
+import cn.sciento.farm.automationv2.app.service.irrigationGroup.IrrigationGroupService;
|
|
|
+
|
|
|
+import cn.sciento.farm.automationv2.domain.entity.IrrigationGroup;
|
|
|
+import cn.sciento.farm.automationv2.domain.repository.IrrigationGroupRepository;
|
|
|
+import cn.sciento.farm.automationv2.infra.constant.BaseConstant;
|
|
|
+import cn.sciento.farm.automationv2.infra.utils.BeanCopyUtils;
|
|
|
+import cn.sciento.mybatis.domian.Condition;
|
|
|
+import cn.sciento.mybatis.util.Sqls;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import io.choerodon.mybatis.pagehelper.PageHelper;
|
|
|
+import io.choerodon.mybatis.pagehelper.domain.PageRequest;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.validation.Validator;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author Jayhaw
|
|
|
+ * @description
|
|
|
+ * @date 2021/1/18 15:51
|
|
|
+ */
|
|
|
+@Transactional(rollbackFor = Exception.class)
|
|
|
+@Service
|
|
|
+public class IrrigationGroupServiceImpl implements IrrigationGroupService {
|
|
|
+
|
|
|
+ private IrrigationGroupRepository irrigationGroupRepository;
|
|
|
+
|
|
|
+ private Validator validator;
|
|
|
+
|
|
|
+ public IrrigationGroupServiceImpl(IrrigationGroupRepository irrigationGroupRepository,
|
|
|
+ Validator validator) {
|
|
|
+ this.irrigationGroupRepository = irrigationGroupRepository;
|
|
|
+ this.validator = validator;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IrrigationGroup create(IrrigationGroupDTO dto) {
|
|
|
+ validDTO(dto);
|
|
|
+ IrrigationGroup group = dto.build();
|
|
|
+ Integer result = irrigationGroupRepository.insertSelective(group);
|
|
|
+ return result>0?group:null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void validDTO(IrrigationGroupDTO dto) {
|
|
|
+ ValidUtils.valid(validator, dto);
|
|
|
+ if (dto.getBallValuesDTOS() != null) {
|
|
|
+ ValidUtils.valid(validator, dto.getBallValuesDTOS());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IrrigationGroup update(IrrigationGroupDTO dto) {
|
|
|
+ IrrigationGroup resultIrrigationGroup = queryById(dto.getTenantId(), dto.getId());
|
|
|
+ if (resultIrrigationGroup == null) {
|
|
|
+ throw new CommonException("wfautoV2.parameter.error");
|
|
|
+ }
|
|
|
+ validDTO(dto);
|
|
|
+ IrrigationGroup group = dto.build();
|
|
|
+ Integer result = irrigationGroupRepository.updateByPrimaryKeySelective(group);
|
|
|
+ return result>0?group:null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IrrigationGroup queryById(Long tenantId, Long id) {
|
|
|
+ if( id == null || id < 0){
|
|
|
+ throw new CommonException("wfautoV2.parameter.incomplete");
|
|
|
+ }
|
|
|
+ return irrigationGroupRepository.queryByTenantIdAndId(tenantId,id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IrrigationGroupDTO queryByDetail(Long tenantId, Long id) {
|
|
|
+ IrrigationGroup group = queryById(tenantId, id);
|
|
|
+ IrrigationGroupDTO dto = new IrrigationGroupDTO();
|
|
|
+ if (group != null){
|
|
|
+ BeanCopyUtils.copyProperties(group,dto);
|
|
|
+ dto.setBallValuesDTOS(JSON.parseArray(group.getBallValves(), BallValuesDTO.class));
|
|
|
+ }
|
|
|
+ return dto;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer delete(IrrigationGroup irrigationGroup) {
|
|
|
+ IrrigationGroup resultIrrigationGroup = queryById(irrigationGroup.getTenantId(), irrigationGroup.getId());
|
|
|
+ if (resultIrrigationGroup == null) {
|
|
|
+ throw new CommonException("wfautoV2.parameter.error");
|
|
|
+ }
|
|
|
+ resultIrrigationGroup.setEnabledFlag(BaseConstant.ENABLE);
|
|
|
+ return irrigationGroupRepository.updateByPrimaryKeySelective(resultIrrigationGroup);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<IrrigationGroup> page(IrrigationGroup irrigationGroup,PageRequest pageRequest) {
|
|
|
+ return PageHelper.doPageAndSort(pageRequest,() -> {
|
|
|
+ return irrigationGroupRepository.selectByCondition(Condition.builder(IrrigationGroup.class)
|
|
|
+ .where(Sqls.custom()
|
|
|
+ .andEqualTo(BaseConstant.TENANT_ID,irrigationGroup.getTenantId())
|
|
|
+ .andEqualTo(BaseConstant.ORGANIZATION_ID,irrigationGroup.getOrganizationId())
|
|
|
+ .andLike(BaseConstant.IRRIGATION_GROUP_NAME,irrigationGroup.getGroupName(),true)
|
|
|
+ .andEqualTo(BaseConstant.ENABLED_FLAG,irrigationGroup.getEnabledFlag(),true)
|
|
|
+ )
|
|
|
+ .build());
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+}
|