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 new file mode 100644 index 00000000..b62628d6 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/controller/SarBussStandSnController.java @@ -0,0 +1,38 @@ +package com.adc.da.slrs.sarBussStandSn.controller; + + +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarBussStandSn.service.ISarBussStandSnService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

+ * 企业标准信息表 前端控制器 + *

+* +* @author super_liu +* @since 2022-07-01 +*/ +@RestController +@Api(tags = "|SarBussStandSn|") +@RequestMapping("/sarBussStandSn/sar-buss-stand-sn") +public class SarBussStandSnController extends BaseController { + + @Autowired + private ISarBussStandSnService iSarBussStandSnService; + + @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/dao/SarBussStandSnDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/dao/SarBussStandSnDao.java new file mode 100644 index 00000000..97768b99 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/dao/SarBussStandSnDao.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarBussStandSn.dao; + +import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 企业标准信息表 Mapper 接口 + *

+ * + * @author super_liu + * @since 2022-07-01 + */ +public interface SarBussStandSnDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/entity/SarBussStandSn.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/entity/SarBussStandSn.java new file mode 100644 index 00000000..8cec9fdc --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/entity/SarBussStandSn.java @@ -0,0 +1,70 @@ +package com.adc.da.slrs.sarBussStandSn.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + *

+ * 企业标准信息表 + *

+ * + * @author super_liu + * @since 2022-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarBussStandSn对象", description="企业标准信息表") +public class SarBussStandSn extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "计划库制定状态 0 默认 buss1_1 技术标准 制定 buss2_1 产品标准 制定 ") + @TableField("REVISE_STATUS") + private String reviseStatus; + + @ApiModelProperty(value = "企标顺序号") + @TableField("STAND_SN") + private String standSn; + + @ApiModelProperty(value = "企标类别") + @TableField("STAND_SORT") + private String standSort; + + @ApiModelProperty(value = "企标编号使用状态 yes 已使用 no 未使用") + @TableField("USE_STATUS") + private String useStatus; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private String validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + + @ApiModelProperty(value = "任务ID 不为 null 取当前任务顺序号") + @TableField("TASK_ID") + private String 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 new file mode 100644 index 00000000..e5d0a58e --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/ISarBussStandSnService.java @@ -0,0 +1,17 @@ +package com.adc.da.slrs.sarBussStandSn.service; + +import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 企业标准信息表 服务类 + *

+ * + * @author super_liu + * @since 2022-07-01 + */ +public interface ISarBussStandSnService extends IService { + + Boolean modSnByProcess(String taskId); +} 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 new file mode 100644 index 00000000..797770e2 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandSn/service/impl/SarBussStandSnServiceImpl.java @@ -0,0 +1,41 @@ +package com.adc.da.slrs.sarBussStandSn.service.impl; + +import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn; +import com.adc.da.slrs.sarBussStandSn.dao.SarBussStandSnDao; +import com.adc.da.slrs.sarBussStandSn.service.ISarBussStandSnService; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + *

+ * 企业标准信息表 服务实现类 + *

+ * + * @author super_liu + * @since 2022-07-01 + */ +@Service +public class SarBussStandSnServiceImpl extends ServiceImpl implements ISarBussStandSnService { + + @Autowired + private ISarBussStandSnService iSarBussStandSnService; + + @Override + public Boolean modSnByProcess(String taskId){ + QueryWrapper qw = new QueryWrapper(); + qw.eq("TASK_ID",taskId); + int count = iSarBussStandSnService.count(qw); + if(count > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper(); + updateWrapper.set("USE_STATUS","no"); + updateWrapper.set("TASK_ID",null); + updateWrapper.eq("TASK_ID",taskId); + return iSarBussStandSnService.update(updateWrapper); + } + + return false; + } +} 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 376af408..19da6266 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 @@ -83,9 +83,11 @@ public class SarBussionessStandController extends BaseController getStandInfoByReviseStatus(String reviseStatus,String standSort) { - SarBussionessStand result = sarBussionessStandEOService.getStandInfoByReviseStatus(reviseStatus,standSort); - return Result.success(result); + public ResponseMessage getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId) { + synchronized (this){ + SarBussionessStand result = sarBussionessStandEOService.getStandInfoByReviseStatus(reviseStatus,standSort,taskId); + return Result.success(result); + } } @ApiOperation(value = "|SarBussionessStandEO|删除") 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 4ab28a1e..516cca3f 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 @@ -19,7 +19,7 @@ import java.util.List; */ public interface ISarBussionessStandService extends IService { - SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort); + SarBussionessStand 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 238195df..68625a7f 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 @@ -29,6 +29,8 @@ import com.adc.da.slrs.sarBussStandFile.entity.SarBussStandFile; import com.adc.da.slrs.sarBussStandItems.dao.SarBussStandItemsDao; import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao; import com.adc.da.slrs.sarBussStandMenu.entity.SarBussStandMenu; +import com.adc.da.slrs.sarBussStandSn.entity.SarBussStandSn; +import com.adc.da.slrs.sarBussStandSn.service.ISarBussStandSnService; import com.adc.da.slrs.sarBussStandVal.dao.SarBussStandValDao; import com.adc.da.slrs.sarBussStandVal.entity.SarBussStandVal; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; @@ -164,9 +166,68 @@ public class SarBussionessStandServiceImpl extends ServiceImpl 0){ + 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(" ","")); + qw.isNull("TASK_ID"); + qw.eq("USE_STATUS","no"); + SarBussStandSn standSn = iSarBussStandSnService.getOne(wrapper); + // 1.1.2 查询 被撤回的 任务ID 被重置NULL 及 状态被重置 no 未使用 最小值 。。 "自动带入" "自动获取" 未被使用最小 顺序号 + if(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.eq("REPLACE(STAND_SORT,' ','')",standSort.replace(" ","")); + SarBussStandSn one = iSarBussStandSnService.getOne(wrapper); + // 1.1.2.2 返回顺序号 + bussionessStand.setNewStandSn(one.getStandSn()); + // 1.1.2.3 获取新的顺序号 存入顺序号表中 + saveBussStandSn(reviseStatus, standSort, one.getStandSn(),taskId); + } + + } + }else { + // 2 获取企标库中 当前类别 最新 顺序号 (前提必须顺序号为正规数据) + bussionessStand = sarBussionessStandEODao.getStandInfoByReviseStatus(reviseStatus,standSort); + saveBussStandSn(reviseStatus, standSort, bussionessStand.getStandSn(),taskId); + } + + return bussionessStand; + } + + private void saveBussStandSn(String reviseStatus, String standSort, String standSn,String taskId) { + SarBussStandSn sn = new SarBussStandSn(); + sn.setId(UUIDUtils.randomUUID20()); + sn.setStandSort(standSort); + sn.setStandSn(standSn); + sn.setModifyTime(new Date()); + sn.setReviseStatus(reviseStatus); + sn.setTaskId(taskId); + iSarBussStandSnService.saveOrUpdate(sn); } public ResponseMessage deleteSarBussionessStand(SarBussionessStandEOPage page) throws Exception { diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandSn/SarBussStandSnMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandSn/SarBussStandSnMapper.xml new file mode 100644 index 00000000..ea4ad1d6 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussStandSn/SarBussStandSnMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml index c16b29f9..c79322ba 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml @@ -352,7 +352,7 @@