嘉兴 mes 工单接口调整 节拍报表全工位接口调整

tags/yfai-mes-ext-v1.0
王杰 1 year ago
parent 4124b2dfd8
commit da8539a0a7

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pojo.bean.MesWorkCenterExt;
import cn.estsh.i3plus.ext.mes.pojo.model.SxProdOrgModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesArea;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import io.swagger.annotations.ApiOperation;
@ -126,4 +127,12 @@ public interface IProdOrgExtService {
*/
@ApiOperation(value = "获取事业别最新人件费信息", notes = "获取事业别最新人件费信息")
Map<String, String> getCareerPersonnelCostMap(String organizeCode);
/**
*
* @param organizeCode
* @return
*/
@ApiOperation(value = "查询区域集合", notes = "查询区域集合")
List<MesArea> queryAreaList(String organizeCode);
}

@ -142,4 +142,18 @@ public class ProdOrgExtController extends MesBaseController {
}
}
@GetMapping(value = "/area-ext/query-list")
@ApiOperation(value = "查询区域集合")
public ResultBean queryAreaList() {
try {
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(prodOrgExtService.queryAreaList(AuthUtil.getOrganize().getOrganizeCode()));
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -17,8 +17,10 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesArea;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.repository.MesAreaRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -46,6 +48,9 @@ import java.util.stream.Collectors;
public class ProdOrgExtService implements IProdOrgExtService {
@Autowired
private MesAreaRepository areaRepository;
@Autowired
private MesAreaExtRepository areaExtRepository;
@Autowired
@ -259,6 +264,13 @@ public class ProdOrgExtService implements IProdOrgExtService {
return careerPersonnelCostMap;
}
@Override
public List<MesArea> queryAreaList(String organizeCode) {
return areaRepository.findByProperty(
new String[]{MesExtConstWords.ORGANIZE_CODE, MesExtConstWords.IS_DELETED, MesExtConstWords.IS_VALID},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
private String getCareerPersonnelCost(List<MesWorkCenterExt> workCenterExtList) {
workCenterExtList = workCenterExtList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesWorkCenterExt::getModifyDatetime).reversed()).collect(Collectors.toList());
return workCenterExtList.get(0).getPersonnelCost();

@ -1040,13 +1040,18 @@ public class WorkOrderExtService implements IWorkOrderExtService {
String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
if (!ObjectUtils.isEmpty(workOrderQueryDto)) {
DdlPreparedPack.getStringEqualPack(workOrderQueryDto.getAreaCode(), MesExtConstWords.AREA_CODE, ddlPackBean);
DdlPreparedPack.getStringEqualPack(workOrderQueryDto.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getOrderNo(), MesExtConstWords.ORDER_NO, ddlPackBean);
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getPartNo(), MesExtConstWords.PART_NO, ddlPackBean);
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getCreateUser(), "createUser", ddlPackBean);
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getCreateUser(), MesExtConstWords.CREATE_USER, ddlPackBean);
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getErpWarehouse(), MesExtConstWords.ERP_WARE_HOUSE, ddlPackBean);
DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean);
DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderType(), "workOrderType", ddlPackBean);
if (!StringUtils.isEmpty(workOrderQueryDto.getWorkOrderStatus()))
DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean);
else if (StringUtils.isEmpty(workOrderQueryDto.getIsHasDel()) || !workOrderQueryDto.getIsHasDel().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()))
DdlPreparedPack.getNumNOEqualPack(MesExtEnumUtil.WORK_ORDER_STATUS.REMOVE.getValue(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean);
DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, ddlPackBean);
DdlPreparedPack.getIsNotNull(MesExtConstWords.WORK_CENTER_CODE, ddlPackBean);
if (!StringUtils.isEmpty(workOrderQueryDto.getStartTimeStart()) || !StringUtils.isEmpty(workOrderQueryDto.getStartTimeEnd())) {
DdlPreparedPack.timeBuilder(workOrderQueryDto.getStartTimeStart(), workOrderQueryDto.getStartTimeEnd(), MesExtConstWords.START_TIME, ddlPackBean, true);

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi.jx;
import cn.estsh.i3plus.ext.mes.api.base.IProdOrgExtService;
import cn.estsh.i3plus.ext.mes.api.busi.jx.ISxWorkCellTaktCollectRecordService;
import cn.estsh.i3plus.ext.mes.pojo.bean.SxWorkCellTaktCollectRecord;
import cn.estsh.i3plus.ext.mes.pojo.model.jx.JxCellTaktReportModel;
@ -16,6 +17,7 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -36,6 +38,9 @@ public class SxWorkCellTaktCollectRecordService implements ISxWorkCellTaktCollec
@Autowired
private SxWorkCellTaktCollectRecordRepository workCellTaktCollectRecordRepository;
@Autowired
private IProdOrgExtService prodOrgExtService;
@Override
public ListPager<SxWorkCellTaktCollectRecord> queryWorkCellTaktCollectRecordListByPager(SxWorkCellTaktCollectRecord workCellTaktCollectRecord, Pager pager) {
if (workCellTaktCollectRecord == null) {
@ -102,12 +107,14 @@ public class SxWorkCellTaktCollectRecordService implements ISxWorkCellTaktCollec
Map<String, List<SxWorkCellTaktCollectRecord>> recordDbMap2Cell = CollectionUtils.isEmpty(recordDbList) ? null : recordDbList.stream().filter(o -> null != o).collect(Collectors.groupingBy(SxWorkCellTaktCollectRecord::getWorkCellCode));
DoubleSummaryStatistics statistics;
if (!CollectionUtils.isEmpty(recordDbMap2Cell)) {
recordDbMap2Cell = recordDbMap2Cell.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
for (Map.Entry<String, List<SxWorkCellTaktCollectRecord>> entry : recordDbMap2Cell.entrySet()) {
if (null == entry) continue;
List<SxWorkCellTaktCollectRecord> recordDbList2Cell = entry.getValue();
List<MesWorkCell> workCellList = prodOrgExtService.getWorkCellListByCenter(model.getOrganizeCode(), model.getWorkCenterCode());
workCellList = workCellList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getSeq()))).sorted(Comparator.comparing(MesWorkCell::getSeq).thenComparing(MesWorkCell::getWorkCellCode)).collect(Collectors.toList());
for (MesWorkCell workCell : workCellList) {
List<SxWorkCellTaktCollectRecord> recordDbList2Cell = recordDbMap2Cell.get(workCell);
if (CollectionUtils.isEmpty(recordDbMap2Cell)) continue;
statistics = recordDbList2Cell.stream().filter(o -> null != o).mapToDouble(o -> new Double(o.getWorkTakt())).summaryStatistics();
JxCellTaktReportModel result = new JxCellTaktReportModel(model.getOrganizeCode(), model.getWorkCenterCode(), entry.getKey());
JxCellTaktReportModel result = new JxCellTaktReportModel(model.getOrganizeCode(), model.getWorkCenterCode(), workCell.getWorkCellCode());
result.setCreateDatetimeStart(model.getCreateDatetimeStart());
result.setCreateDatetimeEnd(model.getCreateDatetimeEnd());
result.setWorkTakt(statistics.getAverage());
@ -115,8 +122,9 @@ public class SxWorkCellTaktCollectRecordService implements ISxWorkCellTaktCollec
result.setWorkTaktMin(statistics.getMin());
resultList.add(result);
}
}
statistics = CollectionUtils.isEmpty(resultList) ? null : resultList.stream().filter(o -> null != o).mapToDouble(JxCellTaktReportModel::getWorkTaktMin).summaryStatistics();
statistics = CollectionUtils.isEmpty(resultList) ? null : resultList.stream().filter(o -> null != o).mapToDouble(JxCellTaktReportModel::getWorkTakt).summaryStatistics();
pager = PagerHelper.getPager(pager, resultList.size());
resultList = CollectionUtils.isEmpty(resultList) ? resultList :
resultList.subList((pager.getCurrentPage() - 1) * pager.getPageSize(), (pager.getCurrentPage() * pager.getPageSize()) > resultList.size() ? resultList.size() : pager.getCurrentPage() * pager.getPageSize());

@ -23,6 +23,9 @@ public class WorkOrderQueryDto {
@ApiParam("工单状态")
private Integer workOrderStatus;
@ApiParam("区域代码")
private String areaCode;
@ApiParam("生产线代码")
private String workCenterCode;
@ -93,4 +96,8 @@ public class WorkOrderQueryDto {
@ApiParam(value = "是否有解绑数量")
public Integer isExistUnbindSn;
@ApiParam(value = "是否包含删除的工单")
public String isHasDel;
}

@ -20,7 +20,7 @@ public class JxCellTaktReportModel implements Serializable {
@ApiParam("组织代码")
public String organizeCode;
@ApiParam("工位维度")
@ApiParam("工位维度: 1=单 2=全")
public Integer dimension;
@ApiParam("查询时间")

Loading…
Cancel
Save