diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/controller/SarBussStandSnController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/controller/SarBussStandSnController.java index e1a54f66..414b6dd4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/controller/SarBussStandSnController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/controller/SarBussStandSnController.java @@ -38,7 +38,7 @@ public class SarBussStandSnController extends BaseController { } } - @ApiOperation(value = "更新企标顺序号状态") + @ApiOperation(value = "逻辑删除企标顺序号状态") @GetMapping("modSnByProcess") public ResponseMessage modSnByProcess(@RequestParam("taskId") String taskId){ return Result.success(iSarBussStandSnService.modSnByProcess(taskId)); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/ISarBussStandSnService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/ISarBussStandSnService.java index 462326bd..3d81036a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/ISarBussStandSnService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/ISarBussStandSnService.java @@ -17,6 +17,8 @@ public interface ISarBussStandSnService extends IService { Boolean modSnByProcess(String taskId); + Boolean modSnByStandSortAndSn(String standSort, String standSn); + String selectMaxStandnSn(); String selectMaxStandSn(String standSort); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java index c3984c0b..19b9bebb 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java @@ -5,11 +5,15 @@ import com.adc.da.slrs.sarBussStandSn.dao.SarBussStandSnDao; import com.adc.da.slrs.sarBussStandSn.service.ISarBussStandSnService; import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; + /** *

* 企业标准信息表 服务实现类 @@ -47,11 +51,11 @@ public class SarBussStandSnServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.eq("TASK_ID",taskId); int count = iSarBussStandSnService.count(qw); if(count > 0){ - UpdateWrapper updateWrapper = new UpdateWrapper(); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.set("USE_STATUS","no"); updateWrapper.set("TASK_ID",null); updateWrapper.eq("TASK_ID",taskId); @@ -61,6 +65,20 @@ public class SarBussStandSnServiceImpl extends ServiceImpl wrapper = new LambdaUpdateWrapper<>(); + if (StringUtils.isBlank(standSn) || StringUtils.isBlank(standSort)) { + return false; + } + wrapper.set(SarBussStandSn::getUseStatus,"no"); + wrapper.set(SarBussStandSn::getValidFlag,"1"); + wrapper.set(SarBussStandSn::getModifyTime,new Date()); + wrapper.eq(SarBussStandSn::getStandSn,standSn); + wrapper.eq(SarBussStandSn::getStandSort,standSort); + return iSarBussStandSnService.update(wrapper); + } + @Override public String selectMaxStandnSn() { return baseMapper.selectMaxStandnSn(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java index 4908cecf..e1cf2994 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java @@ -120,9 +120,9 @@ public class SarBussionessStandController extends BaseController getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId) { + public ResponseMessage getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId) { synchronized (this){ - SarBussionessStand result = sarBussionessStandEOService.getStandInfoByReviseStatus(reviseStatus,standSort,taskId); + String result = sarBussionessStandEOService.getStandInfoByReviseStatus(reviseStatus,standSort,taskId); return Result.success(result); } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/dao/SarBussionessStandDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/dao/SarBussionessStandDao.java index 63f99786..c4508960 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/dao/SarBussionessStandDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/dao/SarBussionessStandDao.java @@ -39,7 +39,7 @@ public interface SarBussionessStandDao extends BaseMapper { List queryByBussStateSync(SarBussionessStand sarBussionessStand); - SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort); + String getStandInfoByReviseStatus(String reviseStatus,String standSort); SarBussionessStand selectByPrimaryKey(String standId); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java index cb89c2ab..933889ce 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java @@ -22,7 +22,7 @@ public interface ISarBussionessStandService extends IService void updateCiteStand(SarBussionessStand sarBussionessStandEO, SarBussionessStand beforeSarStandardsInfo, String upField, String beUpedField); - SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId); + String getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId); void attrInfoDetails (SarBussionessStand row) throws Exception; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index cd783eb7..c98d1fa2 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -69,6 +69,7 @@ import com.adc.da.utils.util.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.sf.json.JSONObject; import org.apache.commons.beanutils.BeanUtils; @@ -88,6 +89,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.sql.Clob; +import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -223,68 +225,60 @@ public class SarBussionessStandServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("REPLACE(STAND_SORT,' ','')",standSort.replace(" ","")); + queryWrapper.eq("USE_STATUS","yes"); + queryWrapper.eq("VALID_FLAG","0"); int count = iSarBussStandSnService.count(queryWrapper); - String MaxSn = iSarBussStandSnService.selectMaxStandSn(standSort); - String standMaxSn = iSarBussionessStandService.selectMaxStandSn(standSort); - // 1 先验证 当前企标类别 是否存在顺序号 - if(count > 0 && MaxSn.equals(standMaxSn)){ - QueryWrapper qw = new QueryWrapper(); - qw.eq("REPLACE(STAND_SORT,' ','')",standSort.replace(" ","")); - qw.eq("TASK_ID",taskId); - qw.eq("USE_STATUS","yes"); - SarBussStandSn sns = iSarBussStandSnService.getOne(qw); - // 1.1 防止不同步撤回 页面未退出 及 防止页面刷新 已锁定的顺序号 被一直叠加 获取当前任务之前生成的顺序号 - if(sns != null && sns.getId() != null){ - // 1.1.1 返回顺序号 - bussionessStand.setNewStandSn(sns.getStandSn()); - }else { - QueryWrapper wrapper = new QueryWrapper(); - wrapper.select("MIN(DISTINCT CAST(STAND_SN AS decimal(9))) AS STAND_SN"); - wrapper.eq("REPLACE(STAND_SORT,' ','')",standSort.replace(" ","")); - wrapper.isNull("TASK_ID"); - wrapper.eq("USE_STATUS","no"); - SarBussStandSn standSn = iSarBussStandSnService.getOne(wrapper); - // 1.1.2 查询 被撤回的 任务ID 被重置NULL 及 状态被重置 no 未使用 最小值 。。 "自动带入" "自动获取" 未被使用最小 顺序号 - if(standSn != null && standSn.getId() != null) { - // 1.1.2.1 返回顺序号 - bussionessStand.setNewStandSn(standSn.getStandSn()); - }else { - - QueryWrapper wrapper1 = new QueryWrapper(); - //wrapper1.select("MAX(DISTINCT CAST(STAND_SN AS decimal(9)))+1 AS STAND_SN"); - wrapper1.select("MAX(DISTINCT CAST(STAND_SN AS decimal(9))) AS STAND_SN"); - wrapper1.eq("REPLACE(STAND_SORT,' ','')",standSort.replace(" ","")); - SarBussStandSn one = iSarBussStandSnService.getOne(wrapper1); - // 1.1.2.2 返回顺序号 - bussionessStand.setNewStandSn(one.getStandSn()); - // 1.1.2.3 获取新的顺序号 存入顺序号表中 - if (StringUtils.isBlank(MaxSn) && (StringUtils.isBlank(snStandSort) || snStandSort.equals(standSort))){ - saveBussStandSn(reviseStatus, standSort, one.getStandSn(),taskId); - } - } - + // 1 先验证 顺序表中是否存在当前企标类别 + if(count == 0){ + // 企标顺序表中 不存在该类别 + // 从企标库中获取最新的企标编号 + String standMaxSn = sarBussionessStandEODao.getStandInfoByReviseStatus(reviseStatus,standSort); + String newMaxSn; + if(StringUtils.isBlank(standMaxSn)){ + newMaxSn = "001"; + saveBussStandSn(reviseStatus,standSort,newMaxSn,taskId); + return newMaxSn; } - }else { - // 2 获取企标库中 当前类别 最新 顺序号 (前提必须顺序号为正规数据) - bussionessStand = sarBussionessStandEODao.getStandInfoByReviseStatus(reviseStatus,standSort); - String sn = "001"; - if(ObjectUtils.isNotEmpty(bussionessStand)){ - sn = bussionessStand.getNewStandSn(); - } - if ((StringUtils.isBlank(MaxSn) || !MaxSn.equals(standMaxSn)) && (StringUtils.isBlank(snStandSort) || snStandSort.equals(standSort))){ - saveBussStandSn(reviseStatus, standSort, sn, taskId); - } - bussionessStand.setStandSn(sn); + newMaxSn = decimalFormat.format(Integer.parseInt(standMaxSn) + 1); + saveBussStandSn(reviseStatus, standSort, newMaxSn, taskId); + return newMaxSn; } - - return bussionessStand; + // 若存在 则添加返回 最大企标顺序号+1 + // 查询是否已经已有记录 + queryWrapper.eq("TASK_ID",taskId); + queryWrapper.orderByDesc("MODIFY_TIME"); + List snsList = iSarBussStandSnService.list(queryWrapper); + // 1.1 防止不同步撤回 页面未退出 及 防止页面刷新 已锁定的顺序号 被一直叠加 获取当前任务之前生成的顺序号 + if(!snsList.isEmpty()){ + // 1.1.1 返回顺序号 + if (snsList.get(0).getStandSn() != null) { + return snsList.get(0).getStandSn(); + } + } + // 没有已存在的记录,则生成新的顺序号返回 + String maxStandSn = iSarBussStandSnService.selectMaxStandSn(standSort); + // 处理顺序号的格式 + if (count >= 1000) { + StringBuilder formatBuilder = new StringBuilder(); + for (int i = 0; i < maxStandSn.length(); i++) { + formatBuilder.append("0"); + } + String format = formatBuilder.toString(); + decimalFormat = new DecimalFormat(format); + } + // 1.1.2.2 生成新的顺序号 + String newStandSn = decimalFormat.format(Integer.parseInt(maxStandSn) + 1); + // 1.1.2.3 新的顺序号 存入顺序号表中 + saveBussStandSn(reviseStatus, standSort, newStandSn, taskId); + // 返回顺序号 + return newStandSn; } + // 保存顺序号到顺序号表 private void saveBussStandSn(String reviseStatus, String standSort, String standSn,String taskId) { SarBussStandSn sn = new SarBussStandSn(); sn.setId(UUIDUtils.randomUUID20()); @@ -296,6 +290,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl deleteSarBussionessStand(SarBussionessStandEOPage page) throws Exception { SarBussionessStand sarStandardsInfoEO = new SarBussionessStand(); sarStandardsInfoEO.setValidFlag(1); @@ -316,6 +311,11 @@ public class SarBussionessStandServiceImpl extends ServiceImpl objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("STAND_ID",id); @@ -1861,6 +1861,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl - select MAX(DISTINCT CAST(stand_number AS decimal(9))) AS newStandSn from sar_bussioness_stand where REPLACE(STAND_SORT,' ','') = REPLACE(#{standSort},' ','') and valid_flag=0