package com.jeesite.modules.mes.service; import com.jeesite.common.entity.Page; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.mybatis.mapper.query.QueryType; import com.jeesite.common.service.CrudService; import com.jeesite.modules.file.utils.FileUploadUtils; import com.jeesite.modules.mes.dao.MesRepairDao; import com.jeesite.modules.mes.entity.MesRepair; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * 返工记录表Service * @author mes * @version 2023-12-04 */ @Service public class MesRepairService extends CrudService { /** * 获取单条数据 * @param mesRepair * @return */ @Override public MesRepair get(MesRepair mesRepair) { return super.get(mesRepair); } public MesRepair findInfo(MesRepair mesRepair) { return dao.findInfo(mesRepair); } /** * 查询分页数据 * @param mesRepair 查询条件 * @param mesRepair.page 分页对象 * @return */ @Override public Page findPage(MesRepair mesRepair) { return super.findPage(mesRepair); } /** * 查询列表数据 * @param mesRepair * @return */ @Override public List findList(MesRepair mesRepair) { return super.findList(mesRepair); } /** * 保存数据(插入或更新) * @param mesRepair */ @Override @Transactional public void save(MesRepair mesRepair) { super.save(mesRepair); // 保存上传图片 FileUploadUtils.saveFileUpload(mesRepair, mesRepair.getId(), "mesRepair_image"); } /** * 更新状态 * @param mesRepair */ @Override @Transactional public void updateStatus(MesRepair mesRepair) { super.updateStatus(mesRepair); } /** * 删除数据 * @param mesRepair */ @Override @Transactional public void delete(MesRepair mesRepair) { super.delete(mesRepair); } public String getSj(String oprno,String sdate,String edate){ MesRepair mesProductRecord = new MesRepair(); if(!StringUtils.isEmpty(oprno)){ mesProductRecord.setOprno(oprno); } mesProductRecord.getSqlMap().getWhere().and("create_date", QueryType.GTE,sdate).and("create_date",QueryType.LTE,edate); Long jpp1 = super.findCount(mesProductRecord); return String.valueOf(jpp1); } /** * 统计指定产线、指定时间段内的返工记录数量(用于大屏“近七日产品质检”的不良统计) * @param lineSn 产线编号(MP/XT/ZP) * @param sdate 开始时间(含)yyyy-MM-dd HH:mm:ss * @param edate 结束时间(不含)yyyy-MM-dd HH:mm:ss */ /** * 统计指定时间段内全产线的返工记录数量 */ public Long countByDateRange(String sdate, String edate){ MesRepair q = new MesRepair(); q.getSqlMap().getWhere() .and("create_date", QueryType.GTE, sdate) .and("create_date", QueryType.LT, edate); return super.findCount(q); } /** * 按返工白名单标题分组统计返工次数(用于大屏“不良类型柱状图”) * 返回 [{title, cnt}, ...] */ public java.util.List> countGroupByItemTitle(String sdate, String edate) { return dao.countGroupByItemTitle(sdate, edate); } /** * 统计指定产线、指定时间段内的返工记录数量(用于大屏“近七日产品质检”的不良统计) * @param lineSn 产线编号(MP/XT/ZP) * @param sdate 开始时间(含)yyyy-MM-dd HH:mm:ss * @param edate 结束时间(不含)yyyy-MM-dd HH:mm:ss */ public Long countByLineAndDate(String lineSn, String sdate, String edate){ MesRepair q = new MesRepair(); q.getSqlMap().getWhere() .and("line_sn", QueryType.EQ, lineSn) .and("create_date", QueryType.GTE, sdate) .and("create_date", QueryType.LT, edate); return super.findCount(q); } /** * 统计指定产线、时间段内责任工位号在 [fromNum, toNum] 闭区间的返工条数 */ public Long countByLineAndDateAndOprnoNumRange(String lineSn, String sdate, String edate, int fromNum, int toNum) { Long c = dao.countByLineAndDateAndOprnoNumRange(lineSn, sdate, edate, fromNum, toNum); return c == null ? 0L : c; } }