|
@@ -6,9 +6,11 @@ import java.util.stream.Collectors;
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import cn.ezhizao.common.utils.bean.BeanUtils;
|
|
|
import cn.ezhizao.common.utils.poi.ExcelUtil;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Log;
|
|
|
import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
|
|
|
+import cn.ezhizao.framework.redis.RedisCache;
|
|
|
import cn.ezhizao.framework.web.controller.BaseController;
|
|
|
import cn.ezhizao.framework.web.domain.AjaxResult;
|
|
|
import cn.ezhizao.framework.web.page.TableDataInfo;
|
|
@@ -24,6 +26,7 @@ import cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnolo
|
|
|
import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
|
|
|
import cn.ezhizao.project.system.domain.SysUser;
|
|
|
import cn.ezhizao.project.system.service.ISysUserService;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -90,6 +93,13 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
private IBizOutsourcedOrderDetailService bizOutsourcedOrderDetailService;
|
|
|
@Resource
|
|
|
private IBizOutsourcedOrderDetailProcessService bizOutsourcedOrderDetailProcessService;
|
|
|
+ @Resource
|
|
|
+ private IBizDayworkItemConsultPictureService bizDayworkItemConsultPictureService;
|
|
|
+ @Resource
|
|
|
+ private RedisCache redisCache;
|
|
|
+
|
|
|
+ final private String processInspectionNoKey = "processInspectionCode";
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 查询序检主列表
|
|
@@ -288,34 +298,96 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
bizDayworkItemRejectService.saveBatch(rejects);
|
|
|
//保存咨询信息
|
|
|
|
|
|
- List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults();
|
|
|
+ List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults().stream().filter(item-> item.getId()==null).collect(Collectors.toList());
|
|
|
+ List<BizDayworkItemConsult> needAdd = new ArrayList<>();
|
|
|
if (consults != null && consults.size() > 0) {
|
|
|
for (BizDayworkItemConsult consult : consults) {
|
|
|
- consult.setUserId(user == null ? 0L : user.getUserId());
|
|
|
- consult.setNickName(user == null ? "" : user.getNickName());
|
|
|
- consult.setDayworkId(daywork.getId());
|
|
|
- consult.setProcessInspectionId(processInspecion.getId());
|
|
|
- consult.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
- consult.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
- consult.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
- consult.setLotId(processInspecion.getLot().getId());
|
|
|
- consult.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
- consult.setDayworkId(daywork.getId());
|
|
|
- consult.setDayworkItemId(dayworkItem.getId());
|
|
|
- consult.setProductId(processInspecion.getLot().getProductId());
|
|
|
- consult.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
- consult.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
- consult.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
- consult.setProcessId(dayworkItem.getProcessId());
|
|
|
- consult.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
- consult.setIsOutsourcedInspection(1);
|
|
|
- consult.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ BizDayworkItemConsult consultInfo = new BizDayworkItemConsult();
|
|
|
+ consultInfo.setStatus(consult.getStatus());
|
|
|
+ consultInfo.setContent(consult.getContent());
|
|
|
+ consultInfo.setConsultDepartment(consult.getConsultDepartment());
|
|
|
+ consultInfo.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ consultInfo.setNickName(user == null ? "" : user.getNickName());
|
|
|
+ consultInfo.setDayworkId(daywork.getId());
|
|
|
+ consultInfo.setProcessInspectionId(processInspecion.getId());
|
|
|
+ consultInfo.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ consultInfo.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ consultInfo.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ consultInfo.setLotId(processInspecion.getLot().getId());
|
|
|
+ consultInfo.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ consultInfo.setDayworkId(daywork.getId());
|
|
|
+ consultInfo.setDayworkItemId(dayworkItem.getId());
|
|
|
+ consultInfo.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ consultInfo.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ consultInfo.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ consultInfo.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
+ consultInfo.setProcessId(dayworkItem.getProcessId());
|
|
|
+ consultInfo.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
+ consultInfo.setIsOutsourcedInspection(1);
|
|
|
+ consultInfo.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ needAdd.add(consultInfo);
|
|
|
}
|
|
|
+ bizDayworkItemConsultService.saveBatch(needAdd);
|
|
|
+ List<BizDayworkItemConsultPicture> pictures = new ArrayList<>();
|
|
|
+ needAdd.forEach(ne ->{
|
|
|
+ consults.forEach(item ->{
|
|
|
+ item.getPictures().forEach(info ->{
|
|
|
+ BizDayworkItemConsultPicture consultPicture = new BizDayworkItemConsultPicture();
|
|
|
+ consultPicture.setDayworkItemConsultId(ne.getId());
|
|
|
+ consultPicture.setPictureName(info.getPictureName());
|
|
|
+ consultPicture.setUrl(info.getUrl());
|
|
|
+ pictures.add(consultPicture);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ bizDayworkItemConsultPictureService.saveBatch(pictures);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//修改daywaork信息
|
|
|
dayworkItem.setIsProcessInspection(1);
|
|
|
- return success(bizDayworkItemService.saveOrUpdate(dayworkItem) && bizDayworkItemConsultService.saveOrUpdateBatch(consults));
|
|
|
+ return success(bizDayworkItemService.saveOrUpdate(dayworkItem) );
|
|
|
+ }
|
|
|
+ @PostMapping("/getProcessInspectionByDayworkId")
|
|
|
+ public AjaxResult getProcessInspectionByDayworkId(@RequestBody BizProcessInspecion processInspecion) {
|
|
|
+ List<BizProcessInspectionDetail> list = bizProcessInspecionService.getInspectionByDayworkId(processInspecion);
|
|
|
+ List<BizDayworkItemConsult> bizDayworkItemConsultList = new ArrayList<>();
|
|
|
+ if(!list.isEmpty()) {
|
|
|
+ //咨询信息
|
|
|
+ List<Long> inspectionIds = list.stream().map(BizProcessInspectionDetail::getProcessInspectionId).distinct().collect(Collectors.toList());
|
|
|
+ bizDayworkItemConsultList = bizDayworkItemConsultService.getListByInspectionIds(inspectionIds);
|
|
|
+ }
|
|
|
+ // 并将每个分组的元素收集到一个 List 中
|
|
|
+ Map<Long, List<BizProcessInspectionDetail>> groupedByProcessInspectionId =
|
|
|
+ list.stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ BizProcessInspectionDetail::getProcessInspectionId, // 分组依据的函数
|
|
|
+ Collectors.toList() // 指定分组内的元素收集为 List
|
|
|
+ ));
|
|
|
+ List<BizProcessInspecion> result = new ArrayList<>();
|
|
|
+ for (Map.Entry<Long, List<BizProcessInspectionDetail>> entry : groupedByProcessInspectionId.entrySet()) {
|
|
|
+ List<BizProcessInspectionDetail> details = entry.getValue();
|
|
|
+ BizProcessInspecion bizProcessInspecion = new BizProcessInspecion();
|
|
|
+ bizProcessInspecion.setProcessAlias(details.get(0).getProcessAlias());
|
|
|
+ bizProcessInspecion.setNickName(details.get(0).getInspectionName());
|
|
|
+ bizProcessInspecion.setRemark(details.get(0).getRemark());
|
|
|
+ bizProcessInspecion.setStatus(details.get(0).getStatus());
|
|
|
+ bizProcessInspecion.setId(details.get(0).getProcessInspectionId());
|
|
|
+ List<BizProcessInspectionDetail> rejectList = new ArrayList<>();
|
|
|
+ for (BizProcessInspectionDetail reject : details) {
|
|
|
+ BizProcessInspectionDetail rejectInfo = new BizProcessInspectionDetail();
|
|
|
+ rejectInfo.setCheckStandard(reject.getCheckStandard());
|
|
|
+ rejectInfo.setRejectNum(reject.getRejectNum());
|
|
|
+ rejectInfo.setCheckResult(reject.getCheckResult());
|
|
|
+ rejectList.add(rejectInfo);
|
|
|
+ }
|
|
|
+ bizProcessInspecion.setProcessInspectionDetails(rejectList);
|
|
|
+ if(!bizDayworkItemConsultList.isEmpty()) {
|
|
|
+ bizProcessInspecion.setDayworkItemConsults(bizDayworkItemConsultList.stream().filter(item -> item.getProcessInspectionId().equals(bizProcessInspecion.getId())).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ result.add(bizProcessInspecion);
|
|
|
+ }
|
|
|
+ return success(result);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -379,34 +451,54 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
bizDayworkItemRejectService.saveBatch(rejects);
|
|
|
//保存咨询信息
|
|
|
|
|
|
- List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults();
|
|
|
+ List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults().stream().filter(item-> item.getId()==null).collect(Collectors.toList());
|
|
|
+ List<BizDayworkItemConsult> needAdd = new ArrayList<>();
|
|
|
if (consults != null && consults.size() > 0) {
|
|
|
for (BizDayworkItemConsult consult : consults) {
|
|
|
- consult.setUserId(user == null ? 0L : user.getUserId());
|
|
|
- consult.setNickName(user == null ? "" : user.getNickName());
|
|
|
- consult.setDayworkId(daywork.getId());
|
|
|
- consult.setProcessInspectionId(processInspecion.getId());
|
|
|
- consult.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
- consult.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
- consult.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
- consult.setLotId(processInspecion.getLot().getId());
|
|
|
- consult.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
- consult.setDayworkId(daywork.getId());
|
|
|
- consult.setDayworkItemId(dayworkItem.getId());
|
|
|
- consult.setProductId(processInspecion.getLot().getProductId());
|
|
|
- consult.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
- consult.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
- consult.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
- consult.setProcessId(dayworkItem.getProcessId());
|
|
|
- consult.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
- consult.setIsProcessInspection(1);
|
|
|
- consult.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ BizDayworkItemConsult consultInfo = new BizDayworkItemConsult();
|
|
|
+ consultInfo.setConsultDepartment(consult.getConsultDepartment());
|
|
|
+ consultInfo.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ consultInfo.setNickName(user == null ? "" : user.getNickName());
|
|
|
+ consultInfo.setDayworkId(daywork.getId());
|
|
|
+ consultInfo.setContent(consult.getContent());
|
|
|
+ consultInfo.setProcessInspectionId(processInspecion.getId());
|
|
|
+ consultInfo.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ consultInfo.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ consultInfo.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ consultInfo.setLotId(processInspecion.getLot().getId());
|
|
|
+ consultInfo.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ consultInfo.setDayworkId(daywork.getId());
|
|
|
+ consultInfo.setDayworkItemId(dayworkItem.getId());
|
|
|
+ consultInfo.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ consultInfo.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ consultInfo.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ consultInfo.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
+ consultInfo.setProcessId(dayworkItem.getProcessId());
|
|
|
+ consultInfo.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
+ consultInfo.setIsProcessInspection(1);
|
|
|
+ consultInfo.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ consultInfo.setStatus(consult.getStatus());
|
|
|
+ consultInfo.setPictures(consult.getPictures());
|
|
|
+ needAdd.add(consultInfo);
|
|
|
}
|
|
|
+ bizDayworkItemConsultService.saveBatch(needAdd);
|
|
|
+ List<BizDayworkItemConsultPicture> pictures = new ArrayList<>();
|
|
|
+ needAdd.forEach(ne ->{
|
|
|
+ ne.getPictures().forEach(info ->{
|
|
|
+ BizDayworkItemConsultPicture consultPicture = new BizDayworkItemConsultPicture();
|
|
|
+ consultPicture.setDayworkItemConsultId(ne.getId());
|
|
|
+ consultPicture.setPictureName(info.getPictureName());
|
|
|
+ consultPicture.setUrl(info.getUrl());
|
|
|
+ pictures.add(consultPicture);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ bizDayworkItemConsultPictureService.saveBatch(pictures);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//修改daywaork信息
|
|
|
dayworkItem.setIsProcessInspection(1);
|
|
|
- return success(bizDayworkItemService.saveOrUpdate(dayworkItem) && bizDayworkItemConsultService.saveOrUpdateBatch(consults));
|
|
|
+ return success(bizDayworkItemService.saveOrUpdate(dayworkItem) );
|
|
|
}
|
|
|
|
|
|
private boolean checkOutsourceDayworkItem(Long outsourceOrderDetailId) {
|
|
@@ -419,9 +511,184 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
return items.stream().noneMatch(v -> v.getCreateTime().compareTo(bizDayworkItem.getCreateTime()) > 0 && v.getStatus().compareTo("0") >= 0 && v.getStatus().compareTo("3") <= 0);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+// @PostMapping("/saveOutsourcedInspecion")
|
|
|
+ public AjaxResult saveOutsourcedInspectionV3(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+// // 判断是否已有未确认外协检查
|
|
|
+// if (bizProcessInspecionService.query().eq("outsource_order_detail_id", processInspecion.getOutsourceOrderDetailId()).eq("status", 0).count() > 0) {
|
|
|
+// return error("已有未完成外协检查单。");
|
|
|
+// }
|
|
|
+ //根据lot信息保存序检表
|
|
|
+ BizDaywork daywork = bizDayworkService.query().eq("lot_code", processInspecion.getLot().getLotCode()).one();
|
|
|
+ BizProduct product = bizProductService.getById(processInspecion.getLot().getProductId());
|
|
|
+ SysUser technicianUser = sysUserService.selectUserById(product.getTechnicianId());
|
|
|
+ BizDayworkItem dayworkItem = bizDayworkItemService.getById(processInspecion.getLot().getDayworkItemId());
|
|
|
+ BizReturnReceiptDetail bizReturnReceiptDetail = bizReturnReceiptDetailService.query().eq("daywork_id", dayworkItem.getDayworkId()).eq("technological_process_detail_id", dayworkItem.getTechnologicalProcessDetailId()).eq("deleted", 0).one();
|
|
|
+
|
|
|
+ SysUser user = sysUserService.selectUserById(processInspecion.getUser().getUserId());
|
|
|
+
|
|
|
+ // 判断是否已经进行过质检
|
|
|
+ BizProcessInspecion previousItem = bizProcessInspecionService.query().eq("outsource_order_detail_id", bizReturnReceiptDetail.getOutsourceDetailId()).one();
|
|
|
+ if (previousItem != null) {
|
|
|
+ if (processInspecion.getId() == null) {
|
|
|
+ previousItem.setRecheckDate(DateTime.now().toJdkDate());
|
|
|
+ }
|
|
|
+ previousItem.setIsInspectionCarrierChanged(0);
|
|
|
+ previousItem.setInspectionCarrierChangedTime(null);
|
|
|
+ previousItem.setStatus(processInspecion.getStatus());
|
|
|
+ previousItem.setRejectNum(processInspecion.getRejectNum());
|
|
|
+ previousItem.setExaminingNum(processInspecion.getExaminingNum());
|
|
|
+ previousItem.setDisqualificationNum(processInspecion.getDisqualificationNum());
|
|
|
+ } else {
|
|
|
+ previousItem = new BizProcessInspecion(processInspecion);
|
|
|
+ String beginCode = "WDD" + DateTime.now().toString("yyMM");
|
|
|
+ String previous = redisCache.hasKey(processInspectionNoKey) ? redisCache.getCacheObject(processInspectionNoKey) : "";
|
|
|
+ String codeValue = "";
|
|
|
+ if (previous.isEmpty()) {
|
|
|
+ previous = (beginCode + "000001");
|
|
|
+ } else {
|
|
|
+ codeValue = previous;
|
|
|
+ int lastFourDigits = Integer.parseInt(codeValue.substring(7, 13));
|
|
|
+ lastFourDigits += 1; // 加1
|
|
|
+ codeValue = codeValue.substring(0, 7) + String.format("%06d", lastFourDigits);
|
|
|
+ previous = codeValue;
|
|
|
+ }
|
|
|
+ previousItem.setOutsourcedInspectionNo(previous);
|
|
|
+ redisCache.setCacheObject(processInspectionNoKey, previous);
|
|
|
+ }
|
|
|
+ previousItem.setReturnReceiptDetailId(bizReturnReceiptDetail.getId());
|
|
|
+ previousItem.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ previousItem.setNickName(user == null ? "" : user.getNickName());
|
|
|
+ previousItem.setCarrierId(processInspecion.getLot().getCarrierId());
|
|
|
+ previousItem.setCarrierCode(processInspecion.getLot().getCarrierCode());
|
|
|
+ previousItem.setDayworkId(daywork.getId());
|
|
|
+ previousItem.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ previousItem.setDayworkItemId(dayworkItem.getId());
|
|
|
+ previousItem.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ previousItem.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ previousItem.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ previousItem.setLotId(processInspecion.getLot().getId());
|
|
|
+ previousItem.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ previousItem.setDeptId(daywork.getDeptId());
|
|
|
+ previousItem.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ previousItem.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ previousItem.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+ previousItem.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+
|
|
|
+ if (previousItem.getStartTime() == null) {
|
|
|
+ previousItem.setStartTime(new Date());
|
|
|
+ }
|
|
|
+ if (previousItem.getStatus() != 0) {
|
|
|
+ previousItem.setEndTime(new Date());
|
|
|
+ previousItem.setFirstUpdaterId(processInspecion.getFirstUpdaterId() == null || processInspecion.getFirstUpdaterId().equals(0L) ? user != null ? user.getUserId() : 0L : processInspecion.getFirstUpdaterId());
|
|
|
+
|
|
|
+ }
|
|
|
+ if (!checkOutsourceDayworkItem(processInspecion.getOutsourceOrderDetailId())) {
|
|
|
+ return error("编辑失败,下序已经生产加工");
|
|
|
+ }
|
|
|
+
|
|
|
+ BizCarrier carrier = bizCarrierService.query().eq("id", processInspecion.getInspectionCarrierId()).one();
|
|
|
+ List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("carrier_id", carrier.getId()).eq("is_changed", 0).list();
|
|
|
+ if (dayworkCarriers.stream().anyMatch(v -> !v.getDayworkId().equals(daywork.getId()))) {
|
|
|
+ return error("检测载具已绑定其他批次");
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存
|
|
|
+ bizProcessInspecionService.saveOrUpdate(previousItem);
|
|
|
+
|
|
|
+ if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(daywork.getId())) && (previousItem.getIsInspectionCarrierChanged() == null || previousItem.getIsInspectionCarrierChanged().equals(0))) {
|
|
|
+ // 该检测载具需要绑定到当前批次
|
|
|
+ BizDayworkCarrier newDayworkCarrier = new BizDayworkCarrier();
|
|
|
+ newDayworkCarrier.setDayworkId(previousItem.getDayworkId());
|
|
|
+ newDayworkCarrier.setCarrierCode(carrier.getCode());
|
|
|
+ newDayworkCarrier.setCarrierId(carrier.getId());
|
|
|
+ newDayworkCarrier.setLotCode(previousItem.getLotCode());
|
|
|
+ newDayworkCarrier.setLotId(previousItem.getLotId());
|
|
|
+ newDayworkCarrier.setProductionPlanDetailId(previousItem.getProductionPlanDetailId());
|
|
|
+ newDayworkCarrier.setProcessInspectionId(previousItem.getId());
|
|
|
+ bizDayworkCarrierService.save(newDayworkCarrier);
|
|
|
+ }
|
|
|
+ List<BizDayworkItemConsult> consults = new ArrayList<>();
|
|
|
+ if (processInspecion.getId() != null) {
|
|
|
+ //保存废品信息
|
|
|
+ List<BizProcessInspectionDetail> rejects = processInspecion.getRejects();
|
|
|
+ //保存前先删除原先废品信息
|
|
|
+ BizDayworkItemReject rej = new BizDayworkItemReject();
|
|
|
+ rej.setProcessInspectionId(processInspecion.getId());
|
|
|
+ bizDayworkItemRejectService.removeReject(rej);
|
|
|
+ BizProcessInspectionDetail inspectionDetail = new BizProcessInspectionDetail();
|
|
|
+ inspectionDetail.setProcessInspectionId(processInspecion.getId());
|
|
|
+ processInspectionDetailService.physicalDelete(inspectionDetail);
|
|
|
+ BizDayworkItemReject newRej = new BizDayworkItemReject();
|
|
|
+ newRej.setRejectNum(0L);
|
|
|
+
|
|
|
+ if (rejects != null && rejects.size() > 0) {
|
|
|
+ for (BizProcessInspectionDetail reject : rejects) {
|
|
|
+ reject.setId(null);
|
|
|
+ reject.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ reject.setProcessInspectionId(processInspecion.getId());
|
|
|
+ reject.setDayworkId(0L);
|
|
|
+ reject.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ reject.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ reject.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ reject.setLotId(processInspecion.getLot().getId());
|
|
|
+ reject.setDayworkItemId(dayworkItem.getId());
|
|
|
+ Long rejectNum = reject.getRejectNum() == null ? 0L : reject.getRejectNum();
|
|
|
+ newRej.setRejectNum(newRej.getRejectNum());
|
|
|
+ newRej.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ newRej.setProcessInspectionId(processInspecion.getId());
|
|
|
+ newRej.setDayworkId(0L);
|
|
|
+ newRej.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ newRej.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ newRej.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ newRej.setLotId(processInspecion.getLot().getId());
|
|
|
+ newRej.setDayworkItemId(dayworkItem.getId());
|
|
|
+ newRej.setReason("外协检查废品");
|
|
|
+ newRej.setDeptId(processInspecion.getDeptId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ processInspectionDetailService.saveBatch(rejects);
|
|
|
+ bizDayworkItemRejectService.save(newRej);
|
|
|
+ //保存咨询信息
|
|
|
+ consults.addAll(processInspecion.getDayworkItemConsults());
|
|
|
+ if (consults.size() > 0) {
|
|
|
+ for (BizDayworkItemConsult consult : consults) {
|
|
|
+ consult.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ consult.setNickName(user == null ? "" : user.getNickName());
|
|
|
+ consult.setDayworkId(daywork.getId());
|
|
|
+ consult.setProcessInspectionId(processInspecion.getId());
|
|
|
+ consult.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ consult.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ consult.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ consult.setLotId(processInspecion.getLot().getId());
|
|
|
+ consult.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ consult.setDayworkId(daywork.getId());
|
|
|
+ consult.setDayworkItemId(dayworkItem.getId());
|
|
|
+ consult.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ consult.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ consult.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ consult.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
+ consult.setProcessId(dayworkItem.getProcessId());
|
|
|
+ consult.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
+ consult.setIsOutsourcedInspection(1);
|
|
|
+ consult.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改daywaork信息
|
|
|
+ dayworkItem.setIsProcessInspection(1);
|
|
|
+ return success(bizDayworkItemService.saveOrUpdate(dayworkItem) && (consults.isEmpty() || bizDayworkItemConsultService.saveOrUpdateBatch(consults)));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Transactional
|
|
|
@PostMapping("/saveOutsourcedInspecion")
|
|
|
public AjaxResult saveOutsourcedInspectionV2(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+// // 判断是否已有未确认外协检查
|
|
|
+// if (bizProcessInspecionService.query().eq("outsource_order_detail_id", processInspecion.getOutsourceOrderDetailId()).eq("status", 0).count() > 0) {
|
|
|
+// return error("已有未完成外协检查单。");
|
|
|
+// }
|
|
|
//根据lot信息保存序检表
|
|
|
BizDaywork daywork = bizDayworkService.query().eq("lot_code", processInspecion.getLot().getLotCode()).one();
|
|
|
BizProduct product = bizProductService.getById(processInspecion.getLot().getProductId());
|
|
@@ -429,6 +696,10 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
BizDayworkItem dayworkItem = bizDayworkItemService.getById(processInspecion.getLot().getDayworkItemId());
|
|
|
BizReturnReceiptDetail bizReturnReceiptDetail = bizReturnReceiptDetailService.query().eq("daywork_id", dayworkItem.getDayworkId()).eq("technological_process_detail_id", dayworkItem.getTechnologicalProcessDetailId()).eq("deleted", 0).one();
|
|
|
|
|
|
+ // 判断是否已经进行过质检
|
|
|
+// BizProcessInspecion previousItem = bizProcessInspecionService.query().eq("outsource_order_detail_id", bizReturnReceiptDetail.getOutsourceDetailId()).one();
|
|
|
+// previousItem.setRecheckDate(DateTime.now().toJdkDate());
|
|
|
+
|
|
|
SysUser user = sysUserService.selectUserById(processInspecion.getUser().getUserId());
|
|
|
processInspecion.setReturnReceiptDetailId(bizReturnReceiptDetail.getId());
|
|
|
processInspecion.setUserId(user == null ? 0L : user.getUserId());
|
|
@@ -523,34 +794,52 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
bizDayworkItemRejectService.save(newRej);
|
|
|
//保存咨询信息
|
|
|
|
|
|
- List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults();
|
|
|
+ List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults().stream().filter(item-> item.getId()==null).collect(Collectors.toList());
|
|
|
+ List<BizDayworkItemConsult> needAdd = new ArrayList<>();
|
|
|
if (consults != null && consults.size() > 0) {
|
|
|
for (BizDayworkItemConsult consult : consults) {
|
|
|
- consult.setUserId(user == null ? 0L : user.getUserId());
|
|
|
- consult.setNickName(user == null ? "" : user.getNickName());
|
|
|
- consult.setDayworkId(daywork.getId());
|
|
|
- consult.setProcessInspectionId(processInspecion.getId());
|
|
|
- consult.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
- consult.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
- consult.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
- consult.setLotId(processInspecion.getLot().getId());
|
|
|
- consult.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
- consult.setDayworkId(daywork.getId());
|
|
|
- consult.setDayworkItemId(dayworkItem.getId());
|
|
|
- consult.setProductId(processInspecion.getLot().getProductId());
|
|
|
- consult.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
- consult.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
- consult.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
- consult.setProcessId(dayworkItem.getProcessId());
|
|
|
- consult.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
- consult.setIsOutsourcedInspection(1);
|
|
|
- consult.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ BizDayworkItemConsult consultInfo = new BizDayworkItemConsult();
|
|
|
+ consultInfo.setPictures(consult.getPictures());
|
|
|
+ consultInfo.setUserId(user == null ? 0L : user.getUserId());
|
|
|
+ consultInfo.setNickName(user == null ? "" : user.getNickName());
|
|
|
+ consultInfo.setDayworkId(daywork.getId());
|
|
|
+ consultInfo.setContent(consult.getContent());
|
|
|
+ consultInfo.setConsultDepartment(consult.getConsultDepartment());
|
|
|
+ consultInfo.setProcessInspectionId(processInspecion.getId());
|
|
|
+ consultInfo.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ consultInfo.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ consultInfo.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ consultInfo.setLotId(processInspecion.getLot().getId());
|
|
|
+ consultInfo.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ consultInfo.setDayworkId(daywork.getId());
|
|
|
+ consultInfo.setDayworkItemId(dayworkItem.getId());
|
|
|
+ consultInfo.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ consultInfo.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ consultInfo.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ consultInfo.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
+ consultInfo.setProcessId(dayworkItem.getProcessId());
|
|
|
+ consultInfo.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
+ consultInfo.setIsOutsourcedInspection(1);
|
|
|
+ consultInfo.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
|
|
|
+ needAdd.add(consultInfo);
|
|
|
}
|
|
|
+ bizDayworkItemConsultService.saveBatch(needAdd);
|
|
|
+ List<BizDayworkItemConsultPicture> pictures = new ArrayList<>();
|
|
|
+ needAdd.forEach(ne ->{
|
|
|
+ ne.getPictures().forEach(info ->{
|
|
|
+ BizDayworkItemConsultPicture consultPicture = new BizDayworkItemConsultPicture();
|
|
|
+ consultPicture.setDayworkItemConsultId(ne.getId());
|
|
|
+ consultPicture.setPictureName(info.getPictureName());
|
|
|
+ consultPicture.setUrl(info.getUrl());
|
|
|
+ pictures.add(consultPicture);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ bizDayworkItemConsultPictureService.saveBatch(pictures);
|
|
|
}
|
|
|
|
|
|
//修改daywaork信息
|
|
|
dayworkItem.setIsProcessInspection(1);
|
|
|
- return success(bizDayworkItemService.saveOrUpdate(dayworkItem) && bizDayworkItemConsultService.saveOrUpdateBatch(consults));
|
|
|
+ return success(bizDayworkItemService.saveOrUpdate(dayworkItem));
|
|
|
}
|
|
|
|
|
|
|