Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsAuthorizationManagerImpl.java =================================================================== diff -u -r22257 -r22264 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsAuthorizationManagerImpl.java (.../ExpensiveGoodsAuthorizationManagerImpl.java) (revision 22257) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsAuthorizationManagerImpl.java (.../ExpensiveGoodsAuthorizationManagerImpl.java) (revision 22264) @@ -38,7 +38,7 @@ public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } - + public void setExpensiveGoodsManager(ExpensiveGoodsManager expensiveGoodsManager) { this.expensiveGoodsManager = expensiveGoodsManager; } @@ -91,11 +91,18 @@ } } if(eg.getAuthorizerCompanyName().equals(expensiveGoodsAuthorization.getAuthorizedCompanyName()) && goodsIds.contains(Long.parseLong(strs[i])) ){ - throw new RuntimeException("被授权方有物品"+ names[i]+"的权限,不能再次授权!"); + throw new RuntimeException("被授权方有物品["+ names[i]+"]的权限,不能再次授权!"); } } ExpensiveGoods expensiveGood = (ExpensiveGoods) objectDao.getByID_ForUpdate(ExpensiveGoods.class.getSimpleName(),Long.parseLong(strs[i])); if(DatabaseUtil.isPoIdValid(expensiveGood.getCertificationId())){ + List ea = getExpensiveGoodsAuthorizationByExpensiveGoodsId(expensiveGood.getId()); + for(ExpensiveGoodsAuthorization authorization : ea){ + //同级别一件物品不能给多个供应商授权 + if(authorization.getAuthorizerCompanyId() == expensiveGoodsAuthorization.getAuthorizerCompanyId() && authorization.getValidityTime().getTime() > new Date().getTime()){ + throw new RuntimeException("授权方有授权过此物品["+ names[i]+"]未到失效时间不能再次授权!"); + } + } RegistrationCertification registrationCertification = (RegistrationCertification) objectDao.getByID_ForUpdate(RegistrationCertification.class.getSimpleName(), expensiveGood.getCertificationId()); if(registrationCertification != null){ //判断高值耗材属不属于授权方 @@ -106,12 +113,12 @@ //判断被授权方有被授权过这高值耗材没,并且授权时间已过期,授权方不是此次授权方 if(eg.getRelevancyGoodsAuthorization() != null){ if(eg.getRelevancyGoodsAuthorization().getExpensiveGoodsIds().indexOf(strs[i].toString())>=0){ - throw new RuntimeException("被授权方有授权过此物品"+ names[i]+"不能再次授权!"); + throw new RuntimeException("被授权方有授权过此物品["+ names[i]+"]不能再次授权!"); } } if(eg.getAuthorizerCompanyId().equals(expensiveGoodsAuthorization.getAuthorizerCompanyId()) && eg.getExpensiveGoodsName().equals(names[i])){ - throw new RuntimeException("被授权方有被同一个授权方授权过"+ names[i]+ "物品!"); + throw new RuntimeException("被授权方有被同一个授权方授权过["+ names[i]+"]物品!"); } } }else{ @@ -127,38 +134,38 @@ expensiveGoodIds.add(strs[a]); } if(e.getValidityTime().getTime() < new Date().getTime() && expensiveGoodIds.contains(e.getExpensiveGoodsId().toString())){ - throw new RuntimeException("授权方物品"+names[i]+"授权时间已过期,不能授权!"); + throw new RuntimeException("授权方物品["+names[i]+"]授权时间已过期,不能授权!"); } } if(!goodsIds.contains(Long.parseLong(strs[i]))){ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } String sql1 = "where 1 = 1 and po.authorizedCompanyId = " + expensiveGoodsAuthorization.getAuthorizedCompanyId(); List egt = objectDao.findBySql(ExpensiveGoodsAuthorization.class.getSimpleName(), sql1); for(ExpensiveGoodsAuthorization egc : egt){ //判断被授权方有被授权过这高值耗材没,并且授权时间已过期,授权方不是此次授权方 if(egc.getRelevancyGoodsAuthorization() != null){ if(egc.getRelevancyGoodsAuthorization().getExpensiveGoodsIds().indexOf(strs[i].toString())>=0){ - throw new RuntimeException("被授权方有授权过此物品"+ names[i]+"不能再次授权!"); + throw new RuntimeException("被授权方有授权过此物品["+ names[i]+"]不能再次授权!"); } } if(egc.getValidityTime().getTime() < new Date().getTime()){ - throw new RuntimeException("授权方对物品:"+ names[i]+"的授权时间已失效!"); + throw new RuntimeException("授权方对物品:["+ names[i]+"]的授权时间已失效!"); } if(egc.getAuthorizerCompanyId().equals(expensiveGoodsAuthorization.getAuthorizerCompanyId()) && egc.getExpensiveGoodsName().equals(names[i])){ - throw new RuntimeException("被授权方有被同一个授权方授权过"+ names[i]+ "物品!"); + throw new RuntimeException("被授权方有被同一个授权方授权过["+ names[i]+ "]物品!"); } } }else{ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } } }else{ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } }else{ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } }else{ //修改走这边 @@ -167,17 +174,24 @@ ExpensiveGoodsAuthorization authorization = getExpensiveGoodsAuthorization(expensiveGoodsAuthorization); //对比下要修改的记录和旧记录有没有冲突 if(authorization.getAuthorizedCompanyName().equals(expensiveGoodsAuthorization.getAuthorizerCompanyName()) && authorization.getRelevancyGoodsAuthorization().getExpensiveGoodsIds().indexOf(strs[i].toString())>=0 ){ - throw new RuntimeException("此次修改的授权方是原记录的被授权方并且此次修改的物品"+ names[i]+"包括了原记录授权给此次修改的授权方不能修改!"); + throw new RuntimeException("此次修改的授权方是原记录的被授权方并且此次修改的物品["+ names[i]+"]包括了原记录授权给此次修改的授权方不能修改!"); } for(ExpensiveGoodsAuthorization eg : egaz){ if(eg.getAuthorizerCompanyName().equals(expensiveGoodsAuthorization.getAuthorizedCompanyName()) && eg.getRelevancyGoodsAuthorization().getExpensiveGoodsIds().indexOf(strs[i].toString())>=0 ){ - throw new RuntimeException("授权方有授权过被授权方此物品"+ names[i]+"不能再次授权!"); + throw new RuntimeException("授权方有授权过被授权方此物品["+ names[i]+"]不能再次授权!"); } } ExpensiveGoods expensiveGood = (ExpensiveGoods) objectDao.getByID_ForUpdate(ExpensiveGoods.class.getSimpleName(),Long.parseLong(strs[i])); if(DatabaseUtil.isPoIdValid(expensiveGood.getCertificationId())){ RegistrationCertification registrationCertification = (RegistrationCertification) objectDao.getByID_ForUpdate(RegistrationCertification.class.getSimpleName(), expensiveGood.getCertificationId()); if(registrationCertification != null){ + //同级别一件物品不能给多个供应商授权 + List ea = getExpensiveGoodsAuthorizationByExpensiveGoodsId(expensiveGood.getId()); + for(ExpensiveGoodsAuthorization e : ea){ + if(expensiveGoodsAuthorization.getRelevancyGoodsAuthorization().getId() != e.getRelevancyGoodsAuthorization().getId() && e.getAuthorizerCompanyId() == expensiveGoodsAuthorization.getAuthorizerCompanyId() && e.getValidityTime().getTime() > new Date().getTime()){ + throw new RuntimeException("授权方有授权过此物品["+ names[i]+"]未到失效时间不能再次授权!"); + } + } //判断高值耗材属不属于授权方 if(registrationCertification.getExpensiveGoodsSupplier().getCompanyName().equals(expensiveGoodsAuthorization.getAuthorizerCompanyName())){ String sql = "where po.authorizedCompanyId = " + expensiveGoodsAuthorization.getAuthorizedCompanyId(); @@ -192,7 +206,7 @@ } } if(eg.getAuthorizerCompanyName().equals(expensiveGoodsAuthorization.getAuthorizedCompanyName()) && ids.contains(Long.parseLong(strs[i])) ){ - throw new RuntimeException("被授权方有物品"+ names[i]+"的权限,不能再次授权!"); + throw new RuntimeException("被授权方有物品["+ names[i]+"]的权限,不能再次授权!"); } } } @@ -210,16 +224,16 @@ } if(oldExpensiveGoodsAuthorization.getId() != e.getId()){ if(e.getValidityTime().getTime() < new Date().getTime() && expensiveGoodIds.contains(e.getExpensiveGoodsId().toString())){ - throw new RuntimeException("授权方物品"+e.getExpensiveGoodsName()+"授权时间已过期,不能再次授权!"); + throw new RuntimeException("授权方物品["+e.getExpensiveGoodsName()+"]授权时间已过期,不能再次授权!"); } }else{ if(oldExpensiveGoodsAuthorization.getValidityTime().getTime() < new Date().getTime() && expensiveGoodIds.contains(e.getExpensiveGoodsId().toString())){ - throw new RuntimeException("授权方物品"+e.getExpensiveGoodsName()+"授权时间已过期,不能再次授权!"); + throw new RuntimeException("授权方物品["+e.getExpensiveGoodsName()+"]授权时间已过期,不能再次授权!"); } } } if(!goodsIds.contains(Long.parseLong(strs[i]))){ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } String sql1 = "where 1 = 1 and po.authorizedCompanyId = " + expensiveGoodsAuthorization.getAuthorizedCompanyId(); List egt = objectDao.findBySql(ExpensiveGoodsAuthorization.class.getSimpleName(), sql1); @@ -233,19 +247,19 @@ } } if(egc.getAuthorizerCompanyName().equals(expensiveGoodsAuthorization.getAuthorizedCompanyName()) && ids.contains(Long.parseLong(strs[i])) ){ - throw new RuntimeException("被授权方有物品"+ names[i]+"的权限,不能再次授权!"); + throw new RuntimeException("被授权方有物品["+ names[i]+"]的权限,不能再次授权!"); } } } }else{ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } } }else{ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } }else{ - throw new RuntimeException("物品"+names[i]+"的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); + throw new RuntimeException("物品["+names[i]+"]的生产厂家不是授权方,或者授权方没有此物品的授权权力!"); } } } @@ -408,14 +422,15 @@ ExpensiveGoodsAuthorization.class.getSimpleName(), "id", Long.valueOf(id)); } - + @SuppressWarnings("unchecked") - @Override - public List getExpensiveGoodsAuthorizationsByExpensiveGoodsId( - String id) { - if(!DatabaseUtil.isPoIdValid(id)){ - return null; - } - return objectDao.findByProperty(ExpensiveGoodsAuthorization.class.getSimpleName(), "expensiveGoodsId", id); + /** + * 根据高值耗材ID获取它的所有授权记录 + * @param expensiveGoodId + * @return + */ + private List getExpensiveGoodsAuthorizationByExpensiveGoodsId(Long expensiveGoodId){ + String sql = " where po.expensiveGoodsId = " + expensiveGoodId; + return objectDao.getBySql_ForUpdate2(ExpensiveGoodsAuthorization.class.getSimpleName(), sql); } } Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsAuthorizationManager.java =================================================================== diff -u -r22257 -r22264 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsAuthorizationManager.java (.../ExpensiveGoodsAuthorizationManager.java) (revision 22257) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsAuthorizationManager.java (.../ExpensiveGoodsAuthorizationManager.java) (revision 22264) @@ -48,10 +48,4 @@ */ public ExpensiveGoodsAuthorization getExpensiveGoodsAuthorizationById(String id); - /** - * 根据高值耗材id查询出对应的授权记录 - * @param id 被授权的高值耗材id - * @return 所有的授权记录 - */ - public List getExpensiveGoodsAuthorizationsByExpensiveGoodsId(String id); } Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManagerImpl.java =================================================================== diff -u -r22261 -r22264 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManagerImpl.java (.../ExpensiveGoodsManagerImpl.java) (revision 22261) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManagerImpl.java (.../ExpensiveGoodsManagerImpl.java) (revision 22264) @@ -108,7 +108,6 @@ private AttachFileManager attachFileManager; - private SupplyRoomConfigManager supplyRoomConfigManager; private InitDbConnection dbConnection; @@ -125,8 +124,6 @@ private RegistrationCertificationManager registrationCertificationManager; -// private ExpensiveGoodsAuthorizationManager expensiveGoodsAuthorizationManagerTarget; - private ExpensiveGoodsSupplierManager expensiveGoodsSupplierManager; public void setRegistrationCertificationManager(