Commit 2488a807 authored by 朱晨阳's avatar 朱晨阳

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

parents 031e6e15 7364b1ae
......@@ -34,4 +34,6 @@ public interface SafetyProblemTracingMapper extends BaseMapper<SafetyProblemTrac
List<Map<String, Object>> countEquOverdue(@Param("typeList") List<String> typeList,@Param("orgCode") String orgCode);
List<String> getSourceId(@Param("orgCode") String orgCode, @Param("typeList") List<String> typeList);
Page<Map<String, Object>> queryUserListProblemById(Page<Map<String, Object>> page, String problemId);
}
......@@ -102,6 +102,27 @@
<select id="queryPrincipalUnitByProblemId" resultType="java.util.Map">
SELECT * FROM (
SELECT
'1' sourceTypeCode,
spt.sequence_nbr problemSeq,
ei.sequence_nbr sequenceNbr,
ei.use_unit unitName,
ei.use_unit_code useUnitCode,
ei.unit_type unitType,
ei.governing_body governingBody,
ei.use_contact useContact,
ei.contact_phone contactPhone,
ei.status,
case when ei.status = '0' then '异常'
else '正常' end problemStatusName,
case when ei.status = '0' then 'red'
else 'green' end problemStatusColor
FROM
tzs_safety_problem_tracing spt
LEFT JOIN tz_base_enterprise_info ei on ei.use_unit_code = spt.principal_unit_code
WHERE
spt.sequence_nbr = #{problemId}
UNION
SELECT
'2' sourceTypeCode,
spt.sequence_nbr problemSeq,
ei.sequence_nbr sequenceNbr,
......@@ -240,4 +261,23 @@
and source_type_code = '3'
</select>
<select id="queryUserListProblemById" resultType="java.util.Map">
SELECT
tui.sequence_nbr sequenceNbr,
tui.name,
tui.certificate_num certificateNum,
tui.phone,
tui.post_name postName,
case when tui.qr_code_state = '0' then '异常'
else '正常' end problemStatusName,
case when tui.qr_code_state = '0' then 'red'
else 'green' end problemStatusColor
FROM
tzs_user_info tui
LEFT JOIN tzs_user_permission tup on tup.user_seq = tui.sequence_nbr
LEFT JOIN tzs_safety_problem_tracing tspt on tspt.source_id = tup.sequence_nbr
WHERE
tspt.is_delete = '0' and tspt.sequence_nbr = #{problemId}
</select>
</mapper>
......@@ -181,6 +181,22 @@ public class SafetyProblemTracingController extends BaseController {
}
/**
* 根据问题ID及问题类型查询关联设备列表
*
* @param problemId 问题Id
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "根据问题ID及问题类型查询关联人员列表", notes = "根据问题ID及问题类型查询关联人员列表")
@GetMapping(value = "/user/list")
public ResponseModel<Page<Map<String, Object>>> queryUserListProblemById(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size, @RequestParam(value = "sequenceNbr") String problemId) {
Page<Map<String, Object>> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(safetyProblemTracingServiceImpl.queryUserListProblemById(page, problemId));
}
/**
* 根据问题ID及问题类型查询关联企业
*
* @param problemId 问题Id
......
......@@ -32,10 +32,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
......@@ -52,6 +54,7 @@ import java.util.stream.IntStream;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import static com.alibaba.fastjson.JSON.toJSONString;
/**
* 管道工程装置表服务实现类
......@@ -197,53 +200,99 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
.isNull(IdxBizJgProjectContraption::getProjectContraptionParentId)
.orderByDesc(IdxBizJgProjectContraption::getRecDate)
.page(page);
pageList.getRecords().forEach(record -> {
BigDecimal pipelineLength = BigDecimal.valueOf(record.getPipelineLength());
BigDecimal roundedValue = pipelineLength.setScale(3, RoundingMode.HALF_UP);
BigDecimal strippedValue = roundedValue.stripTrailingZeros();
record.setPipelineLength(Double.valueOf(strippedValue.toPlainString()));
record.setDataSourceName(EquipSourceEnum.getDataSourceName(record.getDataSource()));
record.setFullAddress(
Stream.of(record.getProvinceName(), record.getCityName(), record.getCountyName(), record.getStreetName(), record.getAddress())
.map(value -> value == null ? "" : value)
.collect(Collectors.joining())
);
record.setCanEdit(this.checkContraptionIsCanEdit(record.getSequenceNbr()));
record.setCanDelete(this.checkContraptionIsCanDelete(record.getSequenceNbr(),isIntoManagement));
if (!ValidationUtil.isEmpty(pageList.getRecords())) {
pageList.getRecords().forEach(record -> {
BigDecimal pipelineLength = BigDecimal.valueOf(record.getPipelineLength());
BigDecimal roundedValue = pipelineLength.setScale(3, RoundingMode.HALF_UP);
BigDecimal strippedValue = roundedValue.stripTrailingZeros();
record.setPipelineLength(Double.valueOf(strippedValue.toPlainString()));
record.setDataSourceName(EquipSourceEnum.getDataSourceName(record.getDataSource()));
record.setFullAddress(
Stream.of(record.getProvinceName(), record.getCityName(), record.getCountyName(), record.getStreetName(), record.getAddress())
.map(value -> value == null ? "" : value)
.collect(Collectors.joining())
);
});
List<Long> projectContraptionIdList = pageList.getRecords().stream().map(IdxBizJgProjectContraption::getSequenceNbr).collect(Collectors.toList());
Map<String, Boolean> canEditMap = this.checkContraptionIsCanEdit(projectContraptionIdList);
pageList.getRecords().forEach(record -> record.setCanEdit(canEditMap.get(record.getSequenceNbr())));
Map<String, Boolean> canDeleteMap = this.checkContraptionIsCanDelete(projectContraptionIdList, isIntoManagement);
pageList.getRecords().forEach(record -> record.setCanDelete(canDeleteMap.get(record.getSequenceNbr())));
//判断是否有检验结果录入
judgeCheckResult(record);
});
judgeCheckResult(pageList.getRecords());
}
return pageList;
}
/**
* 此处判断是否有检验结果 所有的管道信息都需要有检验结果才可以展示
* @param record
* @param records
*/
private void judgeCheckResult(IdxBizJgProjectContraption record) {
record.setDisableBasicButton(true);
if ("8200".equals(record.getEquCategory()) || "8100".equals(record.getEquCategory()) || "8300".equals(record.getEquCategory())) {
int notNullCount = this.baseMapper.selectCheckCountByNotNull(String.valueOf(record.getSequenceNbr()));
long total = this.baseMapper.selectEquipCount(String.valueOf(record.getSequenceNbr()));
if(total==notNullCount && total !=0){
record.setDisableBasicButton(false);
private void judgeCheckResult(List<IdxBizJgProjectContraption> records) {
List<IdxBizJgProjectContraption> pipelineList = records.stream().filter(record -> PipelineEnum.PRESSURE_PIPELINE.getCode().equals(record.getEquList())).collect(Collectors.toList());
if (!ValidationUtil.isEmpty(pipelineList)) {
StopWatch watch1 = new StopWatch();
List<Long> projectContraptionIdList = pipelineList.stream().map(IdxBizJgProjectContraption::getSequenceNbr).collect(Collectors.toList());
watch1.start();
List<Map<String, Integer>> notNullCountList = this.baseMapper.selectCheckCountByNotNull(projectContraptionIdList);
watch1.stop();
System.out.println("watch1:" + watch1.getTotalTimeMillis());
StopWatch watch2 = new StopWatch();
watch2.start();
List<Map<String, Integer>> totalList = this.baseMapper.selectEquipCount(projectContraptionIdList);
watch2.stop();
System.out.println("watch2:" + watch2.getTotalTimeMillis());
for (IdxBizJgProjectContraption record : pipelineList) {
Map<String, Integer> totalMap = totalList.stream().filter(item -> String.valueOf(record.getSequenceNbr()).equals(item.get("project_contraption_id"))).findFirst().orElse(new HashMap<>());
Map<String, Integer> notNullCountMap = notNullCountList.stream().filter(item -> String.valueOf(record.getSequenceNbr()).equals(item.get("project_contraption_id"))).findFirst().orElse(new HashMap<>());
Integer total = totalMap.get("count");
Integer notNullCount = notNullCountMap.get("count");
if(total != null && total.equals(notNullCount) && total != 0){
record.setDisableBasicButton(false);
}
}
}
}
private Boolean checkContraptionIsCanEdit(Long projectContraptionId) {
Integer inUseTime = this.baseMapper.countContraptionInUseTimesForEdit(projectContraptionId);
return inUseTime <= 0;
private Map<String, Boolean> checkContraptionIsCanEdit(List<Long> projectContraptionIdList) {
Map<String, Boolean> resultMap = new HashMap<>();
if (ValidationUtil.isEmpty(projectContraptionIdList)) {
return resultMap;
}
private Boolean checkContraptionIsCanDelete(Long projectContraptionId,Boolean isIntoManagement) {
Integer inUseTime = 0;
if(isIntoManagement){
inUseTime= this.baseMapper.countContraptionInUseTimesForDeleteByIntoManagement(projectContraptionId);
}else {
inUseTime = this.baseMapper.countContraptionInUseTimesForDelete(projectContraptionId);
List<Map<String, Integer>> inUseTimeMap = this.baseMapper.countContraptionInUseTimesForEdit(projectContraptionIdList);
return getCheckResultMap(projectContraptionIdList, resultMap, inUseTimeMap);
}
private Map<String, Boolean> checkContraptionIsCanDelete(List<Long> projectContraptionIdList, Boolean isIntoManagement) {
Map<String, Boolean> resultMap = new HashMap<>();
if (ValidationUtil.isEmpty(projectContraptionIdList)) {
return resultMap;
}
List<Map<String, Integer>> inUseTimeMap;
if(isIntoManagement) {
inUseTimeMap = this.baseMapper.countContraptionInUseTimesForDeleteByIntoManagementBatch(projectContraptionIdList);
} else {
inUseTimeMap = this.baseMapper.countContraptionInUseTimesForDelete(projectContraptionIdList);
}
return getCheckResultMap(projectContraptionIdList, resultMap, inUseTimeMap);
}
private Map<String, Boolean> getCheckResultMap(List<Long> projectContraptionIdList, Map<String, Boolean> resultMap, List<Map<String, Integer>> inUseTimeMap) {
for (Long projectContraptionId : projectContraptionIdList) {
Optional<Integer> inUseCountOpt = inUseTimeMap.stream()
.filter(map -> projectContraptionId.toString().equals(map.get("project_contraption_id")))
.map(map -> map.get("inUseNumber"))
.filter(Objects::nonNull)
.findFirst();
Integer inUseCount = inUseCountOpt.orElse(0);
resultMap.put(String.valueOf(projectContraptionId), inUseCount <= 0);
}
return inUseTime <= 0;
return resultMap;
}
@Override
......@@ -307,7 +356,8 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
page.setCurrent(current);
page.setSize(size);
page.setRecords(baseMapper.selectEquipListPage(sequenceNbr, (current - 1) * size, size));
page.setTotal(baseMapper.selectEquipCount(sequenceNbr));
Map<String, Integer> totalMap = baseMapper.selectEquipCount(new ArrayList<>(Collections.singletonList(Long.parseLong(sequenceNbr)))).get(0);
page.setTotal(totalMap.get("count"));
return page;
}
......
......@@ -1262,7 +1262,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
exportParamsMap.put("phone", vehicleInformation.getPhone());
handleAuditPassedDate(vehicleInformation.getAuditPassDate(), exportParamsMap);
exportParamsMap.put("useRegistrationCode", vehicleInformation.getUseRegistrationCode());
String wordPath = "use-registration-form.ftl";
String wordPath = "use-registration-form-vehicle.ftl";
// word转pdf
File pdfFile;
try {
......
......@@ -63,10 +63,10 @@ public class SafetyProblemTracingGenServiceImpl{
@Scheduled(cron = "0 0 1 * * ?")
@SchedulerLock(name = "executeSafetyProblemCheck", lockAtMostFor = "PT5H", lockAtLeastFor = "PT10M")
public void executeSafetyProblemCheck() {
//executeMaintenanceCheck();
//executeInspectionCheck();
executeMaintenanceCheck();
executeInspectionCheck();
executePersonnalCertificationCheck();
//executeEnterpriseQualificationCheck();
executeEnterpriseQualificationCheck();
}
private void executePersonnalCertificationCheck() {
......
......@@ -210,4 +210,8 @@ public class SafetyProblemTracingServiceImpl extends BaseService<SafetyProblemTr
return true;
}
public Page<Map<String, Object>> queryUserListProblemById(Page<Map<String, Object>> page, String problemId) {
return this.baseMapper.queryUserListProblemById(page, problemId);
}
}
\ No newline at end of file
......@@ -117,4 +117,8 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty(value = "菜单类型下的所有人员类型")
private List<String> menuTypeUnderPost;
@ApiModelProperty("二维码状态0异常1正常")
private String qrCodeState;
}
......@@ -134,6 +134,9 @@ public class TzsUserInfoVo {
@ApiModelProperty(value = "设备类型")
private JSONArray equipType;
@ApiModelProperty(value = "设备类型名称")
private String equipTypeName;
/**
* 内部人员编码
*/
......@@ -156,4 +159,6 @@ public class TzsUserInfoVo {
*/
private String jobTitle;
@ApiModelProperty(value = "人员类型名称")
private String postName;
}
package com.yeejoin.amos.boot.module.tcm.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -279,7 +280,20 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
tzsUserInfoVo.setNewPost(JSON.parseArray(tzsUserInfo.getNewPost()));
}
if (!ObjectUtils.isEmpty(tzsUserInfo.getEquipType())) {
tzsUserInfoVo.setEquipType(JSON.parseArray(tzsUserInfo.getEquipType()));
JSONArray equipTypeJSONArray = JSON.parseArray(tzsUserInfo.getEquipType());
tzsUserInfoVo.setEquipType(equipTypeJSONArray);
if(CollUtil.isNotEmpty(equipTypeJSONArray)){
StringBuilder equipTypeName = new StringBuilder();
for (Object o : equipTypeJSONArray) {
String s = EquipmentClassifityEnum.getName.get(o);
if(StringUtils.isEmpty(s)){
s = String.valueOf(o);
}
equipTypeName.append(s);
equipTypeName.append(",");
}
tzsUserInfoVo.setEquipTypeName(equipTypeName.substring(0,equipTypeName.length()-1));
}
}
tzsUserInfoVo.setIdentification(ObjectUtils.isEmpty(tzsUserInfo.getIdentification()) ? null : JSON.parseArray(tzsUserInfo.getIdentification()));
tzsUserInfoVo.setProfile(ObjectUtils.isEmpty(tzsUserInfo.getProfile()) ? null : JSON.parseArray(tzsUserInfo.getProfile()));
......@@ -944,6 +958,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
}
// 更新资质
tzsUserPermissionServiceImpl.updatePermissionData(tzsUserInfoDto);
tzsUserInfoDto.setQrCodeState("1");
this.updateWithModel(tzsUserInfoDto);
return tzsUserInfoDto;
}
......
......@@ -148,4 +148,6 @@ public class TzsUserInfo extends BaseEntity {
@TableField("qr_code_state")
private String qrCodeState;
@TableField("post_name")
private String postName;
}
package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectConstruction;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 管道工程装置表 Mapper 接口
......@@ -27,17 +24,37 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
/**
* 统计工程装置的引用次数(非待提交、非已撤回、非已驳回)
*
* @param projectContraptionId 工程装置唯一标识
* @param projectContraptionIdList 工程装置唯一标识
* @return 被引用次数 > 0 则设备不可编辑
*/
Integer countContraptionInUseTimesForEdit(@Param("projectContraptionId") Long projectContraptionId);
List<Map<String, Integer>> countContraptionInUseTimesForEdit(@Param("projectContraptionIdList") List<Long> projectContraptionIdList);
/**
* 统计设备被引用的次数(只有存在就算引用-作废除外)
* @param projectContraptionIdList 设备唯一标识
* @return 被引用次数 > 0 则设备不可删除
*/
List<Map<String, Integer>> countContraptionInUseTimesForDelete(@Param("projectContraptionIdList") List<Long> projectContraptionIdList);
/**
* 获取管道信息总数
*
* @param projectContraptionIdList
* @return
*/
List<Map<String, Integer>> selectEquipCount(@Param("projectContraptionIdList") List<Long> projectContraptionIdList);
/**
* 获取不为空的检验信息个数
*/
List<Map<String, Integer>> selectCheckCountByNotNull(@Param("projectContraptionIdList") List<Long> projectContraptionIdList);
/**
* 统计已纳管设备被引用的次数(只有存在就算引用-作废除外)
* @param projectContraptionId 设备唯一标识
* @return 被引用次数 > 0 则设备不可删除
*/
Integer countContraptionInUseTimesForDelete(@Param("projectContraptionId") Long projectContraptionId);
Integer countContraptionInUseTimesForDeleteByIntoManagement(@Param("projectContraptionId")Long projectContraptionId);
List<IdxBizJgProjectContraption> selectErrorManagementProject();
......@@ -62,13 +79,6 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
List<Map<String, Object>> selectEquipListPage(@Param("sequenceNbr") String sequenceNbr, @Param("current") int current, @Param("size") int size);
/**
* 获取管道信息总数
* @param sequenceNbr
* @return
*/
long selectEquipCount(@Param("sequenceNbr") String sequenceNbr);
/**
* 获取导出传输/公共管道的信息
* @param sequenceNbr
* @return
......@@ -76,14 +86,9 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
List<Map<String, Object>> selectEquipListByExport(@Param("sequenceNbr") String sequenceNbr);
/**
* 获取不为空的检验信息个数
*/
int selectCheckCountByNotNull(@Param("sequenceNbr") String sequenceNbr);
/**
* 统计已纳管设备被引用的次数(只有存在就算引用-作废除外)
* @param projectContraptionId 设备唯一标识
* @return 被引用次数 > 0 则设备不可删除
*/
Integer countContraptionInUseTimesForDeleteByIntoManagement(@Param("projectContraptionId")Long projectContraptionId);
List<Map<String, Integer>> countContraptionInUseTimesForDeleteByIntoManagementBatch(@Param("projectContraptionIdList") List<Long> projectContraptionIdList);
}
......@@ -123,4 +123,5 @@ public class TzsUserInfoVo {
* 证件照片
*/
private JSONArray appointDoc;
private String postName;
}
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