新增device日志

This commit is contained in:
huangzj
2023-08-08 10:09:13 +08:00
parent 4f954e9469
commit 1a4e894695
18 changed files with 494 additions and 6 deletions

View File

@@ -0,0 +1,70 @@
package com.njcn.csdevice.controller.equipment;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.dto.DeviceLogDTO;
import com.njcn.common.pojo.dto.LogInfoDTO;
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.CsLogsPO;
import com.njcn.csdevice.service.impl.CsLogsPOService;
import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.RequestUtil;
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Description:
* Date: 2023/8/7 14:21【需求编号】
*
* @author clam
* @version V1.0.0
*/
@RestController
@Slf4j
@Api(tags = "日志管理")
@AllArgsConstructor
@RequestMapping("/cslog")
public class CsLogController extends BaseController {
private final CsLogsPOService csLogsPOService;
/**
* 插入审计日志
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD)
@PostMapping("/add")
@ApiOperation("插入设备日志")
@ApiImplicitParam(name = "deviceLogDTO", value = "插入日志参数", required = true)
public HttpResult addUserLog(@RequestBody DeviceLogDTO deviceLogDTO) {
String methodDescribe = getMethodDescribe("addUserLog");
csLogsPOService.addLog(deviceLogDTO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryLog")
@ApiOperation("查询日志")
@ApiImplicitParam(name = "csMarketDataParams", value = "新增营销数据参数", required = true)
public HttpResult<List<CsLogsPO>> queryLog(){
String username = RequestUtil.getUsername();
String methodDescribe = getMethodDescribe("queryLog");
List<CsLogsPO> list = csLogsPOService.lambdaQuery().eq(CsLogsPO::getUserName, username).list();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -5,9 +5,11 @@ 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.enums.DeviceOperate;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.vo.DevCountVO;
import com.njcn.csdevice.service.CsDeviceUserPOService;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -46,6 +48,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/share")
@ApiOperation("设备扫码分享")
@ApiImplicitParam(name = "ids", value = "设备id集合", required = true)
@DeviceLog(operateType = DeviceOperate.SHARE)
public HttpResult<Boolean> share(@RequestParam("ids") List<String> ids){
String methodDescribe = getMethodDescribe("share");
@@ -84,6 +87,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/transfer")
@ApiOperation("设备转移(直接扫码不用申请)")
@ApiImplicitParam(name = "ids", value = "设备Id集合", required = true)
@DeviceLog(operateType = DeviceOperate.TRANSFER)
public HttpResult<Boolean> transfer(@RequestParam("ids") List<String> ids){
String methodDescribe = getMethodDescribe("transfer");
@@ -95,6 +99,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/delete")
@ApiOperation("设备删除")
@ApiImplicitParam(name = "eid", value = "设备Id", required = true)
@DeviceLog(operateType = DeviceOperate.DELETE_1)
public HttpResult<Boolean> delete(@RequestParam("eid") String eid){
String methodDescribe = getMethodDescribe("delete");
@@ -106,6 +111,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/cancelShare")
@ApiOperation("取消分享")
@ApiImplicitParam(name = "eid", value = "设备Id", required = true)
@DeviceLog(operateType = DeviceOperate.CANCELSHARE)
public HttpResult<Boolean> cancelShare(@RequestParam("eid") String eid){
String methodDescribe = getMethodDescribe("cancelShare");

View File

@@ -7,6 +7,7 @@ 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.enums.DeviceOperate;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAddParm;
import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm;
@@ -18,6 +19,7 @@ import com.njcn.csdevice.pojo.vo.DeviceManagerVO;
import com.njcn.csdevice.pojo.vo.ProjectEquipmentVO;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.IMqttUserService;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -55,6 +57,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/addEquipmentDelivery")
@ApiOperation("新增出厂设备")
@ApiImplicitParam(name = "csEquipmentDeliveryAddParm", value = "新增项目参数", required = true)
@DeviceLog(operateType = DeviceOperate.ADD)
public HttpResult<Boolean> addEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm){
String methodDescribe = getMethodDescribe("addEquipmentDelivery");
Boolean flag = csEquipmentDeliveryService.save (csEquipmentDeliveryAddParm);
@@ -69,6 +72,7 @@ public class EquipmentDeliveryController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/AuditEquipmentDelivery")
@ApiOperation("删除出厂设备")
@DeviceLog(operateType = DeviceOperate.DELETE)
public HttpResult<Boolean> AuditEquipmentDelivery(@RequestParam("id")String id ){
String methodDescribe = getMethodDescribe("AuditEquipmentDelivery");
Boolean flag = csEquipmentDeliveryService.AuditEquipmentDelivery(id);
@@ -78,6 +82,7 @@ public class EquipmentDeliveryController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateEquipmentDelivery")
@ApiOperation("修改出厂设备")
@DeviceLog(operateType = DeviceOperate.UPDATE)
@ApiImplicitParam(name = "csEquipmentDeliveryAuditParm", value = "新增项目参数", required = true)
public HttpResult<Boolean> updateEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAuditParm csEquipmentDeliveryAuditParm ){
String methodDescribe = getMethodDescribe("updateEquipmentDelivery");
@@ -91,6 +96,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/queryEquipmentByndid")
@ApiOperation("通过ndid查询出厂设备")
@ApiImplicitParam(name = "ndid", value = "网关识别码", required = true)
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid")String ndid){
String methodDescribe = getMethodDescribe("queryEquipmentByndid");
@@ -101,6 +107,7 @@ public class EquipmentDeliveryController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEquipmentByProject")
@ApiOperation("通过项目查询出厂设备")
@DeviceLog(operateType = DeviceOperate.QUERY)
@ApiImplicitParam(name = "projectEquipmentQueryParm", value = "项目信息", required = true)
public HttpResult<IPage<ProjectEquipmentVO>> queryEquipmentByProject(@RequestBody ProjectEquipmentQueryParm projectEquipmentQueryParm){
String methodDescribe = getMethodDescribe("queryEquipmentByProject");
@@ -115,6 +122,7 @@ public class EquipmentDeliveryController extends BaseController {
@ApiImplicitParam(name = "nDId", value = "网关id", required = true),
@ApiImplicitParam(name = "status", value = "状态", required = true)
})
@DeviceLog(operateType = DeviceOperate.UPDATESTATUSBYNDID)
public HttpResult<Boolean> updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status){
String methodDescribe = getMethodDescribe("updateStatusBynDid");
csEquipmentDeliveryService.updateStatusBynDid(nDid,status);
@@ -124,6 +132,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/queryEquipmentById")
@ApiOperation("设备查询通过id获取")
@ApiImplicitParam(name = "ids", value = "设备id集合", required = true)
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<List<CsEquipmentDeliveryDTO>> queryEquipmentById(@RequestParam List<String> ids){
String methodDescribe = getMethodDescribe("queryEquipmentById");
List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(ids);
@@ -139,6 +148,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/list")
@ApiOperation("出厂设备列表")
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<Page<CsEquipmentDeliveryVO>> list(@RequestBody CsEquipmentDeliveryQueryParm param){
String methodDescribe = getMethodDescribe("list");
Page<CsEquipmentDeliveryVO> page = csEquipmentDeliveryService.list(param);
@@ -153,6 +163,7 @@ public class EquipmentDeliveryController extends BaseController {
@ApiImplicitParam(name = "type", value = "类型", required = true),
@ApiImplicitParam(name = "lineId", value = "监测点id", required = false)
})
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<DeviceManagerVO> getDeviceData(@RequestParam String deviceId,@RequestParam String type,@RequestParam String lineId){
String methodDescribe = getMethodDescribe("getDeviceData");
DeviceManagerVO vo = csEquipmentDeliveryService.getDeviceData(deviceId,type,lineId);

View File

@@ -6,12 +6,14 @@ 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.param.EngineerIdParam;
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 com.njcn.web.utils.RequestUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
@@ -31,7 +33,7 @@ import java.util.List;
*/
@RestController
@Slf4j
@Api(tags = "营销数据配置")
@Api(tags = "营销,工程数据配置")
@AllArgsConstructor
@RequestMapping("/csMarketData")
public class CsMarketDataController extends BaseController {
@@ -39,7 +41,7 @@ public class CsMarketDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增营销数据")
@ApiOperation("新增营销,工程数据")
@ApiImplicitParam(name = "csMarketDataParams", value = "新增营销数据参数", required = true)
public HttpResult<Boolean> add( @RequestBody List<CsMarketDataParam> csMarketDataParams){
String methodDescribe = getMethodDescribe("add");
@@ -47,10 +49,20 @@ public class CsMarketDataController extends BaseController {
Boolean flag = csMarketDataService.add(csMarketDataParams);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/follow")
@ApiOperation("工程人员新增关注")
@ApiImplicitParam(name = "engineerIdParams", value = "新增营销数据参数", required = true)
public HttpResult<Boolean> follow( @RequestBody EngineerIdParam engineerIdParams){
String methodDescribe = getMethodDescribe("follow");
Boolean flag = csMarketDataService.follow(engineerIdParams);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/remove")
@ApiOperation("移除营销数据")
@ApiOperation("移除营销,工程数据")
// @ApiImplicitParam(name = "ids", value = "删除id集合", required = true)
public HttpResult<Boolean> remove(@RequestParam("ids") List<String> ids){
String methodDescribe = getMethodDescribe("remove");
@@ -60,7 +72,7 @@ public class CsMarketDataController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryByUseId")
@ApiOperation("查询营销数据")
@ApiOperation("查询营销,工程数据")
public HttpResult<List<CsMarketDataVO>> queryByUseId(@RequestParam("userId")String userId){
String methodDescribe = getMethodDescribe("queryByUseId");
@@ -70,11 +82,21 @@ public class CsMarketDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEnginnerByUseId")
@ApiOperation("查询营销人员未选择的工程")
@ApiOperation("查询营销,工程人员未选择的工程")
public HttpResult<List<CsLedger>> queryEnginnerByUseId(@RequestParam("userId")String userId){
String methodDescribe = getMethodDescribe("queryByUseId");
List<CsLedger> list = csMarketDataService.queryEnginnerByUseId(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryAllEnginner")
@ApiOperation("查询营销,工程人员工程")
public HttpResult<List<CsMarketDataVO>> queryAllEnginner(){
String methodDescribe = getMethodDescribe("queryAllEnginner");
String userId = RequestUtil.getUserIndex();
List<CsMarketDataVO> list = csMarketDataService.queryAllEnginner(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -0,0 +1,50 @@
package com.njcn.csdevice.handler;
import com.github.tocrhz.mqtt.annotation.MqttSubscribe;
import com.github.tocrhz.mqtt.annotation.Payload;
import com.github.tocrhz.mqtt.publisher.MqttPublisher;
import com.njcn.common.pojo.dto.DeviceLogDTO;
import com.njcn.common.utils.PubUtils;
import com.njcn.csdevice.service.impl.CsLogsPOService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author xuyang
* @version 1.0.0
* @date 2023年06月10日 09:41
*/
@Slf4j
@Component
@AllArgsConstructor
public class MqttMessageHandler {
private final CsLogsPOService csLogsPOService;
/**
* 插入devicelog
*/
@MqttSubscribe(value = "/deviceLog")
public void responseRtData(String topic, MqttMessage message, @Payload String payload) {
DeviceLogDTO deviceLogDTO = PubUtils.json2obj(new String(message.getPayload(), StandardCharsets.UTF_8),DeviceLogDTO.class);
csLogsPOService.addLog(deviceLogDTO);
}
}

View File

@@ -0,0 +1,15 @@
package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.pojo.po.CsLogsPO;
/**
*
* Description:
* Date: 2023/8/7 14:02【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsLogsPOMapper extends BaseMapper<CsLogsPO> {
}

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.csdevice.mapper.CsLogsPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.csdevice.pojo.po.CsLogsPO">
<!--@mbg.generated-->
<!--@Table cs_logs-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="user_name" jdbcType="VARCHAR" property="userName" />
<result column="operate" jdbcType="VARCHAR" property="operate" />
<result column="result" jdbcType="INTEGER" property="result" />
<result column="fail_reason" jdbcType="VARCHAR" property="failReason" />
<result column="create_by" jdbcType="CHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="CHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="login_name" jdbcType="VARCHAR" property="loginName" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, user_name, operate, `result`, fail_reason, create_by, create_time, update_by,
update_time, login_name
</sql>
</mapper>

View File

@@ -0,0 +1,35 @@
package com.njcn.csdevice.service;
import com.njcn.common.pojo.dto.DeviceLogDTO;
import com.njcn.web.utils.RequestUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsLogsPOMapper;
import com.njcn.csdevice.pojo.po.CsLogsPO;
import com.njcn.csdevice.service.impl.CsLogsPOService;
import org.springframework.transaction.annotation.Transactional;
/**
*
* Description:
* Date: 2023/8/7 14:02【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CsLogsPOServiceImpl extends ServiceImpl<CsLogsPOMapper, CsLogsPO> implements CsLogsPOService{
@Override
// @Transactional(rollbackFor = {Exception.class})
public void addLog(DeviceLogDTO deviceLogDTO) {
CsLogsPO csPO = new CsLogsPO();
BeanUtils.copyProperties(deviceLogDTO,csPO);
csPO.setCreateBy(deviceLogDTO.getUserIndex());
csPO.setUpdateBy(deviceLogDTO.getUserIndex());
this.save(csPO);
}
}

View File

@@ -2,6 +2,7 @@ package com.njcn.csdevice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.param.CsMarketDataParam;
import com.njcn.csdevice.pojo.param.EngineerIdParam;
import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.po.CsLineTopologyTemplate;
import com.njcn.csdevice.pojo.po.CsMarketData;
@@ -26,4 +27,7 @@ public interface CsMarketDataService extends IService<CsMarketData> {
List<CsLedger> queryEnginnerByUseId(String userId);
List<CsMarketDataVO> queryAllEnginner(String userId);
Boolean follow(EngineerIdParam engineerIdParams);
}

View File

@@ -12,9 +12,11 @@ import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.mapper.CsDeviceUserPOMapper;
import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper;
import com.njcn.csdevice.mapper.CsLedgerMapper;
import com.njcn.csdevice.mapper.CsMarketDataMapper;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.po.CsMarketData;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.pojo.vo.DevCountVO;
import com.njcn.csdevice.service.CsDeviceUserPOService;
@@ -55,6 +57,7 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl<CsDeviceUserPOMapper,
// private final CsEquipmentAlarmFeignClient csEquipmentAlarmFeignClient;
private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper;
private final RoleEngineerDevService roleEngineerDevService;
private CsMarketDataMapper csMarketDataMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean add(String id) {
@@ -218,6 +221,28 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl<CsDeviceUserPOMapper,
this.lambdaUpdate().eq(CsDeviceUserPO::getDeviceId, eid).eq(CsDeviceUserPO::getStatus,"1" ).apply("primary_user_id<>sub_user_id").set(CsDeviceUserPO::getPrimaryUserId,userIndex).update();
});
//工程人员接受到移交设备,默认把工程加入关注列表
String role = RequestUtil.getUserRole();
List<String> strings = JSONArray.parseArray(role, String.class);
if(CollectionUtils.isEmpty(strings)){
throw new BusinessException(AlgorithmResponseEnum.UNKNOW_ROLE);
}
List<CsLedger> list = iCsLedgerService.lambdaQuery().in(CsLedger::getId, ids).list();
String[] split = list.get(0).getPids().split(",");
role=strings.get(0);
if(Objects.equals(role, AppRoleEnum.ENGINEERING_USER.getCode())){
CsMarketData csMarketData = new CsMarketData();
csMarketData.setEngineerId(split[1]);
csMarketData.setUserId(RequestUtil.getUserIndex());
QueryWrapper<CsMarketData> queryWrap = new QueryWrapper<>();
queryWrap.setEntity(csMarketData);
List<CsMarketData> csMarketData1 = csMarketDataMapper.selectList(queryWrap);
if(CollectionUtils.isEmpty(csMarketData1)){
csMarketDataMapper.insert(csMarketData);
}
}

View File

@@ -70,8 +70,14 @@ public class CsEngineeringServiceImpl extends ServiceImpl<CsEngineeringMapper, C
public Boolean addEngineering(CsEngineeringAddParm csEngineeringAddParm) {
CsEngineeringPO csEngineeringPO = new CsEngineeringPO ();
BeanUtils.copyProperties (csEngineeringAddParm, csEngineeringPO);
csEngineeringPO.setStatus ("1");
boolean save = this.save (csEngineeringPO);
List<CsEngineeringPO> list = this.lambdaQuery().eq(CsEngineeringPO::getName, csEngineeringAddParm.getName()).eq(CsEngineeringPO::getStatus, "1").list();
if(list.size()>1){
throw new BusinessException("工程名重复");
}
CsLedger csLedger1 = new CsLedger();
csLedger1.setId(csEngineeringPO.getId());
csLedger1.setPid("0");
@@ -128,6 +134,11 @@ public class CsEngineeringServiceImpl extends ServiceImpl<CsEngineeringMapper, C
csLedger1.setName(csEngineeringAuditParm.getName());
}
csLedgerMapper.updateById(csLedger1);
List<CsEngineeringPO> list = this.lambdaQuery().eq(CsEngineeringPO::getName, csEngineeringAuditParm.getName()).eq(CsEngineeringPO::getStatus, "1").list();
if(list.size()>1){
throw new BusinessException("工程名重复");
}
return b;
}

View File

@@ -0,0 +1,18 @@
package com.njcn.csdevice.service.impl;
import com.njcn.common.pojo.dto.DeviceLogDTO;
import com.njcn.csdevice.pojo.po.CsLogsPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* Date: 2023/8/7 14:02【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsLogsPOService extends IService<CsLogsPO>{
void addLog(DeviceLogDTO deviceLogDTO);
}

View File

@@ -3,15 +3,18 @@ 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.param.EngineerIdParam;
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 com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -72,4 +75,44 @@ public class CsMarketDataServiceImpl extends ServiceImpl<CsMarketDataMapper, CsM
return collect1;
}
@Override
public List<CsMarketDataVO> queryAllEnginner(String userId) {
List<CsMarketDataVO> result = new ArrayList<>();
List<CsLedger> list = csLedgerService.lambdaQuery().eq(CsLedger::getState, 1).eq(CsLedger::getLevel, 0).list();
List<CsMarketDataVO> csMarketDataVOS = this.queryByUseId(userId);
List<String> collect = csMarketDataVOS.stream().map(CsMarketDataVO::getEngineerId).collect(Collectors.toList());
List<CsLedger> collect1 = list.stream().filter(temp -> !collect.contains(temp.getId())).collect(Collectors.toList());
csMarketDataVOS.forEach(temp->{
temp.setIsSelect("1");
result.add(temp);
});
collect1.forEach(temp->{
CsMarketDataVO vo= new CsMarketDataVO();
vo.setEngineerName(temp.getName());
vo.setEngineerId(temp.getId());
vo.setIsSelect("0");
result.add(vo);
});
return result;
}
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean follow(EngineerIdParam engineerIdParams) {
String userIndex = RequestUtil.getUserIndex();
QueryWrapper<CsMarketData> queryWrap = new QueryWrapper<>();
queryWrap.eq("user_id",userIndex);
this.remove(queryWrap);
List<CsMarketData> csMarketData = new ArrayList<>();
engineerIdParams.getEngineerIds().forEach(temp->{
CsMarketData cs = new CsMarketData();
cs.setEngineerId(temp);
cs.setUserId(userIndex);
csMarketData.add(cs);
});
this.saveBatch(csMarketData,20);
return true;
}
}