|
|
@@ -0,0 +1,110 @@
|
|
|
+
|
|
|
+package com.cloud.sa.management.manager;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.cloud.sa.base.common.domain.PageResult;
|
|
|
+import com.cloud.sa.base.common.domain.ResponseDTO;
|
|
|
+import com.cloud.sa.base.common.util.BlinkEntityUtil;
|
|
|
+import com.cloud.sa.base.common.util.BlinkEnumUtil;
|
|
|
+import com.cloud.sa.base.common.util.BlinkPageUtil;
|
|
|
+import com.cloud.sa.base.module.support.datatracer.service.DataTracerService;
|
|
|
+import com.cloud.sa.base.module.support.dict.service.DictCacheService;
|
|
|
+import com.cloud.sa.base.module.support.serialnumber.constant.SerialNumberIdEnum;
|
|
|
+import com.cloud.sa.base.module.support.serialnumber.service.SerialNumberService;
|
|
|
+import com.cloud.sa.management.domain.dataobject.BlinkProjectDO;
|
|
|
+import com.cloud.sa.management.domain.dto.BlinkProjectDTO;
|
|
|
+import com.cloud.sa.management.domain.qry.BlinkProjectQry;
|
|
|
+import com.cloud.sa.management.objectmapper.BlinkProjectMapper;
|
|
|
+import com.cloud.sa.management.repository.BlinkProjectRepository;
|
|
|
+import com.cloud.sa.management.service.IBlinkProjectService;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Optional;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author gufj
|
|
|
+ * @date 2025/05/21
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class BlinkProjectServiceImpl extends ServiceImpl<BlinkProjectRepository, BlinkProjectDO> implements IBlinkProjectService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SerialNumberService serialNumberService;
|
|
|
+ @Resource
|
|
|
+ private BlinkProjectMapper mapper;
|
|
|
+ @Resource
|
|
|
+ private BlinkProjectRepository repository;
|
|
|
+ @Resource
|
|
|
+ private DataTracerService dataTracerService;
|
|
|
+ @Resource
|
|
|
+ private DictCacheService dictCacheService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<String> supportsProjectCreate(BlinkProjectDTO dto) {
|
|
|
+ // 验证项目名称是否重复
|
|
|
+ BlinkProjectDO validateProject = repository.queryByProjectName(dto.getProjectName(), null, Boolean.FALSE);
|
|
|
+ if (Objects.nonNull(validateProject)) {
|
|
|
+ return ResponseDTO.userErrorParam("项目名称重复!请检查");
|
|
|
+ }
|
|
|
+ //生成项目编码
|
|
|
+ SerialNumberIdEnum serialNumberIdEnum = BlinkEnumUtil.getEnumByValue(4, SerialNumberIdEnum.class);
|
|
|
+ dto.setProjectCode(serialNumberService.generate(serialNumberIdEnum));
|
|
|
+ //生成DO
|
|
|
+ BlinkProjectDO projectDO = mapper.toDO(dto);
|
|
|
+ //创建人赋值
|
|
|
+ BlinkEntityUtil.setCreateInfo(projectDO);
|
|
|
+ //执行保存
|
|
|
+ this.save(projectDO);
|
|
|
+ //执行变更记录
|
|
|
+ //dataTracerService.insert(customerDO.getId(), DataTracerTypeEnum.CUSTOMER);
|
|
|
+ return ResponseDTO.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResult<BlinkProjectDTO> supportsProjectQueryPage(BlinkProjectQry qry) {
|
|
|
+ Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
|
|
|
+ List<BlinkProjectDTO> list = repository.supportsProjectQueryPage(page, qry);
|
|
|
+ for (BlinkProjectDTO blinkCustomerDTO : list) {
|
|
|
+ //拼接省市区
|
|
|
+ String province = Optional.ofNullable(blinkCustomerDTO.getProvinceName()).orElse("");
|
|
|
+ String city = Optional.ofNullable(blinkCustomerDTO.getCityName()).orElse("");
|
|
|
+ String district = Optional.ofNullable(blinkCustomerDTO.getDistrictName()).orElse("");
|
|
|
+ blinkCustomerDTO.setProvinceCityDistrict(province + city + district);
|
|
|
+ }
|
|
|
+ PageResult<BlinkProjectDTO> pageResult = BlinkPageUtil.convert2PageResult(page, list);
|
|
|
+ return pageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<String> supportsProjectUpdate(BlinkProjectDTO dto) {
|
|
|
+ // 验证项目名称是否重复
|
|
|
+ BlinkProjectDO validateProject = repository.queryByProjectName(dto.getProjectName(), dto.getId(), Boolean.FALSE);
|
|
|
+ if (Objects.nonNull(validateProject)) {
|
|
|
+ return ResponseDTO.userErrorParam("项目名称重复!请检查");
|
|
|
+ }
|
|
|
+ //生成DO
|
|
|
+ BlinkProjectDO projectDO = mapper.toDO(dto);
|
|
|
+ //创建人赋值
|
|
|
+ BlinkEntityUtil.setUpdatedInfo(projectDO);
|
|
|
+ //执行保存
|
|
|
+ this.updateById(projectDO);
|
|
|
+ //执行变更记录
|
|
|
+ //dataTracerService.insert(customerDO.getId(), DataTracerTypeEnum.CUSTOMER);
|
|
|
+ return ResponseDTO.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<BlinkProjectDTO> supportsProjectSingleQuery(String id) {
|
|
|
+ //定义返回
|
|
|
+ BlinkProjectDTO projectDTO = new BlinkProjectDTO();
|
|
|
+ BlinkProjectDO customerDO = this.getById(id);
|
|
|
+ if (Objects.nonNull(customerDO)) {
|
|
|
+ mapper.DTOToDO(customerDO, projectDTO);
|
|
|
+ }
|
|
|
+ return ResponseDTO.ok(projectDTO);
|
|
|
+ }
|
|
|
+}
|