业务需求:
被修改的记录生成一条状态为未生效的记录 原纪录不变 被复核后 删除原来的记录 同时被复核的记录修改为已启用,状态有未生效0,复核1,已启用2,停用3
思考:
1.可能记录被修改多次 生成多条未生效的记录。
2.被修改记录的状态也可能是未生效。
解决:1.设置一个业务id,主键id为自增,填充业务id与id一致,在修改保存后生成一条状态为未生效的记录,并且把当前id插入新记录的业务id里
2.被复核后,删除之前的已生效记录,根据业务id一致的原理,删除状态为非未生效 而且业务id一致的记录。
3.根据id把刚刚未生效记录的状态改为已启用。
public void updateAssetTranConfig(AssetTranConfig map) {
map.setStatus("0");
String date = String.valueOf(calendarMapper.getBussinessDate());
String userId = String.valueOf(ContextHolder.getUser().getUserId());
map.setModBy(userId);
map.setModDate(date);
map.setNaturalKey(map.getID());
assetTranConfigMapper.insertAssetTranConfig(map);
}
public void updateStatus(AssetTranConfig map) {
String status = map.getStatus();
String date = String.valueOf(calendarMapper.getBussinessDate());
String userId = String.valueOf(ContextHolder.getUser().getUserId());
if (status.equals("1")) {
assetTranConfigMapper.deleteAssetTranConfig(map);
map.setReviewedBy(userId);
map.setReViewDate(date);
map.setStatus("2");
assetTranConfigMapper.updateAssetTranConfig(map);
} else if (!status.equals("0")) {
map.setModBy(userId);
map.setModDate(date);
assetTranConfigMapper.updateAssetTranConfig(map);
}
}