Merge remote-tracking branch 'origin/master'
| | |
| | | */ |
| | | Integer DOWNTIME_STATUS_0 = 0; |
| | | Integer DOWNTIME_STATUS_1 = 1; |
| | | /** |
| | | * åæºç±»å 0(计ååæº) 1 (é计ååæº) |
| | | */ |
| | | String CLOSE_TYPE_0 = "0"; |
| | | String CLOSE_TYPE_1 = "1"; |
| | | |
| | | } |
| | |
| | | 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.dto.MdcDowntimeDto; |
| | | import org.jeecg.modules.mdc.entity.MdcDowntime; |
| | | import org.jeecg.modules.mdc.entity.MdcEquipmentOvertime; |
| | | import org.jeecg.modules.mdc.service.IMdcDowntimeService; |
| | |
| | | HttpServletRequest req) { |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | String userId = user.getId(); |
| | | Page<MdcDowntime> page = new Page<MdcDowntime>(pageNo, pageSize); |
| | | IPage<MdcDowntime> pageList = mdcDowntimeService.pageList(userId, page, mdcDowntimeVo, req); |
| | | Page<MdcDowntimeDto> page = new Page<MdcDowntimeDto>(pageNo, pageSize); |
| | | IPage<MdcDowntimeDto> pageList = mdcDowntimeService.pageList(userId, page, mdcDowntimeVo, req); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.controller; |
| | | |
| | | 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.vo.LoginUser; |
| | | import org.jeecg.modules.mdc.entity.MdcOeeInfo; |
| | | import org.jeecg.modules.mdc.service.IMdcOeeInfoService; |
| | | import org.jeecg.modules.mdc.vo.MdcOeeComputeVo; |
| | | import org.jeecg.modules.mdc.vo.MdcOeeInfoVo; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * @Description: OEE表 |
| | | * @Author: lius |
| | | * @Date: 2024-12-12 |
| | | */ |
| | | @Slf4j |
| | | @Api(tags = "OEE表") |
| | | @RestController |
| | | @RequestMapping("/mdc/mdcOeeInfo") |
| | | public class MdcOeeInfoController extends JeecgController<MdcOeeInfo, IMdcOeeInfoService> { |
| | | |
| | | @Resource |
| | | private IMdcOeeInfoService mdcOeeInfoService; |
| | | |
| | | /** |
| | | * å页å表æ¥è¯¢ |
| | | * |
| | | * @param mdcOeeInfoVo |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "OEE表-å页å表æ¥è¯¢") |
| | | @ApiOperation(value = "OEE表-å页å表æ¥è¯¢", notes = "OEE表-å页å表æ¥è¯¢") |
| | | @GetMapping(value = "/list") |
| | | public Result<?> queryPageList(MdcOeeInfoVo mdcOeeInfoVo, |
| | | @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, |
| | | HttpServletRequest req) { |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | String userId = user.getId(); |
| | | Page<MdcOeeInfo> page = new Page<MdcOeeInfo>(pageNo, pageSize); |
| | | IPage<MdcOeeInfo> pageList = mdcOeeInfoService.pageList(userId, page, mdcOeeInfoVo, req); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | | /** |
| | | * éè¿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 mdcOeeInfoVo |
| | | */ |
| | | @RequestMapping(value = "/exportXls") |
| | | public ModelAndView exportXls(HttpServletRequest request, MdcOeeInfoVo mdcOeeInfoVo) { |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | String userId = user.getId(); |
| | | return mdcOeeInfoService.exportXls(userId, mdcOeeInfoVo); |
| | | } |
| | | |
| | | /** |
| | | * 计ç®OEE |
| | | * |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "OEE表-计ç®OEE") |
| | | @ApiOperation(value = "OEE表-计ç®OEE", notes = "OEE表-计ç®OEE") |
| | | @PostMapping(value = "/computeOee") |
| | | public Result<?> computeOee(@RequestBody MdcOeeComputeVo mdcOeeComputeVo) { |
| | | mdcOeeInfoService.computeOee(mdcOeeComputeVo); |
| | | return Result.OK("è®¡ç®æåï¼"); |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.controller; |
| | | |
| | | 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.commons.lang.StringUtils; |
| | | 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.vo.LoginUser; |
| | | import org.jeecg.modules.mdc.entity.MdcPartProcessInfo; |
| | | import org.jeecg.modules.mdc.service.IMdcPartProcessInfoService; |
| | | import org.jeecg.modules.mdc.vo.MdcPartProcessInfoVo; |
| | | 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: é¶ä»¶å å·¥æ°æ®è¡¨ |
| | | * @Author: lius |
| | | * @Date: 2024-12-11 |
| | | */ |
| | | @Slf4j |
| | | @Api(tags = "é¶ä»¶å å·¥æ°æ®è¡¨") |
| | | @RestController |
| | | @RequestMapping("/mdc/mdcPartProcessInfo") |
| | | public class MdcPartProcessInfoController extends JeecgController<MdcPartProcessInfo, IMdcPartProcessInfoService> { |
| | | |
| | | @Resource |
| | | private IMdcPartProcessInfoService mdcPartProcessInfoService; |
| | | |
| | | /** |
| | | * å页å表æ¥è¯¢ |
| | | * |
| | | * @param mdcPartProcessInfo |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "é¶ä»¶å å·¥æ°æ®è¡¨-å页å表æ¥è¯¢") |
| | | @ApiOperation(value = "é¶ä»¶å å·¥æ°æ®è¡¨-å页å表æ¥è¯¢", notes = "é¶ä»¶å å·¥æ°æ®è¡¨-å页å表æ¥è¯¢") |
| | | @GetMapping(value = "/list") |
| | | public Result<?> queryPageList(MdcPartProcessInfoVo mdcPartProcessInfo, |
| | | @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, |
| | | HttpServletRequest req) { |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | String userId = user.getId(); |
| | | Page<MdcPartProcessInfo> page = new Page<MdcPartProcessInfo>(pageNo, pageSize); |
| | | IPage<MdcPartProcessInfo> pageList = mdcPartProcessInfoService.pageList(userId, page, mdcPartProcessInfo, req); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | | /** |
| | | * æ·»å |
| | | * |
| | | * @param mdcPartProcessInfo |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "é¶ä»¶å å·¥æ°æ®è¡¨-æ·»å ") |
| | | @ApiOperation(value = "é¶ä»¶å å·¥æ°æ®è¡¨-æ·»å ", notes = "é¶ä»¶å å·¥æ°æ®è¡¨-æ·»å ") |
| | | @PostMapping(value = "/add") |
| | | public Result<?> add(@RequestBody MdcPartProcessInfoVo mdcPartProcessInfo) { |
| | | if (StringUtils.isBlank(mdcPartProcessInfo.getEquipmentIds())) { |
| | | return Result.error("æªéæ©è®¾å¤ï¼è¯·ææ¥ï¼"); |
| | | } |
| | | boolean result = mdcPartProcessInfoService.addPartProcess(mdcPartProcessInfo); |
| | | if (!result) { |
| | | return Result.error("æ·»å 失败ï¼"); |
| | | } |
| | | return Result.OK("æ·»å æåï¼"); |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ |
| | | * |
| | | * @param mdcPartProcessInfo |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "é¶ä»¶å å·¥æ°æ®è¡¨-ç¼è¾") |
| | | @ApiOperation(value = "é¶ä»¶å å·¥æ°æ®è¡¨-ç¼è¾", notes = "é¶ä»¶å å·¥æ°æ®è¡¨-ç¼è¾") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public Result<?> edit(@RequestBody MdcPartProcessInfo mdcPartProcessInfo) { |
| | | mdcPartProcessInfoService.updateById(mdcPartProcessInfo); |
| | | return Result.OK("ç¼è¾æå!"); |
| | | } |
| | | |
| | | /** |
| | | * éè¿idå é¤ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "é¶ä»¶å å·¥æ°æ®è¡¨-éè¿idå é¤") |
| | | @ApiOperation(value = "é¶ä»¶å å·¥æ°æ®è¡¨-éè¿idå é¤", notes = "é¶ä»¶å å·¥æ°æ®è¡¨-éè¿idå é¤") |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<?> delete(@RequestParam(name = "id", required = true) String id) { |
| | | mdcPartProcessInfoService.removeById(id); |
| | | return Result.OK("å 餿å!"); |
| | | } |
| | | |
| | | /** |
| | | * æ¹éå é¤ |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "é¶ä»¶å å·¥æ°æ®è¡¨-æ¹éå é¤") |
| | | @ApiOperation(value = "é¶ä»¶å å·¥æ°æ®è¡¨-æ¹éå é¤", notes = "é¶ä»¶å å·¥æ°æ®è¡¨-æ¹éå é¤") |
| | | @DeleteMapping(value = "/deleteBatch") |
| | | public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { |
| | | this.mdcPartProcessInfoService.removeByIds(Arrays.asList(ids.split(","))); |
| | | return Result.OK("æ¹éå 餿åï¼"); |
| | | } |
| | | |
| | | /** |
| | | * éè¿idæ¥è¯¢ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "é¶ä»¶å å·¥æ°æ®è¡¨-éè¿idæ¥è¯¢") |
| | | @ApiOperation(value = "é¶ä»¶å å·¥æ°æ®è¡¨-éè¿idæ¥è¯¢", notes = "é¶ä»¶å å·¥æ°æ®è¡¨-éè¿idæ¥è¯¢") |
| | | @GetMapping(value = "/queryById") |
| | | public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { |
| | | MdcPartProcessInfo mdcPartProcessInfo = mdcPartProcessInfoService.getById(id); |
| | | return Result.OK(mdcPartProcessInfo); |
| | | } |
| | | |
| | | /** |
| | | * 导åºexcel |
| | | * |
| | | * @param request |
| | | * @param mdcPartProcessInfo |
| | | */ |
| | | @RequestMapping(value = "/exportXls") |
| | | public ModelAndView exportXls(HttpServletRequest request, MdcPartProcessInfoVo mdcPartProcessInfo) { |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | String userId = user.getId(); |
| | | return mdcPartProcessInfoService.exportXls(userId, mdcPartProcessInfo); |
| | | } |
| | | |
| | | /** |
| | | * éè¿excel导å
¥æ°æ® |
| | | * |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | return super.importExcel(request, response, MdcPartProcessInfo.class); |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.dto; |
| | | |
| | | import lombok.Data; |
| | | import org.jeecg.modules.mdc.entity.MdcDowntime; |
| | | |
| | | /** |
| | | * @Author: Lius |
| | | * @CreateTime: 2025-03-17 |
| | | * @Description: å¾
æºåæºåå |
| | | */ |
| | | @Data |
| | | public class MdcDowntimeDto extends MdcDowntime { |
| | | private Integer downtimeType; |
| | | private String downtimeDescription; |
| | | |
| | | } |
| | |
| | | */ |
| | | @Excel(name = "åæºåå id", width = 15) |
| | | @ApiModelProperty(value = "åæºåå id") |
| | | @Dict(dictTable = "mdc_downtime_reason",dicCode = "id",dicText = "downtime_type") |
| | | private String reasonId; |
| | | /** |
| | | * ç¶æï¼0æªä¸æ¥ï¼1已䏿¥ï¼ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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-12-12 |
| | | */ |
| | | @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 = -1029070983514140912L; |
| | | |
| | | /** |
| | | * 设å¤ç¼å· |
| | | */ |
| | | @Excel(name = "设å¤ç¼å·", width = 15) |
| | | @ApiModelProperty(value = "设å¤ç¼å·") |
| | | private String equipmentId; |
| | | /** |
| | | * æ¥æ |
| | | */ |
| | | @Excel(name = "æ¥æ", width = 15) |
| | | @ApiModelProperty(value = "æ¥æ") |
| | | private String theDate; |
| | | /** |
| | | * 工使¥åæ¶é´(min) |
| | | */ |
| | | @Excel(name = "工使¥åæ¶é´(min)", width = 15) |
| | | @ApiModelProperty(value = "工使¥åæ¶é´(min)") |
| | | private Integer calendarLong; |
| | | /** |
| | | * 计ååæºæ¶é´(min) |
| | | */ |
| | | @Excel(name = "计ååæºæ¶é´(min)", width = 15) |
| | | @ApiModelProperty(value = "计ååæºæ¶é´(min)") |
| | | private Integer planCloseLong; |
| | | /** |
| | | * è´è·æ¶é´(min) |
| | | */ |
| | | @Excel(name = "è´è·æ¶é´(min)", width = 15) |
| | | @ApiModelProperty(value = "è´è·æ¶é´(min)") |
| | | private Integer loadLong; |
| | | /** |
| | | * é计ååæºæ¶é´(min) |
| | | */ |
| | | @Excel(name = "é计ååæºæ¶é´(min)", width = 15) |
| | | @ApiModelProperty(value = "é计ååæºæ¶é´(min)") |
| | | private Integer noplanCloseLong; |
| | | /** |
| | | * å¼å¨æ¶é´(min) |
| | | */ |
| | | @Excel(name = "å¼å¨æ¶é´(min)", width = 15) |
| | | @ApiModelProperty(value = "å¼å¨æ¶é´(min)") |
| | | private Integer actuateLong; |
| | | /** |
| | | * æ¶é´å¼å¨ç |
| | | */ |
| | | @Excel(name = "æ¶é´å¼å¨ç", width = 15) |
| | | @ApiModelProperty(value = "æ¶é´å¼å¨ç") |
| | | private BigDecimal timeActuationRate; |
| | | /** |
| | | * ææè¿è¡æ¶é´ |
| | | */ |
| | | @Excel(name = "ææè¿è¡æ¶é´", width = 15) |
| | | @ApiModelProperty(value = "ææè¿è¡æ¶é´") |
| | | private Integer effectiveRunLong; |
| | | /** |
| | | * æ§è½å¼å¨ç |
| | | */ |
| | | @Excel(name = "æ§è½å¼å¨ç", width = 15) |
| | | @ApiModelProperty(value = "æ§è½å¼å¨ç") |
| | | private BigDecimal performanceRate; |
| | | /** |
| | | * å å·¥é¶ä»¶æ°é |
| | | */ |
| | | @Excel(name = "å å·¥é¶ä»¶æ°é", width = 15) |
| | | @ApiModelProperty(value = "å å·¥é¶ä»¶æ°é") |
| | | private Integer processCount; |
| | | /** |
| | | * åæ ¼é¶ä»¶æ°é |
| | | */ |
| | | @Excel(name = "åæ ¼é¶ä»¶æ°é", width = 15) |
| | | @ApiModelProperty(value = "åæ ¼é¶ä»¶æ°é") |
| | | private Integer passCount; |
| | | /** |
| | | * åæ ¼ç |
| | | */ |
| | | @Excel(name = "åæ ¼ç", width = 15) |
| | | @ApiModelProperty(value = "åæ ¼ç") |
| | | private BigDecimal passRate; |
| | | /** |
| | | * OEE |
| | | */ |
| | | @Excel(name = "OEE", width = 15) |
| | | @ApiModelProperty(value = "OEE") |
| | | private BigDecimal oee; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * @Description: é¶ä»¶å å·¥æ°æ®è¡¨ |
| | | * @Author: lius |
| | | * @Date: 2024-12-11 |
| | | */ |
| | | @Data |
| | | @TableName("mdc_part_process_info") |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @ApiModel(value = "mdc_part_process_info对象", description = "é¶ä»¶å å·¥æ°æ®è¡¨") |
| | | public class MdcPartProcessInfo extends JeecgEntity implements Serializable { |
| | | |
| | | private static final long serialVersionUID = -5287766951707976335L; |
| | | |
| | | /** |
| | | * æ¥æ |
| | | */ |
| | | @Excel(name = "æ¥æ", width = 15) |
| | | @ApiModelProperty(value = "æ¥æ") |
| | | private String theDate; |
| | | /** |
| | | * 设å¤ç¼å· |
| | | */ |
| | | @Excel(name = "设å¤ç¼å·", width = 20) |
| | | @ApiModelProperty(value = "设å¤ç¼å·") |
| | | private String equipmentId; |
| | | /** |
| | | * é¶ä»¶å· |
| | | */ |
| | | @Excel(name = "é¶ä»¶å·", width = 20) |
| | | @ApiModelProperty(value = "é¶ä»¶å·") |
| | | private String partId; |
| | | /** |
| | | * æ åå å·¥æ¶é¿ï¼minï¼ |
| | | */ |
| | | @Excel(name = "æ åå å·¥æ¶é¿ï¼minï¼", width = 20) |
| | | @ApiModelProperty(value = "æ åå å·¥æ¶é¿ï¼minï¼") |
| | | private Integer standardProcessLong; |
| | | /** |
| | | * å å·¥é¶ä»¶æ°é |
| | | */ |
| | | @Excel(name = "å å·¥é¶ä»¶æ°é", width = 15) |
| | | @ApiModelProperty(value = "å å·¥é¶ä»¶æ°é") |
| | | private Integer processCount; |
| | | /** |
| | | * åæ ¼é¶ä»¶æ°é |
| | | */ |
| | | @Excel(name = "åæ ¼é¶ä»¶æ°é", width = 15) |
| | | @ApiModelProperty(value = "åæ ¼é¶ä»¶æ°é") |
| | | private Integer passCount; |
| | | /** |
| | | * å å·¥æ»æ¶é¿(min) |
| | | */ |
| | | @Excel(name = "å å·¥æ»æ¶é¿(min)", width = 18) |
| | | @ApiModelProperty(value = "å å·¥æ»æ¶é¿(min)") |
| | | private Integer totalProcessLong; |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.jeecg.modules.mdc.dto.MdcDowntimeDto; |
| | | import org.jeecg.modules.mdc.entity.MdcDowntime; |
| | | import org.jeecg.modules.mdc.vo.MdcDowntimeVo; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Description: å¾
æºåæºè¡¨ |
| | |
| | | */ |
| | | public interface MdcDowntimeMapper extends BaseMapper<MdcDowntime> { |
| | | |
| | | IPage<MdcDowntime> pageList(Page<MdcDowntime> page, @Param("mdcDowntimeVo") MdcDowntimeVo mdcDowntimeVo); |
| | | IPage<MdcDowntimeDto> pageList(Page<MdcDowntimeDto> page, @Param("mdcDowntimeVo") MdcDowntimeVo mdcDowntimeVo); |
| | | |
| | | List<MdcDowntime> findPlanTimeDuration(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate, @Param("closeType") String closeType); |
| | | } |
| | |
| | | * è·åè®¾å¤ææ°æ¥æçè¿è¡æ°æ® |
| | | */ |
| | | MdcEquipmentStatisticalInfo getMaxStaticsData(@Param("equipmentId") String equipmentId); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤è¿è¡æ¶é´ |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectProcessLong(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.jeecg.modules.mdc.entity.MdcOeeInfo; |
| | | import org.jeecg.modules.mdc.vo.MdcOeeInfoVo; |
| | | |
| | | /** |
| | | * @Description: OEE表 |
| | | * @Author: lius |
| | | * @Date: 2024-12-12 |
| | | */ |
| | | public interface MdcOeeInfoMapper extends BaseMapper<MdcOeeInfo> { |
| | | |
| | | /** |
| | | * å页å表 |
| | | * |
| | | * @param page |
| | | * @param mdcOeeInfoVo |
| | | * @return |
| | | */ |
| | | IPage<MdcOeeInfo> pageList(Page<MdcOeeInfo> page, @Param("mdcOeeInfoVo") MdcOeeInfoVo mdcOeeInfoVo); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.jeecg.modules.mdc.entity.MdcPartProcessInfo; |
| | | import org.jeecg.modules.mdc.vo.MdcPartProcessInfoVo; |
| | | |
| | | /** |
| | | * @Description: é¶ä»¶å å·¥æ°æ®è¡¨ |
| | | * @Author: lius |
| | | * @Date: 2024-12-11 |
| | | */ |
| | | public interface MdcPartProcessInfoMapper extends BaseMapper<MdcPartProcessInfo> { |
| | | |
| | | /** |
| | | * å页å表 |
| | | * |
| | | * @param page |
| | | * @param mdcPartProcessInfo |
| | | * @return |
| | | */ |
| | | IPage<MdcPartProcessInfo> pageList(Page<MdcPartProcessInfo> page, @Param("mdcPartProcessInfo") MdcPartProcessInfoVo mdcPartProcessInfo); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ¶é´ |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectTotalProcessLong(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ°é |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectTotalProcessCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥åæ ¼æ°é |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectTotalPassCount(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate); |
| | | } |
| | |
| | | <!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.MdcDowntimeMapper"> |
| | | |
| | | <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcDowntime"> |
| | | SELECT * FROM mdc_downtime |
| | | <select id="pageList" resultType="org.jeecg.modules.mdc.dto.MdcDowntimeDto"> |
| | | SELECT |
| | | t1.* , |
| | | t2.downtime_type downtimeType, |
| | | t2.downtime_description downtimeDescription |
| | | FROM mdc_downtime t1 LEFT JOIN mdc_downtime_reason t2 ON t1.reason_id = t2.id |
| | | <where> |
| | | <if test="mdcDowntimeVo.equipmentId != null and mdcDowntimeVo.equipmentId != ''"> |
| | | AND equipment_id = #{ mdcDowntimeVo.equipmentId } |
| | | AND t1.equipment_id = #{ mdcDowntimeVo.equipmentId } |
| | | </if> |
| | | <if test="mdcDowntimeVo.equipmentName != null and mdcDowntimeVo.equipmentName != ''"> |
| | | AND equipment_name = #{ mdcDowntimeVo.equipmentName } |
| | | AND t1.equipment_name = #{ mdcDowntimeVo.equipmentName } |
| | | </if> |
| | | <if test="mdcDowntimeVo.startTime != null and mdcDowntimeVo.startTime != '' and mdcDowntimeVo.endTime != null and mdcDowntimeVo.endTime != ''"> |
| | | AND the_date BETWEEN #{ mdcDowntimeVo.startTime } AND #{ mdcDowntimeVo.endTime } |
| | | AND t1.the_date BETWEEN #{ mdcDowntimeVo.startTime } AND #{ mdcDowntimeVo.endTime } |
| | | </if> |
| | | <if test="mdcDowntimeVo.equipmentIdList != null and mdcDowntimeVo.equipmentIdList.size() > 0 "> |
| | | AND equipment_id IN |
| | | AND t1.equipment_id IN |
| | | <foreach collection="mdcDowntimeVo.equipmentIdList" item="equipmentId" index="index" open="(" close=")" separator=","> |
| | | #{ equipmentId } |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | ORDER BY create_time DESC |
| | | ORDER BY t1.create_time DESC |
| | | </select> |
| | | |
| | | <select id="findPlanTimeDuration" resultType="org.jeecg.modules.mdc.entity.MdcDowntime"> |
| | | SELECT |
| | | t1.* |
| | | FROM |
| | | mdc_downtime t1 |
| | | LEFT JOIN mdc_downtime_reason t2 ON t1.reason_id = t2.id |
| | | WHERE |
| | | t1.status = 1 |
| | | AND t1.equipment_id = #{equipmentId} |
| | | AND t2.downtime_type = #{closeType} |
| | | AND t1.the_date = #{validDate} |
| | | </select> |
| | | </mapper> |
| | |
| | | WHERE |
| | | t1.id = #{ id } |
| | | </select> |
| | | |
| | | <select id="queryByProductionIdAndType" resultType="org.jeecg.modules.mdc.entity.MdcEquipment"> |
| | | SELECT |
| | | me.* |
| | |
| | | <select id="getMaxStaticsData" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalInfo"> |
| | | SELECT TOP 1 * FROM mdc_equipment_statistical_info WHERE equipment_id = #{equipmentId} ORDER BY the_date DESC |
| | | </select> |
| | | |
| | | <!--æ¥è¯¢è®¾å¤è¿è¡æ¶é´--> |
| | | <select id="selectProcessLong" resultType="java.lang.Integer"> |
| | | SELECT TOP 1 process_long FROM mdc_equipment_statistical_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate} |
| | | </select> |
| | | </mapper> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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="pageList" resultType="org.jeecg.modules.mdc.entity.MdcOeeInfo"> |
| | | SELECT |
| | | * |
| | | FROM |
| | | mdc_oee_info |
| | | <where> |
| | | <if test="mdcOeeInfoVo.equipmentId != null and mdcOeeInfoVo.equipmentId != ''"> |
| | | AND equipment_id = #{ mdcOeeInfoVo.equipmentId } |
| | | </if> |
| | | <if test="mdcOeeInfoVo.startTime != null and mdcOeeInfoVo.startTime != ''"> |
| | | AND the_date >= #{ mdcOeeInfoVo.startTime } |
| | | </if> |
| | | <if test="mdcOeeInfoVo.endTime != null and mdcOeeInfoVo.endTime != ''"> |
| | | AND the_date <= #{mdcOeeInfoVo.endTime } |
| | | </if> |
| | | <if test="mdcOeeInfoVo.equipmentIdList != null and mdcOeeInfoVo.equipmentIdList.size() > 0 "> |
| | | AND equipment_id IN |
| | | <foreach collection="mdcOeeInfoVo.equipmentIdList" item="id" index="index" open="(" close=")" separator=","> |
| | | #{ id } |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | ORDER BY the_date DESC, equipment_id ASC |
| | | </select> |
| | | </mapper> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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.MdcPartProcessInfoMapper"> |
| | | |
| | | <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcPartProcessInfo"> |
| | | SELECT |
| | | * |
| | | FROM |
| | | mdc_part_process_info |
| | | <where> |
| | | <if test="mdcPartProcessInfo.equipmentId != null and mdcPartProcessInfo.equipmentId != ''"> |
| | | AND equipment_id = #{ mdcPartProcessInfo.equipmentId } |
| | | </if> |
| | | <if test="mdcPartProcessInfo.partId != null and mdcPartProcessInfo.partId != ''"> |
| | | AND part_id = #{ mdcPartProcessInfo.partId } |
| | | </if> |
| | | <if test="mdcPartProcessInfo.theDate != null and mdcPartProcessInfo.theDate != ''"> |
| | | AND the_date LIKE CONCAT('%',#{ mdcPartProcessInfo.theDate },'%') |
| | | </if> |
| | | <if test="mdcPartProcessInfo.startTime != null and mdcPartProcessInfo.startTime != ''"> |
| | | AND the_date >= #{ mdcPartProcessInfo.startTime } |
| | | </if> |
| | | <if test="mdcPartProcessInfo.endTime != null and mdcPartProcessInfo.endTime != ''"> |
| | | AND the_date <= #{mdcPartProcessInfo.endTime } |
| | | </if> |
| | | <if test="mdcPartProcessInfo.equipmentIdList != null and mdcPartProcessInfo.equipmentIdList.size() > 0 "> |
| | | AND equipment_id IN |
| | | <foreach collection="mdcPartProcessInfo.equipmentIdList" item="id" index="index" open="(" close=")" separator=","> |
| | | #{ id } |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | ORDER BY the_date DESC, equipment_id ASC |
| | | </select> |
| | | |
| | | <!--æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ¶é´--> |
| | | <select id="selectTotalProcessLong" resultType="java.lang.Integer"> |
| | | SELECT sum(total_process_long) FROM mdc_part_process_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate} |
| | | </select> |
| | | |
| | | <!--æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ°é--> |
| | | <select id="selectTotalProcessCount" resultType="java.lang.Integer"> |
| | | SELECT sum(process_count) FROM mdc_part_process_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate} |
| | | </select> |
| | | |
| | | <!--æ¥è¯¢è®¾å¤æå¤©æ»å å·¥åæ ¼æ°é--> |
| | | <select id="selectTotalPassCount" resultType="java.lang.Integer"> |
| | | SELECT sum(pass_count) FROM mdc_part_process_info WHERE equipment_id = #{equipmentId} AND the_date = #{validDate} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import org.jeecg.modules.mdc.dto.MdcDowntimeDto; |
| | | import org.jeecg.modules.mdc.entity.MdcDowntime; |
| | | import org.jeecg.modules.mdc.vo.MdcDowntimeVo; |
| | | |
| | |
| | | * @param req |
| | | * @return |
| | | */ |
| | | IPage<MdcDowntime> pageList(String userId, Page<MdcDowntime> page, MdcDowntimeVo mdcDowntimeVo, HttpServletRequest req); |
| | | IPage<MdcDowntimeDto> pageList(String userId, Page<MdcDowntimeDto> page, MdcDowntimeVo mdcDowntimeVo, HttpServletRequest req); |
| | | |
| | | /** |
| | | * æ¥è¯¢åæºæ¶é¿ |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @param closeType |
| | | * @return |
| | | */ |
| | | Integer findPlanTimeDuration(String equipmentId, String validDate, String closeType); |
| | | } |
| | |
| | | * @param dateTime |
| | | */ |
| | | void runningAllEquipmentStatisticalProcess(String dateTime); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤è¿è¡æ¶é´ |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectProcessLong(String equipmentId, String validDate); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import org.jeecg.modules.mdc.entity.MdcOeeInfo; |
| | | import org.jeecg.modules.mdc.vo.MdcOeeComputeVo; |
| | | import org.jeecg.modules.mdc.vo.MdcOeeInfoVo; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * @Description: OEE表 |
| | | * @Author: lius |
| | | * @Date: 2024-12-12 |
| | | */ |
| | | public interface IMdcOeeInfoService extends IService<MdcOeeInfo> { |
| | | |
| | | /** |
| | | * å页å表 |
| | | * |
| | | * @param userId |
| | | * @param page |
| | | * @param mdcOeeInfoVo |
| | | * @param req |
| | | * @return |
| | | */ |
| | | IPage<MdcOeeInfo> pageList(String userId, Page<MdcOeeInfo> page, MdcOeeInfoVo mdcOeeInfoVo, HttpServletRequest req); |
| | | |
| | | /** |
| | | * å¯¼åº |
| | | * |
| | | * @param userId |
| | | * @param mdcOeeInfoVo |
| | | * @return |
| | | */ |
| | | ModelAndView exportXls(String userId, MdcOeeInfoVo mdcOeeInfoVo); |
| | | |
| | | /** |
| | | * 计ç®OEE |
| | | * |
| | | * @param mdcOeeComputeVo |
| | | */ |
| | | void computeOee(MdcOeeComputeVo mdcOeeComputeVo); |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import org.jeecg.modules.mdc.entity.MdcPartProcessInfo; |
| | | import org.jeecg.modules.mdc.vo.MdcPartProcessInfoVo; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * @Description: é¶ä»¶å å·¥æ°æ®è¡¨ |
| | | * @Author: lius |
| | | * @Date: 2024-12-11 |
| | | */ |
| | | public interface IMdcPartProcessInfoService extends IService<MdcPartProcessInfo> { |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param userId |
| | | * @param page |
| | | * @param mdcPartProcessInfo |
| | | * @param req |
| | | * @return |
| | | */ |
| | | IPage<MdcPartProcessInfo> pageList(String userId, Page<MdcPartProcessInfo> page, MdcPartProcessInfoVo mdcPartProcessInfo, HttpServletRequest req); |
| | | |
| | | /** |
| | | * æ·»å |
| | | * |
| | | * @param mdcPartProcessInfo |
| | | * @return |
| | | */ |
| | | boolean addPartProcess(MdcPartProcessInfoVo mdcPartProcessInfo); |
| | | |
| | | /** |
| | | * å¯¼åº |
| | | * |
| | | * @param userId |
| | | * @param mdcPartProcessInfo |
| | | * @return |
| | | */ |
| | | ModelAndView exportXls(String userId, MdcPartProcessInfoVo mdcPartProcessInfo); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ¶é´ |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectTotalProcessLong(String equipmentId, String validDate); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ°é |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectTotalProcessCount(String equipmentId, String validDate); |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥åæ ¼æ°é |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | Integer selectTotalPassCount(String equipmentId, String validDate); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.jeecg.modules.mdc.dto.MdcDowntimeDto; |
| | | import org.jeecg.modules.mdc.entity.MdcDowntime; |
| | | import org.jeecg.modules.mdc.mapper.MdcDowntimeMapper; |
| | | import org.jeecg.modules.mdc.service.IMdcDowntimeService; |
| | | import org.jeecg.modules.mdc.service.IMdcEquipmentService; |
| | | import org.jeecg.modules.mdc.util.DateUtils; |
| | | import org.jeecg.modules.mdc.vo.MdcDowntimeVo; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public IPage<MdcDowntime> pageList(String userId, Page<MdcDowntime> page, MdcDowntimeVo mdcDowntimeVo, HttpServletRequest req) { |
| | | public IPage<MdcDowntimeDto> pageList(String userId, Page<MdcDowntimeDto> page, MdcDowntimeVo mdcDowntimeVo, HttpServletRequest req) { |
| | | // è·å设å¤IDå表 |
| | | List<String> equipmentIds = getEquipmentIds(userId, mdcDowntimeVo); |
| | | |
| | |
| | | return this.baseMapper.pageList(page, mdcDowntimeVo); |
| | | } |
| | | |
| | | @Override |
| | | public Integer findPlanTimeDuration(String equipmentId, String validDate, String closeType) { |
| | | int result = 0; |
| | | List<MdcDowntime> mdcDowntimeList = this.baseMapper.findPlanTimeDuration(equipmentId, validDate, closeType); |
| | | if (mdcDowntimeList != null && !mdcDowntimeList.isEmpty()) { |
| | | for (MdcDowntime mdcDowntime : mdcDowntimeList) { |
| | | result = DateUtils.differentMinutes(mdcDowntime.getStartDate(), mdcDowntime.getEndDate()) + result; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private List<String> getEquipmentIds(String userId, MdcDowntimeVo mdcDowntimeVo) { |
| | | if (StringUtils.isNotEmpty(mdcDowntimeVo.getEquipmentId())) { |
| | | return Collections.singletonList(mdcDowntimeVo.getEquipmentId()); |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | } |
| | | return equipmentStatisticalInfos; |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤è¿è¡æ¶é´ |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer selectProcessLong(String equipmentId, String validDate) { |
| | | Integer processLong = this.baseMapper.selectProcessLong(equipmentId, validDate); |
| | | if (processLong == null) { |
| | | return 0; |
| | | } else { |
| | | return Integer.parseInt(new BigDecimal(processLong).divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).toString()); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.system.vo.LoginUser; |
| | | import org.jeecg.modules.mdc.entity.MdcEquipment; |
| | | import org.jeecg.modules.mdc.entity.MdcOeeInfo; |
| | | 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.MdcOeeComputeVo; |
| | | import org.jeecg.modules.mdc.vo.MdcOeeInfoVo; |
| | | import org.jeecgframework.poi.excel.def.NormalExcelConstants; |
| | | import org.jeecgframework.poi.excel.entity.ExportParams; |
| | | import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDate; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Description: OEE表 |
| | | * @Author: lius |
| | | * @Date: 2024-12-12 |
| | | */ |
| | | @Service |
| | | public class MdcOeeInfoServiceImpl extends ServiceImpl<MdcOeeInfoMapper, MdcOeeInfo> implements IMdcOeeInfoService { |
| | | |
| | | @Resource |
| | | private IMdcEquipmentService mdcEquipmentService; |
| | | |
| | | @Resource |
| | | private IMdcDowntimeService mdcDowntimeService; |
| | | |
| | | @Resource |
| | | private IMdcPartProcessInfoService mdcPartProcessInfoService; |
| | | |
| | | @Resource |
| | | private IMdcEquipmentStatisticalInfoService mdcEquipmentStatisticalInfoService; |
| | | |
| | | /** |
| | | * å页å表 |
| | | * |
| | | * @param userId |
| | | * @param page |
| | | * @param mdcOeeInfoVo |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @Override |
| | | public IPage<MdcOeeInfo> pageList(String userId, Page<MdcOeeInfo> page, MdcOeeInfoVo mdcOeeInfoVo, HttpServletRequest req) { |
| | | List<String> equipmentIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(mdcOeeInfoVo.getParentId()) && StringUtils.isEmpty(mdcOeeInfoVo.getEquipmentId())) { |
| | | if ("2".equals(mdcOeeInfoVo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcOeeInfoVo.getParentId()); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcOeeInfoVo.getParentId()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mdcOeeInfoVo.getEquipmentId())) { |
| | | //åå°è®¾å¤ä¿¡æ¯ |
| | | mdcOeeInfoVo.setEquipmentIdList(Collections.singletonList(mdcOeeInfoVo.getEquipmentId())); |
| | | } else { |
| | | //æ¥è¯¢ç¨æ·æ¥æçææè®¾å¤ä¿¡æ¯ |
| | | if ("2".equals(mdcOeeInfoVo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); |
| | | } |
| | | } |
| | | |
| | | if (mdcOeeInfoVo.getEquipmentIdList() == null || mdcOeeInfoVo.getEquipmentIdList().isEmpty()) { |
| | | mdcOeeInfoVo.setEquipmentIdList(equipmentIds); |
| | | } |
| | | |
| | | if (mdcOeeInfoVo.getEquipmentIdList() == null || mdcOeeInfoVo.getEquipmentIdList().isEmpty()) { |
| | | return null; |
| | | } |
| | | return this.baseMapper.pageList(page, mdcOeeInfoVo); |
| | | } |
| | | |
| | | /** |
| | | * å¯¼åº |
| | | * |
| | | * @param userId |
| | | * @param mdcOeeInfoVo |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ModelAndView exportXls(String userId, MdcOeeInfoVo mdcOeeInfoVo) { |
| | | LambdaQueryWrapper<MdcOeeInfo> queryWrapper = new LambdaQueryWrapper<>(); |
| | | List<String> equipmentIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(mdcOeeInfoVo.getParentId()) && StringUtils.isEmpty(mdcOeeInfoVo.getEquipmentId())) { |
| | | if ("2".equals(mdcOeeInfoVo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcOeeInfoVo.getParentId()); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcOeeInfoVo.getParentId()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mdcOeeInfoVo.getEquipmentId())) { |
| | | //åå°è®¾å¤ä¿¡æ¯ |
| | | mdcOeeInfoVo.setEquipmentIdList(Collections.singletonList(mdcOeeInfoVo.getEquipmentId())); |
| | | } else { |
| | | //æ¥è¯¢ç¨æ·æ¥æçææè®¾å¤ä¿¡æ¯ |
| | | if ("2".equals(mdcOeeInfoVo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); |
| | | } |
| | | } |
| | | |
| | | if (mdcOeeInfoVo.getEquipmentIdList() == null || mdcOeeInfoVo.getEquipmentIdList().isEmpty()) { |
| | | mdcOeeInfoVo.setEquipmentIdList(equipmentIds); |
| | | } |
| | | |
| | | if (mdcOeeInfoVo.getEquipmentIdList() == null || mdcOeeInfoVo.getEquipmentIdList().isEmpty()) { |
| | | return null; |
| | | } else { |
| | | queryWrapper.in(MdcOeeInfo::getEquipmentId, mdcOeeInfoVo.getEquipmentIdList()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcOeeInfoVo.getEquipmentId())) { |
| | | queryWrapper.eq(MdcOeeInfo::getEquipmentId, mdcOeeInfoVo.getEquipmentId()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcOeeInfoVo.getStartTime()) && StringUtils.isNotEmpty(mdcOeeInfoVo.getEndTime())) { |
| | | queryWrapper.between(MdcOeeInfo::getTheDate, mdcOeeInfoVo.getStartTime(), mdcOeeInfoVo.getEndTime()); |
| | | } |
| | | queryWrapper.orderByDesc(MdcOeeInfo::getTheDate).orderByDesc(MdcOeeInfo::getEquipmentId); |
| | | ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
| | | List<MdcOeeInfo> mdcOeeInfos = this.baseMapper.selectList(queryWrapper); |
| | | // å¯¼åºæä»¶åç§° |
| | | mv.addObject(NormalExcelConstants.FILE_NAME, "OEEæ°æ®å表"); |
| | | mv.addObject(NormalExcelConstants.CLASS, MdcOeeInfo.class); |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("OEEæ°æ®åè¡¨æ°æ®", "导åºäºº:" + user.getRealname(), "OEEæ°æ®")); |
| | | //update-end---author:wangshuai ---date:20211227 forï¼[JTC-116]导åºäººåæ»äº------------ |
| | | mv.addObject(NormalExcelConstants.DATA_LIST, mdcOeeInfos); |
| | | return mv; |
| | | } |
| | | |
| | | /** |
| | | * 计ç®OEE |
| | | * |
| | | * @param mdcOeeComputeVo |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void computeOee(MdcOeeComputeVo mdcOeeComputeVo) { |
| | | List<MdcOeeInfo> result = new ArrayList<>(); |
| | | String startDate = mdcOeeComputeVo.getStartDate(); |
| | | String endDate = mdcOeeComputeVo.getEndDate(); |
| | | List<String> dateList = DateUtils.getDatesStringList(DateUtils.getShortDate(startDate), DateUtils.getShortDate(endDate)); |
| | | if (!dateList.isEmpty()) { |
| | | //è·å设å¤å表 |
| | | List<MdcEquipment> equipmentList = mdcEquipmentService.list(); |
| | | |
| | | for (String validDate : dateList) { |
| | | try { |
| | | this.remove(new LambdaQueryWrapper<MdcOeeInfo>().eq(MdcOeeInfo::getTheDate, validDate)); |
| | | } catch (Exception e) { |
| | | log.error("åæ°æ ¼å¼ä¸å¯¹", e); |
| | | } |
| | | for (MdcEquipment mdcEquipment : equipmentList) { |
| | | String equipmentId = mdcEquipment.getEquipmentId(); |
| | | MdcOeeInfo mdcOeeInfo = new MdcOeeInfo(); |
| | | // 设å¤ç¼å· |
| | | mdcOeeInfo.setEquipmentId(equipmentId); |
| | | // è®¡ç®æ¥æ |
| | | mdcOeeInfo.setTheDate(validDate); |
| | | // 工使¥åæ¶é´(min) --- ææ¯å¤©24å°æ¶ç® |
| | | mdcOeeInfo.setCalendarLong(1440); |
| | | // 计ååæºæ¶é´(min) --- æç»´æ¤æ°æ®ç»è®¡å½å¤©æ»æ¶é¿ |
| | | Integer planCloseLong = mdcDowntimeService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_0); |
| | | mdcOeeInfo.setPlanCloseLong(planCloseLong); |
| | | // è´è·æ¶é´(min) --- æ¥å工使¶é´-计ååæºæ¶é´ |
| | | Integer loadLong = mdcOeeInfo.getCalendarLong() - planCloseLong; |
| | | mdcOeeInfo.setLoadLong(loadLong); |
| | | // é计ååæºæ¶é´(min) --- æç»´æ¤æ°æ®ç»è®¡å½å¤©æ»æ¶é¿ |
| | | Integer noPlanCloseLong = mdcDowntimeService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_1); |
| | | mdcOeeInfo.setNoplanCloseLong(noPlanCloseLong); |
| | | // å¼å¨æ¶é´(min) --- è´è·æ¶é´-é计ååæºæ¶é´ |
| | | int actuateLong = loadLong - noPlanCloseLong; |
| | | mdcOeeInfo.setActuateLong(actuateLong); |
| | | // æ¶é´å¼å¨ç --- å¼å¨æ¶é´/è´è·æ¶é´ |
| | | BigDecimal timeActuationRate = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); |
| | | mdcOeeInfo.setTimeActuationRate(timeActuationRate); |
| | | // ææè¿è¡æ¶é´ --- æéæ±ç»´æ¤é¶ä»¶å å·¥æ»æ¶é¿||ç³»ç»ä¸»è½´è´è½½æ¶é´ |
| | | Integer effectiveRunLong = 0; |
| | | Integer totalProcessLong = mdcPartProcessInfoService.selectTotalProcessLong(equipmentId, validDate); |
| | | if (totalProcessLong == 0) { |
| | | //æ¥è¯¢è®¾å¤è¿è¡æ¶é´ |
| | | effectiveRunLong = mdcEquipmentStatisticalInfoService.selectProcessLong(equipmentId, validDate.replace("-", "")); |
| | | } else { |
| | | effectiveRunLong = totalProcessLong; |
| | | } |
| | | mdcOeeInfo.setEffectiveRunLong(effectiveRunLong); |
| | | // æ§è½å¼å¨ç --- ææè¿è¡æ¶é´/å¼å¨æ¶é´ |
| | | BigDecimal performanceRate = BigDecimal.ZERO; |
| | | if (effectiveRunLong != 0 && actuateLong != 0) { |
| | | performanceRate = new BigDecimal(effectiveRunLong).divide(new BigDecimal(actuateLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); |
| | | } |
| | | mdcOeeInfo.setPerformanceRate(performanceRate); |
| | | // å å·¥é¶ä»¶æ°é --- æç»´æ¤æ°æ®ç»è®¡å½å¤© |
| | | Integer processCount = mdcPartProcessInfoService.selectTotalProcessCount(equipmentId, validDate); |
| | | mdcOeeInfo.setProcessCount(processCount); |
| | | // åæ ¼é¶ä»¶æ°é --- æç»´æ¤æ°æ®ç»è®¡å½å¤© |
| | | Integer passCount = mdcPartProcessInfoService.selectTotalPassCount(equipmentId, validDate); |
| | | mdcOeeInfo.setPassCount(passCount); |
| | | // åæ ¼ç --- åæ ¼æ°/å å·¥æ° |
| | | BigDecimal passRate = BigDecimal.ZERO; |
| | | if (processCount != 0 && passCount != 0) { |
| | | passRate = new BigDecimal(passCount).divide(new BigDecimal(processCount), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); |
| | | } |
| | | mdcOeeInfo.setPassRate(passRate); |
| | | // OEE --- æ¶é´å¼å¨ç * æ§è½å¼å¨ç * 䏿¬¡åæ ¼ç |
| | | BigDecimal oee = BigDecimal.ZERO; |
| | | if (!timeActuationRate.equals(BigDecimal.ZERO) && !performanceRate.equals(BigDecimal.ZERO) && !passRate.equals(BigDecimal.ZERO)) { |
| | | oee = timeActuationRate.multiply(performanceRate).multiply(passRate).divide(new BigDecimal("10000"), 4, RoundingMode.HALF_UP); |
| | | } |
| | | mdcOeeInfo.setOee(oee); |
| | | result.add(mdcOeeInfo); |
| | | } |
| | | } |
| | | } |
| | | super.saveBatch(result); |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.jeecg.common.system.vo.LoginUser; |
| | | import org.jeecg.modules.mdc.entity.MdcPartProcessInfo; |
| | | import org.jeecg.modules.mdc.mapper.MdcPartProcessInfoMapper; |
| | | import org.jeecg.modules.mdc.service.IMdcEquipmentService; |
| | | import org.jeecg.modules.mdc.service.IMdcPartProcessInfoService; |
| | | import org.jeecg.modules.mdc.vo.MdcPartProcessInfoVo; |
| | | import org.jeecgframework.poi.excel.def.NormalExcelConstants; |
| | | import org.jeecgframework.poi.excel.entity.ExportParams; |
| | | import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Description: é¶ä»¶å å·¥æ°æ®è¡¨ |
| | | * @Author: lius |
| | | * @Date: 2024-12-11 |
| | | */ |
| | | @Service |
| | | public class MdcPartProcessInfoServiceImpl extends ServiceImpl<MdcPartProcessInfoMapper, MdcPartProcessInfo> implements IMdcPartProcessInfoService { |
| | | |
| | | @Resource |
| | | private IMdcEquipmentService mdcEquipmentService; |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param userId |
| | | * @param page |
| | | * @param mdcPartProcessInfo |
| | | * @param req |
| | | * @return |
| | | */ |
| | | @Override |
| | | public IPage<MdcPartProcessInfo> pageList(String userId, Page<MdcPartProcessInfo> page, MdcPartProcessInfoVo mdcPartProcessInfo, HttpServletRequest req) { |
| | | List<String> equipmentIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(mdcPartProcessInfo.getParentId()) && StringUtils.isEmpty(mdcPartProcessInfo.getEquipmentId())) { |
| | | if ("2".equals(mdcPartProcessInfo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcPartProcessInfo.getParentId()); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcPartProcessInfo.getParentId()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mdcPartProcessInfo.getEquipmentId())) { |
| | | //åå°è®¾å¤ä¿¡æ¯ |
| | | mdcPartProcessInfo.setEquipmentIdList(Collections.singletonList(mdcPartProcessInfo.getEquipmentId())); |
| | | } else { |
| | | //æ¥è¯¢ç¨æ·æ¥æçææè®¾å¤ä¿¡æ¯ |
| | | if ("2".equals(mdcPartProcessInfo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); |
| | | } |
| | | } |
| | | |
| | | if (mdcPartProcessInfo.getEquipmentIdList() == null || mdcPartProcessInfo.getEquipmentIdList().isEmpty()) { |
| | | mdcPartProcessInfo.setEquipmentIdList(equipmentIds); |
| | | } |
| | | |
| | | if (mdcPartProcessInfo.getEquipmentIdList() == null || mdcPartProcessInfo.getEquipmentIdList().isEmpty()) { |
| | | return null; |
| | | } |
| | | return this.baseMapper.pageList(page, mdcPartProcessInfo); |
| | | } |
| | | |
| | | @Override |
| | | public boolean addPartProcess(MdcPartProcessInfoVo mdcPartProcessInfo) { |
| | | String[] equipmentIdList = mdcPartProcessInfo.getEquipmentIds().split(","); |
| | | List<MdcPartProcessInfo> partProcessInfoList = new ArrayList<>(); |
| | | for (String equipmentId : equipmentIdList) { |
| | | MdcPartProcessInfo mppi = new MdcPartProcessInfo(); |
| | | BeanUtils.copyProperties(mdcPartProcessInfo, mppi); |
| | | mppi.setEquipmentId(equipmentId); |
| | | partProcessInfoList.add(mppi); |
| | | } |
| | | this.saveBatch(partProcessInfoList); |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public ModelAndView exportXls(String userId, MdcPartProcessInfoVo mdcPartProcessInfo) { |
| | | LambdaQueryWrapper<MdcPartProcessInfo> queryWrapper = new LambdaQueryWrapper<>(); |
| | | List<String> equipmentIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(mdcPartProcessInfo.getParentId()) && StringUtils.isEmpty(mdcPartProcessInfo.getEquipmentId())) { |
| | | if ("2".equals(mdcPartProcessInfo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcPartProcessInfo.getParentId()); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcPartProcessInfo.getParentId()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mdcPartProcessInfo.getEquipmentId())) { |
| | | //åå°è®¾å¤ä¿¡æ¯ |
| | | mdcPartProcessInfo.setEquipmentIdList(Collections.singletonList(mdcPartProcessInfo.getEquipmentId())); |
| | | } else { |
| | | //æ¥è¯¢ç¨æ·æ¥æçææè®¾å¤ä¿¡æ¯ |
| | | if ("2".equals(mdcPartProcessInfo.getTypeTree())) { |
| | | //é¨é¨å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); |
| | | } else { |
| | | //产线å±çº§ |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); |
| | | } |
| | | } |
| | | |
| | | if (mdcPartProcessInfo.getEquipmentIdList() == null || mdcPartProcessInfo.getEquipmentIdList().isEmpty()) { |
| | | mdcPartProcessInfo.setEquipmentIdList(equipmentIds); |
| | | } |
| | | |
| | | if (mdcPartProcessInfo.getEquipmentIdList() == null || mdcPartProcessInfo.getEquipmentIdList().isEmpty()) { |
| | | return null; |
| | | } else { |
| | | queryWrapper.in(MdcPartProcessInfo::getEquipmentId, mdcPartProcessInfo.getEquipmentIdList()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcPartProcessInfo.getEquipmentId())) { |
| | | queryWrapper.eq(MdcPartProcessInfo::getEquipmentId, mdcPartProcessInfo.getEquipmentId()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcPartProcessInfo.getPartId())) { |
| | | queryWrapper.eq(MdcPartProcessInfo::getPartId, mdcPartProcessInfo.getPartId()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcPartProcessInfo.getStartTime()) && StringUtils.isNotEmpty(mdcPartProcessInfo.getEndTime())) { |
| | | queryWrapper.between(MdcPartProcessInfo::getTheDate, mdcPartProcessInfo.getStartTime(), mdcPartProcessInfo.getEndTime()); |
| | | } |
| | | queryWrapper.orderByDesc(MdcPartProcessInfo::getTheDate).orderByDesc(MdcPartProcessInfo::getEquipmentId); |
| | | ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
| | | List<MdcPartProcessInfo> mdcPartProcessInfos = this.baseMapper.selectList(queryWrapper); |
| | | // å¯¼åºæä»¶åç§° |
| | | mv.addObject(NormalExcelConstants.FILE_NAME, "é¶ä»¶å å·¥æ°æ®å表"); |
| | | mv.addObject(NormalExcelConstants.CLASS, MdcPartProcessInfo.class); |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("é¶ä»¶å å·¥æ°æ®åè¡¨æ°æ®", "导åºäºº:" + user.getRealname(), "é¶ä»¶å å·¥æ°æ®")); |
| | | //update-end---author:wangshuai ---date:20211227 forï¼[JTC-116]导åºäººåæ»äº------------ |
| | | mv.addObject(NormalExcelConstants.DATA_LIST, mdcPartProcessInfos); |
| | | return mv; |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ¶é´ |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer selectTotalProcessLong(String equipmentId, String validDate) { |
| | | Integer totalProcessLong = this.baseMapper.selectTotalProcessLong(equipmentId, validDate); |
| | | if (totalProcessLong == null) { |
| | | return 0; |
| | | } else { |
| | | return totalProcessLong; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥æ°é |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer selectTotalProcessCount(String equipmentId, String validDate) { |
| | | Integer totalProcessCount = this.baseMapper.selectTotalProcessCount(equipmentId, validDate); |
| | | if (totalProcessCount == null) { |
| | | return 0; |
| | | } else { |
| | | return totalProcessCount; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢è®¾å¤æå¤©æ»å å·¥åæ ¼æ°é |
| | | * |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer selectTotalPassCount(String equipmentId, String validDate) { |
| | | Integer totalPassCount = this.baseMapper.selectTotalPassCount(equipmentId, validDate); |
| | | if (totalPassCount == null) { |
| | | return 0; |
| | | } else { |
| | | return totalPassCount; |
| | | } |
| | | } |
| | | } |
| | |
| | | import io.swagger.models.auth.In; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.DecimalFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | |
| | | } |
| | | |
| | | /** |
| | | * @return è·å两个dateçæ¶é´å·®ï¼ç»æä¸ºåé |
| | | */ |
| | | public static Integer differentMinutes(Date startDate, Date endDate) { |
| | | return new BigDecimal(endDate.getTime() - startDate.getTime()).divide(new BigDecimal("60000"), 0, RoundingMode.HALF_UP).intValue(); |
| | | } |
| | | |
| | | /** |
| | | * @return è¿åä¼ å
¥æ¶é´ç0ç¹0å0ç§ |
| | | */ |
| | | public static Date getTodayZero(Date d) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author Lius |
| | | * @date 2025/1/20 14:41 |
| | | */ |
| | | @Data |
| | | public class MdcOeeComputeVo { |
| | | private String startDate; |
| | | private String endDate; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.vo; |
| | | |
| | | import lombok.Data; |
| | | import org.jeecg.modules.mdc.entity.MdcOeeInfo; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author Lius |
| | | * @date 2024/12/12 10:14 |
| | | */ |
| | | @Data |
| | | public class MdcOeeInfoVo extends MdcOeeInfo { |
| | | private String startTime; |
| | | private String endTime; |
| | | private String parentId; |
| | | private String typeTree; |
| | | private List<String> equipmentIdList; |
| | | private String equipmentIds; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.mdc.vo; |
| | | |
| | | import lombok.Data; |
| | | import org.jeecg.modules.mdc.entity.MdcPartProcessInfo; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author Lius |
| | | * @date 2024/12/11 15:47 |
| | | */ |
| | | @Data |
| | | public class MdcPartProcessInfoVo extends MdcPartProcessInfo { |
| | | private String startTime; |
| | | private String endTime; |
| | | private String parentId; |
| | | private String typeTree; |
| | | private List<String> equipmentIdList; |
| | | private String equipmentIds; |
| | | } |