caozixuan 1 år sedan
förälder
incheckning
c779c8a857

+ 5 - 6
sop-api/src/main/java/com/qmth/sop/server/api/TBDeviceDeliveryController.java

@@ -48,23 +48,23 @@ public class TBDeviceDeliveryController {
     @Resource
     TBDeviceDeliveryService tbDeviceDeliveryService;
 
-    @ApiOperation(value = "项目变更计划列表接口")
-    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @ApiOperation(value = "设备发货列表分页查询")
+    @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = ProjectExchangeResult.class)})
     public Result list(@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 crmStartTime,
-                       @ApiParam(value = "派单结束时间") @RequestParam(required = false) Long crmEndTime,
+                       @ApiParam(value = "发货开始时间") @RequestParam(required = false) Long deliverStartTime,
+                       @ApiParam(value = "发货结束时间") @RequestParam(required = false) Long deliverEndTime,
                        @ApiParam(value = "设备序列号") @RequestParam(required = false) String serialNo,
                        @ApiParam(value = "供应商id") @RequestParam(required = false) Long supplierId,
                        @ApiParam(value = "签收开始时间") @RequestParam(required = false) Long receiveStartTime,
                        @ApiParam(value = "签收结束时间") @RequestParam(required = false) Long receiveEndTime,
                        @ApiParam(value = "页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @ApiParam(value = "页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(tbDeviceDeliveryService.list(new Page<>(pageNumber, pageSize), serviceId, usageType, crmNo, status, deliverUserId, crmStartTime, crmEndTime, serialNo, supplierId, receiveStartTime, receiveEndTime));
+        return ResultUtil.ok(tbDeviceDeliveryService.page(new Page<>(pageNumber, pageSize), serviceId, usageType, crmNo, status, deliverUserId, deliverStartTime, deliverEndTime, serialNo, supplierId, receiveStartTime, receiveEndTime));
     }
 
     @ApiOperation(value = "设备发货保存接口")
@@ -83,7 +83,6 @@ public class TBDeviceDeliveryController {
     @ApiOperation(value = "设备发货编辑接口")
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = TBDeviceDelivery.class)})
-    @OperationLog(logType = LogTypeEnum.EDIT)
     @Transactional
     public Result edit(@ApiParam(value = "设备发货id", required = true) @RequestParam Long id) throws Exception {
         TBDeviceDelivery tbDeviceDelivery = tbDeviceDeliveryService.getById(id);

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/dto/DataPermissionDto.java

@@ -47,6 +47,9 @@ public class DataPermissionDto {
     @ApiModelProperty("是乙方总负责人?")
     private Boolean hasThirdPmo;
 
+    @ApiModelProperty("是设备发货员?")
+    private Boolean hasDeviceDelivery;
+
     public Long getRequestUserId() {
         return requestUserId;
     }
@@ -142,4 +145,12 @@ public class DataPermissionDto {
     public void setHasThirdPmo(Boolean hasThirdPmo) {
         this.hasThirdPmo = hasThirdPmo;
     }
+
+    public Boolean getHasDeviceDelivery() {
+        return hasDeviceDelivery;
+    }
+
+    public void setHasDeviceDelivery(Boolean hasDeviceDelivery) {
+        this.hasDeviceDelivery = hasDeviceDelivery;
+    }
 }

+ 293 - 4
sop-business/src/main/java/com/qmth/sop/business/bean/result/TBDeviceDeliveryResult.java

@@ -1,18 +1,307 @@
 package com.qmth.sop.business.bean.result;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.qmth.sop.business.entity.TBDeviceDelivery;
+import com.qmth.sop.common.enums.DeviceDeliveryStatusEnum;
+import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
+import com.qmth.sop.common.enums.InOutTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
 
 /**
  * @Description: 设备发货管理result
- * @Param:
- * @return:
  * @Author: wangliang
  * @Date: 2023/11/30
  */
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class TBDeviceDeliveryResult extends TBDeviceDelivery implements Serializable {
+public class TBDeviceDeliveryResult implements Serializable {
+    @ApiModelProperty("id")
+    @ExcelIgnore
+    private Long id;
 
+    @ApiModelProperty("服务单元")
+    @ExcelProperty(value = "服务单元")
+    private String serviceName;
+
+    @ApiModelProperty("项目单号")
+    @ExcelProperty(value = "项目单号")
+    private String crmNo;
+
+    @ApiModelProperty("用途")
+    @ExcelProperty(value = "用途")
+    private String usageTypeStr;
+
+    @ApiModelProperty("出库/入库")
+    @ExcelProperty(value = "出库/入库")
+    private String deliveryTypeStr;
+
+    @ApiModelProperty("供应商")
+    @ExcelProperty(value = "供应商")
+    private String supplierName;
+
+    @ApiModelProperty("设备编号")
+    @ExcelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty("序列号")
+    @ExcelProperty(value = "序列号")
+    private String serialNo;
+
+    @ApiModelProperty("品牌")
+    @ExcelProperty(value = "品牌")
+    private String brand;
+
+    @ApiModelProperty("型号")
+    @ExcelProperty(value = "型号")
+    private String model;
+
+    @ApiModelProperty("邮寄地址")
+    @ExcelProperty(value = "邮寄地址")
+    private String mailingAddress;
+
+    @ApiModelProperty("收件人")
+    @ExcelProperty(value = "收件人")
+    private String consignee;
+
+    @ApiModelProperty("收件人联系电话")
+    @ExcelProperty(value = "收件人联系电话")
+    private String consigneePhone;
+
+    @ApiModelProperty("快递单号")
+    @ExcelProperty(value = "快递单号")
+    private String expressNo;
+
+    @ApiModelProperty("发货状态")
+    @ExcelProperty(value = "发货状态")
+    private String statusStr;
+
+    @ApiModelProperty("发货时间")
+    @ExcelProperty(value = "发货时间")
+    private String deliverTimeStr;
+
+    @ApiModelProperty("发货人")
+    @ExcelProperty(value = "发货人")
+    private String deliverUserName;
+
+    @ApiModelProperty("签收时间")
+    @ExcelProperty(value = "签收时间")
+    private String receiveTimeStr;
+
+    @ApiModelProperty("快递单截图")
+    @ExcelIgnore
+    private String expressPhotoPath;
+
+    @ApiModelProperty("用途")
+    @ExcelIgnore
+    private DeviceUsageTypeEnum usageType;
+
+    @ApiModelProperty("出库/入库")
+    @ExcelIgnore
+    private InOutTypeEnum deliveryType;
+
+    @ApiModelProperty("发货状态")
+    @ExcelIgnore
+    private DeviceDeliveryStatusEnum status;
+
+    @ApiModelProperty("发货时间")
+    @ExcelIgnore
+    private Long deliverTime;
+
+    @ApiModelProperty("签收时间")
+    @ExcelIgnore
+    private Long receiveTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getServiceName() {
+        return serviceName;
+    }
+
+    public void setServiceName(String serviceName) {
+        this.serviceName = serviceName;
+    }
+
+    public String getCrmNo() {
+        return crmNo;
+    }
+
+    public void setCrmNo(String crmNo) {
+        this.crmNo = crmNo;
+    }
+
+    public String getUsageTypeStr() {
+        return usageTypeStr;
+    }
+
+    public void setUsageTypeStr(String usageTypeStr) {
+        this.usageTypeStr = usageTypeStr;
+    }
+
+    public String getDeliveryTypeStr() {
+        return deliveryTypeStr;
+    }
+
+    public void setDeliveryTypeStr(String deliveryTypeStr) {
+        this.deliveryTypeStr = deliveryTypeStr;
+    }
+
+    public String getSupplierName() {
+        return supplierName;
+    }
+
+    public void setSupplierName(String supplierName) {
+        this.supplierName = supplierName;
+    }
+
+    public String getDeviceNo() {
+        return deviceNo;
+    }
+
+    public void setDeviceNo(String deviceNo) {
+        this.deviceNo = deviceNo;
+    }
+
+    public String getSerialNo() {
+        return serialNo;
+    }
+
+    public void setSerialNo(String serialNo) {
+        this.serialNo = serialNo;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public String getMailingAddress() {
+        return mailingAddress;
+    }
+
+    public void setMailingAddress(String mailingAddress) {
+        this.mailingAddress = mailingAddress;
+    }
+
+    public String getConsignee() {
+        return consignee;
+    }
+
+    public void setConsignee(String consignee) {
+        this.consignee = consignee;
+    }
+
+    public String getConsigneePhone() {
+        return consigneePhone;
+    }
+
+    public void setConsigneePhone(String consigneePhone) {
+        this.consigneePhone = consigneePhone;
+    }
+
+    public String getExpressNo() {
+        return expressNo;
+    }
+
+    public void setExpressNo(String expressNo) {
+        this.expressNo = expressNo;
+    }
+
+    public String getStatusStr() {
+        return statusStr;
+    }
+
+    public void setStatusStr(String statusStr) {
+        this.statusStr = statusStr;
+    }
+
+    public String getDeliverTimeStr() {
+        return deliverTimeStr;
+    }
+
+    public void setDeliverTimeStr(String deliverTimeStr) {
+        this.deliverTimeStr = deliverTimeStr;
+    }
+
+    public String getDeliverUserName() {
+        return deliverUserName;
+    }
+
+    public void setDeliverUserName(String deliverUserName) {
+        this.deliverUserName = deliverUserName;
+    }
+
+    public String getReceiveTimeStr() {
+        return receiveTimeStr;
+    }
+
+    public void setReceiveTimeStr(String receiveTimeStr) {
+        this.receiveTimeStr = receiveTimeStr;
+    }
+
+    public String getExpressPhotoPath() {
+        return expressPhotoPath;
+    }
+
+    public void setExpressPhotoPath(String expressPhotoPath) {
+        this.expressPhotoPath = expressPhotoPath;
+    }
+
+    public DeviceUsageTypeEnum getUsageType() {
+        return usageType;
+    }
+
+    public void setUsageType(DeviceUsageTypeEnum usageType) {
+        this.usageType = usageType;
+    }
+
+    public InOutTypeEnum getDeliveryType() {
+        return deliveryType;
+    }
+
+    public void setDeliveryType(InOutTypeEnum deliveryType) {
+        this.deliveryType = deliveryType;
+    }
+
+    public DeviceDeliveryStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(DeviceDeliveryStatusEnum status) {
+        this.status = status;
+    }
+
+    public Long getDeliverTime() {
+        return deliverTime;
+    }
+
+    public void setDeliverTime(Long deliverTime) {
+        this.deliverTime = deliverTime;
+    }
+
+    public Long getReceiveTime() {
+        return receiveTime;
+    }
+
+    public void setReceiveTime(Long receiveTime) {
+        this.receiveTime = receiveTime;
+    }
 }

+ 57 - 16
sop-business/src/main/java/com/qmth/sop/business/mapper/TBDeviceDeliveryMapper.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.sop.business.bean.result.TBDeviceDeliveryResult;
 import com.qmth.sop.business.entity.TBDeviceDelivery;
+import com.qmth.sop.common.enums.DeviceDeliveryStatusEnum;
+import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -19,22 +22,60 @@ import java.util.Map;
 public interface TBDeviceDeliveryMapper extends BaseMapper<TBDeviceDelivery> {
 
     /**
-     * 设备发货管理列表
+     * 设备发货分页查询
      *
-     * @param iPage
-     * @param serviceId
-     * @param usageType
-     * @param crmNo
-     * @param status
-     * @param deliverUserId
-     * @param crmStartTime
-     * @param crmEndTime
-     * @param serialNo
-     * @param supplierId
-     * @param receiveStartTime
-     * @param receiveEndTime
-     * @param createId
-     * @return
+     * @param iPage            iPage
+     * @param serviceId        serviceId
+     * @param usageType        usageType
+     * @param crmNo            crmNo
+     * @param status           status
+     * @param deliverUserId    deliverUserId
+     * @param deliverStartTime deliverStartTime
+     * @param deliverEndTime   deliverEndTime
+     * @param serialNo         serialNo
+     * @param supplierId       supplierId
+     * @param receiveStartTime receiveStartTime
+     * @param receiveEndTime   receiveEndTime
+     * @return 查询结果
      */
-    IPage<TBDeviceDeliveryResult> list(IPage<Map> iPage, @Param("serviceId") Long serviceId, @Param("usageType") String usageType, @Param("crmNo") String crmNo, @Param("status") String status, @Param("deliverUserId") Long deliverUserId, @Param("crmStartTime") Long crmStartTime, @Param("crmEndTime") Long crmEndTime, @Param("serialNo") String serialNo, @Param("supplierId") Long supplierId, @Param("receiveStartTime") Long receiveStartTime, @Param("receiveEndTime") Long receiveEndTime, @Param("createId") Long createId);
+    IPage<TBDeviceDeliveryResult> page(IPage<Map> iPage,
+                                       @Param("serviceId") Long serviceId,
+                                       @Param("usageType") DeviceUsageTypeEnum usageType,
+                                       @Param("crmNo") String crmNo,
+                                       @Param("status") DeviceDeliveryStatusEnum status,
+                                       @Param("deliverUserId") Long deliverUserId,
+                                       @Param("deliverStartTime") Long deliverStartTime,
+                                       @Param("deliverEndTime") Long deliverEndTime,
+                                       @Param("serialNo") String serialNo,
+                                       @Param("supplierId") Long supplierId,
+                                       @Param("receiveStartTime") Long receiveStartTime,
+                                       @Param("receiveEndTime") Long receiveEndTime);
+
+    /**
+     * 设备发货列表查询
+     *
+     * @param serviceId        serviceId
+     * @param usageType        usageType
+     * @param crmNo            crmNo
+     * @param status           status
+     * @param deliverUserId    deliverUserId
+     * @param deliverStartTime deliverStartTime
+     * @param deliverEndTime   deliverEndTime
+     * @param serialNo         serialNo
+     * @param supplierId       supplierId
+     * @param receiveStartTime receiveStartTime
+     * @param receiveEndTime   receiveEndTime
+     * @return 查询结果
+     */
+    List<TBDeviceDeliveryResult> list(@Param("serviceId") Long serviceId,
+                                      @Param("usageType") DeviceUsageTypeEnum usageType,
+                                      @Param("crmNo") String crmNo,
+                                      @Param("status") DeviceDeliveryStatusEnum status,
+                                      @Param("deliverUserId") Long deliverUserId,
+                                      @Param("deliverStartTime") Long deliverStartTime,
+                                      @Param("deliverEndTime") Long deliverEndTime,
+                                      @Param("serialNo") String serialNo,
+                                      @Param("supplierId") Long supplierId,
+                                      @Param("receiveStartTime") Long receiveStartTime,
+                                      @Param("receiveEndTime") Long receiveEndTime);
 }

+ 34 - 14
sop-business/src/main/java/com/qmth/sop/business/service/TBDeviceDeliveryService.java

@@ -10,6 +10,7 @@ import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -36,22 +37,41 @@ public interface TBDeviceDeliveryService extends IService<TBDeviceDelivery> {
      */
     void editDeviceDelivery(DeviceDeliveryParam deviceDeliveryParam);
 
+
+    /**
+     * 设备发货管理查询
+     *
+     * @param iPage             分页参数
+     * @param serviceId         服务单元id
+     * @param usageType         用途类型
+     * @param crmNo             项目单号
+     * @param status            发货状态
+     * @param deliverUserId     发货人
+     * @param deliveryStartTime 发货开始时间
+     * @param deliveryEndTime   发货结束时间
+     * @param serialNo          设备序列号
+     * @param supplierId        供应商
+     * @param receiveStartTime  验收开始时间
+     * @param receiveEndTime    验收结束时间
+     * @return 分页结果
+     */
+    IPage<TBDeviceDeliveryResult> page(IPage<Map> iPage, Long serviceId, DeviceUsageTypeEnum usageType, String crmNo, DeviceDeliveryStatusEnum status, Long deliverUserId, Long deliveryStartTime, Long deliveryEndTime, String serialNo, Long supplierId, Long receiveStartTime, Long receiveEndTime) throws Exception;
+
     /**
      * 设备发货管理列表
      *
-     * @param iPage
-     * @param serviceId
-     * @param usageType
-     * @param crmNo
-     * @param status
-     * @param deliverUserId
-     * @param crmStartTime
-     * @param crmEndTime
-     * @param serialNo
-     * @param supplierId
-     * @param receiveStartTime
-     * @param receiveEndTime
-     * @return
+     * @param serviceId         服务单元id
+     * @param usageType         用途类型
+     * @param crmNo             项目单号
+     * @param status            发货状态
+     * @param deliverUserId     发货人
+     * @param deliveryStartTime 发货开始时间
+     * @param deliveryEndTime   发货结束时间
+     * @param serialNo          设备序列号
+     * @param supplierId        供应商
+     * @param receiveStartTime  验收开始时间
+     * @param receiveEndTime    验收结束时间
+     * @return 分页结果
      */
-    IPage<TBDeviceDeliveryResult> list(IPage<Map> iPage, Long serviceId, DeviceUsageTypeEnum usageType, String crmNo, DeviceDeliveryStatusEnum status, Long deliverUserId, Long crmStartTime, Long crmEndTime, String serialNo, Long supplierId, Long receiveStartTime, Long receiveEndTime);
+    List<TBDeviceDeliveryResult> list(Long serviceId, DeviceUsageTypeEnum usageType, String crmNo, DeviceDeliveryStatusEnum status, Long deliverUserId, Long deliveryStartTime, Long deliveryEndTime, String serialNo, Long supplierId, Long receiveStartTime, Long receiveEndTime) throws Exception;
 }

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

@@ -570,6 +570,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         dto.setHasCustom(roleTypeList.contains(RoleTypeEnum.CUSTOM));
         dto.setHasAccountManager(roleTypeList.contains(RoleTypeEnum.ACCOUNT_MANAGER));
         dto.setHasThirdPmo(roleTypeList.contains(RoleTypeEnum.THIRD_PMO));
+        dto.setHasDeviceDelivery(roleTypeList.contains(RoleTypeEnum.DEVICE_DELIVERY));
         return dto;
     }
 

+ 81 - 23
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDeviceDeliveryServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.sop.business.bean.dto.DataPermissionDto;
 import com.qmth.sop.business.bean.dto.DeviceDeliveryImportDto;
 import com.qmth.sop.business.bean.dto.DeviceInfoDto;
 import com.qmth.sop.business.bean.params.DeviceDeliveryParam;
@@ -14,15 +15,13 @@ import com.qmth.sop.business.entity.SysSupplier;
 import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBDeviceDelivery;
 import com.qmth.sop.business.mapper.TBDeviceDeliveryMapper;
-import com.qmth.sop.business.service.SysDeviceModelService;
-import com.qmth.sop.business.service.SysDeviceService;
-import com.qmth.sop.business.service.SysSupplierService;
-import com.qmth.sop.business.service.TBDeviceDeliveryService;
+import com.qmth.sop.business.service.*;
 import com.qmth.sop.business.util.excel.BasicExcelListener;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.*;
 import com.qmth.sop.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
@@ -51,6 +50,10 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
     private SysDeviceModelService sysDeviceModelService;
     @Resource
     private SysSupplierService sysSupplierService;
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
+    private BasicAttachmentService basicAttachmentService;
 
     @Transactional
     @Override
@@ -170,7 +173,6 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
         String consignee = deviceDeliveryParam.getConsignee();
         String consigneePhone = deviceDeliveryParam.getConsigneePhone();
         String expressNo = deviceDeliveryParam.getExpressNo();
-
         this.update(new UpdateWrapper<TBDeviceDelivery>().lambda()
                 .eq(TBDeviceDelivery::getId, id)
                 .set(TBDeviceDelivery::getMailingAddress, mailingAddress)
@@ -179,26 +181,82 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
                 .set(TBDeviceDelivery::getExpressNo, expressNo));
     }
 
+    @Override
+    public IPage<TBDeviceDeliveryResult> page(IPage<Map> iPage, Long serviceId, DeviceUsageTypeEnum usageType, String crmNo, DeviceDeliveryStatusEnum status, Long deliverUserId, Long deliveryStartTime, Long deliveryEndTime, String serialNo, Long supplierId, Long receiveStartTime, Long receiveEndTime) throws Exception {
+        if (crmNo != null && crmNo.length() > 0) {
+            crmNo = SystemConstant.translateSpecificSign(crmNo);
+        }
+        if (serialNo != null && serialNo.length() > 0) {
+            serialNo = SystemConstant.translateSpecificSign(serialNo);
+        }
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        if (dpr.getHasDeviceDelivery()) {
+            // 是设备管理员
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception("请先在用户管理中绑定设备发货员对应的供应商");
+            }
+            supplierId = userSupplierId;
+        }
+        IPage<TBDeviceDeliveryResult> page = this.baseMapper.page(iPage, serviceId, usageType, crmNo, status, deliverUserId, deliveryStartTime, deliveryEndTime, serialNo, supplierId, receiveStartTime, receiveEndTime);
+        for (TBDeviceDeliveryResult e : page.getRecords()) {
+            this.fillResultInfo(e);
+        }
+        return page;
+    }
+
+
+    @Override
+    public List<TBDeviceDeliveryResult> list(Long serviceId, DeviceUsageTypeEnum usageType, String crmNo, DeviceDeliveryStatusEnum status, Long deliverUserId, Long deliveryStartTime, Long deliveryEndTime, String serialNo, Long supplierId, Long receiveStartTime, Long receiveEndTime) throws Exception {
+        if (crmNo != null && crmNo.length() > 0) {
+            crmNo = SystemConstant.translateSpecificSign(crmNo);
+        }
+        if (serialNo != null && serialNo.length() > 0) {
+            serialNo = SystemConstant.translateSpecificSign(serialNo);
+        }
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        if (dpr.getHasDeviceDelivery()) {
+            // 是设备管理员
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception("请先在用户管理中绑定设备发货员对应的供应商");
+            }
+            supplierId = userSupplierId;
+        }
+        List<TBDeviceDeliveryResult> result = this.baseMapper.list(serviceId, usageType, crmNo, status, deliverUserId, deliveryStartTime, deliveryEndTime, serialNo, supplierId, receiveStartTime, receiveEndTime);
+        for (TBDeviceDeliveryResult e : result) {
+            this.fillResultInfo(e);
+        }
+        return result;
+    }
+
     /**
-     * 设备发货管理列表
+     * 补充结果信息
      *
-     * @param iPage
-     * @param serviceId
-     * @param usageType
-     * @param crmNo
-     * @param status
-     * @param deliverUserId
-     * @param crmStartTime
-     * @param crmEndTime
-     * @param serialNo
-     * @param supplierId
-     * @param receiveStartTime
-     * @param receiveEndTime
-     * @return
+     * @param e 发货结果对象
+     * @throws Exception 异常
      */
-    @Override
-    public IPage<TBDeviceDeliveryResult> list(IPage<Map> iPage, Long serviceId, DeviceUsageTypeEnum usageType, String crmNo, DeviceDeliveryStatusEnum status, Long deliverUserId, Long crmStartTime, Long crmEndTime, String serialNo, Long supplierId, Long receiveStartTime, Long receiveEndTime) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return this.baseMapper.list(iPage, serviceId, Objects.nonNull(usageType) ? usageType.name() : null, crmNo, Objects.nonNull(status) ? status.name() : null, deliverUserId, crmStartTime, crmEndTime, serialNo, supplierId, receiveStartTime, receiveEndTime, sysUser.getId());
+    private void fillResultInfo(TBDeviceDeliveryResult e) throws Exception {
+        DeviceUsageTypeEnum dbUsageType = e.getUsageType();
+        e.setUsageTypeStr(Objects.nonNull(dbUsageType) ? dbUsageType.getTitle() : "");
+
+        InOutTypeEnum dbDeliveryType = e.getDeliveryType();
+        e.setDeliveryTypeStr(Objects.nonNull(dbDeliveryType) ? dbDeliveryType.getTitle() : "");
+
+        DeviceDeliveryStatusEnum dbStatus = e.getStatus();
+        e.setStatusStr(Objects.nonNull(dbStatus) ? dbStatus.getTitle() : "");
+
+        Long dbDeliveryTime = e.getDeliverTime();
+        e.setDeliverTimeStr(dbDeliveryTime != null && dbDeliveryTime > 0 ? DateFormatUtils.format(dbDeliveryTime, SystemConstant.DEFAULT_DATE_PATTERN) : "--");
+
+        Long dbReceiveTime = e.getReceiveTime();
+        e.setReceiveTimeStr(dbReceiveTime != null && dbReceiveTime > 0 ? DateFormatUtils.format(dbReceiveTime, SystemConstant.DEFAULT_DATE_PATTERN) : "--");
+
+        String path = e.getExpressPhotoPath();
+        if (path != null && path.length() > 0) {
+            e.setExpressPhotoPath(basicAttachmentService.filePreviewPath(path));
+        }
     }
 }

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

@@ -2,72 +2,144 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.sop.business.mapper.TBDeviceDeliveryMapper">
 
+    <select id="page" resultType="com.qmth.sop.business.bean.result.TBDeviceDeliveryResult">
+        SELECT
+            tbdd.id,
+            tbs.name AS serviceName,
+            tbdd.crm_no AS crmNo,
+            tbdd.usage_type AS usageType,
+            tbdd.delivery_type AS deliveryType,
+            ss.name AS supplierName,
+            sd.device_code AS deviceNo,
+            sd.serial_no AS serialNo,
+            sd.brand,
+            sd.model,
+            tbdd.mailing_address AS mailingAddress,
+            tbdd.consignee,
+            tbdd.consignee_phone AS consigneePhone,
+            tbdd.express_no AS expressNo,
+            tbdd.express_photo_path AS expressPhotoPath,
+            tbdd.status,
+            tbdd.deliver_time AS deliverTime,
+            su.real_name AS deliverUserName,
+            tbdd.receive_time AS receiveTime
+        FROM
+            t_b_device_delivery tbdd
+        LEFT JOIN
+            t_b_crm tbc ON tbc.crm_no = tbdd.crm_no
+        LEFT JOIN
+            t_b_service tbs ON tbc.service_id = tbs.id
+        LEFT JOIN
+            sys_supplier ss ON ss.id = tbdd.supplier_id
+        LEFT JOIN
+            sys_device sd ON sd.serial_no = tbdd.serial_no
+        LEFT JOIN
+            sys_user su ON su.id = tbdd.deliver_user_id
+        <where>
+            AND tbdd.enable = 1
+            <if test="serviceId != null and serviceId != ''">
+                AND tbdd.service_id = #{serviceId}
+            </if>
+            <if test="usageType != null and usageType != ''">
+                AND tbdd.usage_type = #{usageType}
+            </if>
+            <if test="crmNo != null and crmNo != ''">
+                AND tbdd.crm_no = #{crmNo}
+            </if>
+            <if test="status != null and status != ''">
+                AND tbdd.status = #{status}
+            </if>
+            <if test="deliverUserId != null">
+                AND tbdd.deliver_user_id = #{deliverUserId}
+            </if>
+            <if test="deliverStartTime != null">
+                AND tbdd.deliver_time <![CDATA[ >= ]]> #{deliverStartTime}
+            </if>
+            <if test="deliverEndTime != null">
+                AND tbdd.deliver_time <![CDATA[ <= ]]> #{deliverEndTime}
+            </if>
+            <if test="serialNo != null and serialNo != ''">
+                AND tbdd.serial_no = #{serialNo}
+            </if>
+            <if test="supplierId != null">
+                AND tbdd.supplier_id = #{supplierId}
+            </if>
+            <if test="receiveStartTime != null and receiveStartTime != ''">
+                AND tbdd.receive_time <![CDATA[ >= ]]> #{receiveStartTime}
+            </if>
+            <if test="receiveEndTime != null and receiveEndTime != ''">
+                AND tbdd.receive_time <![CDATA[ <= ]]> #{receiveEndTime}
+            </if>
+        </where>
+    </select>
     <select id="list" resultType="com.qmth.sop.business.bean.result.TBDeviceDeliveryResult">
-        select
+        SELECT
             tbdd.id,
-            tbs.name as serviceName,
-            tbdd.crm_no as crmNo,
-            tbdd.usage_type as usageType,
-            tbdd.delivery_type as deliveryType,
-            ss.name as supplierName,
-            sd.device_code as deviceCode,
-            sd.serial_no as serialNo,
-            sdb.brand,
-            sdm.model,
-            tbdd.mailing_address as mailingAddress,
+            tbs.name AS serviceName,
+            tbdd.crm_no AS crmNo,
+            tbdd.usage_type AS usageType,
+            tbdd.delivery_type AS deliveryType,
+            ss.name AS supplierName,
+            sd.device_code AS deviceNo,
+            sd.serial_no AS serialNo,
+            sd.brand,
+            sd.model,
+            tbdd.mailing_address AS mailingAddress,
             tbdd.consignee,
-            tbdd.consignee_phone as consigneePhone,
-            tbdd.express_no as expressNo,
-            tbdd.express_photo_path as expressPhotoPath,
+            tbdd.consignee_phone AS consigneePhone,
+            tbdd.express_no AS expressNo,
+            tbdd.express_photo_path AS expressPhotoPath,
             tbdd.status,
-            tbdd.deliver_time as deliverTime,
-            su.real_name as realName,
-            tbdd.receive_time
-        from
+            tbdd.deliver_time AS deliverTime,
+            su.real_name AS deliverUserName,
+            tbdd.receive_time AS receiveTime
+        FROM
             t_b_device_delivery tbdd
-                left join t_b_service tbs on tbdd.service_id = tbs.id
-                left join t_b_crm tbc on tbc.crm_no = tbdd.crm_no
-                left join sys_supplier ss on ss.id = tbdd.supplier_id
-                left join sys_device sd on sd.serial_no = tbdd.serial_no
-                left join sys_device_brand sdb on sdb.brand = sd.brand
-                left join sys_device_model sdm on sdm.brand_id = sdb.id
-                left join sys_user su on su.id = tbdd.deliver_user_id
-        <where> 1 = 1
+                LEFT JOIN
+            t_b_crm tbc ON tbc.crm_no = tbdd.crm_no
+                LEFT JOIN
+            t_b_service tbs ON tbc.service_id = tbs.id
+                LEFT JOIN
+            sys_supplier ss ON ss.id = tbdd.supplier_id
+                LEFT JOIN
+            sys_device sd ON sd.serial_no = tbdd.serial_no
+                LEFT JOIN
+            sys_user su ON su.id = tbdd.deliver_user_id
+        <where>
+            AND tbdd.enable = 1
             <if test="serviceId != null and serviceId != ''">
-                tbdd.service_id = #{serviceId}
+                AND tbdd.service_id = #{serviceId}
             </if>
             <if test="usageType != null and usageType != ''">
-                tbdd.usage_type = #{usageType}
+                AND tbdd.usage_type = #{usageType}
             </if>
             <if test="crmNo != null and crmNo != ''">
-                tbdd.crm_no = #{crmNo}
+                AND tbdd.crm_no = #{crmNo}
             </if>
             <if test="status != null and status != ''">
-                tbdd.status = #{status}
+                AND tbdd.status = #{status}
             </if>
-            <if test="deliverUserId != null and deliverUserId != ''">
-                tbdd.deliver_user_id = #{deliverUserId}
+            <if test="deliverUserId != null">
+                AND tbdd.deliver_user_id = #{deliverUserId}
             </if>
-            <if test="crmStartTime != null and crmStartTime != ''">
-                tbc.begin_time <![CDATA[ >= ]]> #{crmStartTime}
+            <if test="deliverStartTime != null">
+                AND tbdd.deliver_time <![CDATA[ >= ]]> #{deliverStartTime}
             </if>
-            <if test="crmEndTime != null and crmEndTime != ''">
-                tbc.begin_time <![CDATA[ <= ]]> #{crmEndTime}
+            <if test="deliverEndTime != null">
+                AND tbdd.deliver_time <![CDATA[ <= ]]> #{deliverEndTime}
             </if>
             <if test="serialNo != null and serialNo != ''">
-                tbdd.serial_no = #{serialNo}
+                AND tbdd.serial_no = #{serialNo}
             </if>
-            <if test="supplierId != null and supplierId != ''">
-                tbdd.supplier_id = #{supplierId}
+            <if test="supplierId != null">
+                AND tbdd.supplier_id = #{supplierId}
             </if>
             <if test="receiveStartTime != null and receiveStartTime != ''">
-                tbc.receive_time <![CDATA[ >= ]]> #{receiveStartTime}
+                AND tbdd.receive_time <![CDATA[ >= ]]> #{receiveStartTime}
             </if>
             <if test="receiveEndTime != null and receiveEndTime != ''">
-                tbc.receive_time <![CDATA[ <= ]]> #{receiveEndTime}
+                AND tbdd.receive_time <![CDATA[ <= ]]> #{receiveEndTime}
             </if>
-            and tbdd.enable = 1
-            and tbdd.create_id = #{createId}
         </where>
     </select>
 </mapper>