Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev_v1.0.0' into dev_v1.0.0

wangliang 1 rok pred
rodič
commit
1d8a07c783
18 zmenil súbory, kde vykonal 227 pridanie a 124 odobranie
  1. 24 20
      sop-business/src/main/java/com/qmth/sop/business/bean/dto/DingSubmitExportDto.java
  2. 22 0
      sop-business/src/main/java/com/qmth/sop/business/bean/result/DeviceInOutResult.java
  3. 3 3
      sop-business/src/main/java/com/qmth/sop/business/bean/result/DingSubmitResult.java
  4. 11 0
      sop-business/src/main/java/com/qmth/sop/business/entity/TBDeviceInOut.java
  5. 18 8
      sop-business/src/main/java/com/qmth/sop/business/mapper/TBDeviceInOutMapper.java
  6. 8 0
      sop-business/src/main/java/com/qmth/sop/business/service/SequenceService.java
  7. 12 7
      sop-business/src/main/java/com/qmth/sop/business/service/TBDeviceInOutService.java
  8. 8 0
      sop-business/src/main/java/com/qmth/sop/business/service/impl/SequenceServiceImpl.java
  9. 20 9
      sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDeviceInOutServiceImpl.java
  10. 10 13
      sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingSubmitServiceImpl.java
  11. 1 1
      sop-business/src/main/java/com/qmth/sop/business/templete/service/impl/TaskLogicServiceImpl.java
  12. 9 1
      sop-business/src/main/resources/db/log/caozixuan_update_log.sql
  13. 32 9
      sop-business/src/main/resources/mapper/TBDeviceInOutMapper.xml
  14. 7 7
      sop-common/src/main/java/com/qmth/sop/common/enums/SequenceEnum.java
  15. 30 38
      sop-common/src/main/java/com/qmth/sop/common/util/DateDisposeUtils.java
  16. 10 6
      sop-server/src/main/java/com/qmth/sop/server/api/TBDeviceInOutController.java
  17. 1 1
      sop-server/src/main/java/com/qmth/sop/server/api/TBDingSubmitController.java
  18. 1 1
      sop-server/src/main/java/com/qmth/sop/server/api/TBUserArchivesController.java

+ 24 - 20
sop-business/src/main/java/com/qmth/sop/business/bean/dto/DingSubmitExportDto.java

@@ -1,8 +1,9 @@
 package com.qmth.sop.business.bean.dto;
 
 import com.alibaba.excel.annotation.ExcelProperty;
-import com.qmth.sop.common.enums.DingSubmitStatusEnum;
-import com.qmth.sop.common.enums.RoleTypeEnum;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.HeadFontStyle;
+import com.alibaba.excel.annotation.write.style.HeadStyle;
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -10,6 +11,9 @@ import io.swagger.annotations.ApiModelProperty;
  * @Author: CaoZixuan
  * @Date: 2023-08-29
  */
+@ColumnWidth(value = 30)
+@HeadStyle(fillForegroundColor = 11)
+@HeadFontStyle(color = 1)
 public class DingSubmitExportDto {
     @ExcelProperty(value = "服务单元")
     @ApiModelProperty(value = "服务单元")
@@ -33,11 +37,11 @@ public class DingSubmitExportDto {
 
     @ExcelProperty(value = "进场时间")
     @ApiModelProperty(value = "进场时间")
-    private Long approachTime;
+    private String approachTime;
 
     @ExcelProperty(value = "撤场时间")
     @ApiModelProperty(value = "撤场时间")
-    private Long departureTime;
+    private String departureTime;
 
     @ExcelProperty(value = "姓名(人员档案号)")
     @ApiModelProperty(value = "姓名(人员档案号)")
@@ -45,7 +49,7 @@ public class DingSubmitExportDto {
 
     @ExcelProperty(value = "项目角色")
     @ApiModelProperty(value = "项目角色")
-    private RoleTypeEnum roleType;
+    private String roleType;
 
     @ExcelProperty(value = "供应商")
     @ApiModelProperty(value = "供应商")
@@ -89,15 +93,15 @@ public class DingSubmitExportDto {
 
     @ExcelProperty(value = "提交状态")
     @ApiModelProperty(value = "提交状态")
-    private DingSubmitStatusEnum submitStatus;
+    private String submitStatus;
 
     @ExcelProperty(value = "提交人")
     @ApiModelProperty(value = "提交人")
-    private Long submitUserName;
+    private String submitUserName;
 
     @ExcelProperty(value = "提交时间")
     @ApiModelProperty(value = "提交时间")
-    private Long submitTime;
+    private String submitTime;
 
     public String getServiceUnitName() {
         return serviceUnitName;
@@ -139,19 +143,19 @@ public class DingSubmitExportDto {
         this.city = city;
     }
 
-    public Long getApproachTime() {
+    public String getApproachTime() {
         return approachTime;
     }
 
-    public void setApproachTime(Long approachTime) {
+    public void setApproachTime(String approachTime) {
         this.approachTime = approachTime;
     }
 
-    public Long getDepartureTime() {
+    public String getDepartureTime() {
         return departureTime;
     }
 
-    public void setDepartureTime(Long departureTime) {
+    public void setDepartureTime(String departureTime) {
         this.departureTime = departureTime;
     }
 
@@ -163,11 +167,11 @@ public class DingSubmitExportDto {
         this.archivesInfo = archivesInfo;
     }
 
-    public RoleTypeEnum getRoleType() {
+    public String getRoleType() {
         return roleType;
     }
 
-    public void setRoleType(RoleTypeEnum roleType) {
+    public void setRoleType(String roleType) {
         this.roleType = roleType;
     }
 
@@ -251,27 +255,27 @@ public class DingSubmitExportDto {
         this.exceptionCount = exceptionCount;
     }
 
-    public DingSubmitStatusEnum getSubmitStatus() {
+    public String getSubmitStatus() {
         return submitStatus;
     }
 
-    public void setSubmitStatus(DingSubmitStatusEnum submitStatus) {
+    public void setSubmitStatus(String submitStatus) {
         this.submitStatus = submitStatus;
     }
 
-    public Long getSubmitUserName() {
+    public String getSubmitUserName() {
         return submitUserName;
     }
 
-    public void setSubmitUserName(Long submitUserName) {
+    public void setSubmitUserName(String submitUserName) {
         this.submitUserName = submitUserName;
     }
 
-    public Long getSubmitTime() {
+    public String getSubmitTime() {
         return submitTime;
     }
 
-    public void setSubmitTime(Long submitTime) {
+    public void setSubmitTime(String submitTime) {
         this.submitTime = submitTime;
     }
 }

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

@@ -13,6 +13,9 @@ import io.swagger.annotations.ApiModelProperty;
  * @Date: 2023-08-22
  */
 public class DeviceInOutResult {
+    @ApiModelProperty("流水号")
+    private String serialNo;
+
     @ApiModelProperty("出入库记录id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long inOutId;
@@ -68,6 +71,17 @@ public class DeviceInOutResult {
     @ApiModelProperty("供应商名称")
     private String supplierName;
 
+    @ApiModelProperty("快递单照片")
+    private String basePhotoPath;
+
+    public String getSerialNo() {
+        return serialNo;
+    }
+
+    public void setSerialNo(String serialNo) {
+        this.serialNo = serialNo;
+    }
+
     public Long getInOutId() {
         return inOutId;
     }
@@ -227,4 +241,12 @@ public class DeviceInOutResult {
     public void setSupplierName(String supplierName) {
         this.supplierName = supplierName;
     }
+
+    public String getBasePhotoPath() {
+        return basePhotoPath;
+    }
+
+    public void setBasePhotoPath(String basePhotoPath) {
+        this.basePhotoPath = basePhotoPath;
+    }
 }

+ 3 - 3
sop-business/src/main/java/com/qmth/sop/business/bean/result/DingSubmitResult.java

@@ -102,7 +102,7 @@ public class DingSubmitResult {
     private Long submitUserId;
 
     @ApiModelProperty(value = "提交人")
-    private Long submitUserName;
+    private String submitUserName;
 
     @ApiModelProperty(value = "提交时间")
     private Long submitTime;
@@ -331,11 +331,11 @@ public class DingSubmitResult {
         this.submitUserId = submitUserId;
     }
 
-    public Long getSubmitUserName() {
+    public String getSubmitUserName() {
         return submitUserName;
     }
 
-    public void setSubmitUserName(Long submitUserName) {
+    public void setSubmitUserName(String submitUserName) {
         this.submitUserName = submitUserName;
     }
 

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/entity/TBDeviceInOut.java

@@ -27,6 +27,9 @@ public class TBDeviceInOut implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
+    @ApiModelProperty(value = "登记流水号")
+    private String serialNo;
+
     @ApiModelProperty(value = "服务单元id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long serviceId;
@@ -86,6 +89,14 @@ public class TBDeviceInOut implements Serializable {
         this.id = id;
     }
 
+    public String getSerialNo() {
+        return serialNo;
+    }
+
+    public void setSerialNo(String serialNo) {
+        this.serialNo = serialNo;
+    }
+
     public Long getServiceId() {
         return serviceId;
     }

+ 18 - 8
sop-business/src/main/java/com/qmth/sop/business/mapper/TBDeviceInOutMapper.java

@@ -35,6 +35,7 @@ public interface TBDeviceInOutMapper extends BaseMapper<TBDeviceInOut> {
      * @param customName     客户名称
      * @param location       当前地
      * @param address        发往地
+     * @param serialNo       登记流水号
      * @return 分页结果
      */
     IPage<DeviceInOutResult> findDeviceInOutPageBySop(@Param("iPage") Page<DeviceInOutResult> iPage,
@@ -47,29 +48,38 @@ public interface TBDeviceInOutMapper extends BaseMapper<TBDeviceInOut> {
                                                       @Param("deviceNo") String deviceNo,
                                                       @Param("customName") String customName,
                                                       @Param("location") String location,
-                                                      @Param("address") String address);
+                                                      @Param("address") String address,
+                                                      @Param("serialNo") String serialNo);
 
     /**
      * 资源保障-设备保障-出入库登记查询
      *
      * @param iPage          分页参数
      * @param serviceUnitId  服务单元id
-     * @param inOutType      出入库类型
-     * @param deviceNo       设备编号
+     * @param usageType      用途类型
+     * @param userId         登记人
+     * @param deviceStatus   运行状态
      * @param inOutTimeStart 出入库时间 - 开始
      * @param inOutTimeEnd   出入库时间 - 结束
-     * @param supplierId     供应商id
+     * @param deviceNo       设备编号
      * @param customName     客户名称
+     * @param location       当前地
+     * @param address        发往地
+     * @param serialNo       登记流水号
      * @return 分页结果
      */
     IPage<DeviceInOutResult> findDeviceInOutPageBySource(@Param("iPage") Page<DeviceInOutResult> iPage,
                                                          @Param("serviceUnitId") Long serviceUnitId,
-                                                         @Param("inOutType") InOutTypeEnum inOutType,
-                                                         @Param("deviceNo") String deviceNo,
+                                                         @Param("usageType") DeviceUsageTypeEnum usageType,
+                                                         @Param("userId") Long userId,
+                                                         @Param("deviceStatus") DeviceStatusEnum deviceStatus,
                                                          @Param("inOutTimeStart") Long inOutTimeStart,
                                                          @Param("inOutTimeEnd") Long inOutTimeEnd,
-                                                         @Param("supplierId") Long supplierId,
-                                                         @Param("customName") String customName);
+                                                         @Param("deviceNo") String deviceNo,
+                                                         @Param("customName") String customName,
+                                                         @Param("location") String location,
+                                                         @Param("address") String address,
+                                                         @Param("serialNo") String serialNo);
 
     /**
      * 查询可出库设备信息

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

@@ -2,6 +2,7 @@ package com.qmth.sop.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.entity.Sequence;
+import com.qmth.sop.common.enums.SequenceEnum;
 import com.qmth.sop.common.enums.TFCustomTypeEnum;
 
 /**
@@ -40,6 +41,13 @@ public interface SequenceService extends IService<Sequence> {
 
     String createCode(String name) throws InterruptedException;
 
+    /**
+     * 根据流水号枚举生成流水号 每日重置 (前缀 + 日期 + 流水号)
+     * @param sequenceEnum 流水号枚举
+     * @return 流水号
+     */
+    String createSerialNo(SequenceEnum sequenceEnum) throws InterruptedException;
+
     /**
      * 序列重置
      *

+ 12 - 7
sop-business/src/main/java/com/qmth/sop/business/service/TBDeviceInOutService.java

@@ -7,7 +7,6 @@ import com.qmth.sop.business.bean.result.DeviceInOutResult;
 import com.qmth.sop.business.entity.TBDeviceInOut;
 import com.qmth.sop.common.enums.DeviceStatusEnum;
 import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
-import com.qmth.sop.common.enums.InOutTypeEnum;
 
 import java.util.List;
 
@@ -35,13 +34,14 @@ public interface TBDeviceInOutService extends IService<TBDeviceInOut> {
      * @param customName     客户名称
      * @param location       当前地
      * @param address        发往地
+     * @param serialNo       登记流水号
      * @param pageNumber     分页页数
      * @param pageSize       分页容量
      * @return 分页结果
      */
     IPage<DeviceInOutResult> findDeviceInOutPageBySop(Long serviceUnitId, DeviceUsageTypeEnum usageType, Long userId,
                                                       DeviceStatusEnum deviceStatus, Long inOutTimeStart, Long inOutTimeEnd,
-                                                      String deviceNo, String customName, String location, String address,
+                                                      String deviceNo, String customName, String location, String address, String serialNo,
                                                       Integer pageNumber, Integer pageSize);
 
     /**
@@ -75,17 +75,22 @@ public interface TBDeviceInOutService extends IService<TBDeviceInOut> {
      * 资源保障-设备保障-出入库登记查询
      *
      * @param serviceUnitId  服务单元id
-     * @param inOutType      出入库类型
-     * @param deviceNo       设备编号
+     * @param usageType      用途类型
+     * @param userId         登记人
+     * @param deviceStatus   运行状态
      * @param inOutTimeStart 出入库时间 - 开始
      * @param inOutTimeEnd   出入库时间 - 结束
-     * @param supplierId     供应商id
+     * @param deviceNo       设备编号
      * @param customName     客户名称
+     * @param location       当前地
+     * @param address        发往地
+     * @param serialNo       登记流水号
      * @param pageNumber     分页页数
      * @param pageSize       分页容量
      * @return 分页结果
      */
-    IPage<DeviceInOutResult> findDeviceInOutPageBySource(Long serviceUnitId, InOutTypeEnum inOutType, String deviceNo,
-                                                         Long inOutTimeStart, Long inOutTimeEnd, Long supplierId, String customName,
+    IPage<DeviceInOutResult> findDeviceInOutPageBySource(Long serviceUnitId, DeviceUsageTypeEnum usageType, Long userId,
+                                                         DeviceStatusEnum deviceStatus, Long inOutTimeStart, Long inOutTimeEnd,
+                                                         String deviceNo, String customName, String location, String address, String serialNo,
                                                          Integer pageNumber, Integer pageSize);
 }

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

@@ -10,6 +10,7 @@ import com.qmth.sop.business.service.TGErrorService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.ErrorEnum;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.enums.SequenceEnum;
 import com.qmth.sop.common.enums.TFCustomTypeEnum;
 import com.qmth.sop.common.lock.MemoryLock;
 import org.springframework.stereotype.Service;
@@ -101,6 +102,13 @@ public class SequenceServiceImpl extends ServiceImpl<SequenceMapper, Sequence> i
         return SystemConstant.getNowTime() + String.format("%0" + sysConfig.getConfigValue() + "d", this.selectNextVal(name));
     }
 
+    @Override
+    public String createSerialNo(SequenceEnum sequenceEnum) throws InterruptedException {
+        SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.FLOW_CODE_LENGTH);
+        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("编码长度未设置"));
+        return sequenceEnum.getPrefix() + SystemConstant.getNowTime() + String.format("%0" + sysConfig.getConfigValue() + "d", this.selectNextVal(sequenceEnum.getCode()));
+    }
+
     /**
      * 序列重置
      * @return

+ 20 - 9
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDeviceInOutServiceImpl.java

@@ -11,15 +11,14 @@ import com.qmth.sop.business.entity.SysDevice;
 import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBDeviceInOut;
 import com.qmth.sop.business.mapper.TBDeviceInOutMapper;
+import com.qmth.sop.business.service.SequenceService;
 import com.qmth.sop.business.service.SysDeviceService;
 import com.qmth.sop.business.service.TBDeviceInOutService;
 import com.qmth.sop.common.contant.SystemConstant;
-import com.qmth.sop.common.enums.DeviceStatusEnum;
-import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
-import com.qmth.sop.common.enums.ExceptionResultEnum;
-import com.qmth.sop.common.enums.InOutTypeEnum;
+import com.qmth.sop.common.enums.*;
 import com.qmth.sop.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -38,16 +37,19 @@ import java.util.stream.Stream;
 public class TBDeviceInOutServiceImpl extends ServiceImpl<TBDeviceInOutMapper, TBDeviceInOut> implements TBDeviceInOutService {
     @Resource
     private SysDeviceService sysDeviceService;
+    @Resource
+    private SequenceService sequenceService;
 
     @Override
-    public IPage<DeviceInOutResult> findDeviceInOutPageBySop(Long serviceUnitId, DeviceUsageTypeEnum usageType, Long userId, DeviceStatusEnum deviceStatus, Long inOutTimeStart, Long inOutTimeEnd, String deviceNo, String customName, String location, String address, Integer pageNumber, Integer pageSize) {
+    public IPage<DeviceInOutResult> findDeviceInOutPageBySop(Long serviceUnitId, DeviceUsageTypeEnum usageType, Long userId, DeviceStatusEnum deviceStatus, Long inOutTimeStart, Long inOutTimeEnd, String deviceNo, String customName, String location, String address, String serialNo, Integer pageNumber, Integer pageSize) {
         deviceNo = SystemConstant.translateSpecificSign(deviceNo);
         customName = SystemConstant.translateSpecificSign(customName);
         location = SystemConstant.translateSpecificSign(location);
         address = SystemConstant.translateSpecificSign(address);
+        serialNo = SystemConstant.translateSpecificSign(serialNo);
 
         return this.baseMapper.findDeviceInOutPageBySop(new Page<>(pageNumber, pageSize), serviceUnitId, usageType,
-                userId, deviceStatus, inOutTimeStart, inOutTimeEnd, deviceNo, customName, location, address);
+                userId, deviceStatus, inOutTimeStart, inOutTimeEnd, deviceNo, customName, location, address, serialNo);
     }
 
     @Override
@@ -61,6 +63,7 @@ public class TBDeviceInOutServiceImpl extends ServiceImpl<TBDeviceInOutMapper, T
     }
 
 
+    @Transactional
     @Override
     public void deviceInOutSubmit(DeviceInOutSubmitParam deviceInOutSubmitParam) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -94,6 +97,11 @@ public class TBDeviceInOutServiceImpl extends ServiceImpl<TBDeviceInOutMapper, T
             if (sopNo != null && sopNo.length() > 0) {
                 tbDeviceInOut.setSopNo(sopNo);
             }
+            try {
+                tbDeviceInOut.setSerialNo(sequenceService.createSerialNo(SequenceEnum.DEVICE_IN_OUT_CODE));
+            } catch (InterruptedException ex) {
+                throw ExceptionResultEnum.ERROR.exception("流水号生成失败");
+            }
             tbDeviceInOut.setUserId(requestUser.getId());
             tbDeviceInOut.setType(inOutType);
             tbDeviceInOut.setDeviceNo(e.getDeviceNo());
@@ -120,11 +128,14 @@ public class TBDeviceInOutServiceImpl extends ServiceImpl<TBDeviceInOutMapper, T
     }
 
     @Override
-    public IPage<DeviceInOutResult> findDeviceInOutPageBySource(Long serviceUnitId, InOutTypeEnum inOutType, String deviceNo, Long inOutTimeStart, Long inOutTimeEnd, Long supplierId, String customName, Integer pageNumber, Integer pageSize) {
+    public IPage<DeviceInOutResult> findDeviceInOutPageBySource(Long serviceUnitId, DeviceUsageTypeEnum usageType, Long userId, DeviceStatusEnum deviceStatus, Long inOutTimeStart, Long inOutTimeEnd, String deviceNo, String customName, String location, String address, String serialNo, Integer pageNumber, Integer pageSize) {
         deviceNo = SystemConstant.translateSpecificSign(deviceNo);
         customName = SystemConstant.translateSpecificSign(customName);
+        location = SystemConstant.translateSpecificSign(location);
+        address = SystemConstant.translateSpecificSign(address);
+        serialNo = SystemConstant.translateSpecificSign(serialNo);
 
-        return this.baseMapper.findDeviceInOutPageBySource(new Page<>(pageNumber, pageSize), serviceUnitId, inOutType,
-                deviceNo, inOutTimeStart, inOutTimeEnd, supplierId, customName);
+        return this.baseMapper.findDeviceInOutPageBySource(new Page<>(pageNumber, pageSize), serviceUnitId, usageType,
+                userId, deviceStatus, inOutTimeStart, inOutTimeEnd, deviceNo, customName, location, address, serialNo);
     }
 }

+ 10 - 13
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingSubmitServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.sop.business.service.TBDingSubmitService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.DingSubmitStatusEnum;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.util.DateDisposeUtils;
 import com.qmth.sop.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -118,7 +119,7 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
                         serviceUnitName, sopNo, userArchivesName, exceptionCount));
             }
 
-            Long submitId = dingSubmitResult.getSubmitUserId();
+            Long submitId = dingSubmitResult.getSubmitId();
             TBDingSubmit tbDingSubmit = new TBDingSubmit();
             tbDingSubmit.setServiceId(serviceUnitId);
             tbDingSubmit.setSopNo(sopNo);
@@ -149,10 +150,6 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
     public void applyWithdraw(DingSubmitParam dingSubmitParam) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
 
-        List<DingSubmitStatusEnum> dingSubmitStatusEnumList = new ArrayList<>();
-        dingSubmitStatusEnumList.add(DingSubmitStatusEnum.ALREADY_SUBMIT);
-        dingSubmitStatusEnumList.add(DingSubmitStatusEnum.APPLY_WITHDRAW);
-
         Long serviceUnitId = dingSubmitParam.getServiceUnitId();
         String sopNo = dingSubmitParam.getSopNo();
         Long userArchivesId = dingSubmitParam.getUserArchivesId();
@@ -168,12 +165,12 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
         String userArchivesName = dingSubmitResult.getArchivesName();
 
         DingSubmitStatusEnum submitStatus = dingSubmitResult.getSubmitStatus();
-        if (!dingSubmitStatusEnumList.contains(submitStatus)) {
+        if (!DingSubmitStatusEnum.ALREADY_SUBMIT.equals(submitStatus)) {
             throw ExceptionResultEnum.ERROR.exception(String.format("服务单元为[%s],sop流水号为[%s],用户档案为[%s]的考勤的提交状态为[%s],不能申请撤回",
                     serviceUnitName, sopNo, userArchivesName, submitStatus.getSubmitDesc()));
         }
 
-        Long submitId = dingSubmitResult.getSubmitUserId();
+        Long submitId = dingSubmitResult.getSubmitId();
         if (submitId == null || submitId == 0) {
             throw ExceptionResultEnum.ERROR.exception(String.format("服务单元为[%s],sop流水号为[%s],用户档案为[%s]的考勤数据异常", serviceUnitName, sopNo, userArchivesName));
         }
@@ -223,7 +220,7 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
                     serviceUnitName, sopNo, userArchivesName, submitStatus.getSubmitDesc()));
         }
 
-        Long submitId = dingSubmitResult.getSubmitUserId();
+        Long submitId = dingSubmitResult.getSubmitId();
         if (submitId == null || submitId == 0) {
             throw ExceptionResultEnum.ERROR.exception(String.format("服务单元为[%s],sop流水号为[%s],用户档案为[%s]的考勤数据异常", serviceUnitName, sopNo, userArchivesName));
         }
@@ -269,10 +266,10 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
             dto.setCustomName(e.getCustomName());
             dto.setProvince(e.getProvince());
             dto.setCity(e.getCity());
-            dto.setApproachTime(e.getApproachTime());
-            dto.setDepartureTime(e.getDepartureTime());
+            dto.setApproachTime(DateDisposeUtils.getDateStr(e.getApproachTime()));
+            dto.setDepartureTime(DateDisposeUtils.getDateStr(e.getDepartureTime()));
             dto.setArchivesInfo(e.getArchivesInfo());
-            dto.setRoleType(e.getRoleType());
+            dto.setRoleType(e.getRoleType().getDesc());
             dto.setSupplierName(e.getSupplierName());
             dto.setActualDays(e.getActualDays());
             dto.setWeekdays(e.getWeekdays());
@@ -283,9 +280,9 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
             dto.setDingExceptionCount(e.getDingExceptionCount());
             dto.setRemainCount(e.getRemainCount());
             dto.setExceptionCount(e.getExceptionCount());
-            dto.setSubmitStatus(e.getSubmitStatus());
+            dto.setSubmitStatus(e.getSubmitStatus().getSubmitDesc());
             dto.setSubmitUserName(e.getSubmitUserName());
-            dto.setSubmitTime(e.getSubmitTime());
+            dto.setSubmitTime(DateDisposeUtils.getDateStr(e.getSubmitTime()));
             return Stream.of(dto);
         }).collect(Collectors.toList());
     }

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -154,7 +154,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         userArchivesParam.setId(tbUserArchivesList.get(0).getId());
                         userArchivesParam.setCode(tbUserArchivesList.get(0).getCode());
                     } else {
-                        userArchivesParam.setCode(SequenceEnum.USER_ARCHIVES_CODE.getMark() + sequenceService.selectNextVal(SequenceEnum.USER_ARCHIVES_CODE.getCode()));
+                        userArchivesParam.setCode(sequenceService.createSerialNo(SequenceEnum.USER_ARCHIVES_CODE));
                     }
                     userArchivesParam.setEducation(EducationEnum.convertTitleToEnum(userArchivesImportDto.getEducation()));
                     userArchivesParam.setMobileNumber(userArchivesImportDto.getMobileNumber());

+ 9 - 1
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -211,4 +211,12 @@ UPDATE sys_privilege SET related = '2037,2038' WHERE (id = '143');
 UPDATE sys_privilege SET related = '2037,2038' WHERE (id = '144');
 UPDATE sys_privilege SET related = '2042' WHERE (id = '145');
 UPDATE sys_privilege SET related = '2039' WHERE (id = '146');
-UPDATE sys_privilege SET related = '2040,2041' WHERE (id = '147');
+UPDATE sys_privilege SET related = '2040,2041' WHERE (id = '147');
+
+-- 2023-08-31
+UPDATE sys_privilege SET url = '/api/admin/tb/ding/submit/apply_withdraw' WHERE (id = '2040');
+UPDATE sys_privilege SET related = NULL WHERE (id = '5');
+
+INSERT INTO sequence (name, current_value, increment) VALUES ('deviceInOutCode', '0', '1');
+ALTER TABLE t_b_device_in_out
+    ADD COLUMN serial_no VARCHAR(20) NOT NULL COMMENT '出入库流水号' AFTER id;

+ 32 - 9
sop-business/src/main/resources/mapper/TBDeviceInOutMapper.xml

@@ -19,7 +19,11 @@
             IFNULL(tbdio.custom_name,'--') AS customName,
             tbdio.type AS inOutType,
             tbdio.location AS location,
-            tbdio.address AS address
+            tbdio.address AS address,
+            tbdio.serial_no AS serialNo,
+            tbdio.base_photo_path AS basePhotoPath,
+            ss.id AS supplierId,
+            ss.name AS supplierName
         FROM
             t_b_device_in_out tbdio
                 LEFT JOIN
@@ -28,6 +32,8 @@
             sys_device sd ON tbdio.device_no = sd.serial_no
                 LEFT JOIN
             sys_user su ON tbdio.user_id = su.id
+                LEFT JOIN
+            sys_supplier ss ON sd.supplier_id = ss.id
         <where>
             <if test="serviceUnitId != null">
                 AND tbs.id = #{serviceUnitId}
@@ -59,6 +65,9 @@
             <if test="address != null and address != ''">
                 AND tbdio.address LIKE CONCAT('%',#{address},'%')
             </if>
+            <if test="serialNo != null and serialNo != ''">
+                AND tbdio.serial_no LIKE CONCAT('%',#{serialNo},'%')
+            </if>
         </where>
         ORDER BY tbs.id DESC,tbdio.in_out_time
     </select>
@@ -66,7 +75,7 @@
         SELECT
             tbdio.id AS inOutId,
             tbdio.service_id AS serviceUnitId,
-            tbs.name AS serviceUnitName,
+            IFNULL(tbs.name,'--') AS serviceUnitName,
             tbdio.usage_type AS usageType,
             tbdio.device_no AS deviceNo,
             sd.id AS deviceId,
@@ -76,10 +85,12 @@
             tbdio.in_out_time AS inOutTime,
             su.id AS userId,
             su.real_name AS userName,
-            tbdio.custom_name AS customName,
+            IFNULL(tbdio.custom_name,'--') AS customName,
             tbdio.type AS inOutType,
             tbdio.location AS location,
             tbdio.address AS address,
+            tbdio.serial_no AS serialNo,
+            tbdio.base_photo_path AS basePhotoPath,
             ss.id AS supplierId,
             ss.name AS supplierName
         FROM
@@ -96,11 +107,14 @@
             <if test="serviceUnitId != null">
                 AND tbs.id = #{serviceUnitId}
             </if>
-            <if test="inOutType != null">
-                AND tbdio.type = #{inOutType}
+            <if test="usageType != null">
+                AND tbdio.usage_type = #{usageType}
             </if>
-            <if test="deviceNo != null and deviceNo != ''">
-                AND tbdio.device_no LIKE CONCAT('%',#{deviceNo},'%')
+            <if test="userId != null">
+                AND su.id = #{userId}
+            </if>
+            <if test="deviceStatus != null">
+                AND tbdio.status = #{deviceStatus}
             </if>
             <if test="inOutTimeStart != null">
                 AND tbdio.in_out_time >= #{inOutTimeStart}
@@ -108,12 +122,21 @@
             <if test="inOutTimeEnd != null">
                 AND #{inOutTimeEnd} > tbdio.in_out_time
             </if>
-            <if test="supplierId != null">
-                AND ss.id = #{supplierId}
+            <if test="deviceNo != null and deviceNo != ''">
+                AND tbdio.device_no LIKE CONCAT('%',#{deviceNo},'%')
             </if>
             <if test="customName != null and customName != ''">
                 AND tbdio.custom_name LIKE CONCAT('%',#{customName},'%')
             </if>
+            <if test="location != null and location != ''">
+                AND tbdio.location LIKE CONCAT('%',#{location},'%')
+            </if>
+            <if test="address != null and address != ''">
+                AND tbdio.address LIKE CONCAT('%',#{address},'%')
+            </if>
+            <if test="serialNo != null and serialNo != ''">
+                AND tbdio.serial_no LIKE CONCAT('%',#{serialNo},'%')
+            </if>
         </where>
         ORDER BY tbs.id DESC,tbdio.in_out_time
     </select>

+ 7 - 7
sop-common/src/main/java/com/qmth/sop/common/enums/SequenceEnum.java

@@ -6,18 +6,18 @@ package com.qmth.sop.common.enums;
  * @Date: 2023-08-21
  */
 public enum SequenceEnum {
-    USER_ARCHIVES_CODE("用户档案编号","userArchivesCode",""),
-    ;
+    USER_ARCHIVES_CODE("用户档案编号", "userArchivesCode", "ARC"),
+    DEVICE_IN_OUT_CODE("设备出入库流水号", "deviceInOutCode", "DIO");
     private final String title;
 
     private final String code;
 
-    private final String mark;
+    private final String prefix;
 
-    SequenceEnum(String title, String code, String mark) {
+    SequenceEnum(String title, String code, String prefix) {
         this.title = title;
         this.code = code;
-        this.mark = mark;
+        this.prefix = prefix;
     }
 
     public String getTitle() {
@@ -28,7 +28,7 @@ public enum SequenceEnum {
         return code;
     }
 
-    public String getMark() {
-        return mark;
+    public String getPrefix() {
+        return prefix;
     }
 }

+ 30 - 38
sop-common/src/main/java/com/qmth/sop/common/util/DateDisposeUtils.java

@@ -40,8 +40,7 @@ public class DateDisposeUtils extends DateUtils {
      *
      * @return Date() 当前日期
      */
-    public static Date getNowDate()
-    {
+    public static Date getNowDate() {
         return new Date();
     }
 
@@ -50,44 +49,34 @@ public class DateDisposeUtils extends DateUtils {
      *
      * @return String
      */
-    public static String getDate()
-    {
+    public static String getDate() {
         return dateTimeNow(YYYY_MM_DD);
     }
 
-    public static final String getTime()
-    {
+    public static final String getTime() {
         return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
     }
 
-    public static final String dateTimeNow()
-    {
+    public static final String dateTimeNow() {
         return dateTimeNow(YYYYMMDDHHMMSS);
     }
 
-    public static final String dateTimeNow(final String format)
-    {
+    public static final String dateTimeNow(final String format) {
         return parseDateToStr(format, new Date());
     }
 
-    public static final String dateTime(final Date date)
-    {
+    public static final String dateTime(final Date date) {
         return parseDateToStr(YYYY_MM_DD, date);
     }
 
-    public static final String parseDateToStr(final String format, final Date date)
-    {
+    public static final String parseDateToStr(final String format, final Date date) {
         return new SimpleDateFormat(format).format(date);
     }
 
-    public static final Date dateTime(final String format, final String ts)
-    {
-        try
-        {
+    public static final Date dateTime(final String format, final String ts) {
+        try {
             return new SimpleDateFormat(format).parse(ts);
-        }
-        catch (ParseException e)
-        {
+        } catch (ParseException e) {
             throw new RuntimeException(e);
         }
     }
@@ -95,8 +84,7 @@ public class DateDisposeUtils extends DateUtils {
     /**
      * 日期路径 即年/月/日 如2018/08/08
      */
-    public static final String datePath()
-    {
+    public static final String datePath() {
         Date now = new Date();
         return DateFormatUtils.format(now, "yyyy/MM/dd");
     }
@@ -104,8 +92,7 @@ public class DateDisposeUtils extends DateUtils {
     /**
      * 日期路径 即年/月/日 如20180808
      */
-    public static final String dateTime()
-    {
+    public static final String dateTime() {
         Date now = new Date();
         return DateFormatUtils.format(now, "yyyyMMdd");
     }
@@ -113,18 +100,13 @@ public class DateDisposeUtils extends DateUtils {
     /**
      * 日期型字符串转化为日期 格式
      */
-    public static Date parseDate(Object str)
-    {
-        if (str == null)
-        {
+    public static Date parseDate(Object str) {
+        if (str == null) {
             return null;
         }
-        try
-        {
+        try {
             return parseDate(str.toString(), parsePatterns);
-        }
-        catch (ParseException e)
-        {
+        } catch (ParseException e) {
             return null;
         }
     }
@@ -147,8 +129,7 @@ public class DateDisposeUtils extends DateUtils {
     /**
      * 获取服务器启动时间
      */
-    public static Date getServerStartDate()
-    {
+    public static Date getServerStartDate() {
         long time = ManagementFactory.getRuntimeMXBean().getStartTime();
         return new Date(time);
     }
@@ -156,8 +137,7 @@ public class DateDisposeUtils extends DateUtils {
     /**
      * 计算两个时间差
      */
-    public static String getDatePoor(Date endDate, Date nowDate)
-    {
+    public static String getDatePoor(Date endDate, Date nowDate) {
         long nd = 1000 * 24 * 60 * 60;
         long nh = 1000 * 60 * 60;
         long nm = 1000 * 60;
@@ -174,4 +154,16 @@ public class DateDisposeUtils extends DateUtils {
         // long sec = diff % nd % nh % nm / ns;
         return day + "天" + hour + "小时" + min + "分钟";
     }
+
+    /**
+     * 查询时间字符串(yyyy-MM-dd HH:mm:ss)
+     *
+     * @param date long
+     * @return 时间
+     */
+    public static String getDateStr(Long date) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date d1 = new Date(date);
+        return simpleDateFormat.format(d1);
+    }
 }

+ 10 - 6
sop-server/src/main/java/com/qmth/sop/server/api/TBDeviceInOutController.java

@@ -9,7 +9,6 @@ import com.qmth.sop.business.service.TBDeviceInOutService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.DeviceStatusEnum;
 import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
-import com.qmth.sop.common.enums.InOutTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import io.swagger.annotations.*;
@@ -50,11 +49,12 @@ public class TBDeviceInOutController {
                                            @ApiParam(value = "客户名称") @RequestParam(required = false) String customName,
                                            @ApiParam(value = "当前地") @RequestParam(required = false) String location,
                                            @ApiParam(value = "发往地") @RequestParam(required = false) String address,
+                                           @ApiParam(value = "登记流水号") @RequestParam(required = false) String serialNo,
                                            @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(tbDeviceInOutService.findDeviceInOutPageBySop(SystemConstant.convertIdToLong(serviceUnitId),
-                usageType, SystemConstant.convertIdToLong(userId), deviceStatus, inOutTimeStart, inOutTimeEnd, deviceNo, customName, location, address,
+                usageType, SystemConstant.convertIdToLong(userId), deviceStatus, inOutTimeStart, inOutTimeEnd, deviceNo, customName, location, address, serialNo,
                 pageNumber, pageSize));
     }
 
@@ -92,17 +92,21 @@ public class TBDeviceInOutController {
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = DeviceInOutResult.class)})
     @OperationLog
     public Result findDeviceInOutPageBySource(@ApiParam(value = "服务单元id") @RequestParam(required = false) String serviceUnitId,
-                                              @ApiParam(value = "出入库类型") @RequestParam(required = false) InOutTypeEnum inOutType,
-                                              @ApiParam(value = "设备编号") @RequestParam(required = false) String deviceNo,
+                                              @ApiParam(value = "用途类型") @RequestParam(required = false) DeviceUsageTypeEnum usageType,
+                                              @ApiParam(value = "登记人") @RequestParam(required = false) String userId,
+                                              @ApiParam(value = "运行状态") @RequestParam(required = false) DeviceStatusEnum deviceStatus,
                                               @ApiParam(value = "出入库时间 - 开始") @RequestParam(required = false) Long inOutTimeStart,
                                               @ApiParam(value = "出入库时间 - 结束") @RequestParam(required = false) Long inOutTimeEnd,
-                                              @ApiParam(value = "供应商id") @RequestParam(required = false) String supplierId,
+                                              @ApiParam(value = "设备编号") @RequestParam(required = false) String deviceNo,
                                               @ApiParam(value = "客户名称") @RequestParam(required = false) String customName,
+                                              @ApiParam(value = "当前地") @RequestParam(required = false) String location,
+                                              @ApiParam(value = "发往地") @RequestParam(required = false) String address,
+                                              @ApiParam(value = "登记流水号") @RequestParam(required = false) String serialNo,
                                               @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(tbDeviceInOutService.findDeviceInOutPageBySource(SystemConstant.convertIdToLong(serviceUnitId),
-                inOutType, deviceNo, inOutTimeStart, inOutTimeEnd, SystemConstant.convertIdToLong(supplierId), customName,
+                usageType, SystemConstant.convertIdToLong(userId), deviceStatus, inOutTimeStart, inOutTimeEnd, deviceNo, customName, location, address, serialNo,
                 pageNumber, pageSize));
     }
 }

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

@@ -99,7 +99,7 @@ public class TBDingSubmitController {
     }
 
     @ApiOperation(value = "考勤提交-考勤撤回")
-    @RequestMapping(value = "/apply_withdram", method = RequestMethod.POST)
+    @RequestMapping(value = "/apply_withdraw", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
     @OperationLog
     public Result applyWithdraw(@Valid @RequestBody DingSubmitParam dingSubmitParam, BindingResult bindingResult) {

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

@@ -103,7 +103,7 @@ public class TBUserArchivesController {
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @OperationLog
     public Result createUserArchivesCode() throws InterruptedException {
-        return ResultUtil.ok(sequenceService.selectNextVal(SequenceEnum.USER_ARCHIVES_CODE.getCode()));
+        return ResultUtil.ok(sequenceService.createSerialNo(SequenceEnum.USER_ARCHIVES_CODE));
     }
 
     @ApiOperation(value = "人员档案管理-编辑")