Эх сурвалжийг харах

Merge remote-tracking branch 'origin/dev_1.1.0' into dev_1.1.0

wangliang 1 жил өмнө
parent
commit
7f10d30a63

+ 11 - 1
sop-api/src/main/java/com/qmth/sop/server/api/DeviceDeliveryManageController.java

@@ -4,6 +4,8 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.sop.business.bean.params.DevicePlaceParam;
 import com.qmth.sop.business.bean.result.DevicePlaceResult;
 import com.qmth.sop.business.bean.result.DeviceSignResult;
+import com.qmth.sop.business.entity.SysUser;
+import com.qmth.sop.business.service.TBDeviceDeliveryService;
 import com.qmth.sop.common.annotation.OperationLog;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.DeviceStatusEnum;
@@ -11,9 +13,11 @@ import com.qmth.sop.common.enums.LogTypeEnum;
 import com.qmth.sop.common.enums.TransferModeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 
 @Api(tags = "设备管理Controller")
@@ -21,12 +25,14 @@ import javax.validation.Valid;
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DEVICE_MANAGE)
 public class DeviceDeliveryManageController {
 
+    @Resource
+    TBDeviceDeliveryService tbDeviceDeliveryService;
 
     @ApiOperation(value = "设备签收登记列表查询")
     @RequestMapping(value = "/sign/list", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "返回信息", response = DeviceSignResult.class) })
     public Result signList(@ApiParam(value = "派单号") @RequestParam String crmNo) {
-        return ResultUtil.ok();
+        return ResultUtil.ok(tbDeviceDeliveryService.signList(crmNo));
     }
 
     @ApiOperation(value="设备签收")
@@ -34,6 +40,8 @@ public class DeviceDeliveryManageController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
     @OperationLog(logType = LogTypeEnum.UPDATE)
     public Result sign(@ApiParam(value = "设备发货id", required = true) @RequestParam String id) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        tbDeviceDeliveryService.sign(id ,requestUser.getId());
         return ResultUtil.ok();
     }
 
@@ -42,6 +50,8 @@ public class DeviceDeliveryManageController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
     @OperationLog(logType = LogTypeEnum.UPDATE)
     public Result unsigned(@ApiParam(value = "设备发货id", required = true) @RequestParam String id) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        tbDeviceDeliveryService.unsigned(id, requestUser.getId());
         return ResultUtil.ok();
     }
 

+ 3 - 2
sop-api/src/main/java/com/qmth/sop/server/api/TBCrmController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.sop.business.bean.params.TBCrmParam;
 import com.qmth.sop.business.bean.result.DingElementResult;
 import com.qmth.sop.business.bean.result.ServiceRegionDetailResult;
 import com.qmth.sop.business.bean.result.TBCrmResult;
@@ -73,11 +74,11 @@ public class TBCrmController {
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
     @OperationLog(logType = LogTypeEnum.EDIT)
-    public Result save(@Valid @ApiParam(value = "派单信息表信息", required = true) @RequestBody(required = true) TBCrm tBCrm, BindingResult bindingResult) throws InterruptedException {
+    public Result save(@Valid @ApiParam(value = "派单信息表信息", required = true) @RequestBody TBCrmParam tbCrmParam, BindingResult bindingResult) throws InterruptedException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
-        return ResultUtil.ok(tBCrmService.saveTBCrm(tBCrm));
+        return ResultUtil.ok(tBCrmService.saveTBCrm(tbCrmParam));
     }
 
 

+ 134 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/params/TBCrmParam.java

@@ -0,0 +1,134 @@
+package com.qmth.sop.business.bean.params;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.sop.common.annotation.EditKey;
+import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Range;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 派单参数
+ * @Author: CaoZixuan
+ * @Date: 2024-05-16
+ */
+public class TBCrmParam {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "派单id")
+    @EditKey
+    private Long id;
+
+    @ApiModelProperty(value = "项目名称")
+    @NotNull(message = "缺少项目名称")
+    @NotBlank(message = "缺少项目名称")
+    private String crmName;
+
+    @ApiModelProperty(value = "项目单号")
+    @NotNull(message = "缺少项目单号")
+    @NotBlank(message = "缺少项目单号")
+    private String crmNo;
+
+    @ApiModelProperty(value = "派单时间")
+    @NotNull(message = "派单时间不能为空")
+    @Range(min = 1L, message = "请提供派单时间")
+    private Long beginTime;
+
+    @ApiModelProperty(value = "客户经理id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "客户经理不能为空")
+    @Range(min = 1L, message = "请提供客户经理")
+    private Long crmUserId;
+
+    @ApiModelProperty(value = "客户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "客户不能为空")
+    @Range(min = 1L, message = "请提供客户")
+    private Long customId;
+
+    @ApiModelProperty(value = "考试开始时间")
+    private Long examStartTime;
+
+    @ApiModelProperty(value = "考试结束时间")
+    private Long examEndTime;
+
+    @ApiModelProperty(value = "产品id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "产品不能为空")
+    @Range(min = 1L, message = "请提供产品")
+    private Long productId;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCrmName() {
+        return crmName;
+    }
+
+    public void setCrmName(String crmName) {
+        this.crmName = crmName;
+    }
+
+    public String getCrmNo() {
+        return crmNo;
+    }
+
+    public void setCrmNo(String crmNo) {
+        this.crmNo = crmNo;
+    }
+
+    public Long getBeginTime() {
+        return beginTime;
+    }
+
+    public void setBeginTime(Long beginTime) {
+        this.beginTime = beginTime;
+    }
+
+    public Long getCrmUserId() {
+        return crmUserId;
+    }
+
+    public void setCrmUserId(Long crmUserId) {
+        this.crmUserId = crmUserId;
+    }
+
+    public Long getCustomId() {
+        return customId;
+    }
+
+    public void setCustomId(Long customId) {
+        this.customId = customId;
+    }
+
+    public Long getExamStartTime() {
+        return examStartTime;
+    }
+
+    public void setExamStartTime(Long examStartTime) {
+        this.examStartTime = examStartTime;
+    }
+
+    public Long getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(Long examEndTime) {
+        this.examEndTime = examEndTime;
+    }
+
+    public Long getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Long productId) {
+        this.productId = productId;
+    }
+}

+ 5 - 5
sop-business/src/main/java/com/qmth/sop/business/bean/result/DeviceSignResult.java

@@ -15,7 +15,7 @@ public class DeviceSignResult implements Serializable {
     private Long id;
 
     @ApiModelProperty("派单号")
-    private String cmrNo;
+    private String crmNo;
 
     @ApiModelProperty("设备序列号")
     private String serialNo;
@@ -43,12 +43,12 @@ public class DeviceSignResult implements Serializable {
         this.id = id;
     }
 
-    public String getCmrNo() {
-        return cmrNo;
+    public String getCrmNo() {
+        return crmNo;
     }
 
-    public void setCmrNo(String cmrNo) {
-        this.cmrNo = cmrNo;
+    public void setCrmNo(String crmNo) {
+        this.crmNo = crmNo;
     }
 
     public String getSerialNo() {

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/entity/TBCrm.java

@@ -54,7 +54,7 @@ public class TBCrm extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "考试开始时间")
     private Long examStartTime;
 
-    @ApiModelProperty(value = "考试结束时间")
+    @ApiModelProperty(value = "考试开始时间")
     private Long examEndTime;
 
     @ApiModelProperty(value = "产品id")

+ 10 - 0
sop-business/src/main/java/com/qmth/sop/business/mapper/TBDeviceDeliveryMapper.java

@@ -2,6 +2,7 @@ package com.qmth.sop.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.sop.business.bean.result.DeviceSignResult;
 import com.qmth.sop.business.bean.result.TBDeviceDeliveryResult;
 import com.qmth.sop.business.entity.TBDeviceDelivery;
 import com.qmth.sop.common.enums.DeviceDeliveryStatusEnum;
@@ -82,4 +83,13 @@ public interface TBDeviceDeliveryMapper extends BaseMapper<TBDeviceDelivery> {
             @Param("receiveEndTime") Long receiveEndTime, @Param("consignee") String consignee, @Param("mailingAddress") String mailingAddress,
             @Param("deliveryType") InOutTypeEnum deliveryType, @Param("brand") String brand, @Param("model") String model,
             @Param("expressNo") String expressNo);
+
+    /**
+     * 设备签收列表
+     *
+     * @param crmNo     派单号
+     * @param statusList  设备状态
+     * @return 查询结果
+     */
+    List<DeviceSignResult> listDeviceSign(@Param("crmNo") String crmNo, @Param("statusList") List<DeviceDeliveryStatusEnum> statusList);
 }

+ 3 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBCrmService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.bean.dto.SopCrmInfo;
 import com.qmth.sop.business.bean.params.ServiceScopeParam;
+import com.qmth.sop.business.bean.params.TBCrmParam;
 import com.qmth.sop.business.bean.result.CrmProjectResult;
 import com.qmth.sop.business.bean.result.CrmServiceResult;
 import com.qmth.sop.business.bean.result.CrmSubTotalResult;
@@ -114,6 +115,8 @@ public interface TBCrmService extends IService<TBCrm> {
      */
     Boolean saveTBCrm(TBCrm tBCrm);
 
+    Long saveTBCrm(TBCrmParam tbCrmParam);
+
     /**
      * 删除派单信息表
      *

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 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.DeviceSignResult;
 import com.qmth.sop.business.bean.result.FlowTaskResult;
 import com.qmth.sop.business.bean.result.TBDeviceDeliveryResult;
 import com.qmth.sop.business.entity.SysUser;
@@ -190,4 +191,22 @@ public interface TBDeviceDeliveryService extends IService<TBDeviceDelivery> {
      * @return 设备返还表单
      */
     List<DeviceInOutForm> findDeviceReturnList(List<Long> deviceDeliveryIdList);
+
+    /**
+     * @param crmNo 派单号
+     * @return 设备签收登记列表
+     */
+    List<DeviceSignResult> signList(String crmNo);
+
+    /**
+     * @param  id 设备出库ID
+     * @param userId 操作用户ID
+     */
+    void sign(String id, Long userId);
+
+    /**
+     * @param  id 设备出库ID
+     * @param userId 操作用户ID
+     */
+    void unsigned(String id, Long userId);
 }

+ 95 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBCrmServiceImpl.java

@@ -11,6 +11,7 @@ import com.qmth.sop.business.bean.dto.RoleDto;
 import com.qmth.sop.business.bean.dto.SopCrmInfo;
 import com.qmth.sop.business.bean.dto.UserArchivesDto;
 import com.qmth.sop.business.bean.params.ServiceScopeParam;
+import com.qmth.sop.business.bean.params.TBCrmParam;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.*;
 import com.qmth.sop.business.mapper.TBCrmMapper;
@@ -84,6 +85,9 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
     @Resource
     private SysMessageService sysMessageService;
 
+    @Resource
+    private SysUserRoleService sysUserRoleService;
+
     @Override
     public IPage<CrmServiceResult> findServiceScopePage(Long serviceUnitId, String city, ProductTypeEnum productType,
             String customName, Boolean bindStatus, Integer pageNumber, Integer pageSize) {
@@ -264,6 +268,97 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
         return null;
     }
 
+    @Transactional
+    @Override
+    public Long saveTBCrm(TBCrmParam tbCrmParam) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        try {
+            Long id = tbCrmParam.getId();
+            String crmName = tbCrmParam.getCrmName();
+            String crmNo = tbCrmParam.getCrmNo();
+            Long beginTime = tbCrmParam.getBeginTime();
+            Long crmUserId = tbCrmParam.getCrmUserId();
+            Long customId = tbCrmParam.getCustomId();
+            Long examStartTime = tbCrmParam.getExamStartTime();
+            Long examEndTime = tbCrmParam.getExamEndTime();
+            Long productId = tbCrmParam.getProductId();
+
+            if (examStartTime > 0 && examEndTime > 0 && examEndTime < examStartTime) {
+                throw ExceptionResultEnum.ERROR.exception("考试结束时间不能小于考试开始时间");
+            }
+            TBCrm checkCrmNo = this.getOne(
+                    new QueryWrapper<TBCrm>().lambda().eq(TBCrm::getCrmNo, crmNo).last(SystemConstant.LIMIT1));
+            if (Objects.nonNull(checkCrmNo) && !Objects.equals(checkCrmNo.getId(), id)) {
+                throw ExceptionResultEnum.ERROR.exception("派单号不能重复");
+            }
+            if (!sysUserRoleService.userContainsRoles(crmUserId, RoleTypeEnum.ACCOUNT_MANAGER)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到客户经理信息");
+            }
+            if (Objects.isNull(sysCustomService.getById(customId))) {
+                throw ExceptionResultEnum.ERROR.exception("未找到客户信息");
+            }
+            if (Objects.isNull(tbProductService.getById(productId))) {
+                throw ExceptionResultEnum.ERROR.exception("未找到产品信息");
+            }
+
+            if (Objects.isNull(id)) {
+                // id不存在新增
+                TBCrm tbCrm = new TBCrm();
+                tbCrm.setName(crmName);
+                tbCrm.setCrmNo(crmNo);
+                tbCrm.setBeginTime(beginTime);
+                tbCrm.setCrmUserId(crmUserId);
+                tbCrm.setCustomId(customId);
+                if (examStartTime > 0) {
+                    tbCrm.setExamStartTime(examStartTime);
+                }
+                if (examEndTime > 0) {
+                    tbCrm.setExamEndTime(examEndTime);
+                }
+                tbCrm.setProductId(productId);
+
+                tbCrm.setSync(false);
+                tbCrm.setEnable(true);
+                tbCrm.setStatus(CrmStatusEnum.UN_PUBLISH);
+                tbCrm.insertInfo(sysUser.getId());
+                this.save(tbCrm);
+                id = tbCrm.getId();
+            } else {
+                // id存在更新
+                TBCrm dbTBCrm = this.getById(id);
+                if (Objects.isNull(dbTBCrm)) {
+                    throw ExceptionResultEnum.ERROR.exception("未找到派单信息");
+                }
+                dbTBCrm.setName(crmName);
+                dbTBCrm.setCrmNo(crmNo);
+                dbTBCrm.setBeginTime(beginTime);
+                dbTBCrm.setCrmUserId(crmUserId);
+                dbTBCrm.setCustomId(customId);
+                if (examStartTime > 0) {
+                    dbTBCrm.setExamStartTime(examStartTime);
+                }
+                if (examEndTime > 0) {
+                    dbTBCrm.setExamEndTime(examEndTime);
+                }
+                dbTBCrm.setProductId(productId);
+                dbTBCrm.updateInfo(sysUser.getId());
+                this.updateById(dbTBCrm);
+            }
+            return id;
+        } catch (Exception e) {
+            if (e instanceof DuplicateKeyException) {
+                String errorColumn = e.getCause().toString();
+                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3).replaceAll("'", "");
+                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+            } else if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, ((ApiException) e).getCode(), e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+            return null;
+        }
+    }
+
     /**
      * 删除派单信息表
      *

+ 69 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDeviceDeliveryServiceImpl.java

@@ -13,6 +13,7 @@ import com.qmth.sop.business.bean.dto.DeviceInfoDto;
 import com.qmth.sop.business.bean.params.DeviceDeliveryParam;
 import com.qmth.sop.business.bean.params.DeviceInOutForm;
 import com.qmth.sop.business.bean.params.DeviceInOutSubmitParam;
+import com.qmth.sop.business.bean.result.DeviceSignResult;
 import com.qmth.sop.business.bean.result.FlowFormWidgetResult;
 import com.qmth.sop.business.bean.result.FlowTaskResult;
 import com.qmth.sop.business.bean.result.TBDeviceDeliveryResult;
@@ -26,6 +27,7 @@ import com.qmth.sop.common.util.FileUtil;
 import com.qmth.sop.common.util.GsonUtil;
 import com.qmth.sop.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -728,6 +730,73 @@ public class TBDeviceDeliveryServiceImpl extends ServiceImpl<TBDeviceDeliveryMap
         return deviceInOutFormList;
     }
 
+    @Override
+    public List<DeviceSignResult> signList(String crmNo) {
+        return baseMapper.listDeviceSign(crmNo,
+                Arrays.asList(DeviceDeliveryStatusEnum.DELIVER, DeviceDeliveryStatusEnum.USING));
+    }
+
+    @Override
+    public void sign(String id, Long userId) {
+        TBDeviceDelivery deviceDelivery = getById(id);
+        if (Objects.isNull(deviceDelivery)) {
+            throw ExceptionResultEnum.ERROR.exception(String.format("设备发货记录不存在,ID:[%s]", id));
+        }
+        if (deviceDelivery.getStatus() != null && !deviceDelivery.getStatus()
+                .equals(DeviceDeliveryStatusEnum.DELIVER)) {
+            throw ExceptionResultEnum.ERROR.exception("只能对未签收的设备做签收操作");
+        }
+        long now = System.currentTimeMillis();
+        if (deviceDelivery.getSourceId() != null) {
+            TBDeviceDelivery sourceDeviceDelivery = getById(deviceDelivery.getSourceId());
+            if (Objects.isNull(sourceDeviceDelivery)) {
+                throw ExceptionResultEnum.ERROR.exception(
+                        String.format("找不到中转设备的发货来源, 发货ID:[%s]", deviceDelivery.getSourceId()));
+            }
+            //中转设备的源记录的状态,修改为:中转已签收
+            this.update(new UpdateWrapper<TBDeviceDelivery>().lambda()
+                    .eq(TBDeviceDelivery::getId, deviceDelivery.getSourceId())
+                    .set(TBDeviceDelivery::getStatus, DeviceDeliveryStatusEnum.TRANSFER_SIGN)
+                    .set(TBDeviceDelivery::getReceiveUserId, userId).set(TBDeviceDelivery::getReceiveTime, now)
+                    .set(TBDeviceDelivery::getEffect, Boolean.FALSE).set(TBDeviceDelivery::getUpdateId, userId)
+                    .set(TBDeviceDelivery::getUpdateTime, now));
+        }
+        //更新设备状态为使用中
+        this.update(new UpdateWrapper<TBDeviceDelivery>().lambda().eq(TBDeviceDelivery::getId, id)
+                .set(TBDeviceDelivery::getStatus, DeviceDeliveryStatusEnum.USING)
+                .set(TBDeviceDelivery::getReceiveUserId, userId).set(TBDeviceDelivery::getReceiveTime, now)
+                .set(TBDeviceDelivery::getUpdateId, userId).set(TBDeviceDelivery::getUpdateTime, now));
+    }
+
+    @Override
+    public void unsigned(String id, Long userId) {
+        TBDeviceDelivery deviceDelivery = getById(id);
+        if (Objects.isNull(deviceDelivery)) {
+            throw ExceptionResultEnum.ERROR.exception(String.format("设备发货记录不存在,ID:[%s]", id));
+        }
+        if (deviceDelivery.getStatus() != null && !deviceDelivery.getStatus().equals(DeviceDeliveryStatusEnum.USING)) {
+            throw ExceptionResultEnum.ERROR.exception("只能对使用中的设备做未签收操作");
+        }
+        long now = System.currentTimeMillis();
+        if (deviceDelivery.getSourceId() != null) {
+            TBDeviceDelivery sourceDeviceDelivery = getById(deviceDelivery.getSourceId());
+            if (Objects.isNull(sourceDeviceDelivery)) {
+                throw ExceptionResultEnum.ERROR.exception(
+                        String.format("找不到中转设备的发货来源, 发货ID:[%s]", deviceDelivery.getSourceId()));
+            }
+            this.update(new UpdateWrapper<TBDeviceDelivery>().lambda()
+                    .eq(TBDeviceDelivery::getId, deviceDelivery.getSourceId())
+                    .set(TBDeviceDelivery::getStatus, DeviceDeliveryStatusEnum.TRANSFER)
+                    .set(TBDeviceDelivery::getEffect, Boolean.TRUE).set(TBDeviceDelivery::getUpdateId, userId)
+                    .set(TBDeviceDelivery::getUpdateTime, now));
+        }
+
+        this.update(new UpdateWrapper<TBDeviceDelivery>().lambda().eq(TBDeviceDelivery::getId, id)
+                .set(TBDeviceDelivery::getStatus, DeviceDeliveryStatusEnum.DELIVER)
+                .set(TBDeviceDelivery::getReceiveUserId, null).set(TBDeviceDelivery::getReceiveTime, null)
+                .set(TBDeviceDelivery::getUpdateId, userId).set(TBDeviceDelivery::getUpdateTime, now));
+    }
+
     /**
      * 补充结果信息
      *

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

@@ -189,4 +189,30 @@
         </where>
         ORDER BY tbdd.update_time DESC
     </select>
+
+    <select id="listDeviceSign" resultType="com.qmth.sop.business.bean.result.DeviceSignResult">
+        SELECT
+            d.id,
+            d.crm_no crmNo,
+            d.serial_no serialNo,
+            se.model,
+            se.status deviceStatus,
+            sp.NAME supplierName,
+            d.express_no expressNo,
+            d.STATUS
+        FROM
+            t_b_device_delivery d,
+            sys_device se,
+            sys_supplier sp
+        WHERE
+            d.serial_no = se.serial_no
+          AND d.supplier_id = sp.id
+          AND d.crm_no = #{crmNo}
+          AND d.status in
+        <foreach collection="statusList" item="status" open="(" separator="," close=")">
+            #{status}
+        </foreach>
+        ORDER BY
+            d.create_time DESC
+    </select>
 </mapper>