Commit e2d0faf0 authored by chenhao's avatar chenhao

提交修改BUG代码 by 陈浩

parent 5ff596b7
......@@ -10,6 +10,8 @@ import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
import org.omg.CORBA.PRIVATE_MEMBER;
/**
* 联动单位
*
......@@ -98,5 +100,10 @@ public class LinkageUnitDto extends BaseDto {
@ApiModelProperty(value = "联动单位图片")
private List<SourceFile> image;
@ApiModelProperty(value = "车辆数量")
private String vehicleNumber;
@ApiModelProperty(value = "特岗人数")
private String personNumber;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyDto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 联动单位 Mapper 接口
......@@ -43,4 +45,22 @@ public interface LinkageUnitMapper extends BaseMapper<LinkageUnit> {
List<LinkageUnitZhDto> listLinkageUnitZhDto(@Param("pageNum")int pageNum, @Param("pageSize")int pageSize, @Param("par") RequestData par);
Integer listLinkageUnitZhDtoCount(@Param("par")RequestData par);
/**
* 查询当前存在的联动单位及统计
* @param isDelete
* @param emergencyLinkageUnitCode
* @return
*/
List<Map<String, Object>> getEmergencyLinkageUnitCodeGroupByAndCount();
/**
* 查询包含特岗人数及的具体信息
* @return
*/
Page<List<LinkageUnitDto>> getEmergencyLinkageUnitList(IPage<LinkageUnitDto> page,String unitName,
String linkageUnitTypeCode, String emergencyLinkageUnitCode);
}
package com.yeejoin.amos.boot.module.common.api.service;
import java.util.List;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.Menu;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
import java.util.List;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
/**
* 联动单位接口类
*
* @author system_generator
* @date 2021-07-16
*/
* 联动单位接口类
*
* @author system_generator
* @date 2021-07-16
*/
public interface ILinkageUnitService {
List<LinkageUnitZhDto> listLinkageUnitZhDto(Integer pageNum, Integer pageSize, RequestData par);
Integer listLinkageUnitZhDtoCount(RequestData par);
LinkageUnitDto queryOne(Long sequenceNbr);
/**
* 联动单位分页查询
*
* @param page
* @param isDelete
* @param unitName 单位名称
* @param linkageUnitType 联动单位类型
* @param emergencyLinkageUnitCode 紧急联动单位类型code
* @return
*/
Page<LinkageUnitDto> queryForLinkageUnitPage(Page<LinkageUnitDto> page,
@Condition(Operator.eq) Boolean isDelete,
@Condition(Operator.like) String unitName,
@Condition(Operator.eq) String linkageUnitType,
@Condition(Operator.eq) String emergencyLinkageUnitCode);
List<LinkageUnitZhDto> listLinkageUnitZhDto(Integer pageNum, Integer pageSize, RequestData par);
Integer listLinkageUnitZhDtoCount(RequestData par);
LinkageUnitDto queryOne(Long sequenceNbr);
/**
* 联动单位分页查询
*
* @param page
* @param isDelete
* @param unitName 单位名称
* @param linkageUnitType 联动单位类型
* @param emergencyLinkageUnitCode 紧急联动单位类型code
* @return
*/
Page<LinkageUnitDto> queryForLinkageUnitPage(IPage<LinkageUnitDto> page,
@Condition(Operator.eq) Boolean isDelete,
@Condition(Operator.like) String unitName,
@Condition(Operator.eq) String linkageUnitTypeCode,
@Condition(Operator.eq) String emergencyLinkageUnitCode,
String inAgreement);
/**
* 获取当前存在的联动单位的类型组code
* @return
*/
public List<Menu> getEmergencyLinkageUnitCodeGroupBy(String type, String rootName) ;
}
<?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.common.api.mapper.LinkageUnitMapper">
<select id="selectOne" resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
select
d.*,
lu.*
from
(
select
i.INSTANCE_ID instanceId,
i.GROUP_CODE groupCode,
<foreach collection="fieldCodes" item="value" index="key" separator=",">
MAX(CASE WHEN i.FIELD_CODE = #{key} THEN i.FIELD_VALUE END) as ${key}
</foreach>
from
cb_dynamic_form_instance i
where i.GROUP_CODE = #{groupCode}
and is_delete = #{isDelete}
GROUP by
i.INSTANCE_ID ) d,
cb_linkage_unit lu
where
d.instanceId = lu.instance_id
and lu.sequence_nbr = #{sequenceNbr}
and is_delete = #{isDelete}
</select>
<select id="listLinkageUnitZhDto" resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto">
select
a.sequence_nbr sequenceNbr,
a.unit_name unitName,
a.address,
a.latitude,
a.longitude,
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1) AS distance
FROM cb_linkage_unit a
where a.longitude is not null and a.latitude is not null
<if test='par.distance!=null'>
and Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1) &lt;=
#{par.distance}
</if>
ORDER BY distance limit #{pageNum},#{pageSize}
</select>
<select id="listLinkageUnitZhDtoCount" resultType="Integer">
select
COUNT(a.sequence_nbr) num
FROM cb_linkage_unit a
where a.longitude is not null and a.latitude is not null
<if test='par.distance!=null'>
and Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1) &lt;=
#{par.distance}
</if>
</select>
<mapper
namespace="com.yeejoin.amos.boot.module.common.api.mapper.LinkageUnitMapper">
<select id="selectOne"
resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
select
d.*,
lu.*
from
(
select
i.INSTANCE_ID instanceId,
i.GROUP_CODE
groupCode,
<foreach collection="fieldCodes" item="value" index="key"
separator=",">
MAX(CASE WHEN i.FIELD_CODE = #{key} THEN i.FIELD_VALUE END)
as ${key}
</foreach>
from
cb_dynamic_form_instance i
where i.GROUP_CODE = #{groupCode}
and
is_delete = #{isDelete}
GROUP by
i.INSTANCE_ID ) d,
cb_linkage_unit lu
where
d.instanceId = lu.instance_id
and lu.sequence_nbr = #{sequenceNbr}
and is_delete = #{isDelete}
</select>
<select id="listLinkageUnitZhDto"
resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto">
select
a.sequence_nbr sequenceNbr,
a.unit_name unitName,
a.address,
a.latitude,
a.longitude,
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
AS distance
FROM cb_linkage_unit a
where a.longitude is not null and
a.latitude is not null
<if test='par.distance!=null'>
and
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
&lt;=
#{par.distance}
</if>
ORDER BY distance limit #{pageNum},#{pageSize}
</select>
<select id="listLinkageUnitZhDtoCount" resultType="Integer">
select
COUNT(a.sequence_nbr) num
FROM cb_linkage_unit a
where a.longitude
is not null and a.latitude is not null
<if test='par.distance!=null'>
and
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
&lt;=
#{par.distance}
</if>
</select>
<select id="getEmergencyLinkageUnitCodeGroupByAndCount"
resultType="java.util.Map">
SELECT
emergency_linkage_unit_code as
emergencyLinkageUnitCode,
COUNT(unit_code) AS count
FROM
cb_linkage_unit
WHERE
is_delete = 0
GROUP BY
emergency_linkage_unit_code
</select>
<select id="getEmergencyLinkageUnitList"
resultType="java.util.Map">
SELECT
clu.sequence_nbr as sequenceNbr,
clu.unit_name as unitName,
clu.unit_code AS unitCode,
clu.parent_id AS parentId,
clu.linkage_unit_type AS linkageUnitType,
clu.linkage_unit_type_code AS linkageUnitTypeCode,
clu.administrative_divisions AS administrativeDivisions,
clu.administrative_divisions_code AS administrativeDivisionsCode,
clu.address AS address,
clu.longitude AS longitude,
clu.latitude AS latitude,
clu.agreement_start_date AS agreementStartDate,
clu.agreement_end_date AS agreementEndDate,
clu.emergency_linkage_unit AS emergencyLinkageUnit,
clu.emergency_linkage_unit_code AS emergencyLinkageUnitCode,
clu.contact_user AS contactUser,
clu.contact_phone AS contactPhone,
clu.instance_id AS instanceId,
clu.org_code AS orgCode,
clu.rec_user_name AS recUserName,
clu.rec_user_id AS recUserId,
clu.rec_date AS recDate,
clu.is_delete AS isDelete,
cre.vehicle_number AS vehicleNumber,
csps.person_number AS personNumber
FROM
cb_linkage_unit clu
LEFT JOIN cb_rescue_equipment cre ON clu.sequence_nbr = cre.company_id
LEFT JOIN cb_special_position_staff csps ON clu.sequence_nbr =
csps.company_id
WHERE clu.is_delete=0
<if test="unitName != null and unitName != ''">
AND clu.unit_name LIKE concat(#{unitName}, '%')
</if>
<if test="linkageUnitTypeCode != null and linkageUnitTypeCode != ''">
AND clu.linkage_unit_type_code =#{linkageUnitTypeCode}
</if>
<if test="emergencyLinkageUnitCode != null and emergencyLinkageUnitCode != ''">
AND clu.emergency_linkage_unit_code =#{emergencyLinkageUnitCode}
</if>
</select>
</mapper>
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.common.biz.service.impl.LinkageUnitServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService;
import com.yeejoin.amos.boot.module.common.biz.service.impl.LinkageUnitServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
......@@ -37,6 +41,9 @@ public class LinkageUnitController extends BaseController {
@Autowired
LinkageUnitServiceImpl linkageUnitServiceImpl;
@Autowired
ILinkageUnitService linkageUnitService;
/**
* 新增联动单位
......@@ -116,20 +123,12 @@ public class LinkageUnitController extends BaseController {
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "联动单位分页查询", notes = "联动单位分页查询")
public ResponseModel<Page<LinkageUnitDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size, String unitName, String linkageUnitType, String inAgreement, String emergencyLinkageUnitCode) {
Page<LinkageUnitDto> page = new Page<LinkageUnitDto>();
(value = "size") int size, String unitName, String linkageUnitTypeCode, String inAgreement, String emergencyLinkageUnitCode) {
Page<LinkageUnitDto> page = new Page<LinkageUnitDto>();
page.setCurrent(current);
page.setSize(size);
Page<LinkageUnitDto> linkageUnitDtoPage = linkageUnitServiceImpl.queryForLinkageUnitPage(page, false,
unitName, linkageUnitType, emergencyLinkageUnitCode);
Date now = new Date();
List<LinkageUnitDto> linkageUnitDtoList = linkageUnitDtoPage.getRecords().stream().map(item -> {
boolean isInAgreement = DateUtils.belongCalendar(now, item.getAgreementStartDate(),
item.getAgreementEndDate());
item.setInAgreement(isInAgreement ? "是" : "否");
return item;
}).filter(item -> StringUtils.isEmpty(inAgreement) || inAgreement.equals(item.getInAgreement())).collect(Collectors.toList());
linkageUnitDtoPage.setRecords(linkageUnitDtoList);
Page<LinkageUnitDto> linkageUnitDtoPage = linkageUnitServiceImpl.queryForLinkageUnitPage(page, false,
unitName, linkageUnitTypeCode, emergencyLinkageUnitCode,inAgreement);
return ResponseHelper.buildResponse(linkageUnitDtoPage);
}
......@@ -144,4 +143,15 @@ public class LinkageUnitController extends BaseController {
public ResponseModel<List<LinkageUnitDto>> selectForList() {
return ResponseHelper.buildResponse(linkageUnitServiceImpl.queryForLinkageUnitList(false));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "联动单位列表树及统计", notes = "联动单位列表树及统计")
@GetMapping(value = "/getLinkageUnitTree")
public ResponseModel<Object> getLinkageUnitTree(@RequestParam String type, @RequestParam String rootName) {
return ResponseHelper.buildResponse(linkageUnitService.getEmergencyLinkageUnitCodeGroupBy(type,rootName));
}
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.Menu;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
import com.yeejoin.amos.boot.module.common.api.entity.SourceFile;
import com.yeejoin.amos.boot.module.common.api.mapper.DynamicFormInstanceMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.LinkageUnitMapper;
import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
/**
* 联动单位服务实现类
......@@ -40,183 +46,248 @@ import java.util.Random;
* @date 2021-07-16
*/
@Service
public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageUnit, LinkageUnitMapper> implements ILinkageUnitService {
@Autowired
DynamicFormInstanceServiceImpl dynamicFormInstanceService;
@Resource
LinkageUnitMapper linkageUnitMapper;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
SourceFileServiceImpl sourceFileServiceImpl;
public String getGroupCode() {
return "linkageUnit";
}
/**
* 分页查询
*/
@Override
public Page<LinkageUnitDto> queryForLinkageUnitPage(Page<LinkageUnitDto> page,
@Condition(Operator.eq) Boolean isDelete,
@Condition(Operator.like) String unitName,
@Condition(Operator.eq) String linkageUnitType,
@Condition(Operator.eq) String emergencyLinkageUnitCode) {
return this.queryForPage(page, null, false, isDelete, unitName, linkageUnitType, emergencyLinkageUnitCode);
}
/**
* 列表查询 示例
*/
public List<LinkageUnitDto> queryForLinkageUnitList(@Condition(Operator.eq) Boolean isDelete) {
return this.queryForList("", false, isDelete);
}
/**
* 保存联动单位
*
* @param linkageUnitDto 对象
* @return List<LinkageUnitDto>
*/
@Transactional
public LinkageUnitDto saveModel(LinkageUnitDto linkageUnitDto) {
if(linkageUnitDto.getAddress()!=null){
String[] data= linkageUnitDto.getAddress().split("@address@");
public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageUnit, LinkageUnitMapper>
implements ILinkageUnitService {
@Autowired
DynamicFormInstanceServiceImpl dynamicFormInstanceService;
@Resource
LinkageUnitMapper linkageUnitMapper;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
SourceFileServiceImpl sourceFileServiceImpl;
@Autowired
DataDictionaryServiceImpl iDataDictionaryService;
public String getGroupCode() {
return "linkageUnit";
}
/**
* 分页查询
*
* @param inAgreement
*/
@Override
public Page<LinkageUnitDto> queryForLinkageUnitPage(IPage<LinkageUnitDto> page,
@Condition(Operator.eq) Boolean isDelete, @Condition(Operator.like) String unitName,
@Condition(Operator.eq) String linkageUnitTypeCode, @Condition(Operator.eq) String emergencyLinkageUnitCode,
String inAgreement) {
Page<List<LinkageUnitDto>> linkageUnitList = linkageUnitMapper.getEmergencyLinkageUnitList(page,unitName, linkageUnitTypeCode, emergencyLinkageUnitCode);
List<Map> linkageUnitListMap =JSONArray.parseArray(JSONArray.toJSONString(linkageUnitList.getRecords()), Map.class);
List<Map<String, Object>> pageList = dynamicFormInstanceService.listAll(getGroupCode());
linkageUnitListMap.forEach(i -> {
String mainString = i.get("instanceId").toString();
pageList.stream().forEach(detail -> {
if (detail.get("instanceId").toString().equals(mainString)) {
i.putAll(detail);
}
});
});
List<LinkageUnitDto> resultDtoList = JSONArray.parseArray(JSONArray.toJSONString(linkageUnitList.getRecords()),
LinkageUnitDto.class);
List<LinkageUnitDto> detaiList = resultDtoList.stream().map(item -> {
Date now = new Date();
boolean isInAgreement = DateUtils.belongCalendar(now, item.getAgreementStartDate(),
item.getAgreementEndDate());
item.setInAgreement(isInAgreement ? "是" : "否");
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(item.getSequenceNbr());
item.setImage(sourceFiles);
return item;
}).filter(item -> StringUtils.isEmpty(inAgreement) || inAgreement.equals(item.getInAgreement()))
.collect(Collectors.toList());
Page<LinkageUnitDto> page1 = new Page<LinkageUnitDto>();
page1.setCurrent(page.getCurrent());
page1.setSize(page.getSize());
page1.setTotal(detaiList.size());
page1.setRecords(detaiList);
return page1;
}
/**
* 列表查询 示例
*/
public List<LinkageUnitDto> queryForLinkageUnitList(@Condition(Operator.eq) Boolean isDelete) {
return this.queryForList("", false, isDelete);
}
/**
* 保存联动单位
*
* @param linkageUnitDto 对象
* @return List<LinkageUnitDto>
*/
@Transactional
public LinkageUnitDto saveModel(LinkageUnitDto linkageUnitDto) {
if (linkageUnitDto.getAddress() != null) {
String[] data = linkageUnitDto.getAddress().split("@address@");
linkageUnitDto.setAddress(data[0]);
if(data[1]!=null&&!"".equals(data[1])){
JSONObject jSONObject = JSON.parseObject(data[1]);
if(jSONObject.getString("longitude")!=null&&!"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLongitude(Double.valueOf(jSONObject.getString("longitude")));
}
if(jSONObject.getString("longitude")!=null&&!"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLatitude(Double.valueOf(jSONObject.getString("latitude")));
}
}
}
//1.保存行数据
String groupCode = this.getGroupCode();
Map<String, Object> map = Bean.BeantoMap(linkageUnitDto);
Long instanceId = dynamicFormInstanceService.commonSave(groupCode, map);
linkageUnitDto.setInstanceId(instanceId);
//2.保存基本信息
linkageUnitDto.setUnitCode(getUnitCodeStr());
LinkageUnitDto model = createWithModel(linkageUnitDto);
//3.保存照片信息
sourceFileServiceImpl.saveSourceFile(model.getSequenceNbr(), model.getImage());
//3.返回保存后的数据
return model;
}
@Override
public LinkageUnitDto queryOne(Long sequenceNbr) {
String groupCode = getGroupCode();
List<DynamicFormColumn> columns =
dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
LinkageUnitDto linkageUnitDto = linkageUnitMapper.selectOne(false, fieldCodes, groupCode, sequenceNbr);
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(linkageUnitDto.getSequenceNbr());
linkageUnitDto.setImage(sourceFiles);
return linkageUnitDto;
}
@Transactional
public Boolean deleteById(Long sequenceNbr) {
// 删除基本信息
LinkageUnit linkageUnit = getById(sequenceNbr);
linkageUnit.setIsDelete(true);
updateById(linkageUnit);
// 删除行
Long instanceId = linkageUnit.getInstanceId();
List<DynamicFormInstance> dynamicFormInstanceList =
dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
dynamicFormInstanceList.forEach(item -> item.setIsDelete(true));
boolean update = dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 删除照片
sourceFileServiceImpl.saveSourceFile(sequenceNbr, new ArrayList<>());
return update;
}
@Transactional
public LinkageUnitDto updateById(LinkageUnitDto linkageUnitDto) {
if(linkageUnitDto.getAddress()!=null){
String[] data= linkageUnitDto.getAddress().split("@address@");
if (data[1] != null && !"".equals(data[1])) {
JSONObject jSONObject = JSON.parseObject(data[1]);
if (jSONObject.getString("longitude") != null && !"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLongitude(Double.valueOf(jSONObject.getString("longitude")));
}
if (jSONObject.getString("longitude") != null && !"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLatitude(Double.valueOf(jSONObject.getString("latitude")));
}
}
}
// 1.保存行数据
String groupCode = this.getGroupCode();
Map<String, Object> map = Bean.BeantoMap(linkageUnitDto);
Long instanceId = dynamicFormInstanceService.commonSave(groupCode, map);
linkageUnitDto.setInstanceId(instanceId);
// 2.保存基本信息
linkageUnitDto.setUnitCode(getUnitCodeStr());
LinkageUnitDto model = createWithModel(linkageUnitDto);
// 3.保存照片信息
sourceFileServiceImpl.saveSourceFile(model.getSequenceNbr(), model.getImage());
// 3.返回保存后的数据
return model;
}
@Override
public LinkageUnitDto queryOne(Long sequenceNbr) {
String groupCode = getGroupCode();
List<DynamicFormColumn> columns = dynamicFormColumnService
.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
LinkageUnitDto linkageUnitDto = linkageUnitMapper.selectOne(false, fieldCodes, groupCode, sequenceNbr);
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(linkageUnitDto.getSequenceNbr());
linkageUnitDto.setImage(sourceFiles);
return linkageUnitDto;
}
@Transactional
public Boolean deleteById(Long sequenceNbr) {
// 删除基本信息
LinkageUnit linkageUnit = getById(sequenceNbr);
linkageUnit.setIsDelete(true);
updateById(linkageUnit);
// 删除行
Long instanceId = linkageUnit.getInstanceId();
List<DynamicFormInstance> dynamicFormInstanceList = dynamicFormInstanceService
.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
dynamicFormInstanceList.forEach(item -> item.setIsDelete(true));
boolean update = dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 删除照片
sourceFileServiceImpl.saveSourceFile(sequenceNbr, new ArrayList<>());
return update;
}
@Transactional
public LinkageUnitDto updateById(LinkageUnitDto linkageUnitDto) {
if (linkageUnitDto.getAddress() != null) {
String[] data = linkageUnitDto.getAddress().split("@address@");
linkageUnitDto.setAddress(data[0]);
if(data[1]!=null&&!"".equals(data[1])){
JSONObject jSONObject = JSON.parseObject(data[1]);
if(jSONObject.getString("longitude")!=null&&!"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLongitude(Double.valueOf(jSONObject.getString("longitude")));
}
if(jSONObject.getString("longitude")!=null&&!"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLatitude(Double.valueOf(jSONObject.getString("latitude")));
}
}
}
// 修改基本信息
updateWithModel(linkageUnitDto);
// 修改行信息
Long instanceId = linkageUnitDto.getInstanceId();
List<DynamicFormInstance> dynamicFormInstanceList =
dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
Map<String, Object> objectMap = Bean.BeantoMap(linkageUnitDto);
dynamicFormInstanceList.forEach(item -> item.setFieldValue(objectMap.get(item.getFieldCode()) != null ?
objectMap.get(item.getFieldCode()).toString() : item.getFieldValue()));
dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 修改照片信息
sourceFileServiceImpl.saveSourceFile(linkageUnitDto.getSequenceNbr(), linkageUnitDto.getImage());
return linkageUnitDto;
}
public static String getUnitCodeStr() {
return TreeParser.genTreeCode();
}
@Override
public List<LinkageUnitZhDto> listLinkageUnitZhDto(Integer pageNum, Integer pageSize, RequestData par) {
if (null == pageNum || null == pageSize) {
pageNum = 1;
pageSize = Integer.MAX_VALUE;
} else {
pageNum = (pageNum - 1) * pageSize;
}
return linkageUnitMapper.listLinkageUnitZhDto(pageNum, pageSize, par);
}
@Override
public Integer listLinkageUnitZhDtoCount(RequestData par) {
return linkageUnitMapper.listLinkageUnitZhDtoCount(par);
}
/**
* 批量删除
*
* @param sequenceNbrList
* @return
*/
public Boolean batchDelete(List<Long> sequenceNbrList) {
// 删除基本信息
List<LinkageUnit> linkageUnitList = list(new LambdaQueryWrapper<LinkageUnit>().in(LinkageUnit::getSequenceNbr,
sequenceNbrList));
List<Long> instanceIdList = Lists.newArrayList();
linkageUnitList.forEach(item -> {
instanceIdList.add(item.getInstanceId());
item.setIsDelete(true);
});
updateBatchById(linkageUnitList);
// 删除行信息
List<DynamicFormInstance> dynamicFormInstanceList =
dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().in(DynamicFormInstance::getInstanceId, instanceIdList));
dynamicFormInstanceList.forEach(item -> item.setIsDelete(true));
boolean update = dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 删除照片
sourceFileServiceImpl.getBaseMapper().delete(new LambdaQueryWrapper<SourceFile>().in(SourceFile::getSourceId,
sequenceNbrList));
return update;
}
if (data[1] != null && !"".equals(data[1])) {
JSONObject jSONObject = JSON.parseObject(data[1]);
if (jSONObject.getString("longitude") != null && !"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLongitude(Double.valueOf(jSONObject.getString("longitude")));
}
if (jSONObject.getString("longitude") != null && !"".equals(jSONObject.getString("longitude"))) {
linkageUnitDto.setLatitude(Double.valueOf(jSONObject.getString("latitude")));
}
}
}
// 修改基本信息
updateWithModel(linkageUnitDto);
// 修改行信息
Long instanceId = linkageUnitDto.getInstanceId();
List<DynamicFormInstance> dynamicFormInstanceList = dynamicFormInstanceService
.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
Map<String, Object> objectMap = Bean.BeantoMap(linkageUnitDto);
dynamicFormInstanceList.forEach(item -> item.setFieldValue(
objectMap.get(item.getFieldCode()) != null ? objectMap.get(item.getFieldCode()).toString()
: item.getFieldValue()));
dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 修改照片信息
sourceFileServiceImpl.saveSourceFile(linkageUnitDto.getSequenceNbr(), linkageUnitDto.getImage());
return linkageUnitDto;
}
public static String getUnitCodeStr() {
return TreeParser.genTreeCode();
}
@Override
public List<LinkageUnitZhDto> listLinkageUnitZhDto(Integer pageNum, Integer pageSize, RequestData par) {
if (null == pageNum || null == pageSize) {
pageNum = 1;
pageSize = Integer.MAX_VALUE;
} else {
pageNum = (pageNum - 1) * pageSize;
}
return linkageUnitMapper.listLinkageUnitZhDto(pageNum, pageSize, par);
}
@Override
public Integer listLinkageUnitZhDtoCount(RequestData par) {
return linkageUnitMapper.listLinkageUnitZhDtoCount(par);
}
/**
* 批量删除
*
* @param sequenceNbrList
* @return
*/
public Boolean batchDelete(List<Long> sequenceNbrList) {
// 删除基本信息
List<LinkageUnit> linkageUnitList = list(
new LambdaQueryWrapper<LinkageUnit>().in(LinkageUnit::getSequenceNbr, sequenceNbrList));
List<Long> instanceIdList = Lists.newArrayList();
linkageUnitList.forEach(item -> {
instanceIdList.add(item.getInstanceId());
item.setIsDelete(true);
});
updateBatchById(linkageUnitList);
// 删除行信息
List<DynamicFormInstance> dynamicFormInstanceList = dynamicFormInstanceService.list(
new LambdaQueryWrapper<DynamicFormInstance>().in(DynamicFormInstance::getInstanceId, instanceIdList));
dynamicFormInstanceList.forEach(item -> item.setIsDelete(true));
boolean update = dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 删除照片
sourceFileServiceImpl.getBaseMapper()
.delete(new LambdaQueryWrapper<SourceFile>().in(SourceFile::getSourceId, sequenceNbrList));
return update;
}
public List<Menu> getEmergencyLinkageUnitCodeGroupBy(String type, String rootName) {
List<Map<String, Object>> map = linkageUnitMapper.getEmergencyLinkageUnitCodeGroupByAndCount();
LambdaQueryWrapper<DataDictionary> queryWrapper = new LambdaQueryWrapper<DataDictionary>();
queryWrapper.eq(DataDictionary::getType, type);
queryWrapper.eq(DataDictionary::getIsDelete, false);
queryWrapper.orderByAsc(DataDictionary::getSortNum);
List<DataDictionary> list = iDataDictionaryService.list(queryWrapper);
List<DataDictionary> resultList = new ArrayList<DataDictionary>();
list.stream().forEach(i -> {
map.stream().forEach(m -> {
if (m.containsKey("emergencyLinkageUnitCode") && m.get("emergencyLinkageUnitCode").toString().equals(i.getCode())) {
i.setName(i.getName() + " " + m.get("count"));
resultList.add(i);
}
});
});
List<Menu> menuList = new ArrayList<Menu>();
try {
List<Menu> menus = TreeParser.getTree(null, resultList, DataDictionary.class.getName(), "getCode", 0, "getName",
"getParent", null);
Menu menu = new Menu(-1L, rootName, -1L, menus, 0);
// 挂在主节点
menuList.add(menu);
} catch (Exception e) {
log.debug("拼装tree树失败");
}
return menuList;
}
}
\ No newline at end of file
package com.yeejoin.amos.patrol.common.remote;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import com.yeejoin.amos.patrol.business.constants.XJConstant;
import com.yeejoin.amos.patrol.business.param.LatentDangerListParam;
import com.yeejoin.amos.patrol.business.util.HttpUtil;
import com.yeejoin.amos.patrol.common.enums.WorkFlowUriEnum;
import com.yeejoin.amos.patrol.common.enums.YesOrNoEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.Map;
@Service("remoteWorkFlowService")
public class RemoteWorkFlowService {
......
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