|
@@ -142,18 +142,16 @@ public class YpZdDictServiceImpl implements YpZdDictService {
|
|
|
}else{
|
|
|
String ypType = ypZdDrugKindMapper.selectYpZdDrugKind(ypZdDict.getDrugKind()).getYpType();
|
|
|
YpTypeNumberEnum ypTypeNumber = YpTypeNumberEnum.getYpTypeNumberByCode(Integer.parseInt(ypType));
|
|
|
+ assert ypTypeNumber != null;
|
|
|
String maxCode = ypZdDictMapper.selectMaxCode(ypTypeNumber.minNum, ypTypeNumber.maxNum);
|
|
|
int code = Integer.parseInt(maxCode)+1;
|
|
|
- if(code > 9999){
|
|
|
- maxCode = ""+code;
|
|
|
- }else if(code > 999){
|
|
|
- maxCode = "0"+code;
|
|
|
- }else if(code > 99){
|
|
|
- maxCode = "00"+code;
|
|
|
- }else if(code > 9){
|
|
|
- maxCode = "000"+code;
|
|
|
- }else{
|
|
|
- maxCode = "0000"+code;
|
|
|
+ maxCode = callYpCodeFormat(code);
|
|
|
+ // 药品编码与医嘱编码冲突重置编码
|
|
|
+ int cs = ypZdDictMapper.selectYzOrderItemByCode(maxCode);
|
|
|
+ while (cs > 0) {
|
|
|
+ code ++;
|
|
|
+ maxCode = callYpCodeFormat(code);
|
|
|
+ cs = ypZdDictMapper.selectYzOrderItemByCode(maxCode);
|
|
|
}
|
|
|
ypZdDict.setCode(maxCode);
|
|
|
String serial = ypZdDict.getMiniUnit().equals(ypZdDict.getPackUnit())?"01":"99";
|
|
@@ -177,6 +175,22 @@ public class YpZdDictServiceImpl implements YpZdDictService {
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+ private String callYpCodeFormat(int code) {
|
|
|
+ String ypCode;
|
|
|
+ if(code > 9999){
|
|
|
+ ypCode = ""+code;
|
|
|
+ }else if(code > 999){
|
|
|
+ ypCode = "0"+code;
|
|
|
+ }else if(code > 99){
|
|
|
+ ypCode = "00"+code;
|
|
|
+ }else if(code > 9){
|
|
|
+ ypCode = "000"+code;
|
|
|
+ }else{
|
|
|
+ ypCode = "0000"+code;
|
|
|
+ }
|
|
|
+ return ypCode;
|
|
|
+ }
|
|
|
+
|
|
|
//数据集
|
|
|
private Map<String,String> map = new HashMap<>();
|
|
|
|