Browse Source

公共询价单转客户询价单时增加客户关系判断和客户分配处理

hejq 8 years ago
parent
commit
feef8d7432

+ 10 - 0
src/main/java/com/uas/platform/b2b/service/RoleService.java

@@ -87,4 +87,14 @@ public interface RoleService {
      * @return
      */
     List<Role> findByEnUUAndUserUU(Long enUU, Long userUU);
+
+    /**
+     * 这个方法针对公共询价转客户询价的权限验证<br>
+     *     可能存在用户自己设置的对于询价单进行的操作,所以这个地方采用操作的路径进行判断而不是角色名称判断
+     *
+     * @param enUU
+     * @param userUU
+     * @return
+     */
+    Integer findRoleByEnUUAndUserUU(Long enUU, Long userUU);
 }

+ 15 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java

@@ -8,6 +8,7 @@ import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurcInquiryService;
+import com.uas.platform.b2b.service.RoleService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.b2b.temporary.model.*;
@@ -102,6 +103,9 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 	@Autowired
 	private UserOrderDao userOrderDao;
 
+	@Autowired
+    private RoleService roleService;
+
 	@Override
 	public ModelMap save(PurcInquiryInfo inquiryInfo, List<VendorAndContact> contacts, FileUpload uploadItem) {
 		ModelMap map = new ModelMap();
@@ -591,10 +595,17 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 	@Override
 	public ModelMap transtoInquiry(Long id) {
 		ModelMap map = new ModelMap();
-		PurcInquiryItem purcInquiryItem = purcInquiryItemDao.findOne(id);
-		PurcInquiry purcInquiry = purcInquiryItem.getInquiry();
-		Long enuu = SystemSession.getUser().getEnterprise().getUu();
-		Long useruu = SystemSession.getUser().getUserUU();
+        Long enuu = SystemSession.getUser().getEnterprise().getUu();
+        Long useruu = SystemSession.getUser().getUserUU();
+        // 这里先要判断是否有询价单的操作权限,涉及到后面单据查看的问题
+        Integer count = roleService.findRoleByEnUUAndUserUU(enuu, useruu);
+        Double manCount =  roleDao.findByEnuuAndUserUU(SystemSession.getUser().getEnterprise().getUu(),SystemSession.getUser().getUserUU());
+        if(count == 0 && manCount == 0) {
+            map.put("info", "您没有询价单的操作权限,请通知管理员设置权限");
+            return map;
+        }
+        PurcInquiryItem purcInquiryItem = purcInquiryItemDao.findOne(id);
+        PurcInquiry purcInquiry = purcInquiryItem.getInquiry();
 		// 先判断客户询价单是否存在这张单据
 		PurchaseInquiry inquiry = purchaseInquiryDao.findBySourceIdAndSourceApp(purcInquiry.getId(), SOURCERAPP);
 		if (null == inquiry) {// 新增

+ 9 - 0
src/main/java/com/uas/platform/b2b/service/impl/RoleServiceImpl.java

@@ -142,6 +142,15 @@ public class RoleServiceImpl implements RoleService {
         return roles;
     }
 
+    @Override
+    public Integer findRoleByEnUUAndUserUU(Long enUU, Long userUU) {
+	    String sql = "select count(1) from sec$userrole left join sec$roles on sec$roles.role_id = sec$userrole.role_id left join sec$roleresource " +
+                "on sec$roles.role_id = sec$roleresource.role_id left join sec$resources on sec$resources.res_id = sec$roleresource.res_id " +
+                "left join sec$resourceitems on sec$resourceitems.item_resid = sec$resources.res_id where item_url like '%/sale/inquiry%' and " +
+                "sec$userrole.user_uu = " + userUU + " and sec$roles.role_enuu = " + enUU;
+        return commonDao.queryForObject(sql, Integer.class);
+    }
+
     /**
 	 * 恢复默认权限
 	 *