Commit 4bdc1020 by lijingjing

处理获取编号规则不准确的问题;

parent 5e4b68db
......@@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
* @author meazty
* @since 2023/5/17 11:59
**/
@Component("EntrustCreateJobsHandler")
@Component("entrustCreateJobsHandler")
public class EntrustCreateJobsHandler implements IJobsHandler {
private static final Logger logger = LoggerFactory.getLogger(EntrustCreateJobsHandler.class);
......
......@@ -7,6 +7,7 @@ import com.patzn.cloud.service.BaseEntity;
import com.patzn.cloud.service.hmhj.entity.CodeRule;
import com.patzn.cloud.service.hmhj.enums.CodeTypeEnum;
import com.patzn.cloud.service.lims.base.dto.CodeTypeDTO;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
......@@ -26,6 +27,9 @@ public interface ICodeRuleService extends IBaseService<CodeRule> {
String getKey(Integer codeType, String codeName, BaseEntity entity);
@Transactional(rollbackFor = Exception.class)
String getKey(Integer codeType, String codeName, Long companyId, BaseEntity entity);
String getKey(String prefix, String rule, BaseEntity entity);
void recycleCode(CodeTypeEnum codeTypeEnum, List<String> codeList, String curVary, Account account);
......
......@@ -83,6 +83,18 @@ public class CodeRuleServiceImpl extends BaseServiceImpl<CodeRuleMapper, CodeRul
return getCodeKey(codeRule, codeName, entity);
}
@Transactional(rollbackFor = Exception.class)
@Override
public String getKey(Integer codeType, String codeName, Long companyId, BaseEntity entity) {
if (logger.isDebugEnabled()) {
logger.debug("codeType:{} , codeName:{} , entity:{}", codeType,
codeName, JacksonUtils.toJSONString(entity));
}
CodeRule codeRule = super.getOne(Condition.create().eq("type", codeType).eq("company_id", companyId).last("LIMIT 1"));
return getCodeKey(codeRule, codeName, entity);
}
private String getCodeKey(CodeRule codeRule, String codeName, BaseEntity entity) {
if (null == codeRule) {
RestAssert.fail(codeName + "不存在请配置规则");
......@@ -334,7 +346,7 @@ public class CodeRuleServiceImpl extends BaseServiceImpl<CodeRuleMapper, CodeRul
List<Map<String, Object>> lmsCodeList;
List<String> varyList = codeList.stream().map(c -> {
// 编号:220704A13333 ,替换后,220704BC#SN#3333
return c.substring(0,6) + "BC" + SN + c.substring(c.length() - 4);
return c.substring(0, 6) + "BC" + SN + c.substring(c.length() - 4);
}).collect(Collectors.toList());
lmsCodeList = SqlRunner.db().selectList("select * from code_rule where type = {0} and company_id = {1}", CodeTypeEnum.AL_BULK_SAMPLE_CODE.getValue(), account.getCompanyId());
RestAssert.fail(CollectionUtils.isEmpty(lmsCodeList), "未配置编号规则");
......
......@@ -186,7 +186,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Transactional(rollbackFor = Exception.class)
public boolean saveEntrust(Entrust entrust, Long userId) {
String entrustCode = codeRuleService.getKey((Integer) CodeTypeEnum.ENTRUST_CODE.getValue(), CodeTypeEnum.ENTRUST_CODE.getName(), entrust);
String entrustCode = codeRuleService.getKey((Integer) CodeTypeEnum.ENTRUST_CODE.getValue(), CodeTypeEnum.ENTRUST_CODE.getName(), entrust.getCompanyId(), entrust);
if (StringUtils.isNotEmpty(entrustCode)) {
entrust.setCode(entrustCode);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment