Browse Source

增加定时任务

daili 3 years ago
parent
commit
1c492868f7

+ 128 - 0
application-facade/src/main/java/com/factory/scheduled/CreateIniBase.java

@@ -0,0 +1,128 @@
+package com.factory.scheduled;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.json.JSONUtil;
+import com.factory.base.entity.enumPo.CheckTypeSubmit;
+import com.factory.base.entity.po.benteler.*;
+import com.factory.web.entity.vo.res.web.ini.PagePlanRes;
+import com.factory.web.mapper.ini.BentelerIniVersionMapper;
+import com.factory.web.service.BentelerPlanService;
+import com.factory.web.service.ini.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+@Slf4j
+@Component
+@EnableScheduling
+@Transactional(rollbackFor = Exception.class)
+public class CreateIniBase {
+    @Autowired
+    private BentelerIniVersionMapper versionMapper;
+    @Autowired
+    private BentelerPlanService planService;
+    @Autowired
+    private BentelerIniVersionService versionService;
+    @Autowired
+    private BentelerIniCheckResultService checkResultService;
+    @Autowired
+    private BentelerIniCheckTypeService checkTypeService;
+    @Autowired
+    private BentelerIniCheckItemService checkItemService;
+    @Autowired
+    private BentelerIniVersionItemService versionItemService;
+
+    /**
+     * 每天0点执行
+     * 创建
+     * 结果单     Result
+     * 点检分类表 checkType
+     * 点检结果表 CheckItem
+     */
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void creat() {
+        List<PagePlanRes> planlist = versionMapper.Planlist(null, null, null);
+        Map<Long, List<PagePlanRes>> versionId_res_Map = planlist.stream()
+                //过滤
+                .filter(plan -> {
+
+                    Long versionId = plan.getVersionId();
+                    BentelerIniVersion version = versionService.getById(versionId);
+                    return version.getBeginDate().compareTo(LocalDate.now()) < 1;
+                })
+                //版本id分组
+                .collect(Collectors.groupingBy(PagePlanRes::getVersionId));
+
+        ArrayList<BentelerIniCheckType> checkTypeList = new ArrayList<>();
+        ArrayList<BentelerIniCheckItem> checkItems = new ArrayList<>();
+
+        versionId_res_Map.entrySet().forEach(map -> {
+            BentelerIniVersion version = versionService.getById(map.getKey());
+            BentelerPlan plan = planService.getById(version.getPlanId());
+            //创建结果单
+            BentelerIniCheckResult result = BentelerIniCheckResult.builder()
+                    .planId(plan.getId())
+                    .versionId(version.getId())
+                    .checkStatus(0)
+                    .abnormalFlag(false)
+                    .repeat(0)
+                    .build();
+            checkResultService.save(result);
+
+            String allChecktype = version.getAllChecktype();
+            List<Integer> integers = Convert.toList(Integer.class, allChecktype);
+            //分类循环
+            integers.forEach(inte -> {
+                //创建分类结果提交记录表
+                BentelerIniCheckType checkType = BentelerIniCheckType.builder()
+                        .checkResultId(result.getId())
+                        .checkType(inte)
+                        .status(CheckTypeSubmit.未保存.value)
+                        .build();
+
+                checkTypeList.add(checkType);
+                //每一个点检项创建一个 点检项结果表
+                map.getValue().forEach(item -> {
+                    BentelerIniVersionItem versionItem = versionItemService.getById(item.getVersionItemId());
+
+                    BentelerIniCheckItem checkItem = BentelerIniCheckItem.builder()
+                            .versionItemId(item.getVersionItemId())
+                            .checkResultId(result.getId())
+                            .checkType(inte)
+                            .dataType(versionItem.getDataType())
+                            .build();
+                    //填充空的得分json
+                    Integer begin = versionItem.getWorkStationBegin();
+                    Integer end = versionItem.getWorkStationEnd();
+                    List<IniGread> greads = IntStream.rangeClosed(begin, end)//
+                            .boxed()
+                            .map(workNum -> IniGread.builder()
+                                    .GreadFlag(versionItem.getDataType().equals(0))
+                                    .build())
+                            .collect(Collectors.toList());
+                    String greadJson = JSONUtil.toJsonStr(greads);
+                    checkItem.setGread(greadJson);
+                    checkItems.add(checkItem);
+                });
+
+            });
+        });
+        checkTypeService.saveBatch(checkTypeList);
+        checkItemService.saveBatch(checkItems);
+
+        log.info("创建" + LocalDate.now().toString() + "日 基础表单成功");
+
+    }
+
+
+}

+ 4 - 0
application-facade/src/main/java/com/factory/web/entity/vo/res/web/ini/PagePlanRes.java

@@ -27,6 +27,10 @@ public class PagePlanRes extends BaseIdReq {
     private Long planId;
     @ApiModelProperty(value = "版本id")
     private Long versionId;
+    @ApiModelProperty(value = "工作站id")
+    private Long workStationId;
+    @ApiModelProperty(value = "点检项id")
+    private Long versionItemId;
 
 
     @ApiModelProperty("计划名称")

+ 6 - 1
application-facade/src/main/java/com/factory/web/mapper/ini/BentelerIniVersionMapper.java

@@ -27,7 +27,12 @@ import java.util.List;
 @Mapper
 public interface BentelerIniVersionMapper extends BaseMapper<BentelerIniVersion> {
 
-    Page<PagePlanRes> planlist(@Param("page") Page<PagePlanRes> page,
+    Page<PagePlanRes> pagePlan(@Param("page") Page<PagePlanRes> page,
+                               @Param("name") String name,
+                               @Param("CheckStatus") Integer checkStatus);
+
+
+    List<PagePlanRes> Planlist(@Param("page") Page<PagePlanRes> page,
                                @Param("name") String name,
                                @Param("CheckStatus") Integer checkStatus);
 

+ 15 - 8
application-facade/src/main/java/com/factory/web/service/impl/ini/BentelerIniVersionServiceImpl.java

@@ -40,6 +40,7 @@ import org.springframework.validation.annotation.Validated;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 
@@ -73,7 +74,7 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
         String name = req.getName();
         Integer checkStatus = req.getCheckStatus();
         Page<PagePlanRes> page = new Page<>(req.getPage(), req.getSize());
-        return ResponseBeanBuilder.ok(versionMapper.planlist(page, name, checkStatus));
+        return ResponseBeanBuilder.ok(versionMapper.pagePlan(page, name, checkStatus));
 
     }
 
@@ -209,7 +210,7 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
     @Override
     public ResponseBean<PageBean<unAuditListRes>> unAuditList(PlanListReq req) {
         Page<unAuditListRes> unAuditListResPage = versionMapper.unAuditList(req);
-        return ResponseBeanBuilder.ok();
+        return ResponseBeanBuilder.ok(unAuditListResPage, Function.identity());
     }
 
     @Override
@@ -371,6 +372,7 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
         BentelerIniCheckResult checkResult = checkResultService.getOne(Wrappers.<BentelerIniCheckResult>lambdaQuery()
                 .eq(BentelerIniCheckResult::getVersionId, versionId)
                 .like(BentelerIniCheckResult::getCreatedTime, LocalDate.now())
+                .eq(BentelerIniCheckResult::getRepeat, 0)
         );
         List<BentelerIniVersionItem> versionItems = versionMapper.getWork_VersionItem(
                 req.getWorkStationId(),
@@ -469,7 +471,8 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
         return ResponseBeanBuilder.ok();
     }
 
-    private BentelerIniCheckType getResult_checkType(Long resultId, Integer checkType, LocalDate now) {
+    @Override
+    public BentelerIniCheckType getResult_checkType(Long resultId, Integer checkType, LocalDate now) {
         return checkTypeService.getOne(Wrappers.<BentelerIniCheckType>lambdaQuery()
                     .eq(BentelerIniCheckType::getCheckResultId, resultId)
                     .eq(BentelerIniCheckType::getCheckType, checkType)
@@ -478,7 +481,8 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
     }
 
 
-    private void assemblerVersionItem_checkItem(List<BentelerIniVersionItem> versionItems, Integer checkType, LocalDate now) {
+    @Override
+    public void assemblerVersionItem_checkItem(List<BentelerIniVersionItem> versionItems, Integer checkType, LocalDate now) {
         versionItems.forEach(item -> {
             Long versionItemId = item.getId();
             List<BentelerIniCheckItem> checkItems = checkItemService.list(Wrappers.<BentelerIniCheckItem>lambdaQuery()
@@ -491,8 +495,8 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
 
         });
     }
-
-    private void assemblerCheckItem_iniGread(List<BentelerIniCheckItem> checkItems) {
+    @Override
+    public void assemblerCheckItem_iniGread(List<BentelerIniCheckItem> checkItems) {
         checkItems.forEach(checkItem -> {
             String gread = checkItem.getGread();
             JSONArray greadsJson = JSONUtil.parseArray(gread);
@@ -502,6 +506,7 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
     }
 
     //PlanReq转化planPo
+    @Override
     public BentelerPlan planReq2planPo(AddIniPlanReq req, ReviewStatus reviewStatus) {
         //计划
         BentelerPlan plan = BentelerPlan.builder()
@@ -594,12 +599,13 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
     }
 
     //planPo转化AddIniPlanReq
+    @Override
     public AddIniPlanReq planPo2planReq(BentelerPlan plan) {
         BentelerIniVersion version = plan.getVersion();
         List<BentelerIniWorkstation> workstations = version.getWorkstations();
         List<AddIniPlanWorkReq> workReq = workstations.stream().map(workstation -> {
             List<BentelerIniVersionItem> versionItems = workstation.getVersionItems();
-            List<AddIniPlanItemReq> itemReqs = workstation.getVersionItems().stream().map(versionItemf -> {
+            List<AddIniPlanItemReq> itemReqs = versionItems.stream().map(versionItemf -> {
                 List<Integer> checkTypes = Convert.toList(Integer.class, versionItemf.getCheckType());
                 return AddIniPlanItemReq.builder()
                         .checkType(checkTypes)
@@ -664,7 +670,8 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
                 .versionWorks(workReq)
                 .build();
     }
-    //形成重复
+    //计划名称是否重复
+    @Override
     public boolean planNameRepetition(String name) {
         List<BentelerPlan> plans = planService.list(Wrappers.<BentelerPlan>lambdaQuery()
                 .eq(BentelerPlan::getName, name));

+ 16 - 2
application-facade/src/main/java/com/factory/web/service/ini/BentelerIniVersionService.java

@@ -2,8 +2,8 @@ package com.factory.web.service.ini;
 
 import com.factory.base.entity.aggregates.PageBean;
 import com.factory.base.entity.aggregates.ResponseBean;
-import com.factory.base.entity.po.benteler.BentelerIniCheckItem;
-import com.factory.base.entity.po.benteler.BentelerIniVersion;
+import com.factory.base.entity.enumPo.ReviewStatus;
+import com.factory.base.entity.po.benteler.*;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.factory.base.entity.vo.req.BaseIdReq;
 import com.factory.base.entity.vo.req.BasePageIdReq;
@@ -21,6 +21,7 @@ import com.factory.web.entity.vo.res.web.ini.GetVersionHistoryRes;
 import com.factory.web.entity.vo.res.web.ini.PagePlanRes;
 import com.factory.web.entity.vo.res.web.ini.unAuditListRes;
 
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -61,5 +62,18 @@ public interface BentelerIniVersionService extends IService<BentelerIniVersion>
     ResponseBean saveCheckItem(workTypeDetailsRes req);
 
     ResponseBean submitCheck(submitCheckReq req);
+
+     BentelerIniCheckType getResult_checkType(Long resultId, Integer checkType, LocalDate now) ;
+
+    void assemblerVersionItem_checkItem(List<BentelerIniVersionItem> versionItems, Integer checkType, LocalDate now);
+
+    void assemblerCheckItem_iniGread(List<BentelerIniCheckItem> checkItems);
+
+    BentelerPlan planReq2planPo(AddIniPlanReq req, ReviewStatus reviewStatus);
+
+    AddIniPlanReq planPo2planReq(BentelerPlan plan);
+
+    boolean planNameRepetition(String name);
+
 }
 

+ 42 - 6
application-facade/src/main/resources/mapper/BentelerIniVersionMapper.xml

@@ -16,7 +16,7 @@
                  left join benteler_ini_version_item bivi on biw.id = bivi.workstation_id
     </sql>
     <!--首件计划列表-->
-    <select id="planlist" resultType="com.factory.web.entity.vo.res.web.ini.PagePlanRes">
+    <select id="pagePlan" resultType="com.factory.web.entity.vo.res.web.ini.PagePlanRes">
         select *
         from benteler_plan bp
         left join benteler_ini_version biv on bp.id = biv.plan_id
@@ -25,6 +25,46 @@
         <where>
             and bp.plan_type = 1
             and biv.review_status=2
+            and biv.deleted=0
+            and biw.deleted=0
+            and bivi.deleted=0
+            #名称过滤的
+            <if test="name!=null and name!=''">
+                <bind name="pname" value="'%'+name+'%'"/>
+                and bp.name like #{pname}
+            </if>
+            #状态过滤
+            <if test="checkStatus!=null">
+                and biv.check_status = #{checkStatus}
+            </if>
+        </where>
+        order by bp.created_time desc
+
+
+    </select>
+    <!--首件计划列表-->
+    <select id="Planlist" resultType="com.factory.web.entity.vo.res.web.ini.PagePlanRes">
+        select
+        bp.id  planId,
+        biv.id versionId,
+        biw.id workStationId,
+        bivi.id versionItemId,
+
+        bp.name name,
+        biv.principle_one principleOne,
+        biv.principle_two principleTwo,
+        biv.check_status checkStatus,
+        bp.created_time createdTime,
+        bp.pause_flag pauseFlag
+        from benteler_plan bp
+        left join benteler_ini_version biv on bp.id = biv.plan_id
+        left join benteler_ini_workstation biw on biv.id = biw.version_id
+        left join benteler_ini_version_item bivi on biw.id = bivi.workstation_id
+        <where>
+            and bp.plan_type = 1
+            and biv.review_status=2
+            and biv.deleted=0
+            and biw.deleted=0
             and bivi.deleted=0
             #名称过滤的
             <if test="name!=null and name!=''">
@@ -123,6 +163,7 @@
             and plan.pause_flag = 0
             and bicr.check_status = #{checkStatus}
             and bicr.created_time like concat(#{req.localDate},'%')
+            and bicr.`repeat` = 0
         </where>
     </select>
     <select id="getVersion_CheckItem" resultType="com.factory.base.entity.po.benteler.BentelerIniCheckItem">
@@ -161,12 +202,7 @@
             and biw.deleted=0
         </where>
     </select>
-    <select id="getVersionItem_CheckItem" resultType="com.factory.base.entity.po.benteler.BentelerIniCheckItem">
-        select *
-        from benteler_ini_version_item
-                 left join benteler_ini_check_item bici on benteler_ini_version_item.id = bici.version_item_id
 
-    </select>
 
 
 </mapper>

+ 6 - 6
common-base/src/main/java/com/factory/base/entity/enumPo/FrequencyType.java

@@ -6,23 +6,23 @@ import java.util.function.Function;
 
 public enum  FrequencyType {
     //频次  日  周  月
-    Day(1,
+    (1,
             "每日",
             Function.identity(),
             Function.identity()),
 
-    Week(2,
+    (2,
             "每周",
             item->item.with(TemporalAdjusters.previous(DayOfWeek.MONDAY)),
             item-> {
                 LocalDate with = item.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
                 return with;
             }),
-    Month(3,
+    (3,
             "每月",
             item->item.with(TemporalAdjusters.firstDayOfMonth()),
             item->item.with(TemporalAdjusters.lastDayOfMonth())),
-    QUARTER(4,
+    季度(4,
             "每季度",
             item->{
                 Month firstMonthOfQuarter = java.time.Month.of(item.getMonth().firstMonthOfQuarter().getValue());
@@ -36,7 +36,7 @@ public enum  FrequencyType {
                 int yearOfNextQuarter = firstMonthOfQuarter.getValue() > 9 ? item.getYear() + 1 : item.getYear();
                 return LocalDateTime.of(LocalDate.of(yearOfNextQuarter, firstMonthOfNextQuarter, firstMonthOfNextQuarter.maxLength()), LocalTime.MAX).toLocalDate();
             }),
-    HALFYEAR(5,
+    半年(5,
             "每半年",
             item->{
                 int lastHalfYear = (item.getMonthValue() > 6) ? item.getYear() : item.getYear() - 1;
@@ -49,7 +49,7 @@ public enum  FrequencyType {
                 Month firstMonthOfLastHalfYear = (item.getMonthValue() > 6) ? java.time.Month.JANUARY : java.time.Month.JULY;
                 return LocalDateTime.of(LocalDate.of(lastHalfYear, firstMonthOfLastHalfYear, 1), LocalTime.MIN).toLocalDate();
             }),
-    TEAM(6,
+    (6,
             "班/次",
             Function.identity(),
             Function.identity());

+ 1 - 1
common-base/src/main/java/com/factory/base/entity/po/benteler/BentelerIniCheckItem.java

@@ -40,7 +40,7 @@ public class BentelerIniCheckItem implements Serializable {
     private Integer issueNum;
 
     @ApiModelProperty(value = "数据类型")
-    private Boolean dataType;
+    private Integer dataType;
 
     @ApiModelProperty(value = "检查结果id")
     private Long checkResultId;

+ 1 - 1
common-base/src/main/java/com/factory/base/entity/po/benteler/BentelerIniVersionItem.java

@@ -78,7 +78,7 @@ public class BentelerIniVersionItem implements Serializable {
     @ApiModelProperty(value = "判断标准方法")
     private String method;
 
-    @ApiModelProperty(value = "数据类别")
+    @ApiModelProperty(value = "数据类别 0数值 1属性")
     private Integer dataType;
 
     @ApiModelProperty(value = "检测标准值上限")