문서번호 생성 오류 수정.

master
강석 최 2023-05-03 17:08:40 +09:00
parent bdd75315c4
commit 5582f3d06d
3 changed files with 9 additions and 7 deletions

View File

@ -17,7 +17,7 @@ public interface AffairMapper {
String selectHashTags(Integer affairKey); String selectHashTags(Integer affairKey);
String selectDocNo(Map<String, Object> params); Integer selectDocNo(Map<String, Object> params);
List<DashboardAffair> selectDashboardAffairList(DashboardAffair affair); List<DashboardAffair> selectDashboardAffairList(DashboardAffair affair);

View File

@ -131,17 +131,18 @@ public class AffairService extends BaseService { // 견문보고
} }
} }
private String makeDocNo(String wrtOrgan, Integer year){ private String makeDocNo(String wrtOrgan, Integer year, int correctionCnt){
String docNo = year.toString(); String docNo = year.toString();
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("wrtOrgan", wrtOrgan); params.put("wrtOrgan", wrtOrgan);
params.put("year", docNo); params.put("year", docNo);
docNo += "-"+affairMapper.selectDocNo(params); docNo += "-"+(affairMapper.selectDocNo(params)+correctionCnt);
return codeMgtService.searchValue(wrtOrgan)+"-"+docNo; return codeMgtService.searchValue(wrtOrgan)+"-"+docNo;
} }
@Transactional @Transactional
public Integer affairStateChange(UserInfo loginUser, List<AffairRating> ratingList) { public Integer affairStateChange(UserInfo loginUser, List<AffairRating> ratingList) {
int i=0;
for(AffairRating rating : ratingList){ for(AffairRating rating : ratingList){
AffairRating savedRating = affairRatingRepository.findById(new AffairRating.AffairRatingId(rating.getAffairKey(), loginUser.getOgCd())).orElse(null); AffairRating savedRating = affairRatingRepository.findById(new AffairRating.AffairRatingId(rating.getAffairKey(), loginUser.getOgCd())).orElse(null);
if(savedRating != null){ if(savedRating != null){
@ -175,10 +176,11 @@ public class AffairService extends BaseService { // 견문보고
savedRating.setAffairStatus(rating.getHeadApprv()); savedRating.setAffairStatus(rating.getHeadApprv());
if(rating.getHeadApprv().equals("DST006")){ if(rating.getHeadApprv().equals("DST006")){
AffairBoard affairBoard = affairBoardRepository.findById(savedRating.getAffairKey()).orElse(null); AffairBoard affairBoard = affairBoardRepository.findById(savedRating.getAffairKey()).orElse(null);
if(affairBoard.getDocNo() == null if(Utils.isEmpty(affairBoard.getDocNo())
&& affairBoard.getWrtOrgan().equals(savedRating.getRatingOrgan())){ && affairBoard.getWrtOrgan().equals(savedRating.getRatingOrgan())){
affairBoard.setDocNo(makeDocNo(affairBoard.getWrtOrgan(), affairBoard.getReportDt().getYear())); affairBoard.setDocNo(makeDocNo(affairBoard.getWrtOrgan(), affairBoard.getReportDt().getYear(), i));
} }
i++;
} }
if(savedRating.getOrganUp().equals("T")){ if(savedRating.getOrganUp().equals("T")){
String upOrgan = organConfigService.selectParentOrgan(loginUser.getOgCd()); String upOrgan = organConfigService.selectParentOrgan(loginUser.getOgCd());
@ -271,7 +273,7 @@ public class AffairService extends BaseService { // 견문보고
AffairBoard affairBoard = affairBoardRepository.findById(rating.getAffairKey()).orElse(null); AffairBoard affairBoard = affairBoardRepository.findById(rating.getAffairKey()).orElse(null);
if(affairBoard.getDocNo() == null if(affairBoard.getDocNo() == null
&& affairBoard.getWrtOrgan().equals(rating.getRatingOrgan())){ && affairBoard.getWrtOrgan().equals(rating.getRatingOrgan())){
affairBoard.setDocNo(makeDocNo(affairBoard.getWrtOrgan(), affairBoard.getReportDt().getYear())); affairBoard.setDocNo(makeDocNo(affairBoard.getWrtOrgan(), affairBoard.getReportDt().getYear(), 0));
} }
} }
}else if(!Utils.isEmpty(rating.getSectionApprv())) { }else if(!Utils.isEmpty(rating.getSectionApprv())) {

View File

@ -140,7 +140,7 @@
where a.affair_key = #{affairKey} where a.affair_key = #{affairKey}
</select> </select>
<select id="selectDocNo" resultType="string" parameterType="hashMap"> <select id="selectDocNo" resultType="int" parameterType="hashMap">
select count(*)+1 as cnt select count(*)+1 as cnt
from affair_board a from affair_board a
inner join affair_rating b inner join affair_rating b