|
|
|
@ -3,8 +3,16 @@ package com.foreverwin.mesnac.quality.service.impl;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import com.foreverwin.mesnac.common.constant.Constants;
|
|
|
|
|
import com.foreverwin.mesnac.common.enums.HandleEnum;
|
|
|
|
|
import com.foreverwin.mesnac.common.service.AnomalyService;
|
|
|
|
|
import com.foreverwin.mesnac.common.service.CommonService;
|
|
|
|
|
import com.foreverwin.mesnac.common.util.StringUtil;
|
|
|
|
|
import com.foreverwin.mesnac.meapi.dto.SfcDto;
|
|
|
|
|
import com.foreverwin.mesnac.production.mapper.SfcCrossMapper;
|
|
|
|
|
import com.foreverwin.mesnac.quality.dto.SelfReportRequest;
|
|
|
|
|
import com.foreverwin.mesnac.quality.mapper.SelfReportMapper;
|
|
|
|
|
import com.foreverwin.mesnac.quality.model.SelfReport;
|
|
|
|
|
import com.foreverwin.mesnac.quality.service.SelfReportService;
|
|
|
|
@ -16,10 +24,13 @@ import org.springframework.context.i18n.LocaleContextHolder;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <p>
|
|
|
|
@ -38,6 +49,10 @@ public class SelfReportServiceImpl extends ServiceImpl<SelfReportMapper, SelfRep
|
|
|
|
|
private SelfReportMapper selfReportMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private SfcCrossMapper sfcCorssMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private AnomalyService anomalyService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private CommonService commonService;
|
|
|
|
|
|
|
|
|
|
static final String STATE_NEW="NEW";
|
|
|
|
|
|
|
|
|
@ -66,15 +81,80 @@ public class SelfReportServiceImpl extends ServiceImpl<SelfReportMapper, SelfRep
|
|
|
|
|
@Override
|
|
|
|
|
public void doAdd(Map<String, Object> map) {
|
|
|
|
|
String site = CommonMethods.getSite();
|
|
|
|
|
String user = CommonMethods.getUser();
|
|
|
|
|
String sfc = (String)map.get("sfc");
|
|
|
|
|
String resrce = (String)map.get("resrce");
|
|
|
|
|
List list = (List)map.get("ncList");
|
|
|
|
|
String ncQty = (String)map.get("ncQty");
|
|
|
|
|
String comments = (String)map.get("comments");
|
|
|
|
|
String location=(String)map.get("location");
|
|
|
|
|
List<SelfReportRequest> list = (List<SelfReportRequest>)map.get("ncList");
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
|
list = mapper.convertValue(list, new TypeReference<List<SelfReportRequest>>() {});
|
|
|
|
|
SfcDto sfcDto = new SfcDto();
|
|
|
|
|
sfcDto.setSfc(sfc);
|
|
|
|
|
sfcDto.setResrce(resrce);
|
|
|
|
|
Map<String, Object> sfcMapper = sfcCorssMapper.querySfcData(site, LocaleContextHolder.getLocale().getLanguage(), sfcDto);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> sfcData = sfcCorssMapper.querySfcData(site, LocaleContextHolder.getLocale().getLanguage(), sfcDto);
|
|
|
|
|
|
|
|
|
|
String operationStep = (String)sfcData.get("OPERATION_STEP");
|
|
|
|
|
String shopOrder = (String)sfcData.get("SHOP_ORDER");
|
|
|
|
|
String item = (String)sfcData.get("ITEM");
|
|
|
|
|
List<SelfReportRequest> resrceAbnormalList = list.stream().filter(selfReportRequest -> selfReportRequest.getType().equals(Constants.ABNORMAL_RESRCE)).collect(Collectors.toList());
|
|
|
|
|
if (resrceAbnormalList.size()>0){
|
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
|
for (int i=0;i<resrceAbnormalList.size();i++){
|
|
|
|
|
stringBuilder.append(resrceAbnormalList.get(i).getNcCode());
|
|
|
|
|
if (i!=resrceAbnormalList.size()-1){
|
|
|
|
|
stringBuilder.append(",");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
anomalyService.createAnomalyTask(Constants.ABNORMAL_RESRCE,resrce,shopOrder,sfc,stringBuilder.toString(),location,ncQty,comments);
|
|
|
|
|
}
|
|
|
|
|
List<SelfReportRequest> otherAbnormalList = list.stream().filter(selfReportRequest -> selfReportRequest.getType().equals(Constants.ABNORMAL_OTHER)).collect(Collectors.toList());
|
|
|
|
|
if (otherAbnormalList.size()>0){
|
|
|
|
|
anomalyService.createAnomalyTask(Constants.ABNORMAL_RESRCE,resrce,shopOrder,sfc,"",location,ncQty,comments);
|
|
|
|
|
}
|
|
|
|
|
QueryWrapper<SelfReport> queryWrapper=new QueryWrapper<>();
|
|
|
|
|
queryWrapper.eq(SelfReport.SFC,sfc);
|
|
|
|
|
queryWrapper.eq(SelfReport.OP_STEP,operationStep);
|
|
|
|
|
queryWrapper.eq(SelfReport.STATE,Constants.NEW);
|
|
|
|
|
List<SelfReport> selfReports = list(queryWrapper);
|
|
|
|
|
if (selfReports.size()>0){
|
|
|
|
|
throw new BaseException("存在未处理的自报任务");
|
|
|
|
|
}
|
|
|
|
|
List<SelfReportRequest> selfReportList = list.stream().filter(selfReportRequest -> selfReportRequest.getType().equals("Z")).collect(Collectors.toList());
|
|
|
|
|
if (selfReportList.size()>0){
|
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
|
for (int i=0;i<selfReportList.size();i++){
|
|
|
|
|
stringBuilder.append(selfReportList.get(i).getNcCode());
|
|
|
|
|
if (i!=selfReportList.size()-1){
|
|
|
|
|
stringBuilder.append(",");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
String taskNo = UUID.randomUUID().toString();
|
|
|
|
|
String handle = HandleEnum.SELF_REPORT.getHandle(site, taskNo);
|
|
|
|
|
SelfReport selfReport = new SelfReport();
|
|
|
|
|
selfReport.setDescription("自报");
|
|
|
|
|
selfReport.setHandle(handle);
|
|
|
|
|
selfReport.setSite(site);
|
|
|
|
|
selfReport.setTaskNo(taskNo);
|
|
|
|
|
String workShopBo = commonService.getWorkShopBo(HandleEnum.RESOURCE.getHandle(site, resrce));
|
|
|
|
|
selfReport.setWorkCenter(StringUtil.trimHandle(workShopBo));
|
|
|
|
|
selfReport.setShopOrder(shopOrder);
|
|
|
|
|
selfReport.setItem(item);
|
|
|
|
|
selfReport.setOpStep(operationStep);
|
|
|
|
|
selfReport.setResrce(resrce);
|
|
|
|
|
selfReport.setSfc(sfc);
|
|
|
|
|
selfReport.setNcCode(stringBuilder.toString());
|
|
|
|
|
selfReport.setNcQty(new BigDecimal(ncQty));
|
|
|
|
|
selfReport.setLocation(location);
|
|
|
|
|
selfReport.setState(Constants.NEW);
|
|
|
|
|
selfReport.setRemark(comments);
|
|
|
|
|
selfReport.setCreateUser(user);
|
|
|
|
|
selfReport.setCreatedDateTime(LocalDateTime.now());
|
|
|
|
|
selfReport.setModifyUser(user);
|
|
|
|
|
selfReport.setModifiedDateTime(LocalDateTime.now());
|
|
|
|
|
save(selfReport);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|