diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java index 6b01f57..6e3dce6 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java @@ -29,7 +29,9 @@ public enum AlgorithmResponseEnum { DATA_LOSE ("A00510","未找到设备与主用户信息"), REPEAT_SHARE ("A00511","设备已分享完成,请勿再次分享"), DEVICE_LOSE("A00512","设备id缺失"), - CHIRLDREN_EXIST("A00513","工程下存在项目,不能删除"); + CHIRLDREN_EXIST("A00513","工程下存在项目,不能删除"), + CHIRLDREN2_EXIST("A00514","项目下存在设备,不能删除"); + ; diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAuditParm.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAuditParm.java index e910647..d8e7cde 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAuditParm.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/AppProjectAuditParm.java @@ -2,8 +2,10 @@ package com.njcn.csdevice.pojo.param; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotNull; +import java.util.List; /** * Description: @@ -34,5 +36,9 @@ public class AppProjectAuditParm { private String status; private String description; + @ApiModelProperty(value = "拓扑图文件") + private MultipartFile[] files; + @ApiModelProperty(value="拓扑图模版id集合") + private List topoIds; } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsMarketDataParam.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsMarketDataParam.java new file mode 100644 index 0000000..d9c35d1 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/CsMarketDataParam.java @@ -0,0 +1,29 @@ +package com.njcn.csdevice.pojo.param; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * Date: 2023/7/31 9:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@NoArgsConstructor +public class CsMarketDataParam { + + + private String userId; + + + private String engineerId; + + +} \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsMarketData.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsMarketData.java new file mode 100644 index 0000000..ed49475 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsMarketData.java @@ -0,0 +1,44 @@ +package com.njcn.csdevice.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * Date: 2023/7/31 9:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@NoArgsConstructor +@TableName(value = "cs_market_data") +public class CsMarketData { + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 用户id + */ + @TableField(value = "user_id") + private String userId; + + /** + * 工程id + */ + @TableField(value = "engineer_id") + private String engineerId; + + public static final String COL_ID = "id"; + + public static final String COL_USER_ID = "user_id"; + + public static final String COL_ENGINEER_ID = "engineer_id"; +} \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsMarketDataVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsMarketDataVO.java new file mode 100644 index 0000000..3f9d4da --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsMarketDataVO.java @@ -0,0 +1,34 @@ +package com.njcn.csdevice.pojo.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * Date: 2023/7/31 9:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@NoArgsConstructor +public class CsMarketDataVO { + private String id; + + /** + * 用户id + */ + private String userId; + + /** + * 工程id + */ + private String engineerId; + + private String engineerName; +} \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java index 015823b..4485d5c 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/AppProjectController.java @@ -74,8 +74,7 @@ public class AppProjectController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/auditAppProject") @ApiOperation("修改/删除项目") - @ApiImplicitParam(name = "appProjectAuditParm", value = "修改项目参数", required = true) - public HttpResult auditAppProject(@Validated @RequestBody AppProjectAuditParm appProjectAuditParm){ + public HttpResult auditAppProject(@Validated AppProjectAuditParm appProjectAuditParm){ String methodDescribe = getMethodDescribe("auditAppProject"); Boolean flag = appProjectService.AuditAppProject(appProjectAuditParm); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java new file mode 100644 index 0000000..ae6a26c --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsMarketDataController.java @@ -0,0 +1,80 @@ +package com.njcn.csdevice.controller.project; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.csdevice.pojo.param.CsMarketDataParam; +import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.vo.CsLedgerVO; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; +import com.njcn.csdevice.service.CsLinePOService; +import com.njcn.csdevice.service.CsMarketDataService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * Description: + * Date: 2023/7/31 9:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@RestController +@Slf4j +@Api(tags = "营销数据配置") +@AllArgsConstructor +@RequestMapping("/csMarketData") +public class CsMarketDataController extends BaseController { + private final CsMarketDataService csMarketDataService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/add") + @ApiOperation("新增营销数据") + @ApiImplicitParam(name = "csMarketDataParams", value = "新增营销数据参数", required = true) + public HttpResult add( @RequestBody List csMarketDataParams){ + String methodDescribe = getMethodDescribe("add"); + + Boolean flag = csMarketDataService.add(csMarketDataParams); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/remove") + @ApiOperation("移除营销数据") +// @ApiImplicitParam(name = "ids", value = "删除id集合", required = true) + public HttpResult remove(@RequestParam("ids") List ids){ + String methodDescribe = getMethodDescribe("remove"); + + Boolean flag = csMarketDataService.removeByIds(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryByUseId") + @ApiOperation("查询营销数据") + public HttpResult> queryByUseId(@RequestParam("userId")String userId){ + String methodDescribe = getMethodDescribe("queryByUseId"); + + List list = csMarketDataService.queryByUseId(userId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryEnginnerByUseId") + @ApiOperation("查询营销人员未选择的工程") + public HttpResult> queryEnginnerByUseId(@RequestParam("userId")String userId){ + String methodDescribe = getMethodDescribe("queryByUseId"); + + List list = csMarketDataService.queryEnginnerByUseId(userId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsMarketDataMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsMarketDataMapper.java new file mode 100644 index 0000000..e4722d3 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsMarketDataMapper.java @@ -0,0 +1,15 @@ +package com.njcn.csdevice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.csdevice.pojo.po.CsMarketData; + +/** + * + * Description: + * Date: 2023/7/31 9:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface CsMarketDataMapper extends BaseMapper { +} \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsMarketDataMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsMarketDataMapper.xml new file mode 100644 index 0000000..cae8b47 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsMarketDataMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + id, user_id, engineer_id + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java index 2fcf45c..2910757 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsDeviceUserPOService.java @@ -28,4 +28,12 @@ public interface CsDeviceUserPOService extends IService{ Boolean delete(String eid); Boolean cancelShare(String eid); + /** + * @Description: 设备恢复 + * @Param: + * @return: + * @Author: clam + * @Date: 2023/7/27 + */ + Boolean recovery(String eid); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java index 0c2bc92..91a13d0 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java @@ -1,8 +1,11 @@ package com.njcn.csdevice.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.njcn.csdevice.pojo.param.CsLineParm; +import com.njcn.csdevice.pojo.param.CsMarketDataParam; +import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.po.CsLinePO; +import com.njcn.csdevice.pojo.po.CsMarketData; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; import java.util.List; @@ -27,5 +30,4 @@ public interface CsLinePOService extends IService{ List queryByDevId(String devId); -// void addLines(List list); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsMarketDataService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsMarketDataService.java new file mode 100644 index 0000000..92a3daf --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsMarketDataService.java @@ -0,0 +1,29 @@ +package com.njcn.csdevice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.csdevice.pojo.param.CsMarketDataParam; +import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.po.CsLineTopologyTemplate; +import com.njcn.csdevice.pojo.po.CsMarketData; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; + +import java.util.List; + +/** + * Description: + * Date: 2023/7/31 14:22【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface CsMarketDataService extends IService { + + + + Boolean add(List csMarketDataParams); + + List queryByUseId(String userId); + + List queryEnginnerByUseId(String userId); + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java index 5346ca6..97b9206 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java @@ -1,5 +1,6 @@ package com.njcn.csdevice.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.vo.CsLedgerVO; @@ -14,7 +15,7 @@ import java.util.List; * @author xuyang * @since 2023-05-31 */ -public interface ICsLedgerService { +public interface ICsLedgerService extends IService { /** * 获取终端台账树 diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java index b711f51..6d48ba3 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/AppProjectServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.csdevice.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.alibaba.cloud.commons.lang.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -145,10 +146,32 @@ class AppProjectServiceImpl extends ServiceImpl // throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); // } // } + //删除项目 + if(Objects.equals("0",appProjectAuditParm.getStatus())){ + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.eq("state",1).eq("pid",appProjectAuditParm.getId()); + List csLedgers = csLedgerMapper.selectList(queryWrapper1); + if(!CollectionUtil.isEmpty(csLedgers)){ + throw new BusinessException(AlgorithmResponseEnum.CHIRLDREN2_EXIST.getMessage()); + } + this.lambdaUpdate().eq(AppProjectPO::getId,appProjectAuditParm.getId()).set(AppProjectPO::getStatus,"0").update(); + appTopologyDiagramService.lambdaUpdate().eq(AppTopologyDiagramPO::getProjectId,appProjectAuditParm.getId()).set(AppTopologyDiagramPO::getStatus,"0").update(); + CsLedger csLedger1 = new CsLedger(); + + csLedger1.setId(appProjectAuditParm.getId()); + + csLedger1.setState(0); + csLedger1.setState(0); + csLedgerMapper.updateById(csLedger1); + + + } if(checkName(appProjectAuditParm.getName(),appProjectAuditParm.getId())){ throw new BusinessException(AlgorithmResponseEnum.PROJECT_COMMON_ERROR); } + + BeanUtils.copyProperties (appProjectAuditParm, appProjectPO); UpdateWrapper updateWrapper = new UpdateWrapper ( ); updateWrapper.eq ("id", appProjectAuditParm.getId ( )); @@ -158,18 +181,58 @@ class AppProjectServiceImpl extends ServiceImpl // if (result) { // throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); // } + //删除拓扑图,重新上传覆盖 + appTopologyDiagramService.lambdaUpdate().eq(AppTopologyDiagramPO::getProjectId,appProjectAuditParm.getId()).set(AppTopologyDiagramPO::getStatus,"0").update(); - CsLedger csLedger1 = new CsLedger(); - csLedger1.setId(appProjectAuditParm.getId()); - if(Objects.equals("0",appProjectAuditParm.getStatus())){ + //如何使用拓扑图模板则将拓扑图模板复制绑定 + if(!CollectionUtils.isEmpty(appProjectAuditParm.getTopoIds()) ){ + List appTopologyDiagramPOS = new ArrayList<>(); + List csLineTopologyTemplates = new ArrayList<>(); + appProjectAuditParm.getTopoIds().forEach(temp->{ + AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO(); + CsTopologyDiagramTemplate csTopologyDiagramTemplate = csTopologyDiagramTemplateMapper.selectById(temp); + appTopologyDiagramPO.setFilePath (csTopologyDiagramTemplate.getFilePath()); + appTopologyDiagramPO.setProjectId (appProjectPO.getId()); + appTopologyDiagramPO.setName (csTopologyDiagramTemplate.getName()); + appTopologyDiagramPO.setStatus ("1"); + appTopologyDiagramPO.setTopoId(temp); + appTopologyDiagramService.save(appTopologyDiagramPO); + + //如何使用拓扑图模板生成监测点模版 +// List csLineTopologyTemplateVOS = csLineTopologyDiagramTemplateService.queryByTopoId(temp); +// List collect = csLineTopologyTemplateVOS.stream().map(temp1 -> { +// CsLineTopologyTemplate csLineTopologyTemplate = new CsLineTopologyTemplate(); +// BeanUtils.copyProperties(temp1, csLineTopologyTemplate); +// csLineTopologyTemplate.setId(null); +// csLineTopologyTemplate.setStatus("1"); +// csLineTopologyTemplate.setTopoId(appTopologyDiagramPO.getId()); +// return csLineTopologyTemplate; +// }).collect(Collectors.toList()); +// csLineTopologyTemplates.addAll(collect); + }); + csLineTopologyDiagramTemplateService.saveBatch(csLineTopologyTemplates); - csLedger1.setState(0); } + if(Objects.nonNull( appProjectAuditParm.getFiles ( ))){ + for (int k = 0; k < appProjectAuditParm.getFiles ( ).length; k++) { + + AppTopologyDiagramAddParm appTopologyDiagramAddParm = new AppTopologyDiagramAddParm ( ); + appTopologyDiagramAddParm.setProjectId (appProjectPO.getId ( )); + appTopologyDiagramAddParm.setTopologyDiagramName (appProjectAuditParm.getFiles ( )[k].getOriginalFilename ( )); + appTopologyDiagramAddParm.setFile (appProjectAuditParm.getFiles ( )[k]); + appTopologyDiagramService.addAppTopologyDiagram (appTopologyDiagramAddParm); + } + } + + + CsLedger csLedger2 = new CsLedger(); + csLedger2.setId(appProjectAuditParm.getId()); + if(StringUtils.isNotBlank(appProjectAuditParm.getName())){ - csLedger1.setName(appProjectAuditParm.getName()); + csLedger2.setName(appProjectAuditParm.getName()); } - csLedgerMapper.updateById(csLedger1); + csLedgerMapper.updateById(csLedger2); return i == 1 ? true : false; } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java index 92e4ecb..17b33d6 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDeviceUserPOServiceImpl.java @@ -213,4 +213,20 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl list = this.lambdaQuery().eq(CsDeviceUserPO::getDeviceId, eid).eq(CsDeviceUserPO::getStatus, "0").eq(CsDeviceUserPO::getPrimaryUserId, userIndex).list(); + if(CollectionUtils.isEmpty(list)){ + throw new BusinessException(AlgorithmResponseEnum.DATA_LOSE); + + } + CsEquipmentDeliveryPO csEquipmentDeliveryPO =new CsEquipmentDeliveryPO(); + csEquipmentDeliveryPO.setId(eid); + csEquipmentDeliveryPO.setRunStatus(1); + csEquipmentDeliveryMapper.updateById(csEquipmentDeliveryPO); + this.lambdaUpdate().eq(CsDeviceUserPO::getDeviceId, eid).set(CsDeviceUserPO::getStatus,"1").update(); + return true; + } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java index 8b2c05f..b12d137 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEngineeringServiceImpl.java @@ -95,7 +95,7 @@ public class CsEngineeringServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("status",1).eq("pid",csEngineeringAuditParm.getId()); + queryWrapper.eq("state",1).eq("pid",csEngineeringAuditParm.getId()); List csLedgers = csLedgerMapper.selectList(queryWrapper); if(!CollectionUtil.isEmpty(csLedgers)){ throw new BusinessException(AlgorithmResponseEnum.CHIRLDREN_EXIST.getMessage()); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentTransferPOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentTransferPOServiceImpl.java index 0ce7b12..6dc36d9 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentTransferPOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentTransferPOServiceImpl.java @@ -6,11 +6,18 @@ import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.mapper.CsEquipmentTransferPOMapper; +import com.njcn.csdevice.mapper.CsLedgerMapper; import com.njcn.csdevice.pojo.param.CsEquipmentTransferAddParm; import com.njcn.csdevice.pojo.po.CsDeviceUserPO; import com.njcn.csdevice.pojo.po.CsEquipmentTransferPO; +import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.service.CsDeviceUserPOService; import com.njcn.csdevice.service.CsEquipmentTransferPOService; +import com.njcn.csdevice.service.ICsLedgerService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -20,7 +27,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; import static java.util.Objects.isNull; @@ -37,6 +46,9 @@ import static java.util.Objects.isNull; @Slf4j public class CsEquipmentTransferPOServiceImpl extends ServiceImpl implements CsEquipmentTransferPOService{ private final CsDeviceUserPOService csDeviceUserPOService; + + private final ICsLedgerService csLedgerService; + private final DicDataFeignClient dicDataFeignClient; @Override @Transactional(rollbackFor = {Exception.class}) public Boolean add(CsEquipmentTransferAddParm csEquipmentTransferAddParm) { @@ -53,18 +65,26 @@ public class CsEquipmentTransferPOServiceImpl extends ServiceImpl ids) { - + List data = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.APP_DEVICE_EVENT_TYPE.getCode()).getData(); + Map collect1 = data.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId)); ids.forEach(id -> { CsEquipmentTransferPO csEquipmentTransferPO = this.getById(id); -// csEquipmentTransferPO.getEventType().equals() if(!Objects.isNull(csEquipmentTransferPO.getProjectId())){ - + List list = csLedgerService.lambdaQuery().eq(CsLedger::getPid, csEquipmentTransferPO.getProjectId()).eq(CsLedger::getState, 1).list(); + String collect = list.stream().map(CsLedger::getId).collect(Collectors.joining(",")); + csEquipmentTransferPO.setEquipmentIds(collect); } if(!Objects.isNull(csEquipmentTransferPO.getEquipmentIds())){ String equipmentIds = csEquipmentTransferPO.getEquipmentIds(); String[] split = equipmentIds.split(","); for (int i = 0; i < split.length; i++) { - csDeviceUserPOService.transfer(split[i]); + if(Objects.equals(collect1.get(DicDataEnum.AUTHORITY_TRANSFER.getCode()),csEquipmentTransferPO.getEventType())){ + csDeviceUserPOService.transfer(split[i]); + + } + else if(Objects.equals(collect1.get(DicDataEnum.DATA_RECOVERY.getCode()),csEquipmentTransferPO.getEventType())){ + csDeviceUserPOService.recovery(split[i]); + } } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLineTopologyTemplateServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLineTopologyTemplateServiceImpl.java index f38feda..11437ae 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLineTopologyTemplateServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLineTopologyTemplateServiceImpl.java @@ -10,6 +10,7 @@ import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO; import com.njcn.csdevice.service.CsLineTopologyTemplateService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -27,6 +28,7 @@ import java.util.stream.Collectors; public class CsLineTopologyTemplateServiceImpl extends ServiceImpl implements CsLineTopologyTemplateService { @Override + @Transactional(rollbackFor = {Exception.class}) public Boolean add(List csLineTopologyTemplateParms) { List csLineTopologyTemplates = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -57,6 +59,7 @@ public class CsLineTopologyTemplateServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("topo_id",topoId); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java new file mode 100644 index 0000000..302415a --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsMarketDataServiceImpl.java @@ -0,0 +1,75 @@ +package com.njcn.csdevice.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.njcn.csdevice.mapper.CsEngineeringMapper; +import com.njcn.csdevice.pojo.param.CsMarketDataParam; +import com.njcn.csdevice.pojo.po.CsEngineeringPO; +import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; +import com.njcn.csdevice.service.CsMarketDataService; +import com.njcn.csdevice.service.ICsLedgerService; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.csdevice.pojo.po.CsMarketData; +import com.njcn.csdevice.mapper.CsMarketDataMapper; +import org.springframework.transaction.annotation.Transactional; + +/** + * + * Description: + * Date: 2023/7/31 9:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@AllArgsConstructor + +public class CsMarketDataServiceImpl extends ServiceImpl implements CsMarketDataService { + private final CsEngineeringMapper csEngineeringMapper; + private final ICsLedgerService csLedgerService; + @Override + @Transactional(rollbackFor = {Exception.class}) + public Boolean add(List csMarketDataParams) { + QueryWrapper queryWrap = new QueryWrapper<>(); + queryWrap.eq("user_id",csMarketDataParams.get(0).getUserId()); + this.remove(queryWrap); + + csMarketDataParams.forEach(temp->{ + CsMarketData csMarketData =new CsMarketData(); + BeanUtils.copyProperties(temp,csMarketData); + this.save(csMarketData); + }); + + return true; + } + + @Override + public List queryByUseId(String userId) { + List list = this.lambdaQuery().eq(CsMarketData::getUserId, userId).list(); + List collect = list.stream().map(temp -> { + CsMarketDataVO cs = new CsMarketDataVO(); + BeanUtils.copyProperties(temp, cs); + CsEngineeringPO csEngineeringPO = csEngineeringMapper.selectById(temp.getEngineerId()); + cs.setEngineerName(csEngineeringPO.getName()); + return cs; + }).collect(Collectors.toList()); + return collect; + } + + @Override + public List queryEnginnerByUseId(String userId) { + List list = csLedgerService.lambdaQuery().eq(CsLedger::getState, 1).eq(CsLedger::getLevel, 0).list(); + List csMarketDataVOS = this.queryByUseId(userId); + List collect = csMarketDataVOS.stream().map(CsMarketDataVO::getEngineerId).collect(Collectors.toList()); + List collect1 = list.stream().filter(temp -> !collect.contains(temp.getId())).collect(Collectors.toList()); + + return collect1; + } +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java index 5a2f454..73268bd 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RoleEngineerDevServiceImpl.java @@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.csdevice.mapper.*; import com.njcn.csdevice.pojo.po.*; +import com.njcn.csdevice.pojo.vo.CsMarketDataVO; +import com.njcn.csdevice.service.CsLinePOService; +import com.njcn.csdevice.service.CsMarketDataService; import com.njcn.csdevice.service.RoleEngineerDevService; import com.njcn.user.enums.AppRoleEnum; import com.njcn.web.utils.RequestUtil; @@ -32,6 +35,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { private final CsLedgerMapper csLedgerMapper; private final CsEngineeringMapper csEngineeringMapper; private final CsTouristDataPOMapper csTouristDataPOMapper; + private final CsMarketDataMapper csMarketDataMapper; @Override public List getRoleengineer(){ String role = RequestUtil.getUserRole(); @@ -47,7 +51,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { List collect = new ArrayList<>(); if(Objects.equals(role, AppRoleEnum.ENGINEERING_USER.getCode())|| - Objects.equals(role,AppRoleEnum.MARKET_USER.getCode())|| + Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode())){ csDeviceUserPOQueryWrapper.clear(); csEngineeringUserPOQueryWrapper.clear(); @@ -77,8 +81,13 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { return collect; } - } - else if (Objects.equals(role,AppRoleEnum.TOURIST.getCode())) { + } else if ( Objects.equals(role,AppRoleEnum.MARKET_USER.getCode())) { + QueryWrapper csMarketDataQueryWrapper = new QueryWrapper<>(); + csMarketDataQueryWrapper.eq("user_id", userIndex); + List csMarketData = csMarketDataMapper.selectList(csMarketDataQueryWrapper); + collect = csMarketData.stream().map(CsMarketData::getEngineerId).collect(Collectors.toList()); + + } else if (Objects.equals(role,AppRoleEnum.TOURIST.getCode())) { //todo查询配置的游客工程 List csTouristDataPOS = csTouristDataPOMapper.selectList(null); collect = csTouristDataPOS.stream().map(CsTouristDataPO::getEnginerId).distinct().collect(Collectors.toList()); @@ -105,7 +114,6 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { List collect = new ArrayList<>(); if(Objects.equals(role, AppRoleEnum.ENGINEERING_USER.getCode())|| - Objects.equals(role,AppRoleEnum.MARKET_USER.getCode())|| Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode())){ csDeviceUserPOQueryWrapper.clear(); csEngineeringUserPOQueryWrapper.clear(); @@ -121,6 +129,28 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService { List collect1 = csDeviceUserPOS.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList()); return collect1; + } + else if ( Objects.equals(role,AppRoleEnum.MARKET_USER.getCode())) { + QueryWrapper csMarketDataQueryWrapper = new QueryWrapper<>(); + csMarketDataQueryWrapper.eq("user_id", userIndex); + List csMarketData = csMarketDataMapper.selectList(csMarketDataQueryWrapper); + List collect2 = csMarketData.stream().map(CsMarketData::getEngineerId).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(collect2)){ + return collect; + } + csLedgerQueryWrapper.clear(); + csLedgerQueryWrapper.lambda().eq(CsLedger::getLevel, 1).eq(CsLedger::getState, 1).in(CsLedger::getPid, collect2); + List csLedgers = csLedgerMapper.selectList(csLedgerQueryWrapper); + Listcollect1 = csLedgers.stream().map(CsLedger::getId).collect(Collectors.toList()); + + csLedgerQueryWrapper.clear(); + csLedgerQueryWrapper.lambda().eq(CsLedger::getLevel, 2).eq(CsLedger::getState, 1).in(CsLedger::getPid, collect1); + List csLedgers1 = csLedgerMapper.selectList(csLedgerQueryWrapper); + + collect = csLedgers1.stream().map(CsLedger::getId).collect(Collectors.toList()); + + + } else if (Objects.equals(role,AppRoleEnum.TOURIST.getCode())) { diff --git a/cs-warn/cs-warn-boot/src/main/java/com/njcn/cswarn/mapper/CsEventDetailPOMapper.java b/cs-warn/cs-warn-boot/src/main/java/com/njcn/cswarn/mapper/CsEventDetailPOMapper.java index f12d268..df692c2 100644 --- a/cs-warn/cs-warn-boot/src/main/java/com/njcn/cswarn/mapper/CsEventDetailPOMapper.java +++ b/cs-warn/cs-warn-boot/src/main/java/com/njcn/cswarn/mapper/CsEventDetailPOMapper.java @@ -7,6 +7,8 @@ import com.njcn.cswarn.pojo.po.CsEventDetailPO; import com.njcn.cswarn.pojo.vo.CsEventDetailVO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * Description: * Date: 2023/5/17 10:51【需求编号】 @@ -15,5 +17,6 @@ import org.apache.ibatis.annotations.Param; * @version V1.0.0 */ public interface CsEventDetailPOMapper extends BaseMapper { + Page queryPage(Page returnpage, @Param("csEventDetailPageParm") CsEventDetailParm.CsEventDetailPageParm csEventDetailPageParm); } \ No newline at end of file