Browse Source

1.订单自提司机授权模板
2.老用户权限的自动维护

njs 2 years ago
parent
commit
5a49137eac

+ 2 - 1
suishenbang-system/src/main/java/com/dgtly/system/mapper/SysUserAuthorRelMapper.java

@@ -20,7 +20,8 @@ public interface SysUserAuthorRelMapper
      * @return 【请填写功能名称】
      */
     public SysUserAuthorRel selectSysUserAuthorRelById(Long userId);
-    public List<SysUserAuthorRel> selectSysUserAuthorRelListById(Long userId);
+
+    public List<Long> selectSysUserAuthorRelListById(Long userId);
 
     /**
      * 查询【请填写功能名称】列表

+ 3 - 1
suishenbang-system/src/main/java/com/dgtly/system/mapper/SysUserOrderAuthorMapper.java

@@ -67,5 +67,7 @@ public interface SysUserOrderAuthorMapper
 
     public List<SysUserOrderAuthor> selectAuthorIdByParentId(Long parentId);
 
-    public List<SysUserOrderAuthor> selectAuthorIdByParentIdList(List<String> parentIdList);
+    public List<SysUserOrderAuthor> selectByParentId(@Param("authorList") List<Long> authorList);
+
+    //public List<SysUserOrderAuthor> selectAuthorIdByParentId(List<Long> authorList);
 }

+ 34 - 30
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysUserOrderAuthorServiceImpl.java

@@ -283,9 +283,22 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
     @Override
     public void initUserAuthor() {
         List<SysUserOrderAuthor> userOrderAuthorList = new ArrayList<>();
+        //diy
         List<SysUserOrderAuthor> userOrderAuthorDiyList = sysUserOrderAuthorMapper.selectAuthorIdByCode("tuc_diy");
+        List<Long> diyauthList=userOrderAuthorDiyList.stream().map(SysUserOrderAuthor::getAuthorId).collect(Collectors.toList());
+        List<SysUserOrderAuthor> diyrole=sysUserOrderAuthorMapper.selectByParentId(diyauthList);
+        userOrderAuthorDiyList.addAll(diyrole);
+        //cw
         List<SysUserOrderAuthor> userOrderAuthorCwList = sysUserOrderAuthorMapper.selectAuthorIdByCode("tuc_cw");
+        List<Long> cwauthList=userOrderAuthorCwList.stream().map(SysUserOrderAuthor::getAuthorId).collect(Collectors.toList());
+        List<SysUserOrderAuthor> cwrole=sysUserOrderAuthorMapper.selectByParentId(cwauthList);
+        userOrderAuthorCwList.addAll(cwrole);
+       //ysl
         List<SysUserOrderAuthor> userOrderAuthorYSLList = sysUserOrderAuthorMapper.selectAuthorIdByCode("YSL");
+        List<Long> yslauthList=userOrderAuthorYSLList.stream().map(SysUserOrderAuthor::getAuthorId).collect(Collectors.toList());
+        List<SysUserOrderAuthor> yslrole=sysUserOrderAuthorMapper.selectByParentId(yslauthList);
+        userOrderAuthorCwList.addAll(yslrole);
+
         userExtMapper.selectUserExtList().forEach(sysUserExt -> {
             String sales = sysUserExt.getSalesLevel();
             if (sales != null) {
@@ -303,40 +316,31 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
                 userOrderAuthorList.addAll(userOrderAuthorYSLList);
             }
             if(userOrderAuthorList.size()>0){
-            List<SysUserAuthorRel> user = userAuthorRelMapper.selectSysUserAuthorRelListById(sysUserExt.getUserId());
-            if (user.size() == 0) {
+            List<Long> userole = userAuthorRelMapper.selectSysUserAuthorRelListById(sysUserExt.getUserId());
+            if (userole ==null ||userole.size() == 0) {
                 SysUserAuthorRel role = new SysUserAuthorRel();
                 role.setUserId(sysUserExt.getUserId());
                 role.setAuthorId(userOrderAuthorList.get(0).getParentId());
                 userAuthorRelMapper.insertSysUserAuthorRel(role);
-                List<SysUserOrderAuthor> OrderAuthorList = sysUserOrderAuthorMapper.selectAuthorIdByParentId(userOrderAuthorList.get(0).getParentId());
-                if (OrderAuthorList.size() > 0) {
-                    for (SysUserOrderAuthor sys : OrderAuthorList
-                    ) {
-                        SysUserAuthorRel roleUser = new SysUserAuthorRel();
-                        roleUser.setUserId(sysUserExt.getUserId());
-                        roleUser.setAuthorId(sys.getAuthorId());
-                        userAuthorRelMapper.insertSysUserAuthorRel(roleUser);
-                        List<SysUserOrderAuthor> OrderList = sysUserOrderAuthorMapper.selectAuthorIdByParentId(sys.getAuthorId());
-                        if(OrderList.size()>0){
-                            OrderList.forEach(sysUserOrderAuthor -> {
-                                SysUserAuthorRel userRel = new SysUserAuthorRel();
-                                userRel.setUserId(sysUserExt.getUserId());
-                                userRel.setAuthorId(sysUserOrderAuthor.getAuthorId());
-                                userAuthorRelMapper.insertSysUserAuthorRel(userRel);
-                                List<SysUserOrderAuthor> OList = sysUserOrderAuthorMapper.selectAuthorIdByParentId(sysUserOrderAuthor.getAuthorId());
-                                if(OList.size()>0){
-                                    OList.forEach(sysUserOrder -> {
-                                    SysUserAuthorRel use = new SysUserAuthorRel();
-                                        use.setUserId(sysUserExt.getUserId());
-                                        use.setAuthorId(sysUserOrder.getAuthorId());
-                                    userAuthorRelMapper.insertSysUserAuthorRel(use);
-                                    });
-                                }
-                            });
-                        }
-                    }
-                }
+                userOrderAuthorList.forEach(sysUserOrderAuthor -> {
+                            SysUserAuthorRel userRel = new SysUserAuthorRel();
+                            userRel.setUserId(sysUserExt.getUserId());
+                            userRel.setAuthorId(sysUserOrderAuthor.getAuthorId());
+                            userAuthorRelMapper.insertSysUserAuthorRel(userRel);
+                        });
+            }else{
+                userole.remove(0);
+                List<Long> uinon=userOrderAuthorList.stream().map(SysUserOrderAuthor::getAuthorId).collect(Collectors.toList());
+                uinon.removeAll(userole);
+                if(uinon.size()>0){
+                List<Long> newrole=uinon.stream().distinct().collect(Collectors.toList());
+                    newrole.forEach(role -> {
+                    SysUserAuthorRel userRel = new SysUserAuthorRel();
+                    userRel.setUserId(sysUserExt.getUserId());
+                    userRel.setAuthorId(role);
+                    userAuthorRelMapper.insertSysUserAuthorRel(userRel);
+                });
+            }
             }
             }
             }

+ 2 - 2
suishenbang-system/src/main/resources/mapper/system/SysUserAuthorRelMapper.xml

@@ -68,8 +68,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where user_id = #{userId} and author_id =#{authorId}
     </select>
 
-    <select id="selectSysUserAuthorRelListById" parameterType="Long" resultMap="SysUserAuthorRelResult">
-        <include refid="selectSysUserAuthorRelVo"/>
+    <select id="selectSysUserAuthorRelListById" resultType="java.lang.Long">
+        select  author_id from sys_user_author_rel
         where user_id = #{userId}
     </select>
 </mapper>

+ 13 - 0
suishenbang-system/src/main/resources/mapper/system/SysUserOrderAuthorMapper.xml

@@ -122,6 +122,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     code =#{code}
             )
     </select>
+    <select id="selectByParentId"  parameterType="SysUserOrderAuthor" resultMap="SysUserOrderAuthorResult">
+        SELECT
+            parent_id,
+            author_id
+        FROM
+            sys_user_order_author
+        WHERE
+                parent_id in
+     <foreach collection="authorList" item="authId" index="index" open="(" close=")" separator=",">
+        #{authId}
+    </foreach>
+    </select>
+
     <select id="selectAuthorIdByParentId" parameterType="SysUserOrderAuthor" resultMap="SysUserOrderAuthorResult">
     SELECT
     parent_id,

+ 7 - 5
suishenbang-system/src/main/resources/mapper/system/SysUserSalesExtMapper.xml

@@ -193,13 +193,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select count(1) from sys_user_ext where sap_employee_id = #{sapEmployeeId}
     </select>
 
-    <select id="selectUserExtList" resultMap="SysUserExtResult">
+    <select id="selectUserExtList" resultType="com.dgtly.system.domain.SysUserExt">
         SELECT
-            sales_level,
-            user_id
+            e.sales_level as salesLevel,
+            e.user_id as userId
         FROM
-            sys_user_ext
+            sys_user_ext e LEFT JOIN sys_user u on  u.user_id = e.user_id
+        WHERE
+            u.is_sync != 1
         GROUP BY
-            user_id
+            e.user_id
     </select>
 </mapper>

+ 26 - 15
suishenbang-wxportal/suishenbang-wxportal-api/src/main/java/com/dgtly/wxportal/controller/EsignController.java

@@ -170,7 +170,19 @@ public class EsignController extends ApiBaseController {
     /**
      * 指派司机授权
      */
-    @ApiOperation(value = "指派司机授权", notes = "参数:{}")
+    @ApiOperation(value = "指派司机授权", notes = "参数:{'orderId':'xxx','userId':'xxx','customerCode':'xxx','entrustName':'xxx','beentrustName':'xxx','bId':'xxx','carNumber':'xxx','deliveryNumber':'','year':'xxx','month':'xxx','day':'xxx','redirectUrl':'xxx'}"+
+            "\n(orderId:订单编号" +
+            "\n(userId: 用户id" +
+            "\n(customerCode: 经销商编号" +
+            "\n(entrustName: 委托人" +
+            "\n(beentrustName:受托(提货)人" +
+            "\n(bId:身份证号码" +
+            "\n(carNumber:车牌" +
+            "\n(deliveryNumber:交货单号" +
+            "\n(year:年" +
+            "\n(month:月" +
+            "\n(day:日" +
+            "\n redirectUrl:签署完成跳转地址")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "params", paramType = "body")
     })
@@ -178,23 +190,25 @@ public class EsignController extends ApiBaseController {
     public Object dealerSignDriver() {
 
         ParameterObject obj = getParameterObject();
-        obj.checkParameterNotNull("orderId,userId,deliveryNumber,tmsShipmentNumber,customerCode,redirectUrl");
+        obj.checkParameterNotNull("orderId,entrustName,beentrustName,bId,carNumber,deliveryNumber,year,month,day,redirectUrl");
         String orderId = obj.getString("orderId");
-        String tmsShipNumber = obj.getString("tmsShipmentNumber");
-        String customerCode = obj.getString("customerCode");
         String userId = obj.getString("userId");
+        String customerCode = obj.getString("customerCode");
+        String entrustName = obj.getString("entrustName");
+        String beentrustName = obj.getString("beentrustName");
+        String bId = obj.getString("bId");
+        String carNumber = obj.getString("carNumber");
         String deliveryNumber = obj.getString("deliveryNumber");
-//        String shipmentNumber = obj.getString("shipmentNumber");
-//        String belongTo = obj.getString("belongTo");
-        String wareHouseCode = obj.getString("wareHouseCode");
-        String wareHouseName = obj.getString("wareHouseName");
+        String year = obj.getString("year");
+        String month = obj.getString("month");
+        String day = obj.getString("day");
         String redirectUrl = obj.getString("redirectUrl");
         logger.info("签署完成跳转地址:{}",redirectUrl);
 
 
         String businessScene = "司机授权";
         //String fileName = orderId+"_签收订单.pdf";
-        String fileName = tmsShipNumber+"_司机授权.pdf";
+        String fileName = deliveryNumber+"_司机授权.pdf";
         /*根据userId查询个人注册后accountId*/
         String signerAccountId = "";
         try {
@@ -203,15 +217,15 @@ public class EsignController extends ApiBaseController {
                 signerAccountId=sysUser.getAccountId();
             }
             /*根据订单id关联查询企业注册后id*/
-//            String authorizedAccountId =customersExtService.selectOrgIdByOrderId(orderId);
-            String authorizedAccountId = "563c540b67354026a5f84f6c5b9d8eb0";
+            String authorizedAccountId =customersExtService.selectOrgIdByOrderId(orderId);
+            //String authorizedAccountId = "563c540b67354026a5f84f6c5b9d8eb0";
 //            signService.signAuth(authorizedAccountId);
             logger.info("签署人认证id:{}",authorizedAccountId);
             /* 根据订单id关联查询企业代号*/
 //        String chainsCode = customersExtService.selectChainsCodeByOrderId(orderId);
             /*首先根据订单id-orderId查询订单是否已被签署*/
 //        OrderFile orderFlag = orderFileService.selectOrderFileById(orderId);
-            ESignUpPDFModal fileModal = eSignService.uploadDriver(orderId,tmsShipNumber,customerCode,sysUser.getSysUserExt().getOrgName(),sysUser.getUserName());
+            ESignUpPDFModal fileModal = eSignService.upload(orderId,deliveryNumber,customerCode,sysUser.getSysUserExt().getOrgName(),sysUser.getUserName());
             /*1、根据传入订单id,查询订单相关信息生成PDF,调用e签宝上传方法返回文件fileId*/
             Object fileId = fileModal.getFileId();
             logger.info("签署订单返回文件id:{}",fileId);
@@ -224,9 +238,6 @@ public class EsignController extends ApiBaseController {
             OrderFile orderFile = new OrderFile();
             orderFile.setOrderId(orderId);
             orderFile.setDeliveryNumber(deliveryNumber);
-            orderFile.setShipmentNumber(tmsShipNumber);
-            orderFile.setWareHouseCode(wareHouseCode);
-            orderFile.setWareHouseName(wareHouseName);
             orderFile.setChainsCode(customerCode);
             orderFile.setCustomersCode(authorizedAccountId);
             orderFile.setSignerId(signerAccountId);