caozixuan 1 anno fa
parent
commit
de2bec25b3

+ 18 - 11
sop-api/src/main/java/com/qmth/sop/server/api/TBDeviceDeliveryController.java

@@ -120,17 +120,24 @@ public class TBDeviceDeliveryController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = ProjectExchangeResult.class)})
     @OperationLog(logType = LogTypeEnum.EXPORT)
     public void export(@ApiParam(value = "服务单元id") @RequestParam(required = false) Long serviceId,
-                         @ApiParam(value = "用途类型") @RequestParam(required = false) DeviceUsageTypeEnum usageType,
-                         @ApiParam(value = "项目单号") @RequestParam(required = false) String crmNo,
-                         @ApiParam(value = "发货状态") @RequestParam(required = false) DeviceDeliveryStatusEnum status,
-                         @ApiParam(value = "发货人id") @RequestParam(required = false) Long deliverUserId,
-                         @ApiParam(value = "发货开始时间") @RequestParam(required = false) Long deliverStartTime,
-                         @ApiParam(value = "发货结束时间") @RequestParam(required = false) Long deliverEndTime,
-                         @ApiParam(value = "设备序列号") @RequestParam(required = false) String serialNo,
-                         @ApiParam(value = "设备编号") @RequestParam(required = false) String deviceNo,
-                         @ApiParam(value = "供应商id") @RequestParam(required = false) Long supplierId,
-                         @ApiParam(value = "签收开始时间") @RequestParam(required = false) Long receiveStartTime,
-                         @ApiParam(value = "签收结束时间") @RequestParam(required = false) Long receiveEndTime) throws Exception {
+                       @ApiParam(value = "用途类型") @RequestParam(required = false) DeviceUsageTypeEnum usageType,
+                       @ApiParam(value = "项目单号") @RequestParam(required = false) String crmNo,
+                       @ApiParam(value = "发货状态") @RequestParam(required = false) DeviceDeliveryStatusEnum status,
+                       @ApiParam(value = "发货人id") @RequestParam(required = false) Long deliverUserId,
+                       @ApiParam(value = "发货开始时间") @RequestParam(required = false) Long deliverStartTime,
+                       @ApiParam(value = "发货结束时间") @RequestParam(required = false) Long deliverEndTime,
+                       @ApiParam(value = "设备序列号") @RequestParam(required = false) String serialNo,
+                       @ApiParam(value = "设备编号") @RequestParam(required = false) String deviceNo,
+                       @ApiParam(value = "供应商id") @RequestParam(required = false) Long supplierId,
+                       @ApiParam(value = "签收开始时间") @RequestParam(required = false) Long receiveStartTime,
+                       @ApiParam(value = "签收结束时间") @RequestParam(required = false) Long receiveEndTime) throws Exception {
         tbDeviceDeliveryService.dataExport(serviceId, usageType, crmNo, status, deliverUserId, deliverStartTime, deliverEndTime, serialNo, deviceNo, supplierId, receiveStartTime, receiveEndTime);
     }
+
+    @ApiOperation(value = "设备发货人列表查询")
+    @RequestMapping(value = "/delivery_user_list", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = SysUser.class)})
+    public Result findDeliveryUserList() {
+        return ResultUtil.ok(tbDeviceDeliveryService.findDeliveryUserList());
+    }
 }

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/DeviceInOutResult.java

@@ -97,6 +97,9 @@ public class DeviceInOutResult {
     @ApiModelProperty("默认数据")
     private Boolean defaultData;
 
+    @ApiModelProperty("快递单号")
+    private String expressNo;
+
     public String getSerialNo() {
         return serialNo;
     }
@@ -320,4 +323,12 @@ public class DeviceInOutResult {
     public void setDefaultData(Boolean defaultData) {
         this.defaultData = defaultData;
     }
+
+    public String getExpressNo() {
+        return expressNo;
+    }
+
+    public void setExpressNo(String expressNo) {
+        this.expressNo = expressNo;
+    }
 }

+ 8 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBDeviceDeliveryService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.bean.params.DeviceDeliveryParam;
 import com.qmth.sop.business.bean.params.DeviceInOutForm;
 import com.qmth.sop.business.bean.result.TBDeviceDeliveryResult;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBDeviceDelivery;
 import com.qmth.sop.common.enums.DeviceDeliveryStatusEnum;
 import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
@@ -118,4 +119,11 @@ public interface TBDeviceDeliveryService extends IService<TBDeviceDelivery> {
      * @param requestUserId        请求人id
      */
     void updateStatus(List<Long> deviceDeliveryIdList, DeviceDeliveryStatusEnum status, Long requestUserId);
+
+    /**
+     * 查询发货人集合
+     *
+     * @return 发货人集合
+     */
+    List<SysUser> findDeliveryUserList();
 }

+ 37 - 6
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDeviceDeliveryServiceImpl.java

@@ -76,8 +76,8 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
 
         // 派单序列号集合
         List<String> crmNoList = tbCrmService.list(new QueryWrapper<TBCrm>()
-                .lambda()
-                .eq(TBCrm::getEnable,true))
+                        .lambda()
+                        .eq(TBCrm::getEnable, true))
                 .stream()
                 .map(TBCrm::getCrmNo)
                 .distinct()
@@ -161,7 +161,7 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
 
                 TBDeviceDelivery tbDeviceDelivery = new TBDeviceDelivery();
                 if (crmNo != null && crmNo.length() > 0) {
-                    if (!crmNoList.contains(crmNo)){
+                    if (!crmNoList.contains(crmNo)) {
                         throw ExceptionResultEnum.ERROR.exception("派单号不存在");
                     }
 
@@ -215,7 +215,7 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
         }
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
-        if (dpr.getHasDeviceDelivery()) {
+        if (dpr.getHasDeviceDelivery() && !dpr.getHasAdmin() && !dpr.getHasPmo() && !dpr.getHasBusiness() && !dpr.getHasRegionManager()) {
             // 是设备管理员
             Long userSupplierId = requestUser.getSupplierId();
             if (userSupplierId == null || userSupplierId == 0) {
@@ -243,8 +243,8 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
         }
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
-        if (dpr.getHasDeviceDelivery()) {
-            // 设备管理员
+        if (dpr.getHasDeviceDelivery() && !dpr.getHasAdmin() && !dpr.getHasPmo() && !dpr.getHasBusiness() && !dpr.getHasRegionManager()) {
+            // 设备
             Long userSupplierId = requestUser.getSupplierId();
             if (userSupplierId == null || userSupplierId == 0) {
                 throw ExceptionResultEnum.ERROR.exception("请先在用户管理中绑定设备发货员对应的供应商");
@@ -407,6 +407,37 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
         }
     }
 
+    @Override
+    public List<SysUser> findDeliveryUserList() {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        QueryWrapper<TBDeviceDelivery> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda()
+                .select(TBDeviceDelivery::getDeliverUserId)
+                .eq(TBDeviceDelivery::getEnable, true)
+                .ne(TBDeviceDelivery::getStatus, DeviceDeliveryStatusEnum.CANCEL);
+
+        if (dpr.getHasDeviceDelivery() && !dpr.getHasAdmin() && !dpr.getHasPmo() && !dpr.getHasBusiness() && !dpr.getHasRegionManager()) {
+            // 设备
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception("请先在用户管理中绑定设备发货员对应的供应商");
+            }
+            queryWrapper.lambda().eq(TBDeviceDelivery::getSupplierId, userSupplierId);
+        }
+        List<Long> deliveryUserIdList = this.list(queryWrapper)
+                .stream()
+                .filter(e -> e != null && e.getDeliverUserId() != null && e.getDeliverUserId() > 0)
+                .map(TBDeviceDelivery::getDeliverUserId)
+                .distinct()
+                .collect(Collectors.toList());
+        List<SysUser> result = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(deliveryUserIdList)) {
+            result = sysUserService.listByIds(deliveryUserIdList);
+        }
+        return result;
+    }
+
 
     /**
      * 补充结果信息

+ 1 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDeviceInOutServiceImpl.java

@@ -116,6 +116,7 @@ public class TBDeviceInOutServiceImpl extends ServiceImpl<TBDeviceInOutMapper, T
                     // 用于sop
                     if (crmNo.equals(deliveryCrmNo)) {
                         e.setDefaultData(true);
+                        e.setExpressNo(tbDeviceDelivery.getExpressNo());
                         result.add(e);
                     }
                 } else {

+ 5 - 0
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -478,3 +478,8 @@ UPDATE sys_privilege SET related = '3066' WHERE (id = '3058');
 UPDATE sys_privilege SET related = '3066' WHERE (id = '3059');
 UPDATE sys_privilege SET related = '3066' WHERE (id = '3060');
 UPDATE sys_privilege SET related = '3065,3068' WHERE (id = '3061');
+
+-- 2023-12-07
+INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, enable, default_auth, front_display) VALUES ('3071', '设备发货人列表查询', '/api/admin/device/delivery/delivery_user_list', 'URL', '3053', '7', 'AUTH', '1', '1', '0');
+UPDATE sys_privilege SET related = '3067,3071' WHERE (id = '3055');
+UPDATE sys_privilege SET related = '3067,3071' WHERE (id = '3054');

+ 2 - 2
sop-business/src/main/resources/mapper/TBDeviceDeliveryMapper.xml

@@ -45,7 +45,7 @@
                 AND tbdd.usage_type = #{usageType}
             </if>
             <if test="crmNo != null and crmNo != ''">
-                AND tbdd.crm_no LIKE CONCAT('%',#{serialNo},'%')
+                AND tbdd.crm_no LIKE CONCAT('%',#{crmNo},'%')
             </if>
             <if test="status != null">
                 AND tbdd.status = #{status}
@@ -121,7 +121,7 @@
                 AND tbdd.usage_type = #{usageType}
             </if>
             <if test="crmNo != null and crmNo != ''">
-                AND tbdd.crm_no LIKE CONCAT('%',#{serialNo},'%')
+                AND tbdd.crm_no LIKE CONCAT('%',#{crmNo},'%')
             </if>
             <if test="status != null">
                 AND tbdd.status = #{status}

+ 4 - 1
sop-business/src/main/resources/mapper/TBDeviceInOutMapper.xml

@@ -237,11 +237,14 @@
             sd.device_code AS deviceNo,
             sd.location,
             sd.location_arr AS locationArrTemp,
-            ss.name AS address
+            ss.name AS address,
+            tbdd.express_no AS expressNo
         FROM
             sys_device sd
         LEFT JOIN
             sys_supplier ss ON sd.supplier_id = ss.id
+        LEFT JOIN
+            t_b_device_delivery tbdd ON tbdd.effect AND tbdd.serial_no = sd.serial_no
         <where>
             AND sd.enable
             <if test="supplierId != null">