fix: 同步基础数据处理科室code
parent
ccf210083e
commit
aa623490aa
@ -0,0 +1,56 @@
|
||||
package com.docus.demo.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 科室
|
||||
* </p>
|
||||
*
|
||||
* @author jiashi
|
||||
* @since 2021-04-15
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "PowerDept对象", description = "科室")
|
||||
public class PowerDept {
|
||||
|
||||
@ApiModelProperty(value = "科室id")
|
||||
private Long deptId;
|
||||
|
||||
@ApiModelProperty(value = "科室代码")
|
||||
private String deptCode;
|
||||
|
||||
@ApiModelProperty(value = "科室名称")
|
||||
private String deptName;
|
||||
|
||||
@ApiModelProperty(value = "字典id")
|
||||
private Integer dictId;
|
||||
|
||||
@ApiModelProperty(value = "是否有效")
|
||||
private Integer effective;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createDate;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String creater;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateDate;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updater;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "临床科室排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "0:非临床科室,1:临床科室")
|
||||
private Integer type;
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.docus.demo.mapper.mysql;
|
||||
|
||||
|
||||
import com.docus.demo.entity.PowerDept;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface PowerDeptMapper {
|
||||
|
||||
|
||||
List<PowerDept> list();
|
||||
|
||||
int insert(@Param("list") List<PowerDept> addPowerDeptList);
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package com.docus.demo.service;
|
||||
|
||||
import com.docus.demo.entity.PowerDept;
|
||||
import com.docus.demo.entity.Tbasic;
|
||||
import com.docus.demo.facade.BasicDeptService;
|
||||
import com.docus.demo.mapper.mysql.PowerDeptMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author YongBin Wen
|
||||
* @date 2024/10/25 14:40
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class BasicDeptServiceImpl implements BasicDeptService {
|
||||
@Resource
|
||||
private PowerDeptMapper powerDeptMapper;
|
||||
private final ReentrantLock HANDLE_DEPT_LOCK=new ReentrantLock();
|
||||
@Override
|
||||
public void handleDept(List<Tbasic> tbasicList) {
|
||||
HANDLE_DEPT_LOCK.lock();
|
||||
try {
|
||||
List<PowerDept> powerDeptList= powerDeptMapper.list();
|
||||
Map<String, PowerDept> powerDeptMap = powerDeptList.stream().collect(Collectors.toMap(PowerDept::getDeptName, Function.identity()));
|
||||
long maxDeptId=0L;
|
||||
Optional<Long> maxDeptIdOp = powerDeptList.stream().map(PowerDept::getDeptId).max(Comparator.naturalOrder());
|
||||
if (maxDeptIdOp.isPresent()) {
|
||||
maxDeptId=maxDeptIdOp.get();
|
||||
}
|
||||
List< PowerDept> addPowerDeptList = new ArrayList<>();
|
||||
for (Tbasic tbasic : tbasicList) {
|
||||
if(tbasic.getAdmissDeptName() == null){
|
||||
tbasic.setAdmissDeptName("");
|
||||
}
|
||||
if(tbasic.getDisDeptName() == null){
|
||||
tbasic.setDisDeptName("");
|
||||
}
|
||||
|
||||
if (!powerDeptMap.containsKey(tbasic.getAdmissDeptName())) {
|
||||
PowerDept powerDept = new PowerDept();
|
||||
maxDeptId=maxDeptId+1;
|
||||
powerDept.setDeptId(maxDeptId);
|
||||
powerDept.setDeptCode(String.valueOf(maxDeptId));
|
||||
powerDept.setDeptName(tbasic.getAdmissDeptName());
|
||||
|
||||
powerDeptMap.put(powerDept.getDeptName(),powerDept);
|
||||
addPowerDeptList.add(powerDept);
|
||||
}
|
||||
|
||||
if (!powerDeptMap.containsKey(tbasic.getDisDeptName())) {
|
||||
PowerDept powerDept = new PowerDept();
|
||||
maxDeptId=maxDeptId+1;
|
||||
powerDept.setDeptId(maxDeptId);
|
||||
powerDept.setDeptCode(String.valueOf(maxDeptId));
|
||||
powerDept.setDeptName(tbasic.getDisDeptName());
|
||||
|
||||
powerDeptMap.put(powerDept.getDeptName(),powerDept);
|
||||
addPowerDeptList.add(powerDept);
|
||||
}
|
||||
|
||||
PowerDept powerDept1 = powerDeptMap.get(tbasic.getAdmissDeptName());
|
||||
tbasic.setAdmissDept(powerDept1.getDeptCode());
|
||||
PowerDept powerDept2 = powerDeptMap.get(tbasic.getDisDeptName());
|
||||
tbasic.setAdmissDept(powerDept2.getDeptCode());
|
||||
|
||||
}
|
||||
|
||||
if(!addPowerDeptList.isEmpty()){
|
||||
powerDeptMapper.insert(addPowerDeptList);
|
||||
}
|
||||
|
||||
}catch (Exception ex){
|
||||
log.error("处理基础数据科室信息异常,"+ex.getMessage(),ex);
|
||||
} finally {
|
||||
HANDLE_DEPT_LOCK.unlock();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
<?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.docus.demo.mapper.mysql.PowerDeptMapper">
|
||||
|
||||
<insert id="insert">
|
||||
INSERT INTO docus_system.power_dept
|
||||
(dept_id, dept_code, dept_name,effective)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(#{item.deptId},#{item.deptCode},#{item.deptName},1)
|
||||
</foreach>
|
||||
</insert>
|
||||
<select id="list" resultType="com.docus.demo.entity.PowerDept">
|
||||
select * from docus_system.power_dept
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue