Merge remote-tracking branch 'origin/master'
| | |
| | | overHidden: true, |
| | | width: 140 |
| | | }, |
| | | { |
| | | label: '标准申请', |
| | | prop: 'applyCodeForBZ', |
| | | sortable:true, |
| | | width: 130 |
| | | }, |
| | | { |
| | | label: '部门申请', |
| | | prop: 'syncDataForOrg', |
| | | sortable:true, |
| | | width: 130 |
| | | }, |
| | | { |
| | | label: '人员申请', |
| | | prop: 'syncDataForPerson', |
| | | sortable:true, |
| | | width: 130 |
| | | }, |
| | | // { |
| | | // label: '标准申请', |
| | | // prop: 'applyCodeForBZ', |
| | | // sortable:true, |
| | | // width: 130 |
| | | // }, |
| | | // { |
| | | // label: '部门申请', |
| | | // prop: 'syncDataForOrg', |
| | | // sortable:true, |
| | | // width: 130 |
| | | // }, |
| | | // { |
| | | // label: '人员申请', |
| | | // prop: 'syncDataForPerson', |
| | | // sortable:true, |
| | | // width: 130 |
| | | // }, |
| | | { |
| | | label: '集成系统编号', |
| | | prop: 'systemCode', |
| | |
| | | prop:'paramString', |
| | | sortable:true, |
| | | minRows: 20, |
| | | width: 150, |
| | | type: "textarea", |
| | | slot: true, |
| | | hide:true, |
| | |
| | | prop:'returnString', |
| | | sortable:true, |
| | | minRows: 20, |
| | | width: 150, |
| | | type: "textarea", |
| | | slot: true, |
| | | hide:true, |
| | |
| | | { |
| | | label: '返回msg', |
| | | prop: 'msg', |
| | | width: 150, |
| | | overHidden: true |
| | | }, |
| | | { |
| | | label: '记录时间', |
| | | prop: 'createTime', |
| | | sortable:true, |
| | | width: 160 |
| | | |
| | | }, |
| | | { |
| | | label: '是否成功', |
| | |
| | | */ |
| | | private String customCodeSerialClass; |
| | | |
| | | |
| | | /** |
| | | * 自定义的流水算法类 |
| | | */ |
| | |
| | | private String displayFlag; |
| | | |
| | | /** |
| | | * 流水依赖顺序 |
| | | * 流水依赖顺序 TODO:本来是用来计算流水排序的,后面因为某些原因改用orderNum了 |
| | | */ |
| | | private Integer serialDependOrder; |
| | | |
| | |
| | | import org.apache.poi.hssf.usermodel.HSSFSheet; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | import org.apache.poi.hssf.util.HSSFColor; |
| | | import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; |
| | | import org.apache.poi.ss.usermodel.*; |
| | | import org.apache.poi.ss.util.CellRangeAddress; |
| | | import org.apache.poi.ss.util.CellRangeAddressList; |
| | |
| | | .eq(CodeBasicSec::getPkCodeRule,codeRuleOid) |
| | | .in(CodeBasicSec::getOid,codeBasicSecOidList) |
| | | .eq(CodeBasicSec::getSerialDependFlag,"true") |
| | | .orderByAsc(CodeBasicSec::getSerialDependOrder); |
| | | //TODO: SerialDependOrder本来是用来流水排序的,但是现在的逻辑是按照orderuNum排序的 |
| | | .orderByAsc(CodeBasicSec::getOrderNum); //.orderByAsc(CodeBasicSec::getSerialDependOrder); |
| | | List<CodeBasicSec> codeBasicSecList = this.list(wrapper); |
| | | |
| | | //按流水依赖顺序,处理流水依赖码段的值 |
| | |
| | | .eq(CodeBasicSec::getPkCodeRule,codeRuleOid) |
| | | .in(CodeBasicSec::getOid,codeBasicSecOidList) |
| | | .eq(CodeBasicSec::getSerialDependFlag,"true") |
| | | .orderByAsc(CodeBasicSec::getSerialDependOrder); |
| | | .orderByAsc(CodeBasicSec::getOrderNum); //.orderByAsc(CodeBasicSec::getSerialDependOrder); |
| | | |
| | | List<CodeBasicSec> codeBasicSecList = this.list(wrapper); |
| | | //按流水依赖顺序,处理流水依赖码段的值 |
| | | List<String> serialDependValueList = new ArrayList<>(); |
| | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.lang.reflect.Method; |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.concurrent.CopyOnWriteArrayList; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | import java.util.concurrent.atomic.AtomicReference; |
| | |
| | | //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); |
| | | String code = cbo.getId(); |
| | | List<String> serialUnitList = new CopyOnWriteArrayList<>(); |
| | | String seclenghStr=cbo.getData().get(CODE_SEC_LENGTH_FIELD); |
| | | //String seclenghStr=cbo.getData().get(CODE_SEC_LENGTH_FIELD); |
| | | String[] secLengths = cbo.getData().get(CODE_SEC_LENGTH_FIELD).split("#"); |
| | | cbo.getData().remove(CODE_SEC_LENGTH_FIELD);//将此key除去 |
| | | cbo.getData().remove(IMPORT_ROW_INDEX);//将此key除去 |
| | |
| | | OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType())); |
| | | } |
| | | Double newSerialDb= CustomSerialEnum.getDoubleCustomSerialValue(serialDb,secVO.getCustomCodeSerialType()); |
| | | //TODO: 20240822需要这块代码是同步性的,maxSerialMap这儿会因为线程受影响,修改后测试多次总数为5000条一次导入耗费时间为3分30秒左右 |
| | | synchronized(this) { |
| | | HashMap<String, String> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>()); |
| | | Double maxValue=newSerialDb; |
| | | if(thisUnitMaxMap.containsKey(secOid)){ |
| | |
| | | thisUnitMaxMap.put(secOid,newMaxValue); |
| | | maxSerialMap.put(serialUnitString,thisUnitMaxMap); |
| | | serialUnFileStringList.add(String.valueOf(serialDb)); |
| | | } |
| | | }); |
| | | } |
| | | CodeAllCode allCodeDO = new CodeAllCode(); |
| | |
| | | allCodeWrapper.in("id", QueryOptionConstant.IN + "(" + |
| | | VciBaseUtil.toInSql(codeDOs.stream().map(s->s.getId()).collect(Collectors.toList()).toArray(new String[0])) + ")"); |
| | | List<CodeAllCode> existCodes = codeAllCodeService.selectByWrapper(allCodeWrapper); |
| | | |
| | | |
| | | if(!CollectionUtils.isEmpty(existCodes)){ |
| | | existCodes.stream().forEach(existCode->{ |