package com.zy.asrs.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.zy.asrs.entity.WrkDetl;
|
import com.zy.asrs.entity.WrkDetlLog;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.entity.WrkMastLog;
|
import com.zy.asrs.mapper.WrkDetlLogMapper;
|
import com.zy.asrs.mapper.WrkDetlMapper;
|
import com.zy.asrs.mapper.WrkMastLogMapper;
|
import com.zy.asrs.mapper.WrkMastMapper;
|
import com.zy.asrs.service.WrkArchiveToLogService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.text.MessageFormat;
|
import java.util.List;
|
|
@Slf4j
|
@Service("wrkArchiveToLog")
|
public class WrkArchiveToLogServiceImpl implements WrkArchiveToLogService {
|
|
@Autowired
|
private WrkMastLogMapper wrkMastLogMapper;
|
@Autowired
|
private WrkDetlLogMapper wrkDetlLogMapper;
|
@Autowired
|
private WrkMastMapper wrkMastMapper;
|
@Autowired
|
private WrkDetlMapper wrkDetlMapper;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void archiveMastAndDetlToLogThenDeleteCurrent(WrkMast wrkMast) {
|
boolean printLog = !Cools.isEmpty(wrkMast)
|
&& Long.valueOf(30L).equals(wrkMast.getWrkSts())
|
&& "Y".equalsIgnoreCase(wrkMast.getFullPlt());
|
|
Integer wrkNo = wrkMast.getWrkNo();
|
boolean wrkMastLogSaved = wrkMastLogMapper.save(wrkNo) > 0;
|
if (!wrkMastLogSaved) {
|
log.error(MessageFormat.format("保存工作历史档[workNo={0}]失败", wrkNo));
|
}
|
int num = 0;
|
List<WrkDetl> detls = wrkDetlMapper.selectByWrkNo(wrkNo);
|
|
for (WrkDetl d : detls) {
|
WrkDetlLog detlLog = new WrkDetlLog(d);
|
num += wrkDetlLogMapper.insert(detlLog);
|
}
|
boolean wrkDetlLogSaved = num > 0;
|
// boolean wrkDetlLogSaved = wrkDetlLogMapper.save(wrkNo) > 0;
|
if (!wrkDetlLogSaved) {
|
log.error(MessageFormat.format("保存工作明细历史档[workNo={0}]失败", wrkNo));
|
}
|
|
EntityWrapper<WrkMastLog> mastLogW = new EntityWrapper<>();
|
mastLogW.eq("wrk_no", wrkNo);
|
mastLogW.eq("io_time", wrkMast.getIoTime());
|
int mastCount = wrkMastLogMapper.selectCount(mastLogW);
|
EntityWrapper<WrkDetlLog> detlLogW = new EntityWrapper<>();
|
detlLogW.eq("wrk_no", wrkNo);
|
detlLogW.eq("io_time", wrkMast.getIoTime());
|
int detlCount = wrkDetlLogMapper.selectCount(detlLogW);
|
boolean wrkMastDeleted =false;
|
boolean wrkDetlDeleted =false;
|
if (mastCount > 0 && detlCount > 0) {
|
wrkMastDeleted = wrkMastMapper.deleteById(wrkNo) > 0;
|
if (!wrkMastDeleted) {
|
log.error(MessageFormat.format("删除工作主档[workNo={0}]失败", wrkNo));
|
}
|
wrkDetlDeleted = wrkDetlMapper.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)) > 0;
|
if (!wrkDetlDeleted) {
|
log.error(MessageFormat.format("删除工作明细档[workNo={0}]失败", wrkNo));
|
}
|
}
|
if (printLog) {
|
JSONObject detlJson = new JSONObject(true);
|
detlJson.put("service", "WrkArchiveToLogService");
|
detlJson.put("wrkNo", wrkNo);
|
detlJson.put("wrkDetls", JSON.toJSON(detls));
|
detlJson.put("wrkMast", (JSONObject) JSON.toJSON(wrkMast));
|
detlJson.put("wrkMastDeleted", wrkMastDeleted);
|
detlJson.put("wrkDetlDeleted", wrkDetlDeleted);
|
log.info(detlJson.toJSONString());
|
}
|
}
|
|
}
|