新增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,27 @@
package com.njcn.csdevice.enums;
import lombok.Getter;
/**
* Description:
* Date: 2023/8/7 19:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface DeviceOperate {
String QUERY = "查询出厂设备";
String UPDATESTATUSBYNDID="根据网关id调整设备接入状态";
String ADD = "新增出厂设备";
String DELETE = "删除出厂设备";
String UPDATE = "修改出厂设备";
String SHARE ="设备扫码分享";
String TRANSFER ="设备转移";
String DELETE_1 ="设备删除";
String CANCELSHARE ="取消分享";
}

View File

@@ -68,7 +68,7 @@ public class CsEdDataAddParm {
* 版本类型 * 版本类型
*/ */
@ApiModelProperty(value = "版本类型") @ApiModelProperty(value = "版本类型")
@NotBlank(message="版本类型不能为空!") // @NotBlank(message="版本类型不能为空!")
private String versionType; private String versionType;
@ApiModelProperty(value = "crc信息") @ApiModelProperty(value = "crc信息")

View File

@@ -0,0 +1,19 @@
package com.njcn.csdevice.pojo.param;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
* Description:
* Date: 2023/8/7 15:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@ApiModel(value = "关注工程集合app端需用对象包")
public class EngineerIdParam {
private List<String> engineerIds;
}

View File

@@ -0,0 +1,106 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
*
* Description:
* Date: 2023/8/7 14:02【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@TableName(value = "cs_logs")
public class CsLogsPO {
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
/**
* 用户名称
*/
@TableField(value = "user_name")
private String userName;
/**
* 操作
*/
@TableField(value = "operate")
private String operate;
/**
* 结果(0:失败 1:成功)
*/
@TableField(value = "`result`")
private Integer result;
/**
* 失败原因
*/
@TableField(value = "fail_reason")
private String failReason;
/**
* 登录名称
*/
@TableField(value = "login_name")
private String loginName;
/**
* 创建用户
*/
@TableField(fill = FieldFill.INSERT, insertStrategy = FieldStrategy.IGNORED)
private String createBy;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT, insertStrategy = FieldStrategy.IGNORED)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 更新用户
*/
@TableField(fill = FieldFill.INSERT_UPDATE, insertStrategy = FieldStrategy.IGNORED)
private String updateBy;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE, insertStrategy = FieldStrategy.IGNORED)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
public static final String COL_ID = "id";
public static final String COL_USER_NAME = "user_name";
public static final String COL_OPERATE = "operate";
public static final String COL_RESULT = "result";
public static final String COL_FAIL_REASON = "fail_reason";
public static final String COL_CREATE_BY = "create_by";
public static final String COL_CREATE_TIME = "create_time";
public static final String COL_UPDATE_BY = "update_by";
public static final String COL_UPDATE_TIME = "update_time";
public static final String COL_LOGIN_NAME = "login_name";
}

View File

@@ -31,4 +31,7 @@ public class CsMarketDataVO {
private String engineerId; private String engineerId;
private String engineerName; private String engineerName;
/*
* 0未选择1已选择*/
private String isSelect;
} }

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.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.enums.DeviceOperate;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO; import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.vo.DevCountVO; import com.njcn.csdevice.pojo.vo.DevCountVO;
import com.njcn.csdevice.service.CsDeviceUserPOService; import com.njcn.csdevice.service.CsDeviceUserPOService;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -46,6 +48,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/share") @PostMapping("/share")
@ApiOperation("设备扫码分享") @ApiOperation("设备扫码分享")
@ApiImplicitParam(name = "ids", value = "设备id集合", required = true) @ApiImplicitParam(name = "ids", value = "设备id集合", required = true)
@DeviceLog(operateType = DeviceOperate.SHARE)
public HttpResult<Boolean> share(@RequestParam("ids") List<String> ids){ public HttpResult<Boolean> share(@RequestParam("ids") List<String> ids){
String methodDescribe = getMethodDescribe("share"); String methodDescribe = getMethodDescribe("share");
@@ -84,6 +87,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/transfer") @PostMapping("/transfer")
@ApiOperation("设备转移(直接扫码不用申请)") @ApiOperation("设备转移(直接扫码不用申请)")
@ApiImplicitParam(name = "ids", value = "设备Id集合", required = true) @ApiImplicitParam(name = "ids", value = "设备Id集合", required = true)
@DeviceLog(operateType = DeviceOperate.TRANSFER)
public HttpResult<Boolean> transfer(@RequestParam("ids") List<String> ids){ public HttpResult<Boolean> transfer(@RequestParam("ids") List<String> ids){
String methodDescribe = getMethodDescribe("transfer"); String methodDescribe = getMethodDescribe("transfer");
@@ -95,6 +99,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/delete") @PostMapping("/delete")
@ApiOperation("设备删除") @ApiOperation("设备删除")
@ApiImplicitParam(name = "eid", value = "设备Id", required = true) @ApiImplicitParam(name = "eid", value = "设备Id", required = true)
@DeviceLog(operateType = DeviceOperate.DELETE_1)
public HttpResult<Boolean> delete(@RequestParam("eid") String eid){ public HttpResult<Boolean> delete(@RequestParam("eid") String eid){
String methodDescribe = getMethodDescribe("delete"); String methodDescribe = getMethodDescribe("delete");
@@ -106,6 +111,7 @@ public class DeviceUserController extends BaseController {
@PostMapping("/cancelShare") @PostMapping("/cancelShare")
@ApiOperation("取消分享") @ApiOperation("取消分享")
@ApiImplicitParam(name = "eid", value = "设备Id", required = true) @ApiImplicitParam(name = "eid", value = "设备Id", required = true)
@DeviceLog(operateType = DeviceOperate.CANCELSHARE)
public HttpResult<Boolean> cancelShare(@RequestParam("eid") String eid){ public HttpResult<Boolean> cancelShare(@RequestParam("eid") String eid){
String methodDescribe = getMethodDescribe("cancelShare"); 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.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.enums.DeviceOperate;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO; import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAddParm; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAddParm;
import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm; 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.pojo.vo.ProjectEquipmentVO;
import com.njcn.csdevice.service.CsEquipmentDeliveryService; import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.IMqttUserService; import com.njcn.csdevice.service.IMqttUserService;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -55,6 +57,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/addEquipmentDelivery") @PostMapping("/addEquipmentDelivery")
@ApiOperation("新增出厂设备") @ApiOperation("新增出厂设备")
@ApiImplicitParam(name = "csEquipmentDeliveryAddParm", value = "新增项目参数", required = true) @ApiImplicitParam(name = "csEquipmentDeliveryAddParm", value = "新增项目参数", required = true)
@DeviceLog(operateType = DeviceOperate.ADD)
public HttpResult<Boolean> addEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm){ public HttpResult<Boolean> addEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm){
String methodDescribe = getMethodDescribe("addEquipmentDelivery"); String methodDescribe = getMethodDescribe("addEquipmentDelivery");
Boolean flag = csEquipmentDeliveryService.save (csEquipmentDeliveryAddParm); Boolean flag = csEquipmentDeliveryService.save (csEquipmentDeliveryAddParm);
@@ -69,6 +72,7 @@ public class EquipmentDeliveryController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/AuditEquipmentDelivery") @PostMapping("/AuditEquipmentDelivery")
@ApiOperation("删除出厂设备") @ApiOperation("删除出厂设备")
@DeviceLog(operateType = DeviceOperate.DELETE)
public HttpResult<Boolean> AuditEquipmentDelivery(@RequestParam("id")String id ){ public HttpResult<Boolean> AuditEquipmentDelivery(@RequestParam("id")String id ){
String methodDescribe = getMethodDescribe("AuditEquipmentDelivery"); String methodDescribe = getMethodDescribe("AuditEquipmentDelivery");
Boolean flag = csEquipmentDeliveryService.AuditEquipmentDelivery(id); Boolean flag = csEquipmentDeliveryService.AuditEquipmentDelivery(id);
@@ -78,6 +82,7 @@ public class EquipmentDeliveryController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateEquipmentDelivery") @PostMapping("/updateEquipmentDelivery")
@ApiOperation("修改出厂设备") @ApiOperation("修改出厂设备")
@DeviceLog(operateType = DeviceOperate.UPDATE)
@ApiImplicitParam(name = "csEquipmentDeliveryAuditParm", value = "新增项目参数", required = true) @ApiImplicitParam(name = "csEquipmentDeliveryAuditParm", value = "新增项目参数", required = true)
public HttpResult<Boolean> updateEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAuditParm csEquipmentDeliveryAuditParm ){ public HttpResult<Boolean> updateEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAuditParm csEquipmentDeliveryAuditParm ){
String methodDescribe = getMethodDescribe("updateEquipmentDelivery"); String methodDescribe = getMethodDescribe("updateEquipmentDelivery");
@@ -91,6 +96,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/queryEquipmentByndid") @PostMapping("/queryEquipmentByndid")
@ApiOperation("通过ndid查询出厂设备") @ApiOperation("通过ndid查询出厂设备")
@ApiImplicitParam(name = "ndid", value = "网关识别码", required = true) @ApiImplicitParam(name = "ndid", value = "网关识别码", required = true)
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid")String ndid){ public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid")String ndid){
String methodDescribe = getMethodDescribe("queryEquipmentByndid"); String methodDescribe = getMethodDescribe("queryEquipmentByndid");
@@ -101,6 +107,7 @@ public class EquipmentDeliveryController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEquipmentByProject") @PostMapping("/queryEquipmentByProject")
@ApiOperation("通过项目查询出厂设备") @ApiOperation("通过项目查询出厂设备")
@DeviceLog(operateType = DeviceOperate.QUERY)
@ApiImplicitParam(name = "projectEquipmentQueryParm", value = "项目信息", required = true) @ApiImplicitParam(name = "projectEquipmentQueryParm", value = "项目信息", required = true)
public HttpResult<IPage<ProjectEquipmentVO>> queryEquipmentByProject(@RequestBody ProjectEquipmentQueryParm projectEquipmentQueryParm){ public HttpResult<IPage<ProjectEquipmentVO>> queryEquipmentByProject(@RequestBody ProjectEquipmentQueryParm projectEquipmentQueryParm){
String methodDescribe = getMethodDescribe("queryEquipmentByProject"); String methodDescribe = getMethodDescribe("queryEquipmentByProject");
@@ -115,6 +122,7 @@ public class EquipmentDeliveryController extends BaseController {
@ApiImplicitParam(name = "nDId", value = "网关id", required = true), @ApiImplicitParam(name = "nDId", value = "网关id", required = true),
@ApiImplicitParam(name = "status", value = "状态", required = true) @ApiImplicitParam(name = "status", value = "状态", required = true)
}) })
@DeviceLog(operateType = DeviceOperate.UPDATESTATUSBYNDID)
public HttpResult<Boolean> updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status){ public HttpResult<Boolean> updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status){
String methodDescribe = getMethodDescribe("updateStatusBynDid"); String methodDescribe = getMethodDescribe("updateStatusBynDid");
csEquipmentDeliveryService.updateStatusBynDid(nDid,status); csEquipmentDeliveryService.updateStatusBynDid(nDid,status);
@@ -124,6 +132,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/queryEquipmentById") @PostMapping("/queryEquipmentById")
@ApiOperation("设备查询通过id获取") @ApiOperation("设备查询通过id获取")
@ApiImplicitParam(name = "ids", value = "设备id集合", required = true) @ApiImplicitParam(name = "ids", value = "设备id集合", required = true)
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<List<CsEquipmentDeliveryDTO>> queryEquipmentById(@RequestParam List<String> ids){ public HttpResult<List<CsEquipmentDeliveryDTO>> queryEquipmentById(@RequestParam List<String> ids){
String methodDescribe = getMethodDescribe("queryEquipmentById"); String methodDescribe = getMethodDescribe("queryEquipmentById");
List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(ids); List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(ids);
@@ -139,6 +148,7 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("出厂设备列表") @ApiOperation("出厂设备列表")
@ApiImplicitParam(name = "param", value = "查询参数", required = true) @ApiImplicitParam(name = "param", value = "查询参数", required = true)
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<Page<CsEquipmentDeliveryVO>> list(@RequestBody CsEquipmentDeliveryQueryParm param){ public HttpResult<Page<CsEquipmentDeliveryVO>> list(@RequestBody CsEquipmentDeliveryQueryParm param){
String methodDescribe = getMethodDescribe("list"); String methodDescribe = getMethodDescribe("list");
Page<CsEquipmentDeliveryVO> page = csEquipmentDeliveryService.list(param); Page<CsEquipmentDeliveryVO> page = csEquipmentDeliveryService.list(param);
@@ -153,6 +163,7 @@ public class EquipmentDeliveryController extends BaseController {
@ApiImplicitParam(name = "type", value = "类型", required = true), @ApiImplicitParam(name = "type", value = "类型", required = true),
@ApiImplicitParam(name = "lineId", value = "监测点id", required = false) @ApiImplicitParam(name = "lineId", value = "监测点id", required = false)
}) })
@DeviceLog(operateType = DeviceOperate.QUERY)
public HttpResult<DeviceManagerVO> getDeviceData(@RequestParam String deviceId,@RequestParam String type,@RequestParam String lineId){ public HttpResult<DeviceManagerVO> getDeviceData(@RequestParam String deviceId,@RequestParam String type,@RequestParam String lineId){
String methodDescribe = getMethodDescribe("getDeviceData"); String methodDescribe = getMethodDescribe("getDeviceData");
DeviceManagerVO vo = csEquipmentDeliveryService.getDeviceData(deviceId,type,lineId); 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.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.param.CsMarketDataParam; 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.CsLedger;
import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.pojo.vo.CsMarketDataVO; import com.njcn.csdevice.pojo.vo.CsMarketDataVO;
import com.njcn.csdevice.service.CsLinePOService; import com.njcn.csdevice.service.CsLinePOService;
import com.njcn.csdevice.service.CsMarketDataService; import com.njcn.csdevice.service.CsMarketDataService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.RequestUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -31,7 +33,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Slf4j @Slf4j
@Api(tags = "营销数据配置") @Api(tags = "营销,工程数据配置")
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/csMarketData") @RequestMapping("/csMarketData")
public class CsMarketDataController extends BaseController { public class CsMarketDataController extends BaseController {
@@ -39,7 +41,7 @@ public class CsMarketDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add") @PostMapping("/add")
@ApiOperation("新增营销数据") @ApiOperation("新增营销,工程数据")
@ApiImplicitParam(name = "csMarketDataParams", value = "新增营销数据参数", required = true) @ApiImplicitParam(name = "csMarketDataParams", value = "新增营销数据参数", required = true)
public HttpResult<Boolean> add( @RequestBody List<CsMarketDataParam> csMarketDataParams){ public HttpResult<Boolean> add( @RequestBody List<CsMarketDataParam> csMarketDataParams){
String methodDescribe = getMethodDescribe("add"); String methodDescribe = getMethodDescribe("add");
@@ -47,10 +49,20 @@ public class CsMarketDataController extends BaseController {
Boolean flag = csMarketDataService.add(csMarketDataParams); Boolean flag = csMarketDataService.add(csMarketDataParams);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); 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) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/remove") @PostMapping("/remove")
@ApiOperation("移除营销数据") @ApiOperation("移除营销,工程数据")
// @ApiImplicitParam(name = "ids", value = "删除id集合", required = true) // @ApiImplicitParam(name = "ids", value = "删除id集合", required = true)
public HttpResult<Boolean> remove(@RequestParam("ids") List<String> ids){ public HttpResult<Boolean> remove(@RequestParam("ids") List<String> ids){
String methodDescribe = getMethodDescribe("remove"); String methodDescribe = getMethodDescribe("remove");
@@ -60,7 +72,7 @@ public class CsMarketDataController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryByUseId") @PostMapping("/queryByUseId")
@ApiOperation("查询营销数据") @ApiOperation("查询营销,工程数据")
public HttpResult<List<CsMarketDataVO>> queryByUseId(@RequestParam("userId")String userId){ public HttpResult<List<CsMarketDataVO>> queryByUseId(@RequestParam("userId")String userId){
String methodDescribe = getMethodDescribe("queryByUseId"); String methodDescribe = getMethodDescribe("queryByUseId");
@@ -70,11 +82,21 @@ public class CsMarketDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEnginnerByUseId") @PostMapping("/queryEnginnerByUseId")
@ApiOperation("查询营销人员未选择的工程") @ApiOperation("查询营销,工程人员未选择的工程")
public HttpResult<List<CsLedger>> queryEnginnerByUseId(@RequestParam("userId")String userId){ public HttpResult<List<CsLedger>> queryEnginnerByUseId(@RequestParam("userId")String userId){
String methodDescribe = getMethodDescribe("queryByUseId"); String methodDescribe = getMethodDescribe("queryByUseId");
List<CsLedger> list = csMarketDataService.queryEnginnerByUseId(userId); List<CsLedger> list = csMarketDataService.queryEnginnerByUseId(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); 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.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.param.CsMarketDataParam; 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.CsLedger;
import com.njcn.csdevice.pojo.po.CsLineTopologyTemplate; import com.njcn.csdevice.pojo.po.CsLineTopologyTemplate;
import com.njcn.csdevice.pojo.po.CsMarketData; import com.njcn.csdevice.pojo.po.CsMarketData;
@@ -26,4 +27,7 @@ public interface CsMarketDataService extends IService<CsMarketData> {
List<CsLedger> queryEnginnerByUseId(String userId); 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.CsDeviceUserPOMapper;
import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper; import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper;
import com.njcn.csdevice.mapper.CsLedgerMapper; 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.CsDeviceUserPO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLedger; 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.CsLedgerVO;
import com.njcn.csdevice.pojo.vo.DevCountVO; import com.njcn.csdevice.pojo.vo.DevCountVO;
import com.njcn.csdevice.service.CsDeviceUserPOService; import com.njcn.csdevice.service.CsDeviceUserPOService;
@@ -55,6 +57,7 @@ public class CsDeviceUserPOServiceImpl extends ServiceImpl<CsDeviceUserPOMapper,
// private final CsEquipmentAlarmFeignClient csEquipmentAlarmFeignClient; // private final CsEquipmentAlarmFeignClient csEquipmentAlarmFeignClient;
private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper; private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper;
private final RoleEngineerDevService roleEngineerDevService; private final RoleEngineerDevService roleEngineerDevService;
private CsMarketDataMapper csMarketDataMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean add(String id) { 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(); 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) { public Boolean addEngineering(CsEngineeringAddParm csEngineeringAddParm) {
CsEngineeringPO csEngineeringPO = new CsEngineeringPO (); CsEngineeringPO csEngineeringPO = new CsEngineeringPO ();
BeanUtils.copyProperties (csEngineeringAddParm, csEngineeringPO); BeanUtils.copyProperties (csEngineeringAddParm, csEngineeringPO);
csEngineeringPO.setStatus ("1"); csEngineeringPO.setStatus ("1");
boolean save = this.save (csEngineeringPO); 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(); CsLedger csLedger1 = new CsLedger();
csLedger1.setId(csEngineeringPO.getId()); csLedger1.setId(csEngineeringPO.getId());
csLedger1.setPid("0"); csLedger1.setPid("0");
@@ -128,6 +134,11 @@ public class CsEngineeringServiceImpl extends ServiceImpl<CsEngineeringMapper, C
csLedger1.setName(csEngineeringAuditParm.getName()); csLedger1.setName(csEngineeringAuditParm.getName());
} }
csLedgerMapper.updateById(csLedger1); 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; 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.csdevice.mapper.CsEngineeringMapper; import com.njcn.csdevice.mapper.CsEngineeringMapper;
import com.njcn.csdevice.pojo.param.CsMarketDataParam; 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.CsEngineeringPO;
import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.vo.CsMarketDataVO; import com.njcn.csdevice.pojo.vo.CsMarketDataVO;
import com.njcn.csdevice.service.CsMarketDataService; import com.njcn.csdevice.service.CsMarketDataService;
import com.njcn.csdevice.service.ICsLedgerService; import com.njcn.csdevice.service.ICsLedgerService;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -72,4 +75,44 @@ public class CsMarketDataServiceImpl extends ServiceImpl<CsMarketDataMapper, CsM
return collect1; 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;
}
} }