From a7a4e0e6ae09c720e50dc22fc50c67519414067c Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 24 十月 2024 09:45:55 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcNoplanCloseMapper.xml | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml | 8 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeVo.java | 18 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java | 30 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOeeInfoMapper.xml | 24 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml | 20 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOeeInfoController.java | 151 ++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcComponentInfoMapper.xml | 12 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java | 1 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcComponentInfo.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcComponentInfoServiceImpl.java | 12 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeInfoQueryVo.java | 52 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml | 8 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeResultDto.java | 25 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java | 75 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml | 10 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcComponentInfoService.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml | 2 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcVacationManagementMapper.xml | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRepairMapper.xml | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml | 11 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java | 263 ++++++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcComponentInfoController.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeListDto.java | 40 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOeeInfoMapper.java | 19 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcComponentInfoMapper.java | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcStandardProcessDurationMapper.xml | 10 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcTorqueConfigMapper.xml | 4 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml | 20 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOeeInfo.java | 138 +++++++ 40 files changed, 941 insertions(+), 83 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcComponentInfoController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcComponentInfoController.java index 6cd683a..c46ac96 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcComponentInfoController.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcComponentInfoController.java @@ -53,7 +53,7 @@ HttpServletRequest req) { QueryWrapper<MdcComponentInfo> queryWrapper = QueryGenerator.initQueryWrapper(mdcComponentInfo, req.getParameterMap()); Page<MdcComponentInfo> page = new Page<MdcComponentInfo>(pageNo, pageSize); - IPage<MdcComponentInfo> pageList = mdcComponentInfoService.page(page); + IPage<MdcComponentInfo> pageList = mdcComponentInfoService.page(page, queryWrapper); return Result.OK(pageList); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOeeInfoController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOeeInfoController.java new file mode 100644 index 0000000..2c918c6 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcOeeInfoController.java @@ -0,0 +1,151 @@ +package org.jeecg.modules.mdc.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.mdc.entity.MdcOeeInfo; +import org.jeecg.modules.mdc.service.IMdcOeeInfoService; +import org.jeecg.modules.mdc.vo.MdcOeeInfoQueryVo; +import org.jeecg.modules.mdc.vo.MdcOeeVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; + +/** + * @Description: OEE + * @Author: lius + * @Date: 2024-10-22 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "OEE") +@RestController +@RequestMapping("/mdc/mdcOeeInfo") +public class MdcOeeInfoController extends JeecgController<MdcOeeInfo, IMdcOeeInfoService> { + + @Resource + private IMdcOeeInfoService mdcOeeInfoService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param mdcOeeInfo + * @return + */ + @AutoLog(value = "OEE-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "OEE-鍒嗛〉鍒楄〃鏌ヨ", notes = "OEE-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(MdcOeeInfoQueryVo mdcOeeInfo) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + MdcOeeVo result = mdcOeeInfoService.pageList(userId, mdcOeeInfo); + return Result.OK(result); + } + + /** + * 娣诲姞 + * + * @param mdcOeeInfo + * @return + */ + @AutoLog(value = "OEE-娣诲姞") + @ApiOperation(value = "OEE-娣诲姞", notes = "OEE-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody MdcOeeInfo mdcOeeInfo) { + mdcOeeInfoService.save(mdcOeeInfo); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param mdcOeeInfo + * @return + */ + @AutoLog(value = "OEE-缂栬緫") + @ApiOperation(value = "OEE-缂栬緫", notes = "OEE-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody MdcOeeInfo mdcOeeInfo) { + mdcOeeInfoService.updateById(mdcOeeInfo); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "OEE-閫氳繃id鍒犻櫎") + @ApiOperation(value = "OEE-閫氳繃id鍒犻櫎", notes = "OEE-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + mdcOeeInfoService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "OEE-鎵归噺鍒犻櫎") + @ApiOperation(value = "OEE-鎵归噺鍒犻櫎", notes = "OEE-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.mdcOeeInfoService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @AutoLog(value = "OEE-閫氳繃id鏌ヨ") + @ApiOperation(value = "OEE-閫氳繃id鏌ヨ", notes = "OEE-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + MdcOeeInfo mdcOeeInfo = mdcOeeInfoService.getById(id); + return Result.OK(mdcOeeInfo); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param mdcOeeInfo + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, MdcOeeInfo mdcOeeInfo) { + return super.exportXls(request, mdcOeeInfo, MdcOeeInfo.class, "OEE"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, MdcOeeInfo.class); + } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeListDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeListDto.java new file mode 100644 index 0000000..bad2e0a --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeListDto.java @@ -0,0 +1,40 @@ +package org.jeecg.modules.mdc.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author Lius + * @date 2024/10/22 13:46 + */ +@Data +public class MdcOeeListDto { + + /** + * 璁惧缂栫爜 + */ + private String equipmentId; + /** + * 璁惧鍚嶇О + */ + private String equipmentName; + /** + * 缁勫埆 + */ + private String clazz; + /** + * 璁惧绫诲瀷 + */ + private String equipmentType; + /** + * 鐝 + */ + private String shiftSubName; + + /** + * oee鏁版嵁 + */ + private List<MdcOeeResultDto> dataList; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeResultDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeResultDto.java new file mode 100644 index 0000000..724dd7e --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcOeeResultDto.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.mdc.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author Lius + * @date 2024/10/22 15:11 + */ +@Data +public class MdcOeeResultDto { + /** + * 鏈夋晥鏃ユ湡 + */ + private String theDate; + /** + * oee + */ + private BigDecimal oeeRate = BigDecimal.ZERO; + /** + * 棰滆壊 + */ + private String color; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcComponentInfo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcComponentInfo.java index 0666eff..3cfab7a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcComponentInfo.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcComponentInfo.java @@ -60,13 +60,6 @@ //@Excel(name = "浜х嚎", width = 15) //@ApiModelProperty(value = "浜х嚎") private String beltlineId; -// /** -// * 杞﹂棿鍚嶇О -// */ -// @TableField(exist = false) -// @Excel(name = "浜х嚎", width = 15) -// @ApiModelProperty(value = "浜х嚎") -// private String productionName; /** * 鏄惁涓鸿嚜鍔ㄧ嚎 */ diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOeeInfo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOeeInfo.java new file mode 100644 index 0000000..e0d2678 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOeeInfo.java @@ -0,0 +1,138 @@ +package org.jeecg.modules.mdc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.system.base.entity.JeecgEntity; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description: OEE + * @Author: lius + * @Date: 2024-10-22 + * @Version: V1.0 + */ +@Data +@TableName("mdc_oee_info") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "mdc_oee_info瀵硅薄", description = "OEE") +public class MdcOeeInfo extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = 5695983942696582911L; + + /** + * 璁惧缂栧彿 + */ + @Excel(name = "璁惧缂栧彿", width = 15) + @ApiModelProperty(value = "璁惧缂栧彿") + private String equipmentId; + /** + * 鏃ユ湡 + */ + @Excel(name = "鏃ユ湡", width = 15) + @ApiModelProperty(value = "鏃ユ湡") + private String workDate; + /** + * 寮�濮嬫椂闂� + */ + @Excel(name = "寮�濮嬫椂闂�", width = 15) + @ApiModelProperty(value = "寮�濮嬫椂闂�") + private String startTime; + /** + * 缁撴潫鏃堕棿 + */ + @Excel(name = "缁撴潫鏃堕棿", width = 15) + @ApiModelProperty(value = "缁撴潫鏃堕棿") + private String endTime; + /** + * 鍔犲伐鏃堕棿 + */ + @Excel(name = "鍔犲伐鏃堕棿", width = 15) + @ApiModelProperty(value = "鍔犲伐鏃堕棿") + private BigDecimal processLong; + /** + * 寰呮満鏃堕棿 + */ + @Excel(name = "寰呮満鏃堕棿", width = 15) + @ApiModelProperty(value = "寰呮満鏃堕棿") + private BigDecimal waitLong; + /** + * 寮�鏈烘椂闂� + */ + @Excel(name = "寮�鏈烘椂闂�", width = 15) + @ApiModelProperty(value = "寮�鏈烘椂闂�") + private BigDecimal openLong; + /** + * 鍏虫満鏃堕棿 + */ + @Excel(name = "鍏虫満鏃堕棿", width = 15) + @ApiModelProperty(value = "鍏虫満鏃堕棿") + private BigDecimal closeLong; + /** + * clazz + */ + @Excel(name = "clazz", width = 15) + @ApiModelProperty(value = "clazz") + private String workTeam; + /** + * 璁″垝閲� + */ + @Excel(name = "璁″垝閲�", width = 15) + @ApiModelProperty(value = "璁″垝閲�") + private Integer planNum; + /** + * 瀹屾垚閲� + */ + @Excel(name = "瀹屾垚閲�", width = 15) + @ApiModelProperty(value = "瀹屾垚閲�") + private Integer completeNum; + /** + * 鍚堟牸閲� + */ + @Excel(name = "鍚堟牸閲�", width = 15) + @ApiModelProperty(value = "鍚堟牸閲�") + private Integer qualityNum; + /** + * 鐝骇鑳� + */ + @Excel(name = "鐝骇鑳�", width = 15) + @ApiModelProperty(value = "鐝骇鑳�") + private Integer scheduleNum; + /** + * 闆朵欢鍙� + */ + @Excel(name = "闆朵欢鍙�", width = 15) + @ApiModelProperty(value = "闆朵欢鍙�") + private String componentNo; + /** + * 璺ㄥぉ鏍囪瘑 + */ + @Excel(name = "璺ㄥぉ鏍囪瘑", width = 15) + @ApiModelProperty(value = "璺ㄥぉ鏍囪瘑") + private String interDayFlag; + /** + * 鐝埗ID + */ + @Excel(name = "鐝埗ID", width = 15) + @ApiModelProperty(value = "鐝埗ID") + private String shiftId; + /** + * 鐝ID + */ + @Excel(name = "鐝ID", width = 15) + @ApiModelProperty(value = "鐝ID") + private String shiftSubId; + /** + * oee + */ + @Excel(name = "oee", width = 15) + @ApiModelProperty(value = "oee") + private BigDecimal oeeRate; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java new file mode 100644 index 0000000..795812d --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java @@ -0,0 +1,75 @@ +package org.jeecg.modules.mdc.job; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.mdc.service.IMdcOeeInfoService; +import org.jeecg.modules.mdc.service.IMdcOverallEquipmentEfficiencyService; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; +import org.quartz.*; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * @Description: 瀹氭椂璁$畻璁惧缁煎悎鏁堢巼OEE浠诲姟 + * @author: LiuS + * @create: 2023-07-24 10:26 + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@Slf4j +public class RunningOEEJob implements Job { + + /** + * 鑻ュ弬鏁板彉閲忓悕淇敼 QuartzJobController涓篃闇�瀵瑰簲淇敼 鏃堕棿锛� yyyyMMdd 渚嬶細 20230414 + */ + private String parameter; + + public void setParameter(String parameter) { + this.parameter = parameter; + } + + @Resource + private IQuartzJobService quartzJobService; + + @Resource + private ISysAnnouncementService sysAnnouncementService; + + @Resource + private ISysQuartzLogService sysQuartzLogService; + + @Resource + private IMdcOeeInfoService mdcOeeInfoService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + quartzLog.setParams(this.parameter); + log.info("瀹氭椂璁$畻璁惧缁煎悎鏁堢巼OEE浠诲姟 RunningOverallEquipmentEfficiencyJob start! 鏃堕棿:" + DateUtils.now(), this.parameter); + long startTime = System.currentTimeMillis(); + try { + mdcOeeInfoService.runningOverallEquipmentEfficiency(this.parameter); + quartzLog.setIsSuccess(0); + } catch (Exception e) { + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("瀹氭椂璁$畻璁惧缁煎悎鏁堢巼OEE浠诲姟", quartzLog.getExceptionDetail()); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java index 304cc7b..98b06f2 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOverallEquipmentEfficiencyJob.java @@ -64,7 +64,7 @@ quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); // 鍙戦�佹秷鎭�氱煡 - sysAnnouncementService.jobSendMessage("瀹氭椂缁熻娈垫椂闂翠换鍔�", quartzLog.getExceptionDetail()); + sysAnnouncementService.jobSendMessage("瀹氭椂璁$畻璁惧缁煎悎鏁堢巼OEE浠诲姟", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcComponentInfoMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcComponentInfoMapper.java index a7c1893..71eee64 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcComponentInfoMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcComponentInfoMapper.java @@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Param; import org.jeecg.modules.mdc.entity.MdcComponentInfo; +import java.util.List; + /** * @Description: 闆朵欢琛� * @Author: lius @@ -22,4 +24,6 @@ * @return */ IPage<MdcComponentInfo> pageList(Page<MdcComponentInfo> page, @Param("mdcComponentInfo") MdcComponentInfo mdcComponentInfo); + + List<MdcComponentInfo> findByComponentNo(@Param("equipmentId") String equipmentId, @Param("productNo") String productNo); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOeeInfoMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOeeInfoMapper.java new file mode 100644 index 0000000..31d2f8f --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOeeInfoMapper.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.mdc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.mdc.entity.MdcOeeInfo; +import org.jeecg.modules.mdc.vo.MdcOeeInfoQueryVo; + +import java.util.List; + +/** + * @Description: OEE + * @Author: lius + * @Date: 2024-10-22 + * @Version: V1.0 + */ +public interface MdcOeeInfoMapper extends BaseMapper<MdcOeeInfo> { + + List<MdcOeeInfo> oeeList(@Param("vo") MdcOeeInfoQueryVo vo); +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcComponentInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcComponentInfoMapper.xml index 5a7f989..826a10f 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcComponentInfoMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcComponentInfoMapper.xml @@ -15,4 +15,16 @@ </if> </where> </select> + + <select id="findByComponentNo" resultType="org.jeecg.modules.mdc.entity.MdcComponentInfo"> + SELECT + t1.* + FROM + mdc_component_info t1 + LEFT JOIN mdc_production_equipment t2 ON t1.beltline_id = t2.production_id + LEFT JOIN mdc_equipment t3 ON t3.id = t2.equipment_id + WHERE + t1.component_no = #{productNo} + AND t3.equipment_id = #{equipmentId} + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml index 77de9af..1645e09 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml @@ -21,7 +21,7 @@ LEFT JOIN mdc_equipment t4 ON t1.equipment_id = t4.equipment_id WHERE 1=1 <if test="deviceCalendar.effectiveDate != null and deviceCalendar.effectiveDate != ''"> - AND t1.effective_date LIKE CONCAT('%',#{ deviceCalendar.effectiveDate },'%') + AND t1.effective_date LIKE '%' + #{ deviceCalendar.effectiveDate } + '%' </if> <if test="deviceCalendar.equipmentId != null and deviceCalendar.equipmentId != ''"> AND t1.equipment_id = #{ deviceCalendar.equipmentId } @@ -91,7 +91,7 @@ FROM mdc_device_calendar WHERE - effective_date LIKE CONCAT(#{ validDate }, '%') + effective_date LIKE #{ validDate } + '%' AND equipment_id = #{ equipmentId } </select> @@ -102,7 +102,7 @@ FROM mdc_device_calendar t1 LEFT JOIN mdc_shift t2 ON t1.shift_id = t2.id WHERE - t1.effective_date LIKE CONCAT(#{ validDate }, '%') + t1.effective_date LIKE #{ validDate } + '%') AND t1.equipment_id = #{ equipmentId } </select> @@ -113,7 +113,7 @@ FROM mdc_device_calendar WHERE - effective_date LIKE CONCAT(#{ validDate }, '%') + effective_date LIKE #{ validDate } + '%') AND equipment_id = #{ equipmentId } </select> diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml index 828999f..42d2e73 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml @@ -195,10 +195,10 @@ LEFT JOIN mdc_production t3 ON t2.production_id = t3.id <where> <if test="mdcEquipment.equipmentId != null and mdcEquipment.equipmentId != '' "> - AND t1.equipment_id LIKE CONCAT(CONCAT('%',#{mdcEquipment.equipmentId}),'%') + AND t1.equipment_id LIKE '%' + #{mdcEquipment.equipmentId} + '%' </if> <if test="mdcEquipment.equipmentName != null and mdcEquipment.equipmentName != '' "> - AND t1.equipment_name LIKE CONCAT(CONCAT('%',#{mdcEquipment.equipmentName}),'%') + AND t1.equipment_name LIKE '%' + #{mdcEquipment.equipmentName} + '%' </if> <if test="mdcEquipment.equipmentModel != null and mdcEquipment.equipmentModel != '' "> AND t1.equipment_name = #{mdcEquipment.equipmentModel} @@ -234,10 +234,10 @@ LEFT JOIN mdc_production t3 ON t2.production_id = t3.id <where> <if test="mdcEquipment.equipmentId != null and mdcEquipment.equipmentId != '' "> - AND t1.equipment_id LIKE CONCAT(CONCAT('%',#{mdcEquipment.equipmentId}),'%') + AND t1.equipment_id LIKE '%' + #{mdcEquipment.equipmentId} + '%' </if> <if test="mdcEquipment.equipmentName != null and mdcEquipment.equipmentName != '' "> - AND t1.equipment_name LIKE CONCAT(CONCAT('%',#{mdcEquipment.equipmentName}),'%') + AND t1.equipment_name LIKE '%' + #{mdcEquipment.equipmentName} + '%' </if> <if test="mdcEquipment.equipmentModel != null and mdcEquipment.equipmentModel != '' "> AND t1.equipment_name = #{mdcEquipment.equipmentModel} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml index 3056797..121b2a7 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml @@ -22,10 +22,10 @@ LEFT JOIN mdc_equipment t2 ON t2.equipment_id = t1.equipment_id <where> <if test="mdcEquipmentOvertime.equipmentName != null and mdcEquipmentOvertime.equipmentName != '' "> - AND t2.equipment_name LIKE CONCAT(CONCAT('%',#{mdcEquipmentOvertime.equipmentName}),'%') + AND t2.equipment_name LIKE '%' + #{mdcEquipmentOvertime.equipmentName} + '%' </if> <if test="mdcEquipmentOvertime.equipmentId != null and mdcEquipmentOvertime.equipmentId != '' "> - AND t1.equipment_id LIKE CONCAT(CONCAT('%',#{mdcEquipmentOvertime.equipmentId}),'%') + AND t1.equipment_id LIKE '%' + #{mdcEquipmentOvertime.equipmentId} + '%' </if> <if test="mdcEquipmentOvertime.mdcSectionIds != null and mdcEquipmentOvertime.mdcSectionIds.size() > 0 "> AND t1.equipment_id IN @@ -60,10 +60,10 @@ LEFT JOIN mdc_equipment t2 ON t2.equipment_id = t1.equipment_id <where> <if test="mdcEquipmentOvertime.equipmentName != null and mdcEquipmentOvertime.equipmentName != '' "> - AND t2.equipment_name LIKE CONCAT(CONCAT('%',#{mdcEquipmentOvertime.equipmentName}),'%') + AND t2.equipment_name LIKE '%' + #{mdcEquipmentOvertime.equipmentName} + '%' </if> <if test="mdcEquipmentOvertime.equipmentId != null and mdcEquipmentOvertime.equipmentId != '' "> - AND t1.equipment_id LIKE CONCAT(CONCAT('%',#{mdcEquipmentOvertime.equipmentId}),'%') + AND t1.equipment_id LIKE '%' + #{mdcEquipmentOvertime.equipmentId} + '%' </if> <if test="mdcEquipmentOvertime.mdcSectionIds != null and mdcEquipmentOvertime.mdcSectionIds.size() > 0 "> AND t1.equipment_id IN @@ -85,6 +85,6 @@ FROM mdc_equipment_overtime WHERE - the_date LIKE CONCAT(#{ validDate }, '%') AND equipment_id = #{ equipmentId } + the_date LIKE #{ validDate } + '%' AND equipment_id = #{ equipmentId } </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRepairMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRepairMapper.xml index 80e6716..3343ab0 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRepairMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRepairMapper.xml @@ -10,10 +10,10 @@ mdc_equipment_repair WHERE 1=1 <if test="repair.equipmentName != null and repair.equipmentName != '' "> - AND equipment_name LIKE CONCAT(CONCAT('%',#{repair.equipmentName}),'%') + AND equipment_name LIKE '%' + #{repair.equipmentName} + '%' </if> <if test="repair.equipmentId != null and repair.equipmentId != '' "> - AND equipment_id LIKE CONCAT(CONCAT('%',#{repair.equipmentId}),'%') + AND equipment_id LIKE '%' + #{repair.equipmentId} + '%' </if> <if test="repair.startTime != null "> AND end_time >= #{ repair.startTime } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml index 97acaba..d1cec54 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml @@ -15,6 +15,6 @@ mdc_equipment_statistical_shift_info WHERE equipment_id = #{ equipmentId } - AND the_date LIKE CONCAT(#{ validDate },'%') + AND the_date LIKE #{ validDate } + '%' </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml index b809b98..973f7f1 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcHomeMapper.xml @@ -58,7 +58,7 @@ #{id} </foreach> </if> - AND the_date LIKE CONCAT('%', #{ date } ,'%') + AND the_date LIKE '%' + #{ date } + '%' </where> </select> diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml index 4e53609..cd7f198 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMessageApprovalMapper.xml @@ -9,7 +9,7 @@ FROM mdc_message_approval <where> - (sender_ids LIKE CONCAT(CONCAT('%',#{userId}),'%') OR approver_ids LIKE CONCAT(CONCAT('%',#{userId}),'%')) + (sender_ids LIKE '%' + #{userId} +'%' OR approver_ids LIKE '%' + #{userId} +'%') <if test="mdcMessageApproval.equipmentId != null and mdcMessageApproval.equipmentId != ''"> AND equipment_id = #{mdcMessageApproval.equipmentId} </if> diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcNoplanCloseMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcNoplanCloseMapper.xml index bfcf755..a53352f 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcNoplanCloseMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcNoplanCloseMapper.xml @@ -10,10 +10,10 @@ mdc_noplan_close <where> <if test="mdcNoplanClose.equipmentName != null and mdcNoplanClose.equipmentName != '' "> - AND equipment_name LIKE CONCAT(CONCAT('%',#{mdcNoplanClose.equipmentName}),'%') + AND equipment_name LIKE '%' + #{mdcNoplanClose.equipmentName} + '%' </if> <if test="mdcNoplanClose.equipmentId != null and mdcNoplanClose.equipmentId != '' "> - AND equipment_id LIKE CONCAT(CONCAT('%',#{mdcNoplanClose.equipmentId}),'%') + AND equipment_id LIKE '%' + #{mdcNoplanClose.equipmentId} + '%' </if> <if test="mdcNoplanClose.startTime != null "> AND end_time >= #{ mdcNoplanClose.startTime } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOeeInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOeeInfoMapper.xml new file mode 100644 index 0000000..09431dc --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOeeInfoMapper.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.mdc.mapper.MdcOeeInfoMapper"> + + <select id="oeeList" resultType="org.jeecg.modules.mdc.entity.MdcOeeInfo"> + SELECT + * + FROM + mdc_oee_info + <where> + AND work_date BETWEEN #{vo.startTime} AND #{vo.endTime} + <if test="vo.shiftSubId != null and vo.shiftSubId != '' "> + AND shift_sub_id = #{vo.shiftSubId} + </if> + <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 "> + AND equipment_id IN + <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=","> + #{ id } + </foreach> + </if> + </where> + ORDER BY work_date + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml index f812bb9..a22fe70 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverrunAlarmMapper.xml @@ -10,7 +10,7 @@ LEFT JOIN mdc_equipment t2 ON t1.equipment_id = t2.equipment_id <where> <if test="mdcEquipment.equipmentId != null and mdcEquipment.equipmentId != '' "> - AND t1.equipment_id LIKE CONCAT(CONCAT('%',#{mdcEquipment.equipmentId}),'%') + AND t1.equipment_id LIKE '%' + #{mdcEquipment.equipmentId} + '%' </if> <if test="mdcEquipment.equipmentType != null and mdcEquipment.equipmentType != '' "> AND t2.equipment_type = #{mdcEquipment.equipmentType} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml index f484955..5544a96 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml @@ -23,19 +23,19 @@ FROM mdc_process_quantity mpq LEFT JOIN mdc_standard_process_duration mspd ON mpq.standard_id = mspd.id <where> <if test="mdcProcessQuantity.equipmentId != null and mdcProcessQuantity.equipmentId != ''"> - AND mspd.equipment_id LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.equipmentId }),'%') + AND mspd.equipment_id LIKE '%' + #{ mdcProcessQuantity.equipmentId } + '%' </if> <if test="mdcProcessQuantity.equipmentName != null and mdcProcessQuantity.equipmentName != ''"> - AND mspd.equipment_name LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.equipmentName }),'%') + AND mspd.equipment_name LIKE '%' + #{ mdcProcessQuantity.equipmentName } + '%' </if> <if test="mdcProcessQuantity.partsCode != null and mdcProcessQuantity.partsCode != ''"> - AND mspd.parts_code LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.partsCode }),'%') + AND mspd.parts_code LIKE '%' + #{ mdcProcessQuantity.partsCode } + '%' </if> <if test="mdcProcessQuantity.batchCode != null and mdcProcessQuantity.batchCode != ''"> - AND mspd.batch_code LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.batchCode }),'%') + AND mspd.batch_code LIKE '%' + #{ mdcProcessQuantity.batchCode } + '%' </if> <if test="mdcProcessQuantity.sequenceNumber != null and mdcProcessQuantity.sequenceNumber != ''"> - AND mspd.sequence_number LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.sequenceNumber }),'%') + AND mspd.sequence_number LIKE '%' + #{ mdcProcessQuantity.sequenceNumber } + '%' </if> <if test="mdcProcessQuantity.startTime != null and mdcProcessQuantity.endTime != null"> AND mpq.efficient_date BETWEEN #{ mdcProcessQuantity.startTime } AND #{ mdcProcessQuantity.endTime } @@ -74,19 +74,19 @@ FROM mdc_process_quantity mpq LEFT JOIN mdc_standard_process_duration mspd ON mpq.standard_id = mspd.id <where> <if test="mdcProcessQuantity.equipmentId != null and mdcProcessQuantity.equipmentId != ''"> - AND mspd.equipment_id LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.equipmentId }),'%') + AND mspd.equipment_id LIKE '%' + #{ mdcProcessQuantity.equipmentId } + '%' </if> <if test="mdcProcessQuantity.equipmentName != null and mdcProcessQuantity.equipmentName != ''"> - AND mspd.equipment_name LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.equipmentName }),'%') + AND mspd.equipment_name LIKE '%' + #{ mdcProcessQuantity.equipmentName } + '%' </if> <if test="mdcProcessQuantity.partsCode != null and mdcProcessQuantity.partsCode != ''"> - AND mspd.parts_code LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.partsCode }),'%') + AND mspd.parts_code LIKE '%' + #{ mdcProcessQuantity.partsCode } + '%' </if> <if test="mdcProcessQuantity.batchCode != null and mdcProcessQuantity.batchCode != ''"> - AND mspd.batch_code LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.batchCode }),'%') + AND mspd.batch_code LIKE '%' + #{ mdcProcessQuantity.batchCode } + '%' </if> <if test="mdcProcessQuantity.sequenceNumber != null and mdcProcessQuantity.sequenceNumber != ''"> - AND mspd.sequence_number LIKE CONCAT(CONCAT('%',#{ mdcProcessQuantity.sequenceNumber }),'%') + AND mspd.sequence_number LIKE '%' + #{ mdcProcessQuantity.sequenceNumber } + '%' </if> <if test="mdcProcessQuantity.startTime != null and mdcProcessQuantity.endTime != null"> AND mpq.efficient_date BETWEEN #{ mdcProcessQuantity.startTime } AND #{ mdcProcessQuantity.endTime } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcStandardProcessDurationMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcStandardProcessDurationMapper.xml index e6a576c..d547309 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcStandardProcessDurationMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcStandardProcessDurationMapper.xml @@ -7,19 +7,19 @@ SELECT * FROM mdc_standard_process_duration <where> <if test="mdcStandardProcessDuration.equipmentId != null and mdcStandardProcessDuration.equipmentId != ''"> - AND equipment_id LIKE CONCAT(CONCAT('%',#{ mdcStandardProcessDuration.equipmentId }),'%') + AND equipment_id LIKE '%' + #{ mdcStandardProcessDuration.equipmentId } + '%' </if> <if test="mdcStandardProcessDuration.equipmentName != null and mdcStandardProcessDuration.equipmentName != ''"> - AND equipment_name LIKE CONCAT(CONCAT('%',#{ mdcStandardProcessDuration.equipmentName }),'%') + AND equipment_name LIKE '%' + #{ mdcStandardProcessDuration.equipmentName } + '%' </if> <if test="mdcStandardProcessDuration.partsCode != null and mdcStandardProcessDuration.partsCode != ''"> - AND parts_code LIKE CONCAT(CONCAT('%',#{ mdcStandardProcessDuration.partsCode }),'%') + AND parts_code LIKE '%' + #{ mdcStandardProcessDuration.partsCode } + '%' </if> <if test="mdcStandardProcessDuration.batchCode != null and mdcStandardProcessDuration.batchCode != ''"> - AND batch_code LIKE CONCAT(CONCAT('%',#{ mdcStandardProcessDuration.batchCode }),'%') + AND batch_code LIKE '%' + #{ mdcStandardProcessDuration.batchCode } + '%' </if> <if test="mdcStandardProcessDuration.sequenceNumber != null and mdcStandardProcessDuration.sequenceNumber != ''"> - AND sequence_number LIKE CONCAT(CONCAT('%',#{ mdcStandardProcessDuration.sequenceNumber }),'%') + AND sequence_number LIKE '%' + #{ mdcStandardProcessDuration.sequenceNumber } + '%' </if> <if test="mdcStandardProcessDuration.mdcSectionIds != null and mdcStandardProcessDuration.mdcSectionIds.size() > 0 "> AND equipment_id IN diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcTorqueConfigMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcTorqueConfigMapper.xml index efe16ba..a056a45 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcTorqueConfigMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcTorqueConfigMapper.xml @@ -7,10 +7,10 @@ select * from mdc_torque_config <where> <if test="mdcTorqueConfig.equipmentId != null and mdcTorqueConfig.equipmentId != '' "> - AND equipment_id LIKE CONCAT(CONCAT('%',#{mdcTorqueConfig.equipmentId}),'%') + AND equipment_id LIKE '%' + #{mdcTorqueConfig.equipmentId} + '%' </if> <if test="mdcTorqueConfig.equipmentName != null and mdcTorqueConfig.equipmentName != '' "> - AND equipment_name LIKE CONCAT(CONCAT('%',#{mdcTorqueConfig.equipmentName}),'%') + AND equipment_name LIKE '%' + #{mdcTorqueConfig.equipmentName} + '%' </if> <if test="mdcTorqueConfig.startTime != null and mdcTorqueConfig.endTime != null"> AND torque_date BETWEEN #{ mdcTorqueConfig.startTime } AND #{ mdcTorqueConfig.endTime } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcVacationManagementMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcVacationManagementMapper.xml index 632c1d0..0bc9f59 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcVacationManagementMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcVacationManagementMapper.xml @@ -6,10 +6,10 @@ select * from mdc_vacation_management <where> <if test="vacation.equipmentName != null and vacation.equipmentName != '' "> - and equipment_name like concat(concat('%',#{vacation.equipmentName}),'%') + and equipment_name like '%' + #{vacation.equipmentName} + '%' </if> <if test="vacation.equipmentId != null and vacation.equipmentId !='' "> - and equipment_id like concat(concat('%',#{vacation.equipmentId}),'%') + and equipment_id like '%' + #{vacation.equipmentId} + '%' </if> <if test="vacation.startTime != null and vacation.endTime != null"> and vacation_date between #{ vacation.startTime } and #{ vacation.endTime } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcComponentInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcComponentInfoService.java index 9353a44..9ec1f96 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcComponentInfoService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcComponentInfoService.java @@ -16,4 +16,6 @@ public interface IMdcComponentInfoService extends IService<MdcComponentInfo> { IPage<MdcComponentInfo> pageList(Page<MdcComponentInfo> page, MdcComponentInfo mdcComponentInfo, HttpServletRequest req); + + MdcComponentInfo findByComponentNo(String equipmentId, String productNo); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java new file mode 100644 index 0000000..badf107 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.mdc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.entity.MdcOeeInfo; +import org.jeecg.modules.mdc.vo.MdcOeeInfoQueryVo; +import org.jeecg.modules.mdc.vo.MdcOeeVo; + +/** + * @Description: OEE + * @Author: jeecg-boot + * @Date: 2024-10-22 + * @Version: V1.0 + */ +public interface IMdcOeeInfoService extends IService<MdcOeeInfo> { + + /** + * oee鍒楄〃 + * @param userId + * @param mdcOeeInfo + * @return + */ + MdcOeeVo pageList(String userId, MdcOeeInfoQueryVo mdcOeeInfo); + + /** + * 璁$畻oee浠诲姟 + * @param date + */ + void runningOverallEquipmentEfficiency(String date); + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcComponentInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcComponentInfoServiceImpl.java index 528ec66..80509bd 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcComponentInfoServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcComponentInfoServiceImpl.java @@ -6,9 +6,11 @@ import org.jeecg.modules.mdc.entity.MdcComponentInfo; import org.jeecg.modules.mdc.mapper.MdcComponentInfoMapper; import org.jeecg.modules.mdc.service.IMdcComponentInfoService; +import org.slf4j.MDC; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @Description: 闆朵欢琛� @@ -23,4 +25,14 @@ public IPage<MdcComponentInfo> pageList(Page<MdcComponentInfo> page, MdcComponentInfo mdcComponentInfo, HttpServletRequest req) { return this.baseMapper.pageList(page, mdcComponentInfo); } + + @Override + public MdcComponentInfo findByComponentNo(String equipmentId, String productNo) { + List<MdcComponentInfo> mdcComponentInfoList = this.baseMapper.findByComponentNo(equipmentId, productNo); + if (mdcComponentInfoList != null && !mdcComponentInfoList.isEmpty()) { + return mdcComponentInfoList.get(0); + } else { + return null; + } + } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java new file mode 100644 index 0000000..31f1291 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java @@ -0,0 +1,263 @@ +package org.jeecg.modules.mdc.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.modules.mdc.dto.MdcOeeListDto; +import org.jeecg.modules.mdc.dto.MdcOeeResultDto; +import org.jeecg.modules.mdc.entity.*; +import org.jeecg.modules.mdc.mapper.MdcOeeInfoMapper; +import org.jeecg.modules.mdc.service.*; +import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.mdc.vo.MdcOeeInfoQueryVo; +import org.jeecg.modules.mdc.vo.MdcOeeVo; +import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule; +import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description: OEE + * @Author: lius + * @Date: 2024-10-22 + * @Version: V1.0 + */ +@Service +public class MdcOeeInfoServiceImpl extends ServiceImpl<MdcOeeInfoMapper, MdcOeeInfo> implements IMdcOeeInfoService { + + @Resource + private IMdcEquipmentService mdcEquipmentService; + + @Resource + private IMdcShiftSubService mdcShiftSubService; + + @Resource + private IMdcUtilizationRateService mdcUtilizationRateService; + + @Resource + private IMdcComponentInfoService mdcComponentInfoService; + + @Resource + private IMdcProductDayScheduleService mdcProductDayScheduleService; + + @Resource + private IEquipmentService equipmentService; + + @Resource + private IMdcEquipmentStatisticalShiftInfoService mdcEquipmentStatisticalShiftInfoService; + + /** + * oee鍒楄〃 + * @param userId + * @param vo + * @return + */ + @Override + public MdcOeeVo pageList(String userId, MdcOeeInfoQueryVo vo) { + MdcOeeVo result = new MdcOeeVo(); + List<MdcOeeListDto> listDtos = new ArrayList<>(); + List<String> equipmentIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) { + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId()); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId()); + } + } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) { + // 鍗曞彴璁惧淇℃伅 + vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId())); + } else { + // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭� + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); + } + } + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + vo.setEquipmentIdList(equipmentIds); + } + + List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime())); + result.setDates(dates); + + // oee绛夌骇 + List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("oee"); + + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + result.setMdcOeeListDtoList(listDtos); + } else { + LambdaQueryWrapper<MdcEquipment> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.isNotNull(MdcEquipment::getEquipmentId); + if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) { + queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList()); + } + queryWrapper.orderByAsc(MdcEquipment::getEquipmentName); + List<MdcEquipment> equipmentList = mdcEquipmentService.list(queryWrapper); + //鏌ヨoee鏁版嵁 + List<MdcOeeInfo> oeeList = this.baseMapper.oeeList(vo); + //鏁版嵁澶勭悊 + String shiftSubName = "鍏ㄩ儴"; + if (!StringUtils.isBlank(vo.getShiftId())) { + List<MdcShiftSub> mdcShiftSubList = new ArrayList<>(); + if (StringUtils.isNotBlank(vo.getShiftSubId())) { + mdcShiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper<MdcShiftSub>().eq(MdcShiftSub::getId, vo.getShiftSubId()).eq(MdcShiftSub::getShiftSubStatus, "1")); + oeeList = oeeList.stream().filter(mdcOeeInfo -> mdcOeeInfo.getShiftId().equals(vo.getShiftId()) && mdcOeeInfo.getShiftSubId().equals(vo.getShiftSubId())).collect(Collectors.toList()); + } else { + mdcShiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper<MdcShiftSub>().eq(MdcShiftSub::getShiftId, vo.getShiftId()).eq(MdcShiftSub::getShiftSubStatus, "1")); + oeeList = oeeList.stream().filter(mdcOeeInfo -> mdcOeeInfo.getShiftId().equals(vo.getShiftId())).collect(Collectors.toList()); + } + List<String> shiftSubNames = mdcShiftSubList.stream().map(MdcShiftSub::getShiftSubName).collect(Collectors.toList()); + shiftSubName = String.join(",", shiftSubNames); + } + for (MdcEquipment mdcEquipment : equipmentList) { + MdcOeeListDto mdcOeeListDto = new MdcOeeListDto(); + mdcOeeListDto.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcOeeListDto.setEquipmentName(mdcEquipment.getEquipmentName()); + mdcOeeListDto.setEquipmentType(mdcEquipment.getEquipmentType()); + mdcOeeListDto.setShiftSubName(shiftSubName); + mdcOeeListDto.setClazz(mdcProductDayScheduleService.findClazz(mdcEquipment.getEquipmentId())); + List<MdcOeeResultDto> mdcOeeResultList = new ArrayList<>(); + for (String date : dates) { + MdcOeeResultDto mdcOeeResultDto = new MdcOeeResultDto(); + mdcOeeResultDto.setTheDate(date); + String format = DateUtils.format(DateUtils.toDate(date, DateUtils.STRDATE), DateUtils.STR_DATE); + List<MdcOeeInfo> mdcOeeInfoList = oeeList.stream().filter(mdcOeeInfo -> mdcOeeInfo.getEquipmentId().equals(mdcEquipment.getEquipmentId()) && mdcOeeInfo.getWorkDate().equals(format)).collect(Collectors.toList()); + BigDecimal oeeRate = BigDecimal.ZERO; + if (!mdcOeeInfoList.isEmpty()) { + BigDecimal count = mdcOeeInfoList.stream().map(MdcOeeInfo::getOeeRate).reduce(BigDecimal.ZERO, BigDecimal::add); + oeeRate = count.divide(new BigDecimal(mdcOeeInfoList.size()), 2, RoundingMode.HALF_UP); + mdcOeeResultDto.setOeeRate(oeeRate); + } + long rate = oeeRate.multiply(new BigDecimal("100")).longValue(); + for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { + if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) { + mdcOeeResultDto.setColor(mdcUtilizationRate.getRateParameterColor()); + } + } + mdcOeeResultList.add(mdcOeeResultDto); + } + mdcOeeListDto.setDataList(mdcOeeResultList); + listDtos.add(mdcOeeListDto); + } + result.setMdcOeeListDtoList(listDtos); + } + + return result; + } + + /** + * 璁$畻oee + * @param date + */ + @Override + public void runningOverallEquipmentEfficiency(String date) { + // 鑾峰彇鏈夋晥鏃ユ湡 鏍煎紡 yyyy-MM-dd + String validDate = LocalDate.now().plusDays(-1).toString(); + if (StringUtils.isNotBlank(date)) { + validDate = DateUtils.format(DateUtils.toDate(date, "yyyyMMdd"), DateUtils.STR_DATE); + try { + if (validDate != null) { + this.remove(new LambdaQueryWrapper<MdcOeeInfo>(). + eq(MdcOeeInfo::getWorkDate, validDate)); + } + } catch (Exception e) { + log.error("鍙傛暟鏍煎紡涓嶅", e); + } + } + //鑾峰彇鐝 + List<MdcShiftSub> mdcShiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper<MdcShiftSub>().eq(MdcShiftSub::getShiftSubStatus, CommonConstant.STATUS_1)); + if (mdcShiftSubList == null || mdcShiftSubList.isEmpty()) { + return; + } + List<Equipment> equipmentList = equipmentService.list(); + if (equipmentList == null || equipmentList.isEmpty()) { + return; + } + List<MdcOeeInfo> result = new ArrayList<>(); + for (Equipment equipment : equipmentList) { + //鑾峰彇闆堕儴浠惰鍒� + List<MdcProductDayschedule> productDayScheduleList = mdcProductDayScheduleService.list(new LambdaQueryWrapper<MdcProductDayschedule>() + .eq(MdcProductDayschedule::getPlanDate, validDate) + .eq(MdcProductDayschedule::getEquipmentId, equipment.getEquipmentid())); + if (productDayScheduleList != null && !productDayScheduleList.isEmpty()) { + MdcProductDayschedule mdcProductDayschedule; + MdcOeeInfo mdcOeeInfo = new MdcOeeInfo(); + for (MdcShiftSub mdcShiftSub : mdcShiftSubList) { + String id = mdcShiftSub.getId(); + if (productDayScheduleList.stream().anyMatch(productDayschedule -> productDayschedule.getOrderId().substring(8, 10).equals(id))) { + mdcOeeInfo.setEquipmentId(equipment.getEquipmentid()); + mdcOeeInfo.setWorkDate(validDate); + mdcOeeInfo.setStartTime(mdcShiftSub.getStartDate()); + mdcOeeInfo.setEndTime(mdcShiftSub.getEndDate()); + mdcOeeInfo.setInterDayFlag(mdcShiftSub.getIsDaySpan()); + mdcOeeInfo.setShiftId(mdcShiftSub.getShiftId()); + mdcOeeInfo.setShiftSubId(id); + //鑾峰彇璁惧杩愯鏁版嵁 + MdcEquipmentStatisticalShiftInfo mdcEquipmentStatisticalShiftInfo = mdcEquipmentStatisticalShiftInfoService.getOne(new LambdaQueryWrapper<MdcEquipmentStatisticalShiftInfo>() + .eq(MdcEquipmentStatisticalShiftInfo::getEquipmentId, equipment.getEquipmentid()) + .eq(MdcEquipmentStatisticalShiftInfo::getTheDate, validDate) + .eq(MdcEquipmentStatisticalShiftInfo::getShiftSubId, id)); + if (mdcEquipmentStatisticalShiftInfo == null) { + continue; + } + mdcOeeInfo.setProcessLong(mdcEquipmentStatisticalShiftInfo.getProcessLong()); + mdcOeeInfo.setWaitLong(mdcEquipmentStatisticalShiftInfo.getWaitLong()); + mdcOeeInfo.setOpenLong(mdcEquipmentStatisticalShiftInfo.getOpenLong()); + mdcOeeInfo.setCloseLong(mdcEquipmentStatisticalShiftInfo.getCloseLong()); + //鑾峰彇璁惧鐢熶骇璁″垝 + mdcProductDayschedule = productDayScheduleList.stream().filter(productDayschedule -> productDayschedule.getOrderId().substring(8, 10).equals(id)).findAny().orElse(null); + if (mdcProductDayschedule == null) { + continue; + } + mdcOeeInfo.setWorkTeam(mdcProductDayschedule.getClazz()); + mdcOeeInfo.setPlanNum(mdcProductDayschedule.getPlanCount()); + mdcOeeInfo.setCompleteNum(mdcProductDayschedule.getCompletionCount()); + mdcOeeInfo.setQualityNum(mdcProductDayschedule.getQualifiedCount()); + mdcOeeInfo.setComponentNo(mdcProductDayschedule.getProductNo()); + //鏌ヨ鐝骇鑳� + MdcComponentInfo mdcComponentInfo = null; + if (mdcProductDayschedule.getIsAutomaticLine().equals(CommonConstant.STATUS_1)) { + //鑷姩绾� + mdcComponentInfo = mdcComponentInfoService.findByComponentNo(equipment.getEquipmentid(), mdcProductDayschedule.getProductNo()); + } else { + //闈炶嚜鍔ㄧ嚎 + List<MdcComponentInfo> componentInfoList = mdcComponentInfoService.list(new LambdaQueryWrapper<MdcComponentInfo>() + .eq(MdcComponentInfo::getComponentNo, mdcProductDayschedule.getProductNo()) + .like(MdcComponentInfo::getEquipmentId, equipment.getEquipmentid())); + if (componentInfoList != null && !componentInfoList.isEmpty()) { + mdcComponentInfo = componentInfoList.get(0); + } + } + if (mdcComponentInfo == null) { + continue; + } + mdcOeeInfo.setScheduleNum(mdcComponentInfo.getScheduleNum()); + + BigDecimal oeeRate = mdcOeeInfo.getProcessLong().multiply(new BigDecimal(mdcOeeInfo.getPlanNum())).multiply(new BigDecimal(mdcOeeInfo.getQualityNum())) + .divide(mdcEquipmentStatisticalShiftInfo.getTotalLong(), 2, RoundingMode.HALF_UP) + .divide(new BigDecimal(mdcOeeInfo.getScheduleNum()), 2, RoundingMode.HALF_UP) + .divide(new BigDecimal(mdcOeeInfo.getCompleteNum()), 2, RoundingMode.HALF_UP); + mdcOeeInfo.setOeeRate(oeeRate); + result.add(mdcOeeInfo); + } + } + } + } + if (!result.isEmpty()) { + this.saveBatch(result); + } + } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeInfoQueryVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeInfoQueryVo.java new file mode 100644 index 0000000..d4a3a28 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeInfoQueryVo.java @@ -0,0 +1,52 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @author Lius + * @date 2024/10/22 14:10 + */ +@Data +public class MdcOeeInfoQueryVo { + + /** + * 鏃ユ湡 + */ + private String dateTime; + /** + * 寮�濮嬫椂闂� -> 20220101 + */ + private String startTime; + /** + * 缁撴潫鏃堕棿 -> 20220101 + */ + private String endTime; + /** + * 鏍戠被鍨� -> 1:杞﹂棿灞傜骇 2:閮ㄩ棬灞傜骇 + */ + private String typeTree; + /** + * 鐝埗ID + */ + private String shiftId; + /** + * 鐝ID + */ + private String shiftSubId; + /** + * 灞傜骇ID + */ + private String parentId; + /** + * 璁惧Id + */ + private String equipmentId; + + /** + * 璁惧ids + */ + private List<String> equipmentIdList; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeVo.java new file mode 100644 index 0000000..c5e7657 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeVo.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; +import org.jeecg.modules.mdc.dto.MdcOeeListDto; + +import java.util.List; + +/** + * @author Lius + * @date 2024/10/22 13:45 + */ +@Data +public class MdcOeeVo { + + private List<MdcOeeListDto> mdcOeeListDtoList; + + private List<String> dates; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java index 0607604..fa11e7e 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java @@ -74,11 +74,4 @@ */ List<UnderLineQueue> findListUnderLineQueue(@Param("id") Integer id); - /** - * 鑾峰彇鏄ㄦ棩鏁版嵁 - * - * @param date - * @return - */ - MdcProductDayschedule findYesterdayData(@Param("date") String date); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java index 53d2355..589d023 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java @@ -13,4 +13,8 @@ public interface MdcProductDayscheduleMapper extends BaseMapper<MdcProductDayschedule> { List<String> selectDateList(@Param("dateTime") String dateTime); + + MdcProductDayschedule findYesterdayData(@Param("date") String date); + + String findClazz(@Param("equipmentId") String equipmentId); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml index 6bd63ac..552c0fe 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml @@ -34,15 +34,4 @@ SELECT * FROM T_UnderLine_Queue WHERE ID > #{id} </select> - <select id="findYesterdayData" resultType="org.jeecg.modules.mdcJc.entity.MdcProductDayschedule"> - SELECT - SUM(planCount) planDate, - SUM ( completionCount ) completionCount, - SUM ( qualifiedCount ) qualifiedCount - FROM - mdcJc_ProductDayschedule - WHERE - planDate = #{date} - </select> - </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml index 26aa0db..2681160 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml @@ -7,4 +7,24 @@ SELECT mdc_id FROM mdcJc_ProductDayschedule WHERE planDate = #{ dateTime } </select> + <select id="findYesterdayData" resultType="org.jeecg.modules.mdcJc.entity.MdcProductDayschedule"> + SELECT + SUM ( planCount ) planDate, + SUM ( completionCount ) completionCount, + SUM ( qualifiedCount ) qualifiedCount + FROM + mdcJc_ProductDayschedule + WHERE + planDate = #{date} + </select> + + <select id="findClazz" resultType="java.lang.String"> + SELECT + TOP 1 clazz + FROM + mdcJc_ProductDayschedule + WHERE equipmentID = #{equipmentId} + </select> + + </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java index 1c7f7a3..101bcad 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java @@ -65,10 +65,4 @@ */ List<UnderLineQueue> findListUnderLineQueue(Integer id); - /** - * 鑾峰彇鏄ㄦ棩鏁版嵁 - * @param date - * @return - */ - MdcProductDayschedule findYesterdayData(String date); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java index c92edd7..e757995 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java @@ -25,4 +25,5 @@ */ MdcProductDayschedule findYesterdayData(); + String findClazz(String equipmentId); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java index e1363d7..8d3f93a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java @@ -58,10 +58,4 @@ return super.baseMapper.findListUnderLineQueue(id); } - @Override - public MdcProductDayschedule findYesterdayData(String date) { - return this.baseMapper.findYesterdayData(date); - } - - } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java index c55f23a..89ab5c2 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java @@ -52,6 +52,11 @@ @Override public MdcProductDayschedule findYesterdayData() { String date = LocalDate.now().plusDays(-1).toString(); - return classMonthlyScheduleService.findYesterdayData(date); + return this.baseMapper.findYesterdayData(date); + } + + @Override + public String findClazz(String equipmentId) { + return this.baseMapper.findClazz(equipmentId); } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml index 3e751a9..ed5646d 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml @@ -78,10 +78,10 @@ <if test="userParams != null"> <if test="userParams.realname != null and userParams.realname != ''"> - AND sys_user.realname LIKE concat(concat('%',#{userParams.realname}),'%') + AND sys_user.realname LIKE '%' + #{userParams.realname} + '%' </if> <if test="userParams.workNo != null and userParams.workNo != ''"> - AND sys_user.work_no LIKE concat(concat('%',#{userParams.workNo}),'%') + AND sys_user.work_no LIKE '%' + #{userParams.workNo} + '%' </if> </if> </sql> @@ -215,6 +215,6 @@ LEFT JOIN sys_user_role t2 ON t1.id = t2.user_id LEFT JOIN sys_role t3 ON t2.role_id = t3.id WHERE - t3.role_code = #{roleCode} AND equipment_ids LIKE concat(concat('%',#{equipmentId}),'%') + t3.role_code = #{roleCode} AND equipment_ids LIKE '%' + #{equipmentId} + '%' </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3