Commit 4436a648 authored by 付培阳's avatar 付培阳

联动单位基本信息接口

parent e9ace829
...@@ -635,7 +635,7 @@ public class DateUtils { ...@@ -635,7 +635,7 @@ public class DateUtils {
int year = calendar.get(Calendar.YEAR);//年份 int year = calendar.get(Calendar.YEAR);//年份
int day = calendar.getActualMaximum(Calendar.DATE); int day = calendar.getActualMaximum(Calendar.DATE);
for (int i = 1; i <= day; i++) { for (int i = 1; i <= day; i++) {
String source = year+"-"+month+"-"+i; String source = year + "-" + month + "-" + i;
list.add(shortSdf.parse(source)); list.add(shortSdf.parse(source));
} }
} catch (ParseException e) { } catch (ParseException e) {
...@@ -644,4 +644,23 @@ public class DateUtils { ...@@ -644,4 +644,23 @@ public class DateUtils {
return list; return list;
} }
/**
* 判断一个时间是否在一个时间段内
*
* @param nowTime 当前时间
* @param beginTime 开始时间
* @param endTime 结束时间
*/
public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
Calendar date = Calendar.getInstance();
date.setTime(nowTime);
Calendar begin = Calendar.getInstance();
begin.setTime(beginTime);
Calendar end = Calendar.getInstance();
end.setTime(endTime);
return date.after(begin) && date.before(end);
}
} }
...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
/** /**
...@@ -15,10 +16,10 @@ import java.util.Date; ...@@ -15,10 +16,10 @@ import java.util.Date;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel(value="LinkageUnitDto", description="联动单位") @ApiModel(value = "LinkageUnitDto", description = "联动单位")
public class LinkageUnitDto extends BaseDto { public class LinkageUnitDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位名称") @ApiModelProperty(value = "单位名称")
...@@ -78,4 +79,19 @@ public class LinkageUnitDto extends BaseDto { ...@@ -78,4 +79,19 @@ public class LinkageUnitDto extends BaseDto {
@ApiModelProperty(value = "操作人名称") @ApiModelProperty(value = "操作人名称")
private String recUserName; private String recUserName;
@ApiModelProperty(value = "是否在协议期 ")
private String inAgreement;
@ApiModelProperty(value = "消防救援能力")
private String fireRescueCapability;
@ApiModelProperty(value = "职责_简要情况")
private String responsibilitiesSituation;
@ApiModelProperty(value = "应急服务内容")
private String emergencyServiceContent;
@ApiModelProperty(value = "单位_简要情况")
private String unitSituation;
} }
package com.yeejoin.amos.boot.module.common.api.mapper; package com.yeejoin.amos.boot.module.common.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit; import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/** /**
* 联动单位 Mapper 接口 * 联动单位 Mapper 接口
* *
* @author system_generator * @author system_generator
* @date 2021-07-16 * @date 2021-07-16
*/ */
public interface LinkageUnitMapper extends BaseMapper<LinkageUnit> { public interface LinkageUnitMapper extends BaseMapper<LinkageUnit> {
/**
* 列转行查询单个
*
* @param fieldCodes 列
* @param groupCode 分组code
* @param sequenceNbr 主键
* @return List<Map>
*/
LinkageUnitDto selectOne(
@Param("isDelete") Boolean isDelete,
@Param("fieldCodes") Map<String, Object> fieldCodes,
@Param("groupCode") String groupCode,
@Param("sequenceNbr") Long sequenceNbr
);
} }
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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"> <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>
</mapper> </mapper>
package com.yeejoin.amos.boot.module.common.biz.controller; 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 org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.common.biz.service.impl.LinkageUnitServiceImpl; import com.yeejoin.amos.boot.module.common.biz.service.impl.LinkageUnitServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.LinkageUnitDto;
...@@ -37,28 +46,29 @@ public class LinkageUnitController extends BaseController { ...@@ -37,28 +46,29 @@ public class LinkageUnitController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增联动单位", notes = "新增联动单位") @ApiOperation(httpMethod = "POST", value = "新增联动单位", notes = "新增联动单位")
public ResponseModel<LinkageUnitDto> save(@RequestBody LinkageUnitDto model) { public ResponseModel<LinkageUnitDto> save(@RequestBody LinkageUnitDto model) {
model = linkageUnitServiceImpl.createWithModel(model); model = linkageUnitServiceImpl.saveModel(model);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
/** /**
* 根据sequenceNbr更新 * 根据sequenceNbr更新
* *
* @param sequenceNbr 主键 * @param sequenceNbr 主键
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新联动单位", notes = "根据sequenceNbr更新联动单位") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新联动单位", notes = "根据sequenceNbr更新联动单位")
public ResponseModel<LinkageUnitDto> updateBySequenceNbrLinkageUnit(@RequestBody LinkageUnitDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<LinkageUnitDto> updateBySequenceNbrLinkageUnit(@RequestBody LinkageUnitDto model,
model.setSequenceNbr(sequenceNbr); @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(linkageUnitServiceImpl.updateWithModel(model)); model.setSequenceNbr(sequenceNbr);
} return ResponseHelper.buildResponse(linkageUnitServiceImpl.updateById(model));
}
/** /**
* 根据sequenceNbr删除 * 根据sequenceNbr删除
* *
* @param sequenceNbr 主键 * @param sequenceNbr 主键
...@@ -67,50 +77,60 @@ public class LinkageUnitController extends BaseController { ...@@ -67,50 +77,60 @@ public class LinkageUnitController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}") @DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除联动单位", notes = "根据sequenceNbr删除联动单位") @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除联动单位", notes = "根据sequenceNbr删除联动单位")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){ public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(linkageUnitServiceImpl.removeById(sequenceNbr)); return ResponseHelper.buildResponse(linkageUnitServiceImpl.deleteById(sequenceNbr));
} }
/** /**
* 根据sequenceNbr查询 * 根据sequenceNbr查询
* *
* @param sequenceNbr 主键 * @param sequenceNbr 主键
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个联动单位", notes = "根据sequenceNbr查询单个联动单位") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个联动单位", notes = "根据sequenceNbr查询单个联动单位")
public ResponseModel<LinkageUnitDto> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<LinkageUnitDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(linkageUnitServiceImpl.queryBySeq(sequenceNbr)); return ResponseHelper.buildResponse(linkageUnitServiceImpl.queryOne(sequenceNbr));
} }
/** /**
* 列表分页查询 * 列表分页查询
* *
* @param current 当前页 * @param current 当前页
* @param current 每页大小 * @param current 每页大小
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page") @GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "联动单位分页查询", notes = "联动单位分页查询") @ApiOperation(httpMethod = "GET", value = "联动单位分页查询", notes = "联动单位分页查询")
public ResponseModel<Page<LinkageUnitDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam public ResponseModel<Page<LinkageUnitDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size) { (value = "size") int size, String unitName, String linkageUnitType, String inAgreement) {
Page<LinkageUnitDto> page = new Page<LinkageUnitDto>(); Page<LinkageUnitDto> page = new Page<LinkageUnitDto>();
page.setCurrent(current); page.setCurrent(current);
page.setSize(size); page.setSize(size);
return ResponseHelper.buildResponse(linkageUnitServiceImpl.queryForLinkageUnitPage(page)); Page<LinkageUnitDto> linkageUnitDtoPage = linkageUnitServiceImpl.queryForLinkageUnitPage(page, false,
} unitName, linkageUnitType);
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);
return ResponseHelper.buildResponse(linkageUnitDtoPage);
}
/** /**
* 列表全部数据查询 * 列表全部数据查询
* *
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "联动单位列表全部数据查询", notes = "联动单位列表全部数据查询") @ApiOperation(httpMethod = "GET", value = "联动单位列表全部数据查询", notes = "联动单位列表全部数据查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<LinkageUnitDto>> selectForList() { public ResponseModel<List<LinkageUnitDto>> selectForList() {
return ResponseHelper.buildResponse(linkageUnitServiceImpl.queryForLinkageUnitList()); return ResponseHelper.buildResponse(linkageUnitServiceImpl.queryForLinkageUnitList(false));
} }
} }
package com.yeejoin.amos.boot.module.common.biz.service.impl; package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
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.LinkageUnit;
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.mapper.LinkageUnitMapper;
import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService; import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto; import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import org.springframework.beans.factory.annotation.Autowired;
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.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 联动单位服务实现类 * 联动单位服务实现类
...@@ -17,17 +30,86 @@ import java.util.List; ...@@ -17,17 +30,86 @@ import java.util.List;
*/ */
@Service @Service
public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageUnit, LinkageUnitMapper> implements ILinkageUnitService { public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageUnit, LinkageUnitMapper> implements ILinkageUnitService {
@Autowired
DynamicFormInstanceServiceImpl dynamicFormInstanceService;
@Resource
LinkageUnitMapper linkageUnitMapper;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
public String getGroupCode() {
return "linkageUnit";
}
/** /**
* 分页查询 * 分页查询
*/ */
public Page<LinkageUnitDto> queryForLinkageUnitPage(Page<LinkageUnitDto> page) { public Page<LinkageUnitDto> queryForLinkageUnitPage(Page<LinkageUnitDto> page,
return this.queryForPage(page, null, false); @Condition(Operator.eq) Boolean isDelete,
@Condition(Operator.like) String unitName,
@Condition(Operator.eq) String linkageUnitType) {
return this.queryForPage(page, null, false, isDelete, unitName, linkageUnitType);
} }
/** /**
* 列表查询 示例 * 列表查询 示例
*/ */
public List<LinkageUnitDto> queryForLinkageUnitList() { public List<LinkageUnitDto> queryForLinkageUnitList(@Condition(Operator.eq) Boolean isDelete) {
return this.queryForList("" , false); return this.queryForList("", false, isDelete);
}
/**
* 保存联动单位
*
* @param linkageUnitDto 对象
* @return List<LinkageUnitDto>
*/
public LinkageUnitDto saveModel(LinkageUnitDto linkageUnitDto) {
//1.保存行数据
String groupCode = this.getGroupCode();
Map<String, Object> map = Bean.BeantoMap(linkageUnitDto);
Long instanceId = dynamicFormInstanceService.commonSave(groupCode, map);
linkageUnitDto.setInstanceId(instanceId);
//2.保存值班信息
LinkageUnitDto model = createWithModel(linkageUnitDto);
//3.返回保存后的数据
return model;
}
public LinkageUnitDto queryOne(Long sequenceNbr) {
boolean isDelete = false;
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(isDelete, fieldCodes, groupCode, sequenceNbr);
return linkageUnitDto;
}
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);
return update;
}
public LinkageUnitDto updateById(LinkageUnitDto linkageUnitDto) {
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);
return linkageUnitDto;
} }
} }
\ No newline at end of file
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