Commit b4e07da8 authored by DESKTOP-BQLVS7A\admin's avatar DESKTOP-BQLVS7A\admin

Merge remote-tracking branch 'origin/develop_dl_plan6' into develop_dl_plan6

# Conflicts: # amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/service/SubmitRecordService.java # amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/service/impl/SubmitRecordServiceImpl.java
parents 643e1e27 b5a58875
...@@ -83,13 +83,24 @@ public class ControllerAop { ...@@ -83,13 +83,24 @@ public class ControllerAop {
// 不需要添加请求头的接口 // 不需要添加请求头的接口
String[] url = new String[]{"/api/user/save/curCompany", "/jcs/command/lookHtmlText", String[] url = new String[]{"/api/user/save/curCompany", "/jcs/command/lookHtmlText",
"/jcs/common/duty-person/findByDutyAreaId", "/tzs/wechatBack", "/tzs/elevator/getElevatorInfo", "/jcs/common/duty-person/findByDutyAreaId", "/tzs/wechatBack", "/tzs/elevator/getElevatorInfo",
"/openapi/bizToken/applyToken","/fire-patrol-report/download","/fire-patrol-report/allPage","/jcs/excel/export/QDSJ"}; "/openapi/bizToken/applyToken","/fire-patrol-report/download","/fire-patrol-report/allPage"};
// 获取请求路径 // 获取请求路径
for (String uri : url) { for (String uri : url) {
if (request.getRequestURI().indexOf(uri) != -1) { if (request.getRequestURI().indexOf(uri) != -1) {
return; return;
} }
} }
// 因前端组件下载时不通过url请求,导致RequestContext取不到值,所以针对这个接口特殊处理
if (request.getRequestURI().indexOf("/jcs/excel/export/QDSJ") != -1) {
String appKey = request.getHeader("appKey");
String product = request.getHeader("product");
String token = request.getHeader("token");
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
}
//TODO tyboot 框架拦截器已缓存数据 //TODO tyboot 框架拦截器已缓存数据
String token = RequestContext.getToken(); String token = RequestContext.getToken();
......
...@@ -137,7 +137,7 @@ public class OrgUsrExcelDto extends BaseDto { ...@@ -137,7 +137,7 @@ public class OrgUsrExcelDto extends BaseDto {
private String telephone; //联系电话 private String telephone; //联系电话
@ExcelProperty(value = "人员类型", index = 15) @ExcelProperty(value = "人员类型", index = 15)
@ExplicitConstraint(type = "DWRYLX", indexNum =15, sourceClass = CommonExplicitConstraint.class) //动态下拉内 @ExplicitConstraint( indexNum =15, type = "DLRYLX", sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String peopleType; //人员类型 private String peopleType; //人员类型
@ExplicitConstraint(indexNum = 16, sourceClass = CommonExplicitConstraint.class, method = "getNations") //固定下拉内容 @ExplicitConstraint(indexNum = 16, sourceClass = CommonExplicitConstraint.class, method = "getNations") //固定下拉内容
......
...@@ -59,7 +59,7 @@ public class PeopleBasicInfoDto { ...@@ -59,7 +59,7 @@ public class PeopleBasicInfoDto {
private String certificatesNumber; private String certificatesNumber;
@ApiModelProperty(value = "出生日期") @ApiModelProperty(value = "出生日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
private Date birthdayTime; private Date birthdayTime;
@ApiModelProperty(value = "性别") @ApiModelProperty(value = "性别")
......
...@@ -223,4 +223,7 @@ public class EquipmentSpecificAlarmLog extends BaseEntity { ...@@ -223,4 +223,7 @@ public class EquipmentSpecificAlarmLog extends BaseEntity {
@ApiModelProperty(value = "是否是缺陷提交确认", notes = "是否是缺陷提交确认") @ApiModelProperty(value = "是否是缺陷提交确认", notes = "是否是缺陷提交确认")
@TableField(exist = false) @TableField(exist = false)
private boolean addDefect; private boolean addDefect;
@TableField(value = "defect_batch_id")
private String defectBatchId;
} }
...@@ -3087,6 +3087,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -3087,6 +3087,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
} }
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance(); DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance); BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance);
// 修改bug 8364
if ("gender".equals(dynamicFormInstance.getFieldCode())){
dynamicFormInstance.setFieldValueLabel("346".equals(String.valueOf(dynamicFormInstance.getFieldValue()))?"男":"女");
}
dynamicFormInstancelist.add(dynamicFormInstance); dynamicFormInstancelist.add(dynamicFormInstance);
}); });
......
...@@ -23,7 +23,6 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType; ...@@ -23,7 +23,6 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.text.ParseException; import java.text.ParseException;
......
...@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
import com.yeejoin.equipmanage.common.entity.MonitorEvent; import com.yeejoin.equipmanage.common.entity.MonitorEvent;
import com.yeejoin.equipmanage.common.entity.publics.CommonResponse;
import com.yeejoin.equipmanage.common.entity.vo.IdxBizDefectVo; import com.yeejoin.equipmanage.common.entity.vo.IdxBizDefectVo;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.fegin.IdxFeign; import com.yeejoin.equipmanage.fegin.IdxFeign;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper; import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper;
import com.yeejoin.equipmanage.service.IConfirmAlarmService; import com.yeejoin.equipmanage.service.IConfirmAlarmService;
...@@ -52,10 +54,10 @@ public class ConfirmAlarmController extends AbstractBaseController { ...@@ -52,10 +54,10 @@ public class ConfirmAlarmController extends AbstractBaseController {
@PostMapping(value = "/confirmAlam") @PostMapping(value = "/confirmAlam")
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "保存") @ApiOperation(value = "保存")
public void confirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) { public ResponseModel confirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) {
String appKey = getAppKey(); String appKey = getAppKey();
String product = getProduct(); String product = getProduct();
iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId()); return CommonResponseUtil.success(iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId()));
} }
@PostMapping(value = "/addConfirmAlam") @PostMapping(value = "/addConfirmAlam")
...@@ -64,7 +66,6 @@ public class ConfirmAlarmController extends AbstractBaseController { ...@@ -64,7 +66,6 @@ public class ConfirmAlarmController extends AbstractBaseController {
public void addConfirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) { public void addConfirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) {
String appKey = getAppKey(); String appKey = getAppKey();
String product = getProduct(); String product = getProduct();
String token = getToken();
iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId()); iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId());
} }
...@@ -110,7 +111,7 @@ public class ConfirmAlarmController extends AbstractBaseController { ...@@ -110,7 +111,7 @@ public class ConfirmAlarmController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "缺陷处理状态") @ApiOperation(value = "缺陷处理状态")
public IdxBizDefectVo getDefectStatus(@PathVariable String id) { public IdxBizDefectVo getDefectStatus(@PathVariable String id) {
ResponseModel<JSONObject> responseModel = idxFeign.queryDefectByAlarmLogId(id); ResponseModel<JSONObject> responseModel = idxFeign.queryDefectByBatchId(id);
JSONObject result = responseModel.getResult(); JSONObject result = responseModel.getResult();
IdxBizDefectVo vo = JSON.parseObject(JSON.toJSONString(result), IdxBizDefectVo.class); IdxBizDefectVo vo = JSON.parseObject(JSON.toJSONString(result), IdxBizDefectVo.class);
return vo; return vo;
......
...@@ -25,6 +25,6 @@ public interface IdxFeign { ...@@ -25,6 +25,6 @@ public interface IdxFeign {
* @Date 2022/9/27 17:46 * @Date 2022/9/27 17:46
*/ */
@RequestMapping(value = "/defect/alarm/{alarmLogId}", method = RequestMethod.GET) @RequestMapping(value = "/defect/alarm/{alarmLogId}", method = RequestMethod.GET)
ResponseModel<JSONObject> queryDefectByAlarmLogId(@PathVariable String alarmLogId); ResponseModel<JSONObject> queryDefectByBatchId(@PathVariable String alarmLogId);
} }
...@@ -608,7 +608,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE ...@@ -608,7 +608,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
BigDecimal getWaterPoolLevelByEquipSpeId(@Param("equipSpeId") String equipSpeId); BigDecimal getWaterPoolLevelByEquipSpeId(@Param("equipSpeId") String equipSpeId);
List<Map<String, String>> getEquipExpiryStatistics(@Param("bizOrgCode") String bizOrgCode, @Param("expiryDayNum") Integer expiryDayNum); List<Map<String, Object>> getEquipExpiryStatistics(@Param("bizOrgCode") String bizOrgCode, @Param("expiryDayNum") Integer expiryDayNum);
Page<Map<String, String>> getEquipExpiryListByPage(@Param("page") Page page, @Param("bizOrgCode") String bizOrgCode, @Param("expiryDayNum") Integer expiryDayNum); Page<Map<String, String>> getEquipExpiryListByPage(@Param("page") Page page, @Param("bizOrgCode") String bizOrgCode, @Param("expiryDayNum") Integer expiryDayNum);
......
...@@ -18,7 +18,7 @@ public interface IConfirmAlarmService extends IService<EquipmentSpecificAlarm> { ...@@ -18,7 +18,7 @@ public interface IConfirmAlarmService extends IService<EquipmentSpecificAlarm> {
Map<String ,Object> getDetailsById( Long alamId, Long equipId , String type, String area); Map<String ,Object> getDetailsById( Long alamId, Long equipId , String type, String area);
void confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId); String confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId);
/** /**
* 未处理消防告警 * 未处理消防告警
......
...@@ -12,11 +12,7 @@ import com.yeejoin.amos.feign.morphic.model.ResourceDTO; ...@@ -12,11 +12,7 @@ import com.yeejoin.amos.feign.morphic.model.ResourceDTO;
import com.yeejoin.equipmanage.common.datasync.entity.FireFightingSystem; import com.yeejoin.equipmanage.common.datasync.entity.FireFightingSystem;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity; import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO; import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipCountBySystemVO; import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentAlarmBySystemIdOrSourceIdVO;
import com.yeejoin.equipmanage.common.entity.vo.PointTreeVo;
import com.yeejoin.equipmanage.common.vo.*; import com.yeejoin.equipmanage.common.vo.*;
public interface IFireFightingSystemService extends IService<FireFightingSystemEntity> { public interface IFireFightingSystemService extends IService<FireFightingSystemEntity> {
...@@ -288,7 +284,7 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE ...@@ -288,7 +284,7 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE
Page<Map<String, Object>> getSystemInfo(Page page, String companyCode, String systemCode); Page<Map<String, Object>> getSystemInfo(Page page, String companyCode, String systemCode);
List<Map<String, String>> getEquipExpiryStatistics(String bizOrgCode, Integer expiryDayNum); List<Map<String, Object>> getEquipExpiryStatistics(String bizOrgCode, Integer expiryDayNum);
Page<Map<String, String>> getEquipExpiryListByPage(String bizOrgCode, Integer expiryDayNum, Page page); Page<Map<String, String>> getEquipExpiryListByPage(String bizOrgCode, Integer expiryDayNum, Page page);
......
...@@ -164,7 +164,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -164,7 +164,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId) { public String confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId) {
try { try {
AgencyUserModel userModel = remoteSecurityService.getAgencyUser(); AgencyUserModel userModel = remoteSecurityService.getAgencyUser();
ent.setConfirmUser(userModel.getUserId()); ent.setConfirmUser(userModel.getUserId());
...@@ -211,34 +211,23 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -211,34 +211,23 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
ent.setConfirmDate(new Date()); ent.setConfirmDate(new Date());
int i = 0 ; int i = 0 ;
ent.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(ent.getConfirmType())); ent.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(ent.getConfirmType()));
if (!ent.isAddDefect()) { Date date = new Date();
if (ent.getIsBatch() == 0){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
i = equipmentSpecificAlarmLogMapper.updateById(ent); String dateString = formatter.format(date);
}else { ent.setDefectBatchId(UUID.randomUUID().toString().replace("-", "").toLowerCase());
LambdaUpdateWrapper<EquipmentSpecificAlarmLog> updateWrapper = new LambdaUpdateWrapper<EquipmentSpecificAlarmLog>(). if (ent.isAddDefect()) {
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificId,ent.getEquipmentSpecificId()). ent.setResolveResult(dateString + " " + userModel.getRealName() + " 添加为缺陷进行消缺。");
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey,ent.getEquipmentSpecificIndexKey())
.isNull(EquipmentSpecificAlarmLog::getConfirmDate);
i = equipmentSpecificAlarmLogMapper.update(ent, updateWrapper);
}
} else { } else {
// 自动确警处理 ent.setResolveResult(dateString + " " + userModel.getRealName() + " 进行警情确认处理。");
EquipmentSpecific specific = equipmentSpecificMapper.selectById(ent.getEquipmentSpecificId()); }
Date date = new Date(); if (ent.getIsBatch() == 0){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); i = equipmentSpecificAlarmLogMapper.updateById(ent);
String dateString = formatter.format(date); } else {
ent.setTraceId(null); LambdaUpdateWrapper<EquipmentSpecificAlarmLog> updateWrapper = new LambdaUpdateWrapper<EquipmentSpecificAlarmLog>().
String equipmentName = StringUtil.isNotEmpty(specific.getCode()) ? specific.getName() + "(" + specific.getCode() + ")" : specific.getName(); eq(EquipmentSpecificAlarmLog::getEquipmentSpecificId,ent.getEquipmentSpecificId()).
if (ent.getConfirmType().equals(AlarmTypeEnum.PB.getCode())) { eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey,ent.getEquipmentSpecificIndexKey())
ent.setAlarmReason(equipmentName + "频繁故障/误报,将设备报警信息屏蔽。"); .isNull(EquipmentSpecificAlarmLog::getConfirmDate);
} else { i = equipmentSpecificAlarmLogMapper.update(ent, updateWrapper);
ent.setAlarmReason(equipmentName + "引起设备报警");
}
ent.setResolveResult(dateString + "系统收到设备复归(已消除)信号,系统自动处理。");
ent.setConfirmUser("");
ent.setConfirmUserName("系统自动处理");
ent.setConfirmDate(date);
equipmentSpecificAlarmLogService.updateById(ent);
} }
//int i = confirmAlarmMapper.confirmAlam(ent); //int i = confirmAlarmMapper.confirmAlam(ent);
...@@ -283,6 +272,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -283,6 +272,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
mqttSendGateway.sendToMqtt(TopicEnum.ALARM_LOG_INSERT.getTopic(), jsonObject.toString()); mqttSendGateway.sendToMqtt(TopicEnum.ALARM_LOG_INSERT.getTopic(), jsonObject.toString());
} }
}); });
return ent.getDefectBatchId();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new BadRequest("确认失败"); throw new BadRequest("确认失败");
......
...@@ -2001,8 +2001,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2001,8 +2001,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} }
@Override @Override
public List<Map<String, String>> getEquipExpiryStatistics(String bizOrgCode, Integer expiryDayNum) { public List<Map<String, Object>> getEquipExpiryStatistics(String bizOrgCode, Integer expiryDayNum) {
return fireFightingSystemMapper.getEquipExpiryStatistics(bizOrgCode, expiryDayNum); List<Map<String, Object>> equipExpiryStatistics = fireFightingSystemMapper.getEquipExpiryStatistics(bizOrgCode, expiryDayNum);
equipExpiryStatistics.stream().forEach(item -> {
item.put("value", Integer.parseInt(item.get("value").toString()));
});
return equipExpiryStatistics;
} }
@Override @Override
......
...@@ -29,7 +29,6 @@ import org.springframework.beans.BeanUtils; ...@@ -29,7 +29,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronization;
...@@ -38,18 +37,14 @@ import org.springframework.util.CollectionUtils; ...@@ -38,18 +37,14 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.lang.reflect.Array;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//import net.sf.json.JSONObject;
/** /**
* @author keyong * @author keyong
...@@ -606,9 +601,26 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -606,9 +601,26 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
queryWrapper.eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey, equipmentSpecificIndexKey); queryWrapper.eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey, equipmentSpecificIndexKey);
queryWrapper.ne(EquipmentSpecificAlarmLog::getStatus, AlarmStatusEnum.HF.getCode()); queryWrapper.ne(EquipmentSpecificAlarmLog::getStatus, AlarmStatusEnum.HF.getCode());
List<EquipmentSpecificAlarmLog> logs = equipmentSpecificAlarmLogService.getBaseMapper().selectList(queryWrapper); List<EquipmentSpecificAlarmLog> logs = equipmentSpecificAlarmLogService.getBaseMapper().selectList(queryWrapper);
EquipmentSpecificAlarmLog log = logs.get(0);
EquipmentSpecific specific = equipmentSpecificMapper.selectById(log.getEquipmentSpecificId());
Date date = new Date();
logs.forEach(x -> { logs.forEach(x -> {
x.setCleanTime(new Date()); x.setCleanTime(new Date());
x.setStatus(AlarmStatusEnum.HF.getCode()); x.setStatus(AlarmStatusEnum.HF.getCode());
if (!flag) {
x.setConfirmType(x.getType());
x.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(x.getType()));
String equipmentName = StringUtil.isNotEmpty(specific.getCode()) ? specific.getName() + "(" + specific.getCode() + ")" : specific.getName();
if (x.getType().equals(AlarmTypeEnum.PB.getCode())) {
x.setAlarmReason(equipmentName + "频繁故障/误报,将设备报警信息屏蔽。");
} else {
x.setAlarmReason(equipmentName + "引起设备报警");
}
x.setResolveResult(date + "系统收到设备复归(已消除)信号,系统自动处理。");
x.setConfirmUser("");
x.setConfirmUserName("系统自动处理");
x.setConfirmDate(date);
}
x.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value); x.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value);
if (!StringUtils.isEmpty(traceId)) { if (!StringUtils.isEmpty(traceId)) {
x.setTraceId(traceId); x.setTraceId(traceId);
......
...@@ -326,13 +326,16 @@ public class ExcelServiceImpl { ...@@ -326,13 +326,16 @@ public class ExcelServiceImpl {
SignDto dto = new SignDto(); SignDto dto = new SignDto();
if(par!=null && par.size()>0) { if(par!=null && par.size()>0) {
String date =par.containsKey("date")?par.get("date").toString():null; String date =par.containsKey("date")?par.get("date").toString():null;
String bizOrgCode =par.containsKey("bizOrgCode")?par.get("bizOrgCode").toString():null; // String bizOrgCode =par.containsKey("bizOrgCode")?par.get("bizOrgCode").toString():null;
String bizOrgName =par.containsKey("bizOrgName")?par.get("bizOrgName").toString():null; String bizOrgName =par.containsKey("bizOrgName")?par.get("bizOrgName").toString():null;
String name =par.containsKey("name")?par.get("name").toString():null; String name =par.containsKey("name")?par.get("name").toString():null;
String type =par.containsKey("type")?par.get("type").toString():null; String type =par.containsKey("type")?par.get("type").toString():null;
String signTimeBIGGER =par.containsKey("signTimeBIGGER")?par.get("signTimeBIGGER").toString():null; String signTimeBIGGER =par.containsKey("signTimeBIGGER")?par.get("signTimeBIGGER").toString():null;
String signTimeLESS =par.containsKey("signTimeLESS")?par.get("signTimeLESS").toString():null; String signTimeLESS =par.containsKey("signTimeLESS")?par.get("signTimeLESS").toString():null;
dto.setBizOrgCode(bizOrgCode); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String companyId = reginParams.getPersonIdentity().getCompanyId();
OrgUsr orgUsr = orgUsrMapper.queryBySequenceNbr(companyId);
dto.setBizOrgCode(orgUsr.getBizOrgCode());
dto.setDate(date); dto.setDate(date);
dto.setBizOrgName(bizOrgName); dto.setBizOrgName(bizOrgName);
dto.setName(name); dto.setName(name);
......
...@@ -273,7 +273,7 @@ ...@@ -273,7 +273,7 @@
REPLACE INTO `wl_form_group`(`id`, `group_name`, `group_code`, `group_type`, `allow_operation`, `creator_id`, `create_date`) VALUES (132828674827, '消防水池装置', '92010700', 'equip', 'edit,delete', 2581805, '2022-10-09 03:36:44'); REPLACE INTO `wl_form_group`(`id`, `group_name`, `group_code`, `group_type`, `allow_operation`, `creator_id`, `create_date`) VALUES (132828674827, '消防水池装置', '92010700', 'equip', 'edit,delete', 2581805, '2022-10-09 03:36:44');
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="keyong" id="202210131888"> <changeSet author="keyong" id="202210131888-1">
<preConditions onFail="MARK_RAN"> <preConditions onFail="MARK_RAN">
<tableExists tableName="wl_equipment"/> <tableExists tableName="wl_equipment"/>
</preConditions> </preConditions>
...@@ -282,4 +282,15 @@ ...@@ -282,4 +282,15 @@
REPLACE INTO `wl_equipment`(`id`, `name`, `code`, `category_id`, `country`, `maintenance_cycle`, `check_cycle`, `remark`, `management_style`, `reviser_id`, `date_updated`, `creater_id`, `unit_id`, `made_in`, `manufacturer`, `img`, `video`, `mark_specification`, `supplier_id`, `pref_quota`, `create_date`, `company_name`, `department_orgcode`, `department_name`, `inspection_spec`, `maintenance_spec`, `area`, `is_iot`, `clean_type`, `expiry_date`) VALUES (1578945741864742914, '消防水箱', '93060600HQK44', 1547790305762250754, NULL, NULL, NULL, NULL, NULL, NULL, '2022-10-09 11:10:28', NULL, 55, NULL, NULL, 'upload/state_grid/studio_normalapp_3056965/D0D194CE38EA9F604B401F1BFCC31975.jpg', NULL, NULL, NULL, NULL, '2022-10-09 11:09:35', NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', NULL); REPLACE INTO `wl_equipment`(`id`, `name`, `code`, `category_id`, `country`, `maintenance_cycle`, `check_cycle`, `remark`, `management_style`, `reviser_id`, `date_updated`, `creater_id`, `unit_id`, `made_in`, `manufacturer`, `img`, `video`, `mark_specification`, `supplier_id`, `pref_quota`, `create_date`, `company_name`, `department_orgcode`, `department_name`, `inspection_spec`, `maintenance_spec`, `area`, `is_iot`, `clean_type`, `expiry_date`) VALUES (1578945741864742914, '消防水箱', '93060600HQK44', 1547790305762250754, NULL, NULL, NULL, NULL, NULL, NULL, '2022-10-09 11:10:28', NULL, 55, NULL, NULL, 'upload/state_grid/studio_normalapp_3056965/D0D194CE38EA9F604B401F1BFCC31975.jpg', NULL, NULL, NULL, NULL, '2022-10-09 11:09:35', NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', NULL);
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="keyong" id="202210131888-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_alarm_log" columnName="defect_batch_id"/>
</not>
</preConditions>
<comment>新增属性字段 defect_batch_id</comment>
<sql>
alter table `wl_equipment_specific_alarm_log` add column `defect_batch_id` varchar(64) DEFAULT NULL COMMENT '缺陷表批次号';
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
\ No newline at end of file
...@@ -51,7 +51,8 @@ ...@@ -51,7 +51,8 @@
confirm_date, confirm_date,
(SELECT GROUP_CONCAT(fem.name) FROM `f_fire_fighting_system` fem WHERE find_in_set(fem.id,spe.system_id)) as systemName, (SELECT GROUP_CONCAT(fem.name) FROM `f_fire_fighting_system` fem WHERE find_in_set(fem.id,spe.system_id)) as systemName,
if(ala.clean_time is null, '未消除', '已消除') AS cleanStatus, if(ala.clean_time is null, '未消除', '已消除') AS cleanStatus,
ala.clean_time ala.clean_time,
ala.defect_batch_id
from from
wl_equipment_specific_alarm_log as ala wl_equipment_specific_alarm_log as ala
left join wl_equipment_specific as spe on spe.id = ala.equipment_specific_id left join wl_equipment_specific as spe on spe.id = ala.equipment_specific_id
......
...@@ -58,5 +58,6 @@ public class CheckResult { ...@@ -58,5 +58,6 @@ public class CheckResult {
@ApiModelProperty(value="模型名称") @ApiModelProperty(value="模型名称")
private String modelName; private String modelName;
@ApiModelProperty(value="提交记录id")
private Long submitRecordId;
} }
package com.yeejoin.amos.boot.module.tdc.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
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.experimental.Accessors;
/**
* @author xxz
*/
@Data
@Accessors(chain = true)
@TableName("tdc_model_item")
@ApiModel(value="ModelItem对象", description="模型填报项表")
public class ModelItem {
private static final long serialVersionUID = 1L;
@TableId(value = "sequence_nbr", type = IdType.ID_WORKER)
protected Long sequenceNbr;
@ApiModelProperty(value = "校验项名称")
private String checkItemLabel;
@ApiModelProperty(value = "校验项值")
private String checkItemValue;
@ApiModelProperty(value = "模型名称")
private String modelName;
@ApiModelProperty(value = "提交记录id")
private long submitRecordId;
}
package com.yeejoin.amos.boot.module.tdc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import org.mapstruct.Mapper;
/**
* @author DELL
*/
@Mapper
public interface ModelItemMapper extends BaseMapper<ModelItem> {
}
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @author xxz
*/
@Service
public interface ModelItemService {
void saveModelItem(JSONObject jsonObject, AgencyUserModel userInfo);
void editModelItem(JSONObject jsonObject, AgencyUserModel userInfo);
/**
* 获取详情接口
* @param sequenceNbr 记录id
* @return 项
*/
Map<String, Object> getModelItem(Long sequenceNbr);
void deleteModelItem(String sequenceNbr);
}
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.tdc.api.service; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.tdc.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckModelDto; import com.yeejoin.amos.boot.module.tdc.api.dto.CheckModelDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord; import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -11,4 +12,9 @@ import org.springframework.stereotype.Service; ...@@ -11,4 +12,9 @@ import org.springframework.stereotype.Service;
@Service @Service
public interface SubmitRecordService { public interface SubmitRecordService {
IPage<SubmitRecord> selectByOrgCode(int current, int size); IPage<SubmitRecord> selectByOrgCode(int current, int size);
int saveSubmitRecord(SubmitRecord submitRecord);
SubmitRecord updateById(Long sequenceNbr, String batchNo);
} }
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import java.util.List;
import java.util.Map;
/**
* @author xxz
*/
public interface SyncMethodService {
/**
* 校验
*/
void checkItem(Map<String, List<ModelItem>> itemValue, SubmitRecord record);
}
<?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.yeejoin.amos.boot.module.tdc.api.mapper.ModelItemMapper">
</mapper>
\ No newline at end of file
...@@ -70,7 +70,8 @@ public class CheckModelAction { ...@@ -70,7 +70,8 @@ public class CheckModelAction {
Map propertyValues = idxProjectModel.getPropertyValues(); Map propertyValues = idxProjectModel.getPropertyValues();
String batchNo = String.valueOf(propertyValues.get("batch_no")); String batchNo = String.valueOf(propertyValues.get("batch_no"));
Integer checkType = Integer.valueOf(String.valueOf(propertyValues.get("checkType"))); Long submitRecordId = Long.valueOf(String.valueOf(propertyValues.get("submitRecordId")));
// Integer checkType = Integer.valueOf(String.valueOf(propertyValues.get("checkType")));
String orgCode = String.valueOf(propertyValues.get("org_code")); String orgCode = String.valueOf(propertyValues.get("org_code"));
String checkPeopleName = String.valueOf(propertyValues.get("checkPeopleName")); String checkPeopleName = String.valueOf(propertyValues.get("checkPeopleName"));
String itemName = idxProjectModel.getItemName(); String itemName = idxProjectModel.getItemName();
...@@ -81,12 +82,12 @@ public class CheckModelAction { ...@@ -81,12 +82,12 @@ public class CheckModelAction {
return; return;
} }
if (!CollectionUtils.isEmpty(idxProjectModel.getPropertys()) && StringUtils.isNotEmpty(checkItem)) { // if (!CollectionUtils.isEmpty(idxProjectModel.getPropertys()) && StringUtils.isNotEmpty(checkItem)) {
Map<String, Object> item = idxProjectModel.getPropertys().stream().filter(map -> checkItem.equals(map.get("name"))).findFirst().orElse(null); // Map<String, Object> item = idxProjectModel.getPropertys().stream().filter(map -> checkItem.equals(map.get("name"))).findFirst().orElse(null);
if (ObjectUtils.isNotEmpty(item)) { // if (ObjectUtils.isNotEmpty(item)) {
checkResult.setCheckItemLabel(String.valueOf(item.get("title"))); // checkResult.setCheckItemLabel(String.valueOf(item.get("title")));
} // }
} // }
checkResult.setBatchNo(StringUtils.isNotEmpty(batchNo) ? batchNo : String.valueOf(propertyValues.get("id"))); checkResult.setBatchNo(StringUtils.isNotEmpty(batchNo) ? batchNo : String.valueOf(propertyValues.get("id")));
checkResult.setCheckItemResult(result); checkResult.setCheckItemResult(result);
...@@ -96,23 +97,24 @@ public class CheckModelAction { ...@@ -96,23 +97,24 @@ public class CheckModelAction {
checkResult.setModelId(String.valueOf(checkModel.getSequenceNbr())); checkResult.setModelId(String.valueOf(checkModel.getSequenceNbr()));
checkResult.setAmosOrgCode(checkModel.getAmosOrgCode()); checkResult.setAmosOrgCode(checkModel.getAmosOrgCode());
checkResult.setAmosOrgName(checkModel.getAmosOrgName()); checkResult.setAmosOrgName(checkModel.getAmosOrgName());
checkResult.setSubmitRecordId(submitRecordId);
checkResult.setCheckDate(new Date()); checkResult.setCheckDate(new Date());
checkResult.setCheckType(ObjectUtils.isNotEmpty(checkType) ? checkType : 1); // checkResult.setCheckType(ObjectUtils.isNotEmpty(checkType) ? checkType : 1);
checkResult.setModelName(checkModel.getModelName()); checkResult.setModelName(checkModel.getModelName());
checkResultService.save(checkResult); checkResultService.save(checkResult);
// 2. 判断是否检验结束 // // 2. 判断是否检验结束
if (ObjectUtils.isNotEmpty(checkType)) { // if (ObjectUtils.isNotEmpty(checkType)) {
if (checkType == 1) { // if (checkType == 1) {
// 2.2 单独模型校验,根据批次号查询已经入库的属性 // // 2.2 单独模型校验,根据批次号查询已经入库的属性
sendWebMessage(batchNo, checkModel.getCheckItemAmount(), orgCode, checkPeopleName, checkType, itemName); // sendWebMessage(batchNo, checkModel.getCheckItemAmount(), orgCode, checkPeopleName, checkType, itemName);
} else if (checkType == 0) { // } else if (checkType == 0) {
// 2.1 全站校验 // // 2.1 全站校验
List<CheckModel> checkModels = checkModelService.selectByOrgCode(orgCode); // List<CheckModel> checkModels = checkModelService.selectByOrgCode(orgCode);
int sum = checkModels.stream().mapToInt(CheckModel::getCheckItemAmount).sum(); // int sum = checkModels.stream().mapToInt(CheckModel::getCheckItemAmount).sum();
sendWebMessage(batchNo, sum, orgCode, checkPeopleName, checkType, itemName); // sendWebMessage(batchNo, sum, orgCode, checkPeopleName, checkType, itemName);
} // }
} // }
// else { // else {
// // 指标填报完自动调用,暂时不需要推送前端 // // 指标填报完自动调用,暂时不需要推送前端
// String number = ObjectUtils.isNotEmpty(checkType) ? batchNo : String.valueOf(propertyValues.get("id")); // String number = ObjectUtils.isNotEmpty(checkType) ? batchNo : String.valueOf(propertyValues.get("id"));
......
package com.yeejoin.amos.boot.module.tdc.biz.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @author DELL
*/
@Slf4j
@Configuration
@EnableAsync
public class SwjyExecutorConfig {
@Bean(name = "swjyAsyncExecutor")
public Executor asyncServiceExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//配置核心线程数
executor.setCorePoolSize(10);
//配置最大线程数
executor.setMaxPoolSize(100);
//配置队列大小
executor.setQueueCapacity(1000);
//配置线程池中的线程的名称前缀
executor.setThreadNamePrefix("namePrefix");
//线程池维护线程所允许的空闲时间
executor.setKeepAliveSeconds(30);
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行--拒绝策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//执行初始化
executor.initialize();
//等待所有任务结束后再关闭线程池
executor.setWaitForTasksToCompleteOnShutdown(true);
return executor;
}
}
package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.tdc.api.service.ModelItemService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Map;
/**
* 校验项提交
* @author xxz
*/
@RestController
@Api(tags = "校验项提交")
@RequestMapping(value = "/check-item")
public class ModelItemController extends BaseController {
@Autowired
ModelItemService modelItemService;
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@PostMapping(value = "/saveModelItem")
@ApiOperation(httpMethod = "POST", value = "保存模型项", notes = "保存模型项")
public ResponseModel saveModelItem(@RequestBody JSONObject jsonObject){
AgencyUserModel userInfo = getUserInfo();
if (ObjectUtils.isEmpty(jsonObject)) {
return null;
}
Object sequenceNbr = jsonObject.get("sequenceNbr");
if (ObjectUtils.isEmpty(sequenceNbr)) {
modelItemService.saveModelItem(jsonObject, userInfo);
return ResponseHelper.buildResponse(true);
}
modelItemService.editModelItem(jsonObject, userInfo);
return ResponseHelper.buildResponse(true);
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/getModelItem")
@ApiOperation(httpMethod = "GET", value = "获取模型项", notes = "获取模型项")
public ResponseModel<Map<String, Object>> getModelItem(@RequestParam(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(modelItemService.getModelItem(sequenceNbr));
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/deleteModelItem")
@ApiOperation(httpMethod = "GET", value = "删除模型项", notes = "删除模型项")
public ResponseModel deleteModelItem(@RequestParam(value = "sequenceNbr") String sequenceNbr){
modelItemService.deleteModelItem(sequenceNbr);
return ResponseHelper.buildResponse(true);
}
}
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.netflix.discovery.converters.Auto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.ModelItemMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.ModelItemService;
import com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService;
import com.yeejoin.amos.boot.module.tdc.api.service.SyncMethodService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
public class ModelItemServiceImpl extends ServiceImpl<ModelItemMapper, ModelItem> implements ModelItemService {
@Autowired
SubmitRecordService submitRecordService;
@Autowired
SyncMethodService syncMethodService;
@Autowired
CheckResultMapper checkResultMapper;
@Autowired
SubmitRecordMapper submitRecordMapper;
@Override
public void saveModelItem(JSONObject jsonObject, AgencyUserModel userInfo) {
long start = System.currentTimeMillis();
if (ObjectUtils.isEmpty(jsonObject)) {
return;
}
SubmitRecord submitRecord = new SubmitRecord();
userInfo.getUserName();
List<CompanyModel> company = userInfo.getCompanys();
if (!CollectionUtils.isEmpty(company)) {
String companyName = company.get(0).getCompanyName();
String orgCode = company.get(0).getOrgCode();
submitRecord.setAmosOrgCode(orgCode);
submitRecord.setAmosOrgName(companyName);
}
submitRecord.setSubmitPeople(userInfo.getRealName());
submitRecord.setSubmitTime(new Date());
String batchNo = UUID.randomUUID().toString();
submitRecord.setBatchNo(batchNo);
long start1 = System.currentTimeMillis();
log.error("=====记录入库前用时:"+(start1-start)+"======");
submitRecordService.saveSubmitRecord(submitRecord);
long end = System.currentTimeMillis();
log.error("=====记录入库用时:"+(end-start1)+"======");
if (StringUtils.isEmpty(submitRecord.getSequenceNbr())) {
return;
}
List<ModelItem> collect = jsonObject.entrySet().stream().map(e -> {
ModelItem modelItem = new ModelItem();
String key = e.getKey();
String[] s = key.split("_");
if (s.length > 0) {
modelItem.setModelName(s[0]);
modelItem.setCheckItemLabel(s[1]);
}
String value = String.valueOf(e.getValue());
modelItem.setCheckItemValue(value);
modelItem.setSubmitRecordId(submitRecord.getSequenceNbr());
return modelItem;
}).collect(Collectors.toList());
Map<String, List<ModelItem>> itemValue = collect.stream().collect(Collectors.groupingBy(ModelItem::getModelName));
long e1 = System.currentTimeMillis();
log.error("=====参数解析用时:"+(e1-end)+"======");
this.saveBatch(collect);
long e2 = System.currentTimeMillis();
log.error("=====入库用时:"+(e2-e1)+"======");
// 异步请求规则校验
syncMethodService.checkItem(itemValue, submitRecord);
}
@Override
public void editModelItem(JSONObject jsonObject, AgencyUserModel userInfo) {
Long sequenceNbr = Long.valueOf(String.valueOf(jsonObject.get("sequenceNbr")));
String batchNo = UUID.randomUUID().toString();
SubmitRecord submitRecord = submitRecordService.updateById(sequenceNbr, batchNo);
LambdaQueryWrapper<ModelItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ModelItem::getSubmitRecordId, sequenceNbr);
this.baseMapper.delete(wrapper);
List<ModelItem> collect = jsonObject.entrySet().stream().map(e -> {
ModelItem modelItem = new ModelItem();
String key = e.getKey();
String[] s = key.split("_");
if (s.length > 1) {
modelItem.setModelName(s[0]);
modelItem.setCheckItemLabel(s[1]);
String value = String.valueOf(e.getValue());
modelItem.setCheckItemValue(value);
modelItem.setSubmitRecordId(submitRecord.getSequenceNbr());
return modelItem;
} else {
return null;
}
}).filter(item -> !ObjectUtils.isEmpty(item)).collect(Collectors.toList());
this.saveOrUpdateBatch(collect);
// 异步请求规则校验
Map<String, List<ModelItem>> itemValue = collect.stream().collect(Collectors.groupingBy(ModelItem::getModelName));
syncMethodService.checkItem(itemValue, submitRecord);
}
@Override
public Map<String, Object> getModelItem(Long sequenceNbr) {
LambdaQueryWrapper<ModelItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ModelItem::getSubmitRecordId, sequenceNbr);
List<ModelItem> list = this.list(wrapper);
Map<String, Object> map = list.stream().collect(Collectors.toMap(e -> e.getModelName() + "_" + e.getCheckItemLabel(), ModelItem::getCheckItemValue));
map.put("sequenceNbr", sequenceNbr);
return map;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteModelItem(String sequenceNbr) {
if (!StringUtils.isEmpty(sequenceNbr)) {
String[] split = sequenceNbr.split(",");
List<String> list = Arrays.asList(split);
// 1. 删除记录
submitRecordMapper.deleteBatchIds(list);
// 2. 删除填报项
LambdaQueryWrapper<ModelItem> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ModelItem::getSubmitRecordId, list);
this.baseMapper.delete(wrapper);
// 3. 删除校验记录
LambdaQueryWrapper<CheckResult> resultWrapper = new LambdaQueryWrapper<>();
resultWrapper.in(CheckResult::getSubmitRecordId, list);
checkResultMapper.delete(resultWrapper);
}
}
}
...@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper; ...@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService; import com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
/** /**
...@@ -24,4 +25,17 @@ public class SubmitRecordServiceImpl extends ServiceImpl<SubmitRecordMapper, Sub ...@@ -24,4 +25,17 @@ public class SubmitRecordServiceImpl extends ServiceImpl<SubmitRecordMapper, Sub
Page page = new Page(current,size); Page page = new Page(current,size);
return submitRecordMapper.selectByOrgCode(page); return submitRecordMapper.selectByOrgCode(page);
} }
@Override
public int saveSubmitRecord(SubmitRecord submitRecord) {
return this.baseMapper.insert(submitRecord);
}
@Override
public SubmitRecord updateById(Long sequenceNbr, String batchNo) {
SubmitRecord submitRecord = this.getById(sequenceNbr);
submitRecord.setBatchNo(batchNo);
this.updateById(submitRecord);
return submitRecord;
}
} }
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.service.SyncMethodService;
import com.yeejoin.amos.boot.module.tdc.biz.action.model.IdxProjectModel;
import com.yeejoin.amos.component.rule.RuleTrigger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
@Async("swjyAsyncExecutor")
@Slf4j
public class SyncMethodServiceImpl implements SyncMethodService {
@Autowired
RuleTrigger ruleTrigger;
@Override
public void checkItem(Map<String, List<ModelItem>> itemValue, SubmitRecord record) {
try {
itemValue.forEach((key, value) -> {
IdxProjectModel idxProjectModel = new IdxProjectModel();
idxProjectModel.setItemName(key);
Map<String, Object> mapValue = value.stream().collect(Collectors.toMap(ModelItem::getCheckItemLabel, ModelItem::getCheckItemValue));
mapValue.put("submitRecordId", record.getSequenceNbr());
mapValue.put("batch_no", record.getBatchNo());
mapValue.put("org_code", record.getAmosOrgCode());
idxProjectModel.setPropertyValues(mapValue);
// 调用规则校验模型
try {
// 没有配决策流,processIds传null即可
String packageId = "三维校验/" + key;
ruleTrigger.publish(idxProjectModel, packageId, null);
} catch (Exception e) {
e.printStackTrace();
}
});
} catch (Exception e) {
log.error("调用规则校验失败:");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment