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 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 mastLogW = new EntityWrapper<>(); mastLogW.eq("wrk_no", wrkNo); mastLogW.eq("io_time", wrkMast.getIoTime()); int mastCount = wrkMastLogMapper.selectCount(mastLogW); EntityWrapper 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().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()); } } }