| | |
| | | import com.vci.ubcs.starter.web.util.VciDateUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType())))); |
| | | } |
| | | Map<String, Double> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>()); |
| | | Double maxValue=serialDb; |
| | | if(thisUnitMaxMap.containsKey(secOid)){ |
| | | Double maxValue= thisUnitMaxMap.getOrDefault(secOid,new Double(-1)); |
| | | if(maxValue>serialDb){ |
| | | serialDb=maxValue; |
| | | maxValue= thisUnitMaxMap.getOrDefault(secOid,new Double(-1)); |
| | | if(maxValue<serialDb){ |
| | | maxValue=serialDb; |
| | | } |
| | | } |
| | | thisUnitMaxMap.put(secOid,serialDb); |
| | | thisUnitMaxMap.put(secOid,maxValue); |
| | | maxSerialMap.put(serialUnitString,thisUnitMaxMap); |
| | | serialUnFileStringList.add(String.valueOf(serialDb)); |
| | | }); |
| | |
| | | allCodeDO.setCreateCodeBtm(cbo.getBtmname()); |
| | | allCodeDO.setCreateCodeOid(cbo.getOid()); |
| | | allCodeDO.setSerialUnit(serialUnitString); |
| | | allCodeDO.setUnFillSerial(serialUnFileStringList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE))); |
| | | String unFillSerial =serialUnFileStringList.size()==1?serialUnFileStringList.get(0)+ SERIAL_VALUE_SPACE:serialUnFileStringList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE)); |
| | | allCodeDO.setUnFillSerial(unFillSerial); |
| | | allCodeDO.setLcStatus(cbo.getLcStatus()); |
| | | allCodeDOList.add(allCodeDO); |
| | | }); |
| | |
| | | QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("CREATECODEBTM",addCodeDOs.get(0).getCreateCodeBtm()); |
| | | wrapper.in("ID",addCodeDOs.stream().map(CodeAllCode::getId).collect(Collectors.toList())); |
| | | if(codeAllCodeService.count(wrapper)>0){ |
| | | throw new ServiceException("生成编码数据ID已有历史记录请确认!!"); |
| | | List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(wrapper); |
| | | List<CodeAllCode> takeBack = codeAllCodes.stream().filter(e -> e.getLcStatus().equals("TakeBack")).collect(Collectors.toList()); |
| | | if(codeAllCodes.size()>takeBack.size()){ |
| | | throw new ServiceException("生成编码数据ID已有历史记录,请确认如下生成的ID数据:"+ addCodeDOs.stream().map(CodeAllCode::getId).collect(Collectors.toList())); |
| | | } |
| | | for (CodeAllCode codeAllCode : takeBack) { |
| | | codeAllCode.setLcStatus("Released"); |
| | | codeAllCode.setTs(new Date()); |
| | | codeAllCode.setLastModifyTime(new Date()); |
| | | codeAllCode.setLastModifier(AuthUtil.getUserId().toString()); |
| | | Iterator<CodeAllCode> iterator = addCodeDOs.iterator(); |
| | | while (iterator.hasNext()){ |
| | | CodeAllCode next = iterator.next(); |
| | | if(codeAllCode.getId().equals(next.getId())){ |
| | | codeAllCode.setCreateCodeOid(next.getCreateCodeOid()); |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | } |
| | | if(takeBack.size()>0){ |
| | | codeAllCodeService.updateBatchById(takeBack); |
| | | } |
| | | codeAllCodeService.saveBatch(addCodeDOs); |
| | | } |
| | |
| | | QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("CREATECODEBTM",allCodeDOList.get(0).getCreateCodeBtm()); |
| | | wrapper.in("ID",allCodeDOList.stream().map(CodeAllCode::getId).collect(Collectors.toList())); |
| | | if(codeAllCodeService.count(wrapper)>0){ |
| | | throw new ServiceException("生成编码数据ID已有历史记录请确认!!"); |
| | | List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(wrapper); |
| | | List<CodeAllCode> takeBack = codeAllCodes.stream().filter(e -> e.getLcStatus().equals("TakeBack")).collect(Collectors.toList()); |
| | | if(codeAllCodes.size()>takeBack.size()){ |
| | | throw new ServiceException("生成编码数据ID已有历史记录,请确认如下生成的ID数据:"+ allCodeDOList.stream().map(CodeAllCode::getId).collect(Collectors.toList())); |
| | | } |
| | | |
| | | for (CodeAllCode codeAllCode : takeBack) { |
| | | codeAllCode.setLcStatus("Released"); |
| | | codeAllCode.setTs(new Date()); |
| | | codeAllCode.setLastModifyTime(new Date()); |
| | | codeAllCode.setLastModifier(AuthUtil.getUserId().toString()); |
| | | Iterator<CodeAllCode> iterator = allCodeDOList.iterator(); |
| | | while (iterator.hasNext()){ |
| | | CodeAllCode next = iterator.next(); |
| | | if(codeAllCode.getId().equals(next.getId())){ |
| | | codeAllCode.setCreateCodeOid(next.getCreateCodeOid()); |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | } |
| | | if(takeBack.size()>0){ |
| | | codeAllCodeService.updateBatchById(takeBack); |
| | | } |
| | | codeAllCodeService.saveBatch(allCodeDOList); |
| | | // iCodeWupinService.saveBatch(dataCBOList); |
| | |
| | | private String killFillChar(String s, String fillString,boolean left){ |
| | | Integer index = 0; |
| | | String value = s; |
| | | |
| | | if(left){ |
| | | for (int i = 0; i < s.length(); i++) { |
| | | char c = s.charAt(i); |
| | | if((new String(new char[]{c})).equalsIgnoreCase(fillString)){ |
| | | index = i; |
| | | if(!(new String(new char[]{c})).equalsIgnoreCase(fillString)){ |
| | | break; |
| | | } |
| | | index = i; |
| | | } |
| | | if(index >0){ |
| | | value = value.substring(index); |
| | |
| | | //从右往左找 |
| | | for (int i = s.length()-1; i >=0; i++) { |
| | | char c = s.charAt(i); |
| | | if((new String(new char[]{c})).equalsIgnoreCase(fillString)){ |
| | | index = i; |
| | | if(!(new String(new char[]{c})).equalsIgnoreCase(fillString)){ |
| | | break; |
| | | } |
| | | index = i; |
| | | } |
| | | if(index >0){ |
| | | value = value.substring(0,index); |