diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdetail/ProcessDetailController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdetail/ProcessDetailController.java index c5b2ee98..322a91f6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdetail/ProcessDetailController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdetail/ProcessDetailController.java @@ -95,8 +95,8 @@ public class ProcessDetailController { @Operation(summary = "获得进度") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('heli:process-detail:query')") - public CommonResult> searchProgress(@RequestParam("type") Integer type) { - List list= processDetailService.searchProgress(type); + public CommonResult> searchProgress(@RequestParam("type") Integer type,@RequestParam("condition") String condition) { + List list= processDetailService.searchProgress(type,condition); return success(list); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/screen/ScreenController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/screen/ScreenController.java index 17cb1f23..1b6c2c8b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/screen/ScreenController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/screen/ScreenController.java @@ -150,10 +150,9 @@ public class ScreenController { /** * 定时任务更新大屏数据 */ -// @Scheduled(cron = "0 0 * * * ?") +// @Scheduled(cron = "0 0/5 * * * ?") // @PostConstruct - @Scheduled(cron = "0 0 1 * * ?") - @Operation(summary = "定时任务更新大屏数据") + @Scheduled(cron = "0 */30 * * * ?") public void updateLargeScreenData(){ screenService.updateLargeScreenData(); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/found/FoundDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/found/FoundDO.java index f8bbfdc7..09fb7643 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/found/FoundDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/found/FoundDO.java @@ -50,6 +50,22 @@ public class FoundDO extends BaseDO { * 今日到岗人数 */ private Integer numPresent; + /** + * 与昨天相比到岗人数 + */ + private String relativetoyesterdayPresent; + /** + * 与昨日相比出差人数 + */ + private String relativetoyesterdayBusinessTrip; + /** + * 与昨日相比设计项目数量 + */ + private String relativetoyesterdayDesign; + /** + * 与昨日相比在制项目数量 + */ + private String relativetoyesterdayInProcess; /** * 今日出差人数 */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/found/FoundMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/found/FoundMapper.java index 5d6a1d0c..03456164 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/found/FoundMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/found/FoundMapper.java @@ -36,12 +36,15 @@ public interface FoundMapper extends BaseMapperX { default FoundDO searchUnfinished(){ // return selectList(new LambdaQueryWrapperX().eq(FoundDO::getDate, DateUtil.formatDate(new Date()))); - return selectOne(new LambdaQueryWrapperX().last("limit 1")); + return selectOne(new LambdaQueryWrapperX().eq(FoundDO::getDate, DateUtil.formatDate(new Date())).last("limit 1")); } default FoundDO selectAll(){ - return selectOne(new LambdaQueryWrapperX().last("limit 1")); + return selectOne(new LambdaQueryWrapperX().eq(FoundDO::getDate, DateUtil.formatDate(new Date())).last("limit 1")); } + + default FoundDO theDayBefore(){ + return selectOne(new LambdaQueryWrapperX().eq(FoundDO::getDate, DateUtil.formatDate(DateUtil.offsetDay(new Date(), -1))).last("limit 1")); } } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdetail/ProcessDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdetail/ProcessDetailMapper.java index 5a69ea60..11145fe8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdetail/ProcessDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdetail/ProcessDetailMapper.java @@ -2,12 +2,15 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.processdetail; import java.util.*; +import cn.hutool.core.util.ObjectUtil; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.process.ProcessDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdetail.ProcessDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; @@ -60,11 +63,15 @@ public interface ProcessDetailMapper extends BaseMapperX { @Delete("delete from screen_process_detail where process_id = #{id}") void deleteByProcessId(@Param("id") Long id); - default List searchProgress(Integer type){ + default List searchProgress(Integer type,String condition){ MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(ProcessDetailDO.class) .leftJoin(ProcessDO.class, "a", ProcessDO::getId, ProcessDetailDO::getProcessId) + .leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, ProcessDetailDO::getProjectId) + .leftJoin(CustomerDO.class, "c", CustomerDO::getId, ProjectOrderDO::getCustomerId) .eq(ProcessDO::getProcessType,type) + .and(ObjectUtil.isNotEmpty(condition),i->i.like(ProjectOrderDO::getProjectName,condition).or().like(ProjectOrderDO::getProjectNameSim,condition).or().like(CustomerDO::getName,condition).or().like(CustomerDO::getBrief,condition)) + .orderByDesc(ProcessDetailDO::getIsSelect) .orderByDesc(ProcessDetailDO::getOrdDate); return selectList(query); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java index 64adb75c..53a71a59 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java @@ -185,5 +185,9 @@ public interface ProjectOrderMapper extends BaseMapperX { .ge(ProjectOrderDO::getCreateTime,startTime) ); +// return selectList(new LambdaQueryWrapper() +// .eq(ProjectOrderDO::getId,968) +// +// ); } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/found/FoundServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/found/FoundServiceImpl.java index b3cf9023..5fb344e3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/found/FoundServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/found/FoundServiceImpl.java @@ -55,6 +55,30 @@ public class FoundServiceImpl implements FoundService { if (ObjectUtil.isEmpty(updateObj.getDeliRate())){ updateObj.setDeliRate(BigDecimal.ZERO); } + FoundDO dayBefore = foundMapper.theDayBefore(); + if (ObjectUtil.isNotEmpty(dayBefore)){ + if (ObjectUtil.isNotEmpty(dayBefore.getNumPresent())){ + int difference = updateObj.getNumPresent() - dayBefore.getNumPresent(); + if (difference>=0){ + updateObj.setRelativetoyesterdayPresent("较昨日增加"+difference); + }else { + updateObj.setRelativetoyesterdayPresent("较昨日减少"+Math.abs(difference)); + } + }else { + updateObj.setRelativetoyesterdayDesign("较昨日增加0"); + } + if (ObjectUtil.isNotEmpty(dayBefore.getNumBusinessTrip())){ + int difference = updateObj.getNumBusinessTrip() - dayBefore.getNumBusinessTrip(); + if (difference>=0){ + updateObj.setRelativetoyesterdayBusinessTrip("较昨日增加"+difference); + }else { + updateObj.setRelativetoyesterdayBusinessTrip("较昨日减少"+Math.abs(difference)); + } + }else { + updateObj.setRelativetoyesterdayInProcess("较昨日增加0"); + } + } + foundMapper.updateById(updateObj); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailService.java index 3e239cae..8ef43603 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailService.java @@ -52,7 +52,7 @@ public interface ProcessDetailService { */ PageResult getProcessDetailPage(ProcessDetailPageReqVO pageReqVO); - List searchProgress(Integer type); + List searchProgress(Integer type,String condition); void update(List list); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailServiceImpl.java index 80e2e328..abd46cdf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdetail/ProcessDetailServiceImpl.java @@ -75,8 +75,8 @@ public class ProcessDetailServiceImpl implements ProcessDetailService { } @Override - public List searchProgress(Integer type) { - return processDetailMapper.searchProgress(type); + public List searchProgress(Integer type,String condition) { + return processDetailMapper.searchProgress(type,condition); } @Override diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/screen/ScreenServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/screen/ScreenServiceImpl.java index 91a84576..9c35e2b5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/screen/ScreenServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/screen/ScreenServiceImpl.java @@ -396,7 +396,7 @@ public class ScreenServiceImpl implements ScreenService { processDetailDO.setProjectEndTime(projectOrderDO.getProjectEndTime()); processDetailDO.setDeliveryStatus(projectOrderDO.getDeliveryStatus()); processDetailDO.setProcessId(process.getId()); - if (LocalDateTime.now().toLocalDate().isAfter(projectOrderDO.getOrderTime().toLocalDate())) { + if (LocalDateTime.now().toLocalDate().isAfter(projectOrderDO.getProjectEndTime().toLocalDate())) { processDetailDO.setIsExten("1"); } Long id = projectOrderDO.getId(); @@ -436,6 +436,7 @@ public class ScreenServiceImpl implements ScreenService { BigDecimal currentTime = calculateCurrentTime(collect); for (ProcessDesignDO processDesignDO : collect1) { PlanSubDO subDO = planSubMapper.selectPlanSub(processDesignDO.getPlanId(), processDesignDO.getProjectSubId()); + if (ObjectUtil.isNotEmpty(subDO)){ if ("BLUEPRINT_3D".equals(processDesignDO.getProcessDesignType())) { if (ObjectUtil.isNotEmpty(subDO.getThreeDimNum())) { currentTime = currentTime.add(new BigDecimal(subDO.getThreeDimNum().toString())); @@ -454,6 +455,7 @@ public class ScreenServiceImpl implements ScreenService { totalWorkTime = totalWorkTime.add(new BigDecimal(subDO.getTwoDimNum().toString()).multiply(new BigDecimal("8"))); } } + } } currentTime = currentTime.multiply(new BigDecimal("8")); // 计算完成百分比 @@ -487,9 +489,11 @@ public class ScreenServiceImpl implements ScreenService { BigDecimal currentTime = BigDecimal.ZERO; for (ProcessDesignDO processDesignDO : collect) { PlanSubDO subDO = planSubMapper.selectPlanSub(processDesignDO.getPlanId(), processDesignDO.getProjectSubId()); + if (ObjectUtil.isNotEmpty(subDO)){ if ("BLUEPRINT_3D".equals(processDesignDO.getProcessDesignType())){ if (ObjectUtil.isNotEmpty(subDO.getThreeDimNum())) { currentTime = currentTime.add(new BigDecimal(subDO.getThreeDimNum().toString())); + } } if ("BLUEPRINT_WORKBLANK".equals(processDesignDO.getProcessDesignType())){ @@ -502,6 +506,7 @@ public class ScreenServiceImpl implements ScreenService { currentTime = currentTime.add(new BigDecimal(subDO.getTwoDimNum().toString())); } } + } } return currentTime; } @@ -582,7 +587,7 @@ public class ScreenServiceImpl implements ScreenService { processDetailDO.setProjectEndTime(projectOrderDO.getProjectEndTime()); processDetailDO.setDeliveryStatus(projectOrderDO.getDeliveryStatus()); processDetailDO.setProcessId(process.getId()); - if (LocalDateTime.now().toLocalDate().isAfter(projectOrderDO.getOrderTime().toLocalDate())) { + if (LocalDateTime.now().toLocalDate().isAfter(projectOrderDO.getProjectEndTime().toLocalDate())) { processDetailDO.setIsExten("1"); } Long id = projectOrderDO.getId(); @@ -673,7 +678,7 @@ public class ScreenServiceImpl implements ScreenService { processDetailDO.setProjectEndTime(projectOrderDO.getProjectEndTime()); processDetailDO.setDeliveryStatus(projectOrderDO.getDeliveryStatus()); processDetailDO.setProcessId(process.getId()); - if (LocalDateTime.now().toLocalDate().isAfter(projectOrderDO.getOrderTime().toLocalDate())) { + if (LocalDateTime.now().toLocalDate().isAfter(projectOrderDO.getProjectEndTime().toLocalDate())) { processDetailDO.setIsExten("1"); } Long id = projectOrderDO.getId(); @@ -771,13 +776,20 @@ public class ScreenServiceImpl implements ScreenService { boolean flag=false; //获得当前修改数据 FoundDO foundDO = foundMapper.selectAll(); + FoundDO dayBefore = foundMapper.theDayBefore(); if (ObjectUtil.isEmpty(foundDO)){ foundDO=new FoundDO(); foundDO.setNumPresent(0); foundDO.setNumBusinessTrip(0); - foundDO.setOpenMock(0); + if (ObjectUtil.isNotEmpty(dayBefore)) { + foundDO.setOpenMock(dayBefore.getOpenMock()); + foundDO.setDeliRate(dayBefore.getDeliRate()); + }else{ + foundDO.setOpenMock(0); + } flag=true; } + foundDO.setDate(LocalDate.now()); //未完成设计的子项目数量 Integer unfinished= projectOrderSubMapper.searchUnfinished(); @@ -785,6 +797,28 @@ public class ScreenServiceImpl implements ScreenService { Integer notDispatched =projectOrderSubMapper.searchNotDispatched(); foundDO.setNumDesign(unfinished); foundDO.setNumInProcess(notDispatched); + if (ObjectUtil.isNotEmpty(dayBefore)){ + if (ObjectUtil.isNotEmpty(dayBefore.getNumDesign())){ + int difference = unfinished - dayBefore.getNumDesign(); + if (difference>=0){ + foundDO.setRelativetoyesterdayDesign("较昨日增加"+difference); + }else { + foundDO.setRelativetoyesterdayDesign("较昨日减少"+Math.abs(difference)); + } + }else { + foundDO.setRelativetoyesterdayDesign("较昨日增加0"); + } + if (ObjectUtil.isNotEmpty(dayBefore.getNumInProcess())){ + int difference = notDispatched - dayBefore.getNumInProcess(); + if (difference>=0){ + foundDO.setRelativetoyesterdayInProcess("较昨日增加"+difference); + }else { + foundDO.setRelativetoyesterdayInProcess("较昨日减少"+Math.abs(difference)); + } + }else { + foundDO.setRelativetoyesterdayInProcess("较昨日增加0"); + } + } if (0==foundDO.getOpenMock()){ //订单交付准时率 Map onTimeCompletionRate = projectOrderMapper.getOnTimeCompletionRate(); diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/processdetail/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/processdetail/index.ts index a6a0b49f..80074f4a 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/processdetail/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/processdetail/index.ts @@ -47,8 +47,8 @@ export const exportProcessDetail = async (params) => { return await request.download({ url: `/heli/process-detail/export-excel`, params }) } // 查询大屏-设计、装配、加工进度子详情 -export const searchProgress = async (type: number) => { - return await request.get({ url: `/heli/process-detail/searchProgress?type=` + type }) +export const searchProgress = async (type: number,condition: string) => { + return await request.get({ url: `/heli/process-detail/searchProgress?type=` + type +"&condition="+condition}) } // 修改大屏-设计、装配、加工进度子 export const update = async (data: ProcessDetailVO) => { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/screen/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/screen/index.vue index b657e5f6..e30e8487 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/screen/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/screen/index.vue @@ -36,7 +36,7 @@ - + @@ -154,6 +154,15 @@
设计进度信息 保 存 清 空 + 筛选条件 + + 搜索 - + @@ -194,6 +203,15 @@
生产进度信息 保 存 清 空 + 筛选条件 + + 搜索 - + @@ -233,9 +251,18 @@
装配进度信息 保 存 清 空 + 筛选条件 + + 搜索 - @@ -255,9 +282,9 @@ - + @@ -291,6 +318,15 @@ const formData4: any = ref([]) // const selectResult: any = ref([]) // const selectResult1: any = ref([]) // const selectResult2: any = ref([]) +const queryParams = reactive({ + condition:"" +}) +const queryParams1 = reactive({ + condition:"" +}) +const queryParams2 = reactive({ + condition:"" +}) const formRules = reactive({ }) const formRules1 = reactive({ @@ -351,11 +387,11 @@ const clearOutForm = async (type) => { }; // 映射 type 到对应的 selectResult 数组 - const selectResultMap = { - 1: selectResult, - 2: selectResult1, - 3: selectResult2 - }; + // const selectResultMap = { + // 1: selectResult, + // 2: selectResult1, + // 3: selectResult2 + // }; try { const targetFormData = formDataMap[type]; if (targetFormData?.value) { @@ -365,13 +401,14 @@ const clearOutForm = async (type) => { }) } } - const targetSelectResult = selectResultMap[type]; - if (targetFormData?.value) { - targetSelectResult.value=[] - } + // const targetSelectResult = selectResultMap[type]; + // if (targetFormData?.value) { + // targetSelectResult.value=[] + // } } finally { } }; + // 获取基础数据 const searchUnfinished = async () => { formData.value= await ScreenApi.searchUnfinished() @@ -382,7 +419,13 @@ const searchOrderByYear = async () => { } // 获取按照进度查询 const searchProgress = async (type) => { - var list = await ProcessDetailApi.searchProgress(type); + const queryMap = { + 1: queryParams, + 2: queryParams1, + 3: queryParams2 + }; + const queryParamsData = queryMap[type]; + var list = await ProcessDetailApi.searchProgress(type,queryParamsData.condition); list.forEach(item=>{ item.isSelect=Number(item.isSelect) }) diff --git a/mes-ui/mini-app/src/services/constants.ts b/mes-ui/mini-app/src/services/constants.ts index e2da2759..f3df210e 100644 --- a/mes-ui/mini-app/src/services/constants.ts +++ b/mes-ui/mini-app/src/services/constants.ts @@ -10,4 +10,4 @@ // export const serviceDomain = 'https://star.hz-hl.com' // export const serviceDomain = 'http://222.71.165.187:9010' // export const serviceDomain = 'http://localhost:8080' -export const serviceDomain = 'https://nxhs.cjyx.cc' +export const serviceDomain = 'https://nxhs.cjyx.cc:45456'