Browse Source

Merge remote-tracking branch 'origin/demo_' into demo_

hfxc226 2 years ago
parent
commit
aeaf720feb
34 changed files with 597 additions and 75 deletions
  1. 4 0
      platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java
  2. 5 0
      platform-dao/src/main/java/com/platform/dao/dto/upms/SysUserDTO.java
  3. 4 0
      platform-dao/src/main/java/com/platform/dao/dto/workplace/WorkplaceBacklogUserDTO.java
  4. 8 6
      platform-dao/src/main/java/com/platform/dao/entity/repair/RepairApplicationForm.java
  5. 1 0
      platform-dao/src/main/java/com/platform/dao/entity/workplace/WorkplaceBacklog.java
  6. 4 0
      platform-dao/src/main/java/com/platform/dao/entity/workplace/WorkplaceBacklogUser.java
  7. 4 0
      platform-dao/src/main/java/com/platform/dao/enums/SysRoleCodeEnum.java
  8. 1 0
      platform-dao/src/main/java/com/platform/dao/mapper/sb/SbModelSpareBomMapper.java
  9. 6 0
      platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SpareTypeMapper.java
  10. 5 0
      platform-dao/src/main/java/com/platform/dao/mapper/store/SpareStoreMapper.java
  11. 7 0
      platform-dao/src/main/java/com/platform/dao/mapper/workplace/WorkplaceBacklogMapper.java
  12. 2 0
      platform-dao/src/main/java/com/platform/dao/mapper/workplace/WorkplaceBacklogUserMapper.java
  13. 9 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbModelSpareBomVO.java
  14. 4 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbTreeVO.java
  15. 38 0
      platform-dao/src/main/java/com/platform/dao/vo/spare/SpareStoreInfoVO.java
  16. 26 0
      platform-dao/src/main/java/com/platform/dao/vo/spare/SpareTypeVO.java
  17. 9 0
      platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml
  18. 31 0
      platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml
  19. 15 0
      platform-dao/src/main/resources/mapper/sqarepartmanage/SpareTypeMapper.xml
  20. 12 0
      platform-dao/src/main/resources/mapper/store/SpareStoreMapper.xml
  21. 8 1
      platform-dao/src/main/resources/mapper/upms/SysUserMapper.xml
  22. 39 0
      platform-dao/src/main/resources/mapper/workplace/WorkplaceBacklogMapper.xml
  23. 22 1
      platform-dao/src/main/resources/mapper/workplace/WorkplaceBacklogUserMapper.xml
  24. 8 0
      platform-rest/src/main/java/com/platform/rest/controller/store/SpareStoreController.java
  25. 49 10
      platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java
  26. 29 34
      platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java
  27. 6 13
      platform-service/src/main/java/com/platform/service/repair/strategy/AbstractRepairBaseStrategy.java
  28. 163 0
      platform-service/src/main/java/com/platform/service/repair/strategy/impl/AllocateRepairBaseStrategy.java
  29. 1 1
      platform-service/src/main/java/com/platform/service/repair/strategy/impl/BaseRepairBaseStrategy.java
  30. 7 1
      platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java
  31. 6 0
      platform-service/src/main/java/com/platform/service/store/SpareStoreService.java
  32. 6 3
      platform-service/src/main/java/com/platform/service/store/impl/InStoreFormServiceImpl.java
  33. 47 0
      platform-service/src/main/java/com/platform/service/store/impl/SpareStoreServiceImpl.java
  34. 11 5
      platform-service/src/main/java/com/platform/service/workplace/impl/WorkplaceBacklogServiceImpl.java

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java

@@ -335,4 +335,8 @@ public class RepairApplicationFormDTO extends BaseDTO implements Serializable {
     private String queryRepairUserId;
 
     private List<Integer> statusList;
+
+    private String dispatchUserId;
+
+    private Integer checkAllFlag;
 }

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/upms/SysUserDTO.java

@@ -237,4 +237,9 @@ public class SysUserDTO extends BaseDTO implements Serializable {
     private Boolean workFlag;
 
     private String email;
+
+    /**
+     * 获取角色专用 1 代表根据创建时间升序
+     */
+    private Integer orderByFlag;
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/dto/workplace/WorkplaceBacklogUserDTO.java

@@ -18,6 +18,10 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class WorkplaceBacklogUserDTO extends BaseDTO implements Serializable {
+    /**
+     * 部门类型
+     */
+    private String deptType;
 
     private String id;
     /**

+ 8 - 6
platform-dao/src/main/java/com/platform/dao/entity/repair/RepairApplicationForm.java

@@ -1,19 +1,15 @@
 package com.platform.dao.entity.repair;
 
-import com.sun.org.apache.xpath.internal.operations.Bool;
+import com.platform.common.bean.DataScope;
 import lombok.Data;
 
 import javax.persistence.Id;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
-import com.platform.common.bean.DataScope;
-
-import javax.persistence.Transient;
-
 /**
  * @Description 保修单实体类
  * @Author liuyu
@@ -240,6 +236,12 @@ public class RepairApplicationForm implements Serializable {
      * 类型
      */
     private Integer type;
+
+    /**
+     * 分配人ID
+     */
+    private String dispatchUserId;
+
     /**
      * 报修人
      */

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/entity/workplace/WorkplaceBacklog.java

@@ -65,6 +65,7 @@ public class WorkplaceBacklog implements Serializable {
     /**
      * 状态
      */
+    @Transient
     private Integer status;
     /**
      * 创建时间

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/entity/workplace/WorkplaceBacklogUser.java

@@ -1,5 +1,6 @@
 package com.platform.dao.entity.workplace;
 
+import com.platform.dao.enums.WorkplaceBacklogStatusEnum;
 import lombok.Data;
 
 import javax.persistence.Table;
@@ -28,6 +29,8 @@ public class WorkplaceBacklogUser implements Serializable {
      */
     private String backlogId;
 
+    private Integer status;
+
     /**
      * 创建时间
      */
@@ -42,5 +45,6 @@ public class WorkplaceBacklogUser implements Serializable {
         this.userId = userId;
         this.backlogId = backlogId;
         this.createdTime = createdTime;
+        this.status = WorkplaceBacklogStatusEnum.WORKPLACE_BACKLOG_STATUS_WAITING.getValue();
     }
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/enums/SysRoleCodeEnum.java

@@ -135,6 +135,10 @@ public enum SysRoleCodeEnum {
      * 报修单最后审核人员
      */
     REPAIR_EXAMINE,
+    /**
+     * 报修派工角色
+     */
+    REPAIR_DISPATCH,
     ;
 
 }

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbModelSpareBomMapper.java

@@ -29,6 +29,7 @@ public interface SbModelSpareBomMapper extends MyMapper<SbModelSpareBom> {
     List<SbModelSpareBomVO> selectList(SbModelSpareBomDTO dto);
 
     List<SbModelSpareBomVO> selectVOList(SbModelSpareBomDTO dto);
+    List<SbModelSpareBomVO> selectVOList1(SbModelSpareBomDTO dto);
 
     List<SbModelSpareBomVO> selectExportList(SparePartInfoDTO sparePartInfoDTO);
 

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SpareTypeMapper.java

@@ -2,8 +2,10 @@ package com.platform.dao.mapper.sqarepartmanage;
 
 import com.platform.dao.config.MyMapper;
 import com.platform.dao.dto.sqarepartmanage.SpareTypeDTO;
+import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
+import com.platform.dao.vo.spare.SpareTypeVO;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -37,4 +39,8 @@ public interface SpareTypeMapper extends MyMapper<SpareType> {
      * @return
      */
     String selectNameById(Object id);
+
+    List<SpareTypeVO> getSpareTypeVo(SpareStoreDTO spareStoreDTO);
+
+
 }

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/mapper/store/SpareStoreMapper.java

@@ -7,6 +7,9 @@ import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.List;
 
 
@@ -69,4 +72,6 @@ public interface SpareStoreMapper extends MyMapper<SpareStore> {
      * @return
      */
     void updateBatchByStoreChange(List<SpareStore> list);
+
+    BigDecimal getTotalPrice(SpareStoreDTO spareStoreDTO);
 }

+ 7 - 0
platform-dao/src/main/java/com/platform/dao/mapper/workplace/WorkplaceBacklogMapper.java

@@ -2,7 +2,9 @@ package com.platform.dao.mapper.workplace;
 
 import com.platform.dao.config.MyMapper;
 import com.platform.dao.dto.workplace.WorkplaceBacklogDTO;
+import com.platform.dao.dto.workplace.WorkplaceBacklogUserDTO;
 import com.platform.dao.entity.workplace.WorkplaceBacklog;
+import com.platform.dao.vo.query.workplace.WorkplaceBacklogUserVO;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -31,4 +33,9 @@ public interface WorkplaceBacklogMapper extends MyMapper<WorkplaceBacklog> {
      * @param loanId
      */
     void updateLiquidateTask(String loanId);
+
+    List<WorkplaceBacklogUserVO> queryNew(WorkplaceBacklogUserDTO model);
+
 }
+
+

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/workplace/WorkplaceBacklogUserMapper.java

@@ -35,4 +35,6 @@ public interface WorkplaceBacklogUserMapper extends MyMapper<WorkplaceBacklogUse
     WorkplaceBacklogUserVO selectUserById(WorkplaceBacklogUserDTO model);
 
     void updateByUser(WorkplaceBacklogUserDTO model);
+
+    Integer updateByPrimaryKeySelective1(WorkplaceBacklogUser workplaceBacklogUser);
 }

+ 9 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbModelSpareBomVO.java

@@ -24,6 +24,15 @@ import java.util.List;
 @EqualsAndHashCode(callSuper = true)
 public class SbModelSpareBomVO extends BaseVO implements Serializable {
 
+    /**
+     * 预计更换日期
+     */
+    private LocalDate changeDate;
+    /**
+     * 实际更换日期
+     */
+    private LocalDate realChangeDate;
+
     /**
      * 计划周期
      */

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbTreeVO.java

@@ -24,8 +24,10 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbTreeVO extends BaseVO implements Serializable {
+    private Integer status;
     private String name;
     private String id;
+    private String model;
     /**
      * 子设备集合
      */
@@ -39,4 +41,6 @@ public class SbTreeVO extends BaseVO implements Serializable {
      */
     private List<SbModelSpareBomVO> sbModelSpareBomVOList;
 
+    private BigDecimal spareNum;
+
 }

+ 38 - 0
platform-dao/src/main/java/com/platform/dao/vo/spare/SpareStoreInfoVO.java

@@ -0,0 +1,38 @@
+package com.platform.dao.vo.spare;
+
+import com.platform.common.bean.BaseVO;
+import com.platform.dao.vo.query.store.InStoreFormVO;
+import com.platform.dao.vo.query.store.OutStoreFormVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author future
+ * @Date 2020/6/30
+ * @Version Copyright (c) 2019,安徽阡陌网络科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SpareStoreInfoVO extends BaseVO implements Serializable {
+
+    private BigDecimal totalPrice;
+
+//    private List<SpareTypeVO> spareTypeVO;
+    private BigDecimal bigClassNum;
+    private BigDecimal smallClassNum;
+
+    private List<InStoreFormVO> inStoreFormVOS;
+
+    private List<OutStoreFormVO> outStoreFormVOS;
+
+
+
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/vo/spare/SpareTypeVO.java

@@ -0,0 +1,26 @@
+package com.platform.dao.vo.spare;
+
+import com.platform.common.bean.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description
+ * @Author future
+ * @Date 2020/6/30
+ * @Version Copyright (c) 2019,安徽阡陌网络科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SpareTypeVO extends BaseVO implements Serializable {
+
+    private Integer num;
+    private Integer type;
+
+
+}

+ 9 - 0
platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml

@@ -109,6 +109,12 @@
             <if test="repairStartTimeEnd != null">
                 and application.repair_start_time <![CDATA[ < ]]> #{repairStartTimeEnd}
             </if>
+            <if test="dispatchUserId != null">
+                and application.dispatch_user_id = #{dispatchUserId}
+            </if>
+            <if test="checkAllFlag != null and checkAllFlag == 1">
+                and application.check_user_id is not null
+            </if>
         </where>
     </select>
     <select id="selectById" parameterType="java.lang.Object"
@@ -265,6 +271,9 @@
             <if test="type != null">
                 type = #{type},
             </if>
+            <!--<if test="dispatchUserId">
+                and dispatch_user_id = #{dispatchUserId}
+            </if>-->
         </set>
         where id = #{id}
     </update>

+ 31 - 0
platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml

@@ -78,4 +78,35 @@
             where id = #{item.id}
         </foreach>
     </update>
+
+    <select id="selectVOList1" parameterType="com.platform.dao.dto.sb.SbModelSpareBomDTO"
+            resultType="com.platform.dao.vo.sb.SbModelSpareBomVO">
+        select
+        partInfo.name as spareName,used.change_date,used.real_change_date,
+        <include refid="Left_Column"/>
+        from t_sb_model_spare_bom bom
+        LEFT JOIN t_sb_info sbInfo ON bom.sb_id = sbInfo.id
+        LEFT JOIN t_part_info part on bom.sb_part_id = part.id
+        left join t_spare_part_info partInfo on bom.spare_id = partInfo.id
+        left join t_spare_part_used used on used.spare_id=bom.spare_id
+        <where>
+            <if test="spareId != null">
+                and bom.spare_id = #{spareId}
+            </if>
+            <if test="sbId != null">
+                and bom.sb_id = #{sbId}
+            </if>
+            <if test="isSpecial != null">
+                and partInfo.is_special = #{isSpecial}
+            </if>
+            <if test="keyword != null and keyword != ''">
+                and (
+                sbInfo.no like concat('%',#{keyword},'%')
+                or sbInfo.name like concat('%',#{keyword},'%')
+                or sbInfo.model like concat('%',#{keyword},'%')
+                or sbInfo.zbh like concat('%',#{keyword},'%')
+                )
+            </if>
+        </where>
+    </select>
 </mapper>

+ 15 - 0
platform-dao/src/main/resources/mapper/sqarepartmanage/SpareTypeMapper.xml

@@ -56,4 +56,19 @@
         from t_spare_type
         where id = #{value}
     </select>
+
+    <select id="getSpareTypeVo" parameterType="com.platform.dao.dto.store.SpareStoreDTO"
+            resultType="com.platform.dao.vo.spare.SpareTypeVO">
+        SELECT type.type, COUNT(DISTINCT type.id) num FROM
+t_spare_type TYPE JOIN t_spare_part_info info
+ON type.id=info.`type_id`
+JOIN t_spare_store store ON
+store.`spare_id`=info.`id`
+<where>
+    <if test="storeId!=null">
+        store.store_id=#{storeId}
+    </if>
+</where>
+GROUP BY type.type
+    </select>
 </mapper>

+ 12 - 0
platform-dao/src/main/resources/mapper/store/SpareStoreMapper.xml

@@ -215,6 +215,7 @@
             <if test="isSpecial != null">
                 and spareinfo.is_special = #{isSpecial}
             </if>
+
         </where>
     </select>
     <select id="selectDetail" parameterType="com.platform.dao.dto.store.SpareStoreDTO"
@@ -263,4 +264,15 @@
         </foreach>
     </update>
 
+    <select id="getTotalPrice" parameterType="com.platform.dao.dto.store.SpareStoreDTO"
+            resultType="BigDecimal">
+        SELECT SUM(store.num*store.price) AS totalPrice
+FROM t_spare_store store
+<where>
+    <if test="storeId!=null">
+        store.store_id=#{storeId}
+    </if>
+</where>
+    </select>
+
 </mapper>

+ 8 - 1
platform-dao/src/main/resources/mapper/upms/SysUserMapper.xml

@@ -70,7 +70,14 @@
                 #{item}
             </foreach>
         </if>
-        order by u.update_time desc
+        <choose>
+            <when test="orderByFlag != null and orderByFlag == 1">
+                order by u.created_time asc
+            </when>
+            <otherwise>
+                order by u.update_time desc
+            </otherwise>
+        </choose>
     </select>
 
     <select id="selectUserNameById" resultType="java.lang.String" parameterType="java.lang.Object">

+ 39 - 0
platform-dao/src/main/resources/mapper/workplace/WorkplaceBacklogMapper.xml

@@ -44,4 +44,43 @@
           and task.loan_id = #{loanId}
           and type = 4
     </update>
+
+    <select id="queryNew" resultType="com.platform.dao.vo.query.workplace.WorkplaceBacklogUserVO"
+            parameterType="com.platform.dao.dto.workplace.WorkplaceBacklogUserDTO">
+        select bu.id as id,
+        bu.user_id as userId,
+        bu.created_time as createdTime,
+        b.id as backlog_id,
+        b.content as content,
+        b.task_create_time as taskCreateTime,
+        b.detail_type as detailType,
+        b.type as type,
+        b.other_id as otherId,
+        b.target_id as targetId,
+        bu.status FROM t_workplace_backlog b JOIN `t_workplace_backlog_user` bu ON
+        b.id = bu.`backlog_id`
+        <where>
+<!--            <if test="deptType != null and deptType != ''">-->
+<!--                and b.dept_type = #{deptType}-->
+<!--            </if>-->
+<!--            <if test="types != null">-->
+<!--                AND b.type in-->
+<!--                <foreach item="item" index="index" collection="types" open="(" close=")" separator=",">-->
+<!--                    #{item}-->
+<!--                </foreach>-->
+<!--            </if>-->
+            <if test="type != null">
+                and b.type = #{type}
+            </if>
+            <if test="status != null">
+                and bu.status = #{status}
+            </if>
+            <if test="content != null and content != ''">
+                and bu.content = #{content}
+            </if>
+            <if test="userId!=null">
+                and bu.user_id=#{userId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 22 - 1
platform-dao/src/main/resources/mapper/workplace/WorkplaceBacklogUserMapper.xml

@@ -69,11 +69,32 @@
                b.type             as type,
                b.other_id         as otherId,
                b.target_id        as targetId,
-               b.status
+               bu.status
         from t_workplace_backlog_user bu
                  left join t_workplace_backlog b on bu.backlog_id = b.id
         where bu.id = #{id}
         order by bu.created_time desc
     </select>
 
+    <select id="updateByPrimaryKeySelective1" parameterType="com.platform.dao.entity.workplace.WorkplaceBacklogUser"
+            resultType="int">
+        update t_workplace_backlog_user
+        set status=2
+        where 1=1
+        <if test="id!=null">
+            and id=#{id}
+        </if>
+        <if test="userId!=null">
+            and user_id=#{userId}
+        </if>
+        <if test="backlogId!=null">
+            and backlog_id=#{backlogId}
+        </if>
+        <if test="createdTime!=null">
+            and created_time=#{createdTime}
+        </if>
+
+
+    </select>
+
 </mapper>

+ 8 - 0
platform-rest/src/main/java/com/platform/rest/controller/store/SpareStoreController.java

@@ -178,4 +178,12 @@ public class SpareStoreController {
     ExcelUtil.exportResponseDict(response, ExportSpareStoreVO.class, BeanConverterUtil.copyListProperties(list, ExportSpareStoreVO.class), storeName +"-备件库存导出");
   }
 
+  @GetMapping("/info")
+  @SysLog("仓库备件相关信息")
+  public R getSpareStoreInfo(HttpServletResponse response, SpareStoreDTO spareStoreDTO) {
+    return new R<>(spareStoreService.getSpareStoreInfo(spareStoreDTO));
+  }
+
+
+
 }

+ 49 - 10
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -550,18 +550,57 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
 
                 CheckJob checkJob = new CheckJob();
                 checkJob.setSbId(standard.getSbId());
+            SbInfo sbInfo = sbInfoService.getModelById(standard.getSbId());
 
                 // 有可能设备已经删除了,继续执行其他的
-                if(StringUtils.isBlank(standard.getSbId())){
-                    throw new DeniedException("设备已经被删除了,无法生成保养任务!");
-                }
-                SbInfo sbInfo = sbInfoService.getModelById(standard.getSbId());
-                if(sbInfo == null){
-                    throw new DeniedException("没有找到该设备,无法生成保养任务!");
-                }
-                if(!sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())){
-                    throw new DeniedException("设备不在使用中,无法生成保养任务!");
-                }
+            switch (standard.getType()){
+                case 1:
+                    if(StringUtils.isBlank(standard.getSbId())){
+                        throw new DeniedException("设备已经被删除了,无法生成点检任务!");
+                    }
+
+                    if(sbInfo == null){
+                        throw new DeniedException("没有找到该设备,无法生成点检任务!");
+                    }
+                    if(!sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())){
+                        throw new DeniedException("设备不在使用中,无法生成点检任务!");
+                    }
+                    break;
+
+                case 2:
+                    if(StringUtils.isBlank(standard.getSbId())){
+                        throw new DeniedException("设备已经被删除了,无法生成保养任务!");
+                    }
+                    if(sbInfo == null){
+                        throw new DeniedException("没有找到该设备,无法生成保养任务!");
+                    }
+                    if(!sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())){
+                        throw new DeniedException("设备不在使用中,无法生成保养任务!");
+                    }
+                    break;
+
+                case 3:
+                    if(StringUtils.isBlank(standard.getSbId())){
+                        throw new DeniedException("设备已经被删除了,无法生成润滑任务!");
+                    }
+                    if(sbInfo == null){
+                        throw new DeniedException("没有找到该设备,无法生成润滑任务!");
+                    }
+                    if(!sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())){
+                        throw new DeniedException("设备不在使用中,无法生成润滑任务!");
+                    }
+                    break;
+            }
+//                if(StringUtils.isBlank(standard.getSbId())){
+//                    throw new DeniedException("设备已经被删除了,无法生成保养任务!");
+//                }
+//                SbInfo sbInfo = sbInfoService.getModelById(standard.getSbId());
+//                if(sbInfo == null){
+//                    throw new DeniedException("没有找到该设备,无法生成保养任务!");
+//                }
+//                if(!sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())){
+//                    throw new DeniedException("设备不在使用中,无法生成保养任务!");
+//                }
                 if(standard.getCheckUserType() == null){
                     if(standard.getPeriodType()< CheckPlanPeriodTypeEnum.WEEK.getValue()){
                         checkJob.setCheckUserId(sbInfo.getSaveUser());

+ 29 - 34
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -144,46 +144,21 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
     @Override
     public MyVOPage<RepairApplicationFormVO> selectPageInfoVO(RepairApplicationFormDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-
-        /*if (record.getSearchType() != null) {
-            // 获取报修人
-            if (record.getSearchType() == 1) {
-                if (record.getFilter() != null && DataFilterTypeEnum.SELF.getValue() == record.getFilter().intValue()) {
-                    UserInfo userInfo = SecurityUtils.getUserInfo();
-                    record.setUserId(userInfo.getUserId());
-                }
-            }
-            // 获取维修人,包括第二维修人
-            if (record.getSearchType() == 2) {
-                if (record.getFilter() != null && DataFilterTypeEnum.SELF.getValue() == record.getFilter().intValue()) {
-                    UserInfo userInfo = SecurityUtils.getUserInfo();
-                    record.setRepairUserId(userInfo.getUserId());
-                }
-            }
-            // 获取验收人
-            if (record.getSearchType() == 3) {
-                if (record.getFilter() != null && DataFilterTypeEnum.SELF.getValue() == record.getFilter().intValue()) {
-                    UserInfo userInfo = SecurityUtils.getUserInfo();
-                    record.setCheckUserId(userInfo.getUserId());
-                }
-            }
-        }*/
-
         UserInfo userInfo = SecurityUtils.getUserInfo();
         record.setRepairUserId(userInfo.getUserId());
-        // 排除超级用户
-        String userNames = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SUPER_USERS.name());
-        if(StringUtils.isBlank(userNames)){
-            throw new DeniedException("请设置维修菜单的超级用户");
-        }
-        if(userNames.contains(userInfo.getUsername())){
-            record.setRepairUserId(null);
-        }
+        String repairModel = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_STRATEGY_MODEL.name()); // 维修模式
         if(record.getSearchType() != null){
             List<Integer> statusList = new ArrayList<>();
             if(record.getSearchType() == 1){ // 待分配
                 statusList.add(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
-                record.setRepairUserId(null);
+                switch (repairModel){
+                    case CommonConstants.REPAIR_STRATEGY_MODEL_BASE:
+                        record.setRepairUserId(null);
+                        break;
+                    case CommonConstants.REPAIR_STRATEGY_MODEL_DISPATCH:
+                        record.setDispatchUserId(SecurityUtils.getUserInfo().getUserId());
+                        break;
+                }
             }
             if(record.getSearchType() == 2){ // 待维修
                 statusList.add(RepairApplicationFormStatusEnum.PROCESSING.getValue());
@@ -205,8 +180,28 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 statusList.add(RepairApplicationFormStatusEnum.NOT_ACCEPTANCE.getValue());
                 statusList.add(RepairApplicationFormStatusEnum.REBACK.getValue());
             }
+            if(record.getSearchType() == 7){
+                // 获取验收人
+                record.setRepairUserId(null);
+                record.setCheckUserId(SecurityUtils.getUserInfo().getUserId());
+            }
             record.setStatusList(statusList);
         }
+        // 排除超级用户
+        String userNames = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SUPER_USERS.name()); // 超级用户
+        if(StringUtils.isBlank(userNames)){
+            throw new DeniedException("请设置维修菜单的超级用户");
+        }
+        // 维修模式为派工的情况
+        if(userNames.contains(userInfo.getUsername())){
+            record.setRepairUserId(null);
+            record.setDispatchUserId(null);
+            // 超级可以看到所有待审核的工单
+            if(record.getSearchType() != null && record.getSearchType() == 7){
+                record.setCheckUserId(null);
+                record.setCheckAllFlag(1);
+            }
+        }
         return new MyVOPage<>(mapper.selectPageList(record));
     }
 

+ 6 - 13
platform-service/src/main/java/com/platform/service/repair/strategy/AbstractRepairBaseStrategy.java

@@ -127,23 +127,16 @@ public abstract class AbstractRepairBaseStrategy implements RepairBaseStrategy{
         if (!RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue().equals(applicationForm.getStatus()) && !RepairApplicationFormStatusEnum.REBACK.getValue().equals(applicationForm.getStatus())) {
             throw new BusinessException("该状态不允许接收任务");
         }
-        model.setRepairStartTime(applicationForm.getRepairStartTime());
-        model.setApplyTime(applicationForm.getApplyTime());
-        model.setNo(applicationForm.getNo());
-        model.setUserId(applicationForm.getUserId());
         SbInfo sbInfo = sbInfoService.getModelById(applicationForm.getSbId());
         if (sbInfo == null) {
             throw new BusinessException("设备不存在,无法接收");
         }
-        /*if (sbInfo.getRepairUser() == null) {
-            throw new BusinessException("设备的第一维修人未设置,无法接受任务");
-        }
-        if (sbInfo.getRepairUserSecond() == null) {
-            throw new BusinessException("设备的第二维修人未设置,无法接受任务");
-        }
-        if (!SecurityUtils.isRole(SysRoleCodeEnum.MM.name()) && !SecurityUtils.isRole(SysRoleCodeEnum.Maintenance.name())) {
-            throw new BusinessException("您不是维修人或维修主管,无法接受任务");
-        }*/
+        model.setRepairStartTime(applicationForm.getRepairStartTime());
+        model.setApplyTime(applicationForm.getApplyTime());
+        model.setNo(applicationForm.getNo());
+        model.setUserId(applicationForm.getUserId());
+        model.setDispatchUserId(applicationForm.getDispatchUserId());
+        model.setRepairDispatchList(applicationForm.getRepairDispatchList());
         return model;
     }
 

+ 163 - 0
platform-service/src/main/java/com/platform/service/repair/strategy/impl/AllocateRepairBaseStrategy.java

@@ -1,9 +1,172 @@
 package com.platform.service.repair.strategy.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.platform.common.cache.ConfigCache;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.exception.DeniedException;
+import com.platform.common.model.UserInfo;
+import com.platform.common.util.*;
+import com.platform.dao.dto.repair.RepairApplicationFormDTO;
+import com.platform.dao.dto.upms.SysUserDTO;
+import com.platform.dao.entity.repair.RepairApplicationForm;
+import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.entity.upms.SysUser;
+import com.platform.dao.enums.*;
+import com.platform.dao.util.MessageTemplateUtil;
+import com.platform.dao.vo.SysUserVO;
+import com.platform.dao.vo.sb.SbInfoVO;
+import com.platform.service.event.WorkplaceBacklogEvent;
 import com.platform.service.repair.strategy.AbstractRepairBaseStrategy;
 import org.springframework.stereotype.Component;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
 @Component
 public class AllocateRepairBaseStrategy extends AbstractRepairBaseStrategy {
 
+    @Override
+    public RepairApplicationForm callRepair(RepairApplicationFormDTO model) {
+        RepairApplicationForm form = super.callRepair(model);
+        // 根据自身需要将任务推送通知还是派送到具体主管手上
+        SysUserDTO query = new SysUserDTO();
+        query.setOrderByFlag(1);
+        query.setRoleCode(SysRoleCodeEnum.REPAIR_DISPATCH.name());
+        List<SysUserVO> users = sysUserService.selectDeptRoleUser(query);
+        String dispatchUserId = "";
+        if (CollectionUtil.isNotEmpty(users)) {
+            int size = users.size()-1;
+            if(size == 0){ // 就他一个,直接就给他了
+                dispatchUserId = users.get(0).getUserId();
+            }else{
+                String key = SysRoleCodeEnum.REPAIR_DISPATCH.name() + "_dispatchIndex";
+                // 平均派发任务
+                String dispatchIndex = RedisUtils.getString(key);
+                int indexNum = 0;
+                if(!StringUtils.isBlank(dispatchIndex)){
+                    indexNum = Integer.parseInt(dispatchIndex);
+                }
+                indexNum = indexNum == size ? 0 : indexNum; // 从头再来
+                dispatchUserId = users.get(indexNum).getUserId();
+                indexNum++;
+                RedisUtils.del(key);
+                RedisUtils.setString(key,indexNum+"");
+            }
+        } else {
+            throw new BusinessException("派工角色:REPAIR_DISPATCH未绑定用户,REPAIR_DISPATCH为维修单派发人,请设置用户");
+        }
+        RepairApplicationForm updForm = new RepairApplicationForm();
+        updForm.setId(form.getId());
+        //updForm.setDispatchTime(LocalDateTime.now());
+        updForm.setDispatchUserId(dispatchUserId);
+        repairApplicationFormMapper.updateByPrimaryKeySelective(updForm);
+        // 这里的基础模式是,维修人员自主接收,我们获取需要需要派送的信息Ids集合
+        List<String> openIds = new ArrayList<>();
+        List<String> userIds = new ArrayList<>();
+        List<String> mails = new ArrayList<>();
+        List<String> receiverList = new ArrayList<>();
+
+        // 发送短信通知给所有维修,且必须是正式环境
+        SysUserDTO sysUserDTO = new SysUserDTO();
+        sysUserDTO.setRoleCode(SysRoleCodeEnum.Maintenance.name());
+        List<SysUserVO> sysUserVOList = sysUserService.getDeptChildrenRoleUser(sysUserDTO);
+        if (CollectionUtil.isNotEmpty(sysUserVOList)) {
+            for (SysUserVO sysUserVO : sysUserVOList) {
+                // 站内信需要用户id
+                userIds.add(sysUserVO.getUserId());
+                if (StringUtils.isNotBlank(sysUserVO.getWxOpenid())) {
+                    // 微信id
+                    openIds.add(sysUserVO.getWxOpenid());
+                }
+                if (StringUtils.isNotBlank(sysUserVO.getPhone())) {
+                    // 手机
+                    receiverList.add(sysUserVO.getPhone());
+                }
+                if (StringUtils.isNotBlank(sysUserVO.getEmail())) {
+                    // 邮箱
+                    mails.add(sysUserVO.getEmail());
+                }
+            }
+        }
+        model = BeanConverterUtil.copyObjectProperties(form,RepairApplicationFormDTO.class);
+        SbInfo sb = sbInfoService.getModelById(model.getSbId());
+        // 推送站内信和邮箱,根据业务需要
+        sendWorkplaceAndEmail(mails,userIds,model,sb);
+        // 推送微信
+        sendWechat(openIds,model,sb);
+        // 短信
+        sendSms(receiverList,model,sb);
+        // 启动超时监控
+        overTimeListen(form.getId());
+        return form;
+    }
+
+    @Override
+    public RepairApplicationFormDTO sendRepair(RepairApplicationFormDTO model) {
+        RepairApplicationFormDTO superModel = super.sendRepair(model);
+        // 自己派工
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        String userNames = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_SUPER_USERS.name()); // 超级用户
+        if(StringUtils.isNotBlank(userNames) && !userNames.contains(userInfo.getUsername())){
+            // 非超级用户,判断是否具有审核派工权限
+            if(!userInfo.getUserId().equals(model.getDispatchUserId())){
+                throw new DeniedException("您不具有派工权限");
+            }
+        }
+        RepairApplicationForm applicationForm = new RepairApplicationForm();
+        applicationForm.setId(model.getId());
+        applicationForm.setRepairUserId(superModel.getRepairUserId());
+        applicationForm.setStatus(RepairApplicationFormStatusEnum.PROCESSING.getValue());
+        if (superModel.getRepairStartTime() == null) {
+            applicationForm.setRepairStartTime(LocalDateTime.now());
+        }
+        applicationForm.setReceiveMinutes(DateUtils.getDurationHours(superModel.getApplyTime(), applicationForm.getRepairStartTime()));
+        applicationForm.setUpdateTime(LocalDateTime.now());
+        repairApplicationFormMapper.updateByPrimaryKeySelective(applicationForm);
+        // 给报修人发送消息
+        sendMessageToRepairCaller(superModel.getId(),superModel.getNo(),superModel.getUserId());
+        return model;
+    }
+
+    @Override
+    public RepairApplicationForm submitRepair(RepairApplicationFormDTO model) {
+        RepairApplicationForm applicationForm = super.submitRepair(model);
+        SbInfoVO sbInfoVO = sbInfoService.getById(applicationForm.getSbId());
+        // 默认的提交审核后的审核人,就是维修主管的角色,每家不同自行实现
+        SysUserVO userVO;
+        SysUserDTO query = new SysUserDTO();
+        query.setRoleCode(SysRoleCodeEnum.REPAIR_EXAMINE.name());
+        List<SysUserVO> users = sysUserService.selectDeptRoleUser(query);
+        if (CollectionUtil.isNotEmpty(users)) {
+            userVO = users.get(0);
+        } else {
+            throw new BusinessException("审核角色:REPAIR_EXAMINE未绑定用户,REPAIR_EXAMINE为维修单最终验收人,请设置用户");
+        }
+        applicationForm.setCheckUserId(userVO.getUserId());
+        repairApplicationFormMapper.updateByPrimaryKeySelective(applicationForm);
+        // 发送邮件和通知
+        String domain = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.SYSTEM_DOMAIN.name());
+        if (StringUtils.isBlank(domain)) {
+            throw new BusinessException("请先设置系统域名地址,系统管理-》系统参数配置-》SYSTEM_DOMAIN");
+        }
+        if (!domain.endsWith("/")) {
+            domain = domain + "/";
+        }
+        String repairUrl = domain + "repair/application/form/check?no=" + applicationForm.getNo();
+        SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), WorkplaceBacklogDetailTypeEnum.REPAIR_EXAMINE.getValue(),
+                applicationForm.getId(), MessageTemplateUtil.getFreemarkerHtmlContentCheck(repairUrl, BeanConverterUtil.copyObjectProperties(applicationForm, RepairApplicationFormDTO.class), sbInfoVO),
+                applicationForm.getId(), ListUtils.newArrayList(userVO.getUserId()), ListUtils.newArrayList(userVO.getEmail())));
+        return applicationForm;
+    }
+
+    @Override
+    public RepairApplicationFormDTO verifyRefused(RepairApplicationFormDTO model) {
+        RepairApplicationFormDTO dto = super.verifyRefused(model);
+        SysUser noticeUser = sysUserService.getModelById(dto.getRepairUserId());
+        SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), WorkplaceBacklogDetailTypeEnum.REPAIR_BACK.getValue(),
+                dto.getId(), MessageTemplateUtil.getRepairBack(dto.getNo()),
+                dto.getId(), ListUtils.newArrayList(dto.getRepairUserId()), ListUtils.newArrayList(noticeUser.getEmail())));
+        return dto;
+    }
 }

+ 1 - 1
platform-service/src/main/java/com/platform/service/repair/strategy/impl/BaseRepairBaseStrategy.java

@@ -89,7 +89,7 @@ public class BaseRepairBaseStrategy extends AbstractRepairBaseStrategy {
         if (superModel.getRepairStartTime() == null) {
             applicationForm.setRepairStartTime(LocalDateTime.now());
         }
-        applicationForm.setReceiveMinutes(DateUtils.getDurationHours(superModel.getApplyTime(), applicationForm.getRepairStartTime()));
+        applicationForm.setReceiveMinutes(DateUtils.getDurationHours(superModel.getApplyTime(), superModel.getRepairStartTime()));
         // 根据配置判断维修是否超时
         String minuteStr = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_WARN_MINUTE.name());
         if (StringUtils.isBlank(minuteStr)) {

+ 7 - 1
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -602,13 +602,16 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         SbInfoVO sbInfoVO=sbInfoMapper.getById(sbInfoDTO.getId());
         List<SbInfoVO> ids=sbInfoMapper.getSubSb(sbInfoDTO);
         SbTreeVO sbTreeVO = new SbTreeVO();
+        sbTreeVO.setModel(sbInfoVO.getModel());
         sbTreeVO.setName(sbInfoVO.getName());
+        sbTreeVO.setStatus(sbInfoVO.getStatus());
         List<SbTreeVO> subSbTreeList=new ArrayList<>();
         if(ids!=null&&ids.size()>0){
             for(SbInfoVO id: ids){
                 SbInfoDTO infoDTO=new SbInfoDTO();
                 SbTreeVO subSbTreeVO= getSbVOById(infoDTO.setId(id.getId()));
 //                subSbTreeVO.setName(id.getName());
+
                 subSbTreeList.add(subSbTreeVO);
 
             }
@@ -619,7 +622,10 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         partInfoDTO.setSbId(sbInfoDTO.getId());
         sbModelSpareBomDTO.setSbId(sbInfoDTO.getId());
         List<PartInfo> partInfoList = partInfoMapper.selectPageList(partInfoDTO);
-        List<SbModelSpareBomVO> sbModelSpareBomVOList = sbModelSpareBomMapper.selectVOList(sbModelSpareBomDTO);
+        List<SbModelSpareBomVO> sbModelSpareBomVOList = sbModelSpareBomMapper.selectVOList1(sbModelSpareBomDTO);
+//        BigDecimal spareNum=new BigDecimal(0);
+//        spareNum=new BigDecimal(subSbTreeList.size());
+//        sbTreeVO.setSpareNum(spareNum);
         List<SbModelSpareBomVO> spareList = new ArrayList<>();
         List<SbModelSpareBomVO> spareList2 = new ArrayList<>();
         for (PartInfo info : partInfoList) {

+ 6 - 0
platform-service/src/main/java/com/platform/service/store/SpareStoreService.java

@@ -4,6 +4,7 @@ import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.vo.spare.SpareStoreInfoVO;
 import com.platform.service.base.IBaseService;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -70,4 +71,9 @@ public interface SpareStoreService extends IBaseService<SpareStore, SpareStoreDT
     void generateStoreReport();
 
     List<SpareStoreVO> selectFinanceReportList(String projectId, SpareStoreDTO spareStoreDTO, int type);
+
+ /**
+  * 根据仓库id查询备件类型数,备件总价值,入库单和出库单等
+  */
+ SpareStoreInfoVO getSpareStoreInfo(SpareStoreDTO spareStoreDTO);
 }

+ 6 - 3
platform-service/src/main/java/com/platform/service/store/impl/InStoreFormServiceImpl.java

@@ -570,7 +570,7 @@ public class InStoreFormServiceImpl extends BaseServiceImpl<InStoreFormMapper, I
         UserInfo userInfo = SecurityUtils.getUserInfo();
         InStoreForm model = this.getModelById(id);
         // 采购单入库的路由至新流程
-        if (InStoreTypeEnum.CAIGOU_RUKU.getValue() == model.getType()) {
+        if (InStoreTypeEnum.CAIGOU_RUKU.getValue() == model.getType() && StringUtils.isNotBlank(model.getPurchaseId())) {
             handlePurchaseInForm(model, userInfo);
             return;
         }
@@ -866,10 +866,13 @@ public class InStoreFormServiceImpl extends BaseServiceImpl<InStoreFormMapper, I
                 throw new BusinessException("找不到该备件仓库!,备件ID:" + detail.getSpareId() + ",仓库ID:" + detail.getStoreId());
             } else {
                 BigDecimal rest = spareStore.getNum().subtract(detail.getNum());
+
                 if (rest.compareTo(new BigDecimal(0)) < 0) {
-                    throw new BusinessException("库存不足,请调整出库数量,或等采购入库!");
+//                    throw new BusinessException("库存不足,请调整出库数量,或等采购入库!");
+                    spareStore.setNum(spareStore.getNum());
+                }else {
+                    spareStore.setNum(rest);
                 }
-                spareStore.setNum(rest);
                 spareStore.setUpdateTime(LocalDateTime.now());
                 spareStore.setUpdateUserId(userInfo.getUserId());
                 spareStore.setUpdateUserName(userInfo.getRealName());

+ 47 - 0
platform-service/src/main/java/com/platform/service/store/impl/SpareStoreServiceImpl.java

@@ -13,17 +13,26 @@ import com.platform.dao.bean.MyPage;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.sqarepartmanage.SpareTypeDTO;
+import com.platform.dao.dto.store.InStoreFormDTO;
+import com.platform.dao.dto.store.OutStoreFormDTO;
 import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.dao.entity.store.Store;
 import com.platform.dao.enums.StoreLevelEnum;
 import com.platform.dao.mapper.sqarepartmanage.SparePartUsedMapper;
+import com.platform.dao.mapper.sqarepartmanage.SpareTypeMapper;
+import com.platform.dao.mapper.store.InStoreFormMapper;
+import com.platform.dao.mapper.store.OutStoreFormMapper;
 import com.platform.dao.mapper.store.SpareStoreMapper;
+import com.platform.dao.vo.query.store.InStoreFormVO;
+import com.platform.dao.vo.query.store.OutStoreFormVO;
 import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.dao.vo.query.store.StoreVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.dao.vo.spare.SparePartUsedVO;
+import com.platform.dao.vo.spare.SpareStoreInfoVO;
+import com.platform.dao.vo.spare.SpareTypeVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.sb.SbModelSpareBomService;
 import com.platform.service.sqarepartmanage.SpareTypeService;
@@ -40,6 +49,8 @@ import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -61,6 +72,10 @@ public class SpareStoreServiceImpl extends BaseServiceImpl<SpareStoreMapper, Spa
     private SysDeptService sysDeptService;
     private SbModelSpareBomService sbModelSpareBomService;
     private SparePartUsedMapper sparePartUsedMapper;
+    private SpareStoreMapper spareStoreMapper;
+    private SpareTypeMapper spareTypeMapper;
+    private InStoreFormMapper inStoreFormMapper;
+    private OutStoreFormMapper outStoreFormMapper;
 
     @Override
     public SpareStoreVO getDetail(Object id) {
@@ -309,6 +324,7 @@ public class SpareStoreServiceImpl extends BaseServiceImpl<SpareStoreMapper, Spa
         return null;
     }
 
+
     @Override
     public void generateStoreReport() {
         List<Store> storeList = storeService.getModelListByModel(new Store());
@@ -319,4 +335,35 @@ public class SpareStoreServiceImpl extends BaseServiceImpl<SpareStoreMapper, Spa
 
         }
     }
+
+    @Override
+    public SpareStoreInfoVO getSpareStoreInfo(SpareStoreDTO spareStoreDTO) {
+        SpareStoreInfoVO spareStoreInfoVO=new SpareStoreInfoVO();
+        BigDecimal totalPrice= spareStoreMapper.getTotalPrice(spareStoreDTO);
+        List<SpareTypeVO> spareTypeVO=spareTypeMapper.getSpareTypeVo(spareStoreDTO);
+        InStoreFormDTO inQuery=new InStoreFormDTO();
+        inQuery.setStoreId(spareStoreDTO.getStoreId());
+        OutStoreFormDTO outQuery=new OutStoreFormDTO();
+        outQuery.setStoreId(spareStoreDTO.getStoreId());
+        List<InStoreFormVO> inStoreFormVOS= inStoreFormMapper.selectList(inQuery);
+        List<OutStoreFormVO> outStoreFormVOS= outStoreFormMapper.selectList(outQuery);
+        Integer bigNum=0;
+        Integer smallNum=0;
+        if(spareTypeVO!=null){
+            for(SpareTypeVO vo:spareTypeVO){
+                if(vo.getType()==1){
+                    bigNum+=vo.getNum();
+                }else if(vo.getType()==2){
+                    smallNum+=vo.getNum();
+                }
+            }
+        }
+
+        spareStoreInfoVO.setBigClassNum(new BigDecimal(bigNum));
+        spareStoreInfoVO.setSmallClassNum(new BigDecimal(smallNum));
+        spareStoreInfoVO.setTotalPrice(totalPrice);
+        spareStoreInfoVO.setInStoreFormVOS(inStoreFormVOS);
+        spareStoreInfoVO.setOutStoreFormVOS(outStoreFormVOS);
+        return spareStoreInfoVO;
+    }
 }

+ 11 - 5
platform-service/src/main/java/com/platform/service/workplace/impl/WorkplaceBacklogServiceImpl.java

@@ -117,10 +117,15 @@ public class WorkplaceBacklogServiceImpl extends BaseServiceImpl<WorkplaceBacklo
         if (log == null) {
             throw new BusinessException(ResultCode.DATA_NOT_EXIST);
         }
-//        WorkplaceBacklogUser logUser = new WorkplaceBacklogUser(IdGeneratorUtils.getObjectId(), SecurityUtils.getUser().getId(), log.getId(), LocalDateTime.now());
-//        workplaceBacklogUserMapper.insert(logUser);
-        log.setStatus(WorkplaceBacklogStatusEnum.WORKPLACE_BACKLOG_STATUS_END.getValue());
-        mapper.updateByPrimaryKeySelective(log);
+        WorkplaceBacklogUser queryUser = new WorkplaceBacklogUser();
+        queryUser.setUserId(SecurityUtils.getUserInfo().getUserId());
+        queryUser.setBacklogId(id);
+        WorkplaceBacklogUser logUser = workplaceBacklogUserMapper.selectOne(queryUser);
+        String userLogId = logUser.getId();
+        logUser = new WorkplaceBacklogUser();
+        logUser.setId(userLogId);
+        logUser.setStatus(WorkplaceBacklogStatusEnum.WORKPLACE_BACKLOG_STATUS_END.getValue());
+        workplaceBacklogUserMapper.updateByPrimaryKeySelective1(logUser);
     }
 
     @Override
@@ -153,7 +158,8 @@ public class WorkplaceBacklogServiceImpl extends BaseServiceImpl<WorkplaceBacklo
         PageHelper.startPage(pageNum, pageSize);
         String userId = SecurityUtils.getUserInfo().getUserId();
         model.setUserId(userId);
-        return new MyVOPage<>(workplaceBacklogUserMapper.selectByUser(model));
+        return new MyVOPage<>(mapper.queryNew(model));
+        //return new MyVOPage<>(workplaceBacklogUserMapper.selectByUser(model));
     }
 
 }