Commit 16f2da67 authored by ZWT's avatar ZWT

得到的

parent 4696b821
...@@ -120,6 +120,7 @@ public class BaseUtils { ...@@ -120,6 +120,7 @@ public class BaseUtils {
public static void setBaseModelDefaultForJob(BaseModel model) { public static void setBaseModelDefaultForJob(BaseModel model) {
DateTime beginOfDay = DateUtil.beginOfDay(DateTime.now()); DateTime beginOfDay = DateUtil.beginOfDay(DateTime.now());
model.setId(BaseUtils.randomUUIDString()); model.setId(BaseUtils.randomUUIDString());
model.setIsDeleted(1);
model.setCreateById("Task"); model.setCreateById("Task");
model.setCreateByName("Task"); model.setCreateByName("Task");
model.setCreateTime(beginOfDay); model.setCreateTime(beginOfDay);
......
...@@ -9,12 +9,10 @@ import pps.cloud.space.service.ISpaceCalibrationCloudService; ...@@ -9,12 +9,10 @@ import pps.cloud.space.service.ISpaceCalibrationCloudService;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.common.utils.BaseUtils; import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.SpaceCalibrationHistoryEnt;
import pps.core.space.entity.SpaceCalibrationHistoryView; import pps.core.space.entity.SpaceCalibrationHistoryView;
import pps.core.space.entity.SpaceCalibrationPeriodEnt; import pps.core.space.entity.SpaceCalibrationPeriodEnt;
import pps.core.space.entity.SpaceInstitutionDetailEnt; import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.enums.BusinessError; import pps.core.space.enums.BusinessError;
import pps.core.space.mapper.SpaceCalibrationHistoryMapper;
import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper; import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper;
import pps.core.space.mapper.SpaceCalibrationPeriodMapper; import pps.core.space.mapper.SpaceCalibrationPeriodMapper;
import pps.core.space.mapper.SpaceInstitutionDetailMapper; import pps.core.space.mapper.SpaceInstitutionDetailMapper;
...@@ -56,7 +54,7 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS ...@@ -56,7 +54,7 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS
} }
//取当前时间 //取当前时间
DateTime date = DateUtil.date(); DateTime date = DateUtil.date();
String sameDay = date.toString(BusinessConstant.DATE_FORMAT_DAY); DateTime beginOfDay = DateUtil.beginOfDay(date);
//查生效中的基础间开 //查生效中的基础间开
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class); SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
List<SpaceInstitutionDetailEnt> detailEntList = detailMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>() List<SpaceInstitutionDetailEnt> detailEntList = detailMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>()
...@@ -66,8 +64,8 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS ...@@ -66,8 +64,8 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS
calibrationList.stream() calibrationList.stream()
.map(SpaceCalibrationPeriodEnt::getLineId) .map(SpaceCalibrationPeriodEnt::getLineId)
.collect(Collectors.toList())) .collect(Collectors.toList()))
.le(SpaceInstitutionDetailEnt::getInstitutionStartDate, sameDay) .le(SpaceInstitutionDetailEnt::getInstitutionStartDate, beginOfDay)
.ge(SpaceInstitutionDetailEnt::getInstitutionEndDate, sameDay) .ge(SpaceInstitutionDetailEnt::getInstitutionEndDate, beginOfDay)
); );
if (CollUtil.isEmpty(detailEntList)) { if (CollUtil.isEmpty(detailEntList)) {
return XServiceResult.error(context, BusinessError.DidNotFindSpace); return XServiceResult.error(context, BusinessError.DidNotFindSpace);
...@@ -75,53 +73,50 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS ...@@ -75,53 +73,50 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS
//生效中的间开按照线路ID分组 //生效中的间开按照线路ID分组
Map<String, List<SpaceInstitutionDetailEnt>> institutionDetailMap = detailEntList.stream() Map<String, List<SpaceInstitutionDetailEnt>> institutionDetailMap = detailEntList.stream()
.collect(Collectors.groupingBy(SpaceInstitutionDetailEnt::getLineId)); .collect(Collectors.groupingBy(SpaceInstitutionDetailEnt::getLineId));
//周期数据处理 //开启事务
List<SpaceCalibrationHistoryView> historyViewList = new ArrayList<>(128); return XTransactionHelper.begin(context, () -> {
String lineId; //周期数据处理
Integer dayNumber; List<SpaceCalibrationHistoryView> historyViewList = new ArrayList<>(128);
List<SpaceInstitutionDetailEnt> institutionDetailList; String lineId;
SpaceCalibrationHistoryMapper historyMapper = context.getBean(SpaceCalibrationHistoryMapper.class); Integer dayNumber;
for (SpaceCalibrationPeriodEnt calibration : calibrationList) { List<SpaceInstitutionDetailEnt> institutionDetailList;
lineId = calibration.getLineId(); SpaceCalibrationHistoryViewMapper historyMapper = context.getBean(SpaceCalibrationHistoryViewMapper.class);
if (!institutionDetailMap.containsKey(lineId)) { SpaceCalibrationHistoryView view = new SpaceCalibrationHistoryView();
continue; view.setIsDeleted(BusinessConstant.ONE);
} for (SpaceCalibrationPeriodEnt calibration : calibrationList) {
institutionDetailList = institutionDetailMap.get(lineId); lineId = calibration.getLineId();
if (CollUtil.isEmpty(institutionDetailList)) { if (!institutionDetailMap.containsKey(lineId)) {
continue; continue;
} }
dayNumber = Integer.valueOf(calibration.getDayNumber()); institutionDetailList = institutionDetailMap.get(lineId);
for (SpaceInstitutionDetailEnt detailEnt : institutionDetailList) { if (CollUtil.isEmpty(institutionDetailList)) {
String institutionId = detailEnt.getId(); continue;
//查当前制度最新的的历史周期 }
SpaceCalibrationHistoryEnt lastHistory = historyMapper.selectOne(new LambdaQueryWrapper<SpaceCalibrationHistoryEnt>() dayNumber = Integer.valueOf(calibration.getDayNumber());
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) for (SpaceInstitutionDetailEnt detailEnt : institutionDetailList) {
.eq(SpaceCalibrationHistoryEnt::getInstitutionId, institutionId) String institutionId = detailEnt.getId();
.orderByDesc(SpaceCalibrationHistoryEnt::getCalibrationDate) //查当前制度最新的的历史周期
.last(BaseUtils.getLastLimit()) view.setInstitutionId(institutionId);
); SpaceCalibrationHistoryView lastHistory = historyMapper.selectOne(view);
if (ObjectUtil.isNull(lastHistory)) { if (ObjectUtil.isNull(lastHistory)) {
//创建周期 //创建周期
this.createCalibrationHistory(historyViewList, lineId, institutionId, date, dayNumber); this.createCalibrationHistory(historyViewList, lineId, institutionId, date, dayNumber);
} else { } else {
//判断当前时间是否大于等于周期校准时间 //判断当前时间是否大于等于周期校准时间
Date calibrationDate = lastHistory.getCalibrationDate(); Date calibrationDate = lastHistory.getCalibrationDate();
if (DateUtil.compare(date, calibrationDate) >= 0) { if (DateUtil.compare(date, calibrationDate) >= 0) {
this.createCalibrationHistory(historyViewList, lineId, institutionId, calibrationDate, dayNumber); this.createCalibrationHistory(historyViewList, lineId, institutionId, calibrationDate, dayNumber);
}
} }
} }
} }
}
//开启事务
return XTransactionHelper.begin(context, () -> {
SpaceCalibrationHistoryViewMapper historyViewMapper = context.getBean(SpaceCalibrationHistoryViewMapper.class);
if (CollUtil.isNotEmpty(historyViewList)) { if (CollUtil.isNotEmpty(historyViewList)) {
int size = historyViewList.size(); int size = historyViewList.size();
if (size > BaseUtils.BATCH_SIZE) { if (size > BaseUtils.BATCH_SIZE) {
List<List<SpaceCalibrationHistoryView>> subList = BaseUtils.getSubList(historyViewList); List<List<SpaceCalibrationHistoryView>> subList = BaseUtils.getSubList(historyViewList);
subList.forEach(historyViewMapper::batchInsertList); subList.forEach(historyMapper::batchInsertList);
} else { } else {
historyViewMapper.batchInsertList(historyViewList); historyMapper.batchInsertList(historyViewList);
} }
} }
return XServiceResult.OK; return XServiceResult.OK;
......
...@@ -32,12 +32,47 @@ ...@@ -32,12 +32,47 @@
CALIBRATION_DATE CALIBRATION_DATE
</sql> </sql>
<select id="selectOne" parameterType="pps.core.space.entity.SpaceCalibrationHistoryView" resultMap="BaseResultMap"> <select id="selectOne" parameterType="pps.core.space.entity.SpaceCalibrationHistoryView" resultMap="BaseResultMap"
databaseId="MySQL">
SELECT SELECT
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
FROM SPACE_CALIBRATION_HISTORY FROM SPACE_CALIBRATION_HISTORY
WHERE <where>
ID=#{id} <if test="isDeleted != null">
AND IS_DELETED = #{isDeleted}
</if>
<if test="institutionId != null and institutionId != ''">
AND INSTITUTION_ID = #{institutionId}
</if>
<if test="id != null and id != ''">
AND ID = #{id}
</if>
</where>
ORDER BY
CALIBRATION_DATE DESC
LIMIT 1
</select>
<select id="selectOne" parameterType="pps.core.space.entity.SpaceCalibrationHistoryView" resultMap="BaseResultMap"
databaseId="Oracle">
SELECT * FROM (
SELECT
<include refid="Base_Column_List"/>
FROM SPACE_CALIBRATION_HISTORY
<where>
<if test="isDeleted != null">
AND IS_DELETED = #{isDeleted}
</if>
<if test="institutionId != null and institutionId != ''">
AND INSTITUTION_ID = #{institutionId}
</if>
<if test="id != null and id != ''">
AND ID = #{id}
</if>
</where>
ORDER BY
CALIBRATION_DATE DESC
) WHERE ROWNUM = 1
</select> </select>
<resultMap id="ExtendResultMap" type="pps.core.space.entity.SpaceCalibrationHistoryView" extends="BaseResultMap"> <resultMap id="ExtendResultMap" type="pps.core.space.entity.SpaceCalibrationHistoryView" extends="BaseResultMap">
...@@ -65,12 +100,13 @@ ...@@ -65,12 +100,13 @@
</select> </select>
<insert id="batchInsertList" parameterType="list"> <insert id="batchInsertList" parameterType="list">
INSERT INTO SPACE_CALIBRATION_HISTORY ( ID, CREATE_BY_ID, CREATE_BY_NAME, CREATE_TIME, MODIFY_BY_ID, INSERT INTO SPACE_CALIBRATION_HISTORY ( ID, IS_DELETED, CREATE_BY_ID, CREATE_BY_NAME, CREATE_TIME, MODIFY_BY_ID,
MODIFY_BY_NAME, MODIFY_TIME, LINE_ID, INSTITUTION_ID, EXECUTION_CYCLE, CALIBRATION_DATE ) MODIFY_BY_NAME, MODIFY_TIME, LINE_ID, INSTITUTION_ID, EXECUTION_CYCLE, CALIBRATION_DATE )
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
#{item.id}, #{item.id},
#{item.isDeleted},
#{item.createById}, #{item.createById},
#{item.createByName}, #{item.createByName},
#{item.createTime}, #{item.createTime},
......
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