|
@@ -16,6 +16,8 @@ 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;
|
|
|
+import cn.ezhizao.project.business.BizInspectionStandardsCheck.domain.BizInspectionStandardsCheck;
|
|
|
+import cn.ezhizao.project.business.BizInspectionStandardsCheck.service.IBizInspectionStandardsCheckService;
|
|
|
import cn.ezhizao.project.business.carrierReject.domain.BizCarrierReject;
|
|
|
import cn.ezhizao.project.business.carrierReject.service.IBizCarrierRejectService;
|
|
|
import cn.ezhizao.project.business.outsource.domain.BizOutsourcedOrderDetail;
|
|
@@ -24,6 +26,9 @@ import cn.ezhizao.project.business.outsource.service.IBizOutsourcedOrderDetailPr
|
|
|
import cn.ezhizao.project.business.outsource.service.IBizOutsourcedOrderDetailService;
|
|
|
import cn.ezhizao.project.business.product.domain.*;
|
|
|
import cn.ezhizao.project.business.product.service.*;
|
|
|
+import cn.ezhizao.project.business.resourceGroup.domain.BizProductionResourceGroupDetail;
|
|
|
+import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupDetailService;
|
|
|
+import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupService;
|
|
|
import cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnologicalProcessDetail;
|
|
|
import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
|
|
|
import cn.ezhizao.project.system.domain.SysUser;
|
|
@@ -99,6 +104,12 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
private IBizDayworkItemConsultPictureService bizDayworkItemConsultPictureService;
|
|
|
@Resource
|
|
|
private RedisCache redisCache;
|
|
|
+ @Resource
|
|
|
+ private IBizProductionResourceGroupDetailService bizProductionResourceGroupDetailService;
|
|
|
+ @Resource
|
|
|
+ private IBizProductionResourceGroupService bizProductionResourceGroupService;
|
|
|
+ @Resource
|
|
|
+ private IBizInspectionStandardsCheckService bizInspectionStandardsCheckService;
|
|
|
|
|
|
final private String processInspectionNoKey = "processInspectionCode";
|
|
|
|
|
@@ -118,12 +129,76 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
bizProcessInspecion.setStartTimeString(time + " 00:00:00");
|
|
|
bizProcessInspecion.setEndTimeString(time + " 23:59:59");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
List<BizProcessInspecion> list = bizProcessInspecionService.getList(bizProcessInspecion);
|
|
|
return getDataTable(list);
|
|
|
}
|
|
|
+//交检审核列表
|
|
|
+@PostMapping("/examineList")
|
|
|
+public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+
|
|
|
+ if (bizProcessInspecion.getStartTime() != null) {
|
|
|
+ Date startTimeDate = bizProcessInspecion.getStartTime();
|
|
|
+ // 使用 SimpleDateFormat 格式化 Date 对象为特定格式的字符串
|
|
|
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
|
|
|
+ String time = dateFormat.format(startTimeDate);
|
|
|
+
|
|
|
+ bizProcessInspecion.setStartTimeString(time + " 00:00:00");
|
|
|
+ bizProcessInspecion.setEndTimeString(time + " 23:59:59");
|
|
|
+ }
|
|
|
+ //交检审核人能看到的是交检操作者是自己所在的资源组的内容,且该批次未周转下道工序
|
|
|
+ //当前登陆者所在的资源组
|
|
|
+ Long loginUserId = SecurityUtils.getLoginUser().getUserId();
|
|
|
+ List<BizProductionResourceGroupDetail> resourceGroupDetailList = bizProductionResourceGroupDetailService.query()
|
|
|
+ .eq("dept_id", bizProcessInspecion.getDeptId())
|
|
|
+ .eq("common_id", loginUserId)
|
|
|
+ .eq("common_type", "person")
|
|
|
+ .list();
|
|
|
+ List<Long> resourceGroupIds = resourceGroupDetailList.stream().map(BizProductionResourceGroupDetail::getProductionResourceGroupId).collect(Collectors.toList());
|
|
|
+ if(resourceGroupIds.isEmpty()) {
|
|
|
+ return getDataTable(new ArrayList<>());
|
|
|
+ }
|
|
|
+ List<BizProcessInspecion> list = bizProcessInspecionService.getExaminList(bizProcessInspecion);
|
|
|
+ if(list.isEmpty()) {
|
|
|
+ return getDataTable(new ArrayList<>());
|
|
|
+ }
|
|
|
+ List<Long> dayworkIds = list.stream().map(BizProcessInspecion::getDayworkId).collect(Collectors.toList());
|
|
|
+ List<BizDayworkItem> dayworkItemList = bizDayworkItemService.query().in("daywork_id", dayworkIds).list();
|
|
|
+
|
|
|
+ List<Long> processInspectionUserIds = list.stream().map(BizProcessInspecion::getUserId).collect(Collectors.toList());
|
|
|
+ List<BizProductionResourceGroupDetail> resourceGroupList = bizProductionResourceGroupDetailService.query().eq("dept_id", bizProcessInspecion.getDeptId())
|
|
|
+ .in("common_id", processInspectionUserIds)
|
|
|
+ .eq("common_type", "person").list();
|
|
|
+ List<BizProcessInspecion> newList = new ArrayList<>();
|
|
|
+ for (BizProcessInspecion item : list) {
|
|
|
+ List<BizProductionResourceGroupDetail> detailList = resourceGroupList.stream()
|
|
|
+ .filter(resourceGroup -> resourceGroup.getCommonId().equals(item.getUserId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (BizProductionResourceGroupDetail info : detailList) {
|
|
|
+ if (resourceGroupIds.contains(info.getProductionResourceGroupId())) {
|
|
|
+ //判断如果已经转到下序,则列表不显示
|
|
|
+ BizDayworkItem lastDayworkItem = dayworkItemList.stream().filter(l -> item.getDayworkId().equals(l.getDayworkId())).sorted(Comparator.comparing(BizDayworkItem::getCreateTime).reversed()).collect(Collectors.toList()).get(0);
|
|
|
+ String lastProcessStepNumber = lastDayworkItem.getProcessStepNumber();
|
|
|
+ BizDayworkItem currentDayworkItem = dayworkItemList.stream().filter(l -> l.getId().equals(item.getDayworkItemId())).collect(Collectors.toList()).get(0);
|
|
|
+ String currentProcessStepNumber = currentDayworkItem.getProcessStepNumber();
|
|
|
+ if (lastProcessStepNumber.equals(currentProcessStepNumber)) {
|
|
|
+ newList.add(item);
|
|
|
+ break; // 退出内部的for循环
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return getDataTable(newList);
|
|
|
+}
|
|
|
+ //修改交检审核状态
|
|
|
+ @PutMapping("/updateAdoptStatus")
|
|
|
+ public AjaxResult updateAdoptStatus(@RequestBody BizProcessInspecion bizProcessInspecion) {
|
|
|
+ Long userId = SecurityUtils.getLoginUser().getUserId();
|
|
|
+ bizProcessInspecion.setAdoptId(userId);
|
|
|
+ bizProcessInspecion.setAuditStatus(bizProcessInspecion.getAuditStatus());
|
|
|
+ bizProcessInspecionService.updateById(bizProcessInspecion);
|
|
|
+ return success();
|
|
|
+ }
|
|
|
/**
|
|
|
* 查询序检主列表(外协序检)
|
|
|
*/
|
|
@@ -218,13 +293,72 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
}
|
|
|
|
|
|
lot.setAllCarrierName(dayworkItem.getCarrierName());
|
|
|
+ lot.setNickName(processInspecion.getNickName());
|
|
|
+ lot.setUserId(processInspecion.getUserId());
|
|
|
+ lot.setEquipmentDetailCode(processInspecion.getEquipmentDetailCode());
|
|
|
+ lot.setEquipmentDetailId(processInspecion.getEquipmentDetailId());
|
|
|
+ lot.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+ lot.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+ lot.setProcessId(dayworkItem.getProcessId());
|
|
|
lot.setDayworkItemId(dayworkItem.getId());
|
|
|
- lot.setCarrierCode(dayworkItem.getCarrierCode());
|
|
|
- lot.setCarrierId(dayworkItem.getCarrierId());
|
|
|
+ lot.setCarrierCode(processInspecion.getCarrierCode());
|
|
|
+ lot.setCarrierId(processInspecion.getCarrierId());
|
|
|
lot.setPudName(dayworkItem.getProdNum() == 0 ? lot.getProductionQuantity() : dayworkItem.getProdNum());
|
|
|
processInspecion.setLot(lot);
|
|
|
return success(processInspecion);
|
|
|
}
|
|
|
+ //判断载具
|
|
|
+ @PostMapping("/checkCarrier")
|
|
|
+ public AjaxResult checkCarrier(@RequestBody BizDayworkCarrier dayworkCarrier) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ String carrierCode = dayworkCarrier.getCarrierCode();
|
|
|
+ BizCarrier carrier = bizCarrierService.query().eq("code", carrierCode).eq("is_inspection",1).one();
|
|
|
+ if (carrier == null) {
|
|
|
+ return error("未找到该检测箱号");
|
|
|
+ }
|
|
|
+ //查询箱号是否废弃
|
|
|
+ BizCarrierReject carrierReject = bizCarrierRejectService.query().eq("carrier_id", carrier.getId()).eq("deleted", 0).eq("is_abandoned", 1).last("limit 1").one();
|
|
|
+ if (carrierReject != null) {
|
|
|
+ return error("该检测载具已废弃");
|
|
|
+ }
|
|
|
+ //查找该箱号关联批次
|
|
|
+ List<BizDayworkCarrier> dayworkCarrierList = bizDayworkCarrierService.query().eq("carrier_id", carrier.getId()).eq("is_changed",0).list();
|
|
|
+ if (dayworkCarrierList.isEmpty()) {
|
|
|
+ return error("该检测载具未绑定批次");
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+ //根据检测载具查询检测信息
|
|
|
+ @PostMapping("getInspectionInfoByInspectionCarrierCode")
|
|
|
+ public AjaxResult getInspectionInfoByInspectionCarrierCode(@RequestBody BizDayworkCarrier dayworkCarrier) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ String carrierCode = dayworkCarrier.getCarrierCode();
|
|
|
+ BizCarrier carrier = bizCarrierService.query().eq("code", carrierCode).eq("is_inspection",1).one();
|
|
|
+ //查询箱号是否废弃
|
|
|
+ BizCarrierReject carrierReject = bizCarrierRejectService.query().eq("carrier_id", carrier.getId()).eq("deleted", 0).eq("is_abandoned", 1).last("limit 1").one();
|
|
|
+ //查找该箱号关联批次
|
|
|
+ List<BizDayworkCarrier> dayworkCarrierList = bizDayworkCarrierService.query().eq("carrier_id", carrier.getId()).eq("is_changed",0).list();
|
|
|
+ List<Long> processInspectionIds = dayworkCarrierList.stream().map(BizDayworkCarrier::getProcessInspectionId).collect(Collectors.toList());
|
|
|
+ List<BizProcessInspecion> processInspectionList = bizProcessInspecionService.getInfoByIds(processInspectionIds);
|
|
|
+
|
|
|
+ //咨询
|
|
|
+ List<BizDayworkItemConsult> itemConsults = bizDayworkItemConsultService.query().in("process_inspection_id", processInspectionIds).eq("is_process_inspection", 1).list();
|
|
|
+ //明细
|
|
|
+ List<BizProcessInspectionDetail> itemDetails = processInspectionDetailService.query().in("process_inspection_id", processInspectionIds).list();
|
|
|
+ //废品
|
|
|
+ List<BizDayworkItemReject> itemRejects = bizDayworkItemRejectService.query().in("process_inspection_id", processInspectionIds).list();
|
|
|
+ List<BizProcessInspecion> list = new ArrayList<>();
|
|
|
+ processInspectionIds.forEach(item ->{
|
|
|
+ BizProcessInspecion processInspection = new BizProcessInspecion();
|
|
|
+ processInspection = processInspectionList.stream().filter(x -> x.getId().equals(item)).collect(Collectors.toList()).get(0);
|
|
|
+ List<BizDayworkItemConsult> consults = itemConsults.stream().filter(x -> x.getProcessInspectionId().equals(item)).collect(Collectors.toList());
|
|
|
+ processInspection.setDayworkItemConsults(consults);
|
|
|
+ List<BizProcessInspectionDetail> details = itemDetails.stream().filter(x -> x.getProcessInspectionId().equals(item)).collect(Collectors.toList());
|
|
|
+ processInspection.setProcessInspectionDetails(details);
|
|
|
+ List<BizDayworkItemReject> rejects = itemRejects.stream().filter(x -> x.getProcessInspectionId().equals(item)).collect(Collectors.toList());
|
|
|
+ processInspection.setDayworkItemRejects(rejects);
|
|
|
+ list.add(processInspection);
|
|
|
+ });
|
|
|
+ return success(list);
|
|
|
+ }
|
|
|
|
|
|
// @PostMapping("/selectOutsourcedInspecion")
|
|
|
public AjaxResult selectOutsourcedInspecion(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
@@ -957,6 +1091,7 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
processInspecion.setCarrierId(processInspecion.getLot().getCarrierId());
|
|
|
processInspecion.setCarrierCode(processInspecion.getLot().getCarrierCode());
|
|
|
processInspecion.setDayworkId(daywork.getId());
|
|
|
+ processInspecion.setProcessStepNumber(processInspecion.getLot().getProcessStepNumber());
|
|
|
processInspecion.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
processInspecion.setDayworkItemId(dayworkItem.getId());
|
|
|
processInspecion.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
@@ -992,6 +1127,74 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
|
|
|
//保存
|
|
|
bizProcessInspecionService.saveOrUpdate(processInspecion);
|
|
|
+ //移交仪器室
|
|
|
+ if(processInspecion.getFlag()) {
|
|
|
+ BizProcessInspecion inspection = new BizProcessInspecion();
|
|
|
+ inspection.setUserId(processInspecion.getLot().getUserId());
|
|
|
+ inspection.setNickName(processInspecion.getLot().getNickName());
|
|
|
+ inspection.setCarrierId(processInspecion.getCarrierId());
|
|
|
+ inspection.setCarrierCode(processInspecion.getCarrierCode());
|
|
|
+ inspection.setDayworkId(daywork.getId());
|
|
|
+ inspection.setProcessStepNumber(processInspecion.getLot().getProcessStepNumber());
|
|
|
+ inspection.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ inspection.setDayworkItemId(dayworkItem.getId());
|
|
|
+ inspection.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ inspection.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ inspection.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ inspection.setLotId(processInspecion.getLot().getId());
|
|
|
+ inspection.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ inspection.setDeptId(daywork.getDeptId());
|
|
|
+ inspection.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ inspection.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ inspection.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+ inspection.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+ inspection.setProcessStepNumber(processInspecion.getProcessStepNumber());
|
|
|
+ inspection.setEquipmentDetailCode(processInspecion.getLot().getEquipmentDetailCode());
|
|
|
+ inspection.setEquipmentDetailId(processInspecion.getLot().getEquipmentDetailId());
|
|
|
+ inspection.setInspectionChamberId(processInspecion.getInspectionChamberId());
|
|
|
+ inspection.setReviewerId(SecurityUtils.getLoginUser().getUserId());
|
|
|
+ inspection.setProcessStepNumber(processInspecion.getProcessStepNumber());
|
|
|
+ inspection.setFromId(processInspecion.getId());
|
|
|
+ inspection.setType("instrumentRoomInspection");
|
|
|
+ if (inspection.getStartTime() == null) {
|
|
|
+ inspection.setStartTime(new Date());
|
|
|
+ }
|
|
|
+ bizProcessInspecionService.save(inspection);
|
|
|
+ //保存检查明细
|
|
|
+ List<BizInspectionStandardsCheck> inspectionStandardsCheckList = bizInspectionStandardsCheckService.query()
|
|
|
+ .eq("inspection_code", "instrumentRoomInspection")
|
|
|
+ .eq("product_id", inspection.getProductId())
|
|
|
+ .eq("process_id", processInspecion.getLot().getProcessId()).list();
|
|
|
+ List<BizProcessInspectionDetail> detailList = new ArrayList<>();
|
|
|
+ inspectionStandardsCheckList.forEach(inspectionStandardsCheck -> {
|
|
|
+ BizProcessInspectionDetail detail = new BizProcessInspectionDetail();
|
|
|
+ detail.setId(null);
|
|
|
+ detail.setUserId(processInspecion.getLot().getUserId());
|
|
|
+ detail.setProcessInspectionId(inspection.getId());
|
|
|
+ detail.setDayworkId(0L);
|
|
|
+ detail.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ detail.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ detail.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ detail.setLotId(processInspecion.getLot().getId());
|
|
|
+ detail.setDayworkItemId(dayworkItem.getId());
|
|
|
+ detail.setCheckStandard(inspectionStandardsCheck.getStandard());
|
|
|
+ detail.setInspectionStandardsId(inspectionStandardsCheck.getId());
|
|
|
+ detailList.add(detail);
|
|
|
+ });
|
|
|
+ if(!detailList.isEmpty()) {
|
|
|
+ processInspectionDetailService.saveBatch(detailList);
|
|
|
+ }
|
|
|
+ //绑定检测载具
|
|
|
+ BizDayworkCarrier newDayworkCarrier = new BizDayworkCarrier();
|
|
|
+ newDayworkCarrier.setDayworkId(inspection.getDayworkId());
|
|
|
+ newDayworkCarrier.setCarrierCode(inspection.getInspectionCarrierCode());
|
|
|
+ newDayworkCarrier.setCarrierId(inspection.getInspectionCarrierId());
|
|
|
+ newDayworkCarrier.setLotCode(inspection.getLotCode());
|
|
|
+ newDayworkCarrier.setLotId(inspection.getLotId());
|
|
|
+ newDayworkCarrier.setProductionPlanDetailId(inspection.getProductionPlanDetailId());
|
|
|
+ newDayworkCarrier.setProcessInspectionId(inspection.getId());
|
|
|
+ bizDayworkCarrierService.save(newDayworkCarrier);
|
|
|
+ }
|
|
|
|
|
|
if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(processInspecion.getDayworkId())) && (processInspecion.getIsInspectionCarrierChanged() == null || processInspecion.getIsInspectionCarrierChanged().equals(0))) {
|
|
|
// 该检测载具需要绑定到当前批次
|
|
@@ -1077,6 +1280,12 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
dayworkItem.setIsProcessInspection(1);
|
|
|
return success(bizDayworkItemService.saveOrUpdate(dayworkItem));
|
|
|
}
|
|
|
+ //查找该检查是否已经移交给了仪器室
|
|
|
+ @PostMapping("/getInstrumentRoomInspection")
|
|
|
+ public AjaxResult getInstrumentRoomInspection(@RequestBody BizProcessInspecion bizProcessInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ List<BizProcessInspecion> list = bizProcessInspecionService.query().eq("from_id", bizProcessInspecion.getId()).eq("type", "instrumentRoomInspection").list();
|
|
|
+ return success(list);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
// /**
|
|
@@ -1161,7 +1370,276 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
}
|
|
|
return success();
|
|
|
}
|
|
|
+ //交检
|
|
|
+ @Transactional
|
|
|
+ @PostMapping("/saveDeliveryInspection")
|
|
|
+ public AjaxResult saveDeliveryInspection(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ //根据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());
|
|
|
+ processInspecion.setUserId(processInspecion.getLot().getUserId());
|
|
|
+ processInspecion.setNickName(processInspecion.getLot().getNickName());
|
|
|
+ processInspecion.setCarrierId(processInspecion.getLot().getCarrierId());
|
|
|
+ processInspecion.setCarrierCode(processInspecion.getLot().getCarrierCode());
|
|
|
+ processInspecion.setDayworkId(daywork.getId());
|
|
|
+ processInspecion.setProcessStepNumber(processInspecion.getLot().getProcessStepNumber());
|
|
|
+ processInspecion.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ processInspecion.setDayworkItemId(dayworkItem.getId());
|
|
|
+ processInspecion.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ processInspecion.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ processInspecion.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ processInspecion.setLotId(processInspecion.getLot().getId());
|
|
|
+ processInspecion.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ processInspecion.setDeptId(daywork.getDeptId());
|
|
|
+ processInspecion.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ processInspecion.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ processInspecion.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+ processInspecion.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+ processInspecion.setEquipmentDetailCode(processInspecion.getLot().getEquipmentDetailCode());
|
|
|
+ processInspecion.setEquipmentDetailId(processInspecion.getLot().getEquipmentDetailId());
|
|
|
+ processInspecion.setReviewerId(SecurityUtils.getLoginUser().getUserId());
|
|
|
+ processInspecion.setType("deliveryInspection");
|
|
|
+ if (processInspecion.getStartTime() == null) {
|
|
|
+ processInspecion.setStartTime(new Date());
|
|
|
+ }
|
|
|
+ if (processInspecion.getStatus() != 0) {
|
|
|
+ processInspecion.setEndTime(new Date());
|
|
|
+ processInspecion.setFirstUpdaterId(processInspecion.getFirstUpdaterId() == null || processInspecion.getFirstUpdaterId().equals(0L) ? SecurityUtils.getLoginUser().getUserId() : processInspecion.getFirstUpdaterId());
|
|
|
+ }
|
|
|
+ if (!checkDayworkItem(processInspecion.getLot().getDayworkItemId())) {
|
|
|
+ return error("编辑失败,下序已经生产加工");
|
|
|
+ }
|
|
|
+
|
|
|
+ //BizCarrier carrier = bizCarrierService.query().eq("id", processInspecion.getInspectionCarrierId()).one();
|
|
|
+ List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("carrier_id", processInspecion.getInspectionCarrierId()).eq("is_changed", 0).list();
|
|
|
+ if (dayworkCarriers.stream().anyMatch(v -> !v.getDayworkId().equals(processInspecion.getDayworkId()))) {
|
|
|
+ return error("检测载具已绑定其他批次");
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存
|
|
|
+ bizProcessInspecionService.saveOrUpdate(processInspecion);
|
|
|
+
|
|
|
+ if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(processInspecion.getDayworkId())) && (processInspecion.getIsInspectionCarrierChanged() == null || processInspecion.getIsInspectionCarrierChanged().equals(0))) {
|
|
|
+ // 该检测载具需要绑定到当前批次
|
|
|
+ BizDayworkCarrier newDayworkCarrier = new BizDayworkCarrier();
|
|
|
+ newDayworkCarrier.setDayworkId(processInspecion.getDayworkId());
|
|
|
+ newDayworkCarrier.setCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+ newDayworkCarrier.setCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+ newDayworkCarrier.setLotCode(processInspecion.getLotCode());
|
|
|
+ newDayworkCarrier.setLotId(processInspecion.getLotId());
|
|
|
+ newDayworkCarrier.setProductionPlanDetailId(processInspecion.getProductionPlanDetailId());
|
|
|
+ newDayworkCarrier.setProcessInspectionId(processInspecion.getId());
|
|
|
+ bizDayworkCarrierService.save(newDayworkCarrier);
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存废品信息
|
|
|
+ List<BizProcessInspectionDetail> rejects = processInspecion.getProcessInspectionDetails();
|
|
|
+ //保存前先删除原先废品信息
|
|
|
+ BizDayworkItemReject rej = new BizDayworkItemReject();
|
|
|
+ rej.setProcessInspectionId(processInspecion.getId());
|
|
|
+ List<BizProcessInspectionDetail> processInspectionDetailList = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
|
|
|
+ processInspectionDetailService.removeBatchByIds(processInspectionDetailList);
|
|
|
|
|
|
+ if (rejects != null && rejects.size() > 0) {
|
|
|
+ for (BizProcessInspectionDetail reject : rejects) {
|
|
|
+ reject.setId(null);
|
|
|
+ reject.setUserId(processInspecion.getLot().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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ processInspectionDetailService.saveBatch(rejects);
|
|
|
+ //保存咨询信息
|
|
|
+
|
|
|
+ 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) {
|
|
|
+ BizDayworkItemConsult consultInfo = new BizDayworkItemConsult();
|
|
|
+ consultInfo.setPictures(consult.getPictures());
|
|
|
+ consultInfo.setUserId(SecurityUtils.getLoginUser().getUserId());
|
|
|
+ consultInfo.setNickName(SecurityUtils.getLoginUser().getUser().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.setIsProcessInspection(1);
|
|
|
+ consultInfo.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ //仪器室检
|
|
|
+ @Transactional
|
|
|
+ @PostMapping("/saveInstrumentRoomInspection")
|
|
|
+ public AjaxResult saveInstrumentRoomInspection(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ //根据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());
|
|
|
+ processInspecion.setUserId(processInspecion.getLot().getUserId());
|
|
|
+ processInspecion.setNickName(processInspecion.getLot().getNickName());
|
|
|
+ processInspecion.setCarrierId(processInspecion.getLot().getCarrierId());
|
|
|
+ processInspecion.setCarrierCode(processInspecion.getLot().getCarrierCode());
|
|
|
+ processInspecion.setDayworkId(daywork.getId());
|
|
|
+ processInspecion.setProcessStepNumber(processInspecion.getLot().getProcessStepNumber());
|
|
|
+ processInspecion.setProductionPlanId(daywork.getProductionPlanId());
|
|
|
+ processInspecion.setDayworkItemId(dayworkItem.getId());
|
|
|
+ processInspecion.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
|
|
|
+ processInspecion.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
|
|
|
+ processInspecion.setProductDescription(processInspecion.getLot().getProductDescription());
|
|
|
+ processInspecion.setLotId(processInspecion.getLot().getId());
|
|
|
+ processInspecion.setLotCode(processInspecion.getLot().getLotCode());
|
|
|
+ processInspecion.setDeptId(daywork.getDeptId());
|
|
|
+ processInspecion.setProductId(processInspecion.getLot().getProductId());
|
|
|
+ processInspecion.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
|
|
|
+ processInspecion.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+ processInspecion.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+ processInspecion.setEquipmentDetailCode(processInspecion.getLot().getEquipmentDetailCode());
|
|
|
+ processInspecion.setEquipmentDetailId(processInspecion.getLot().getEquipmentDetailId());
|
|
|
+ processInspecion.setReviewerId(SecurityUtils.getLoginUser().getUserId());
|
|
|
+ processInspecion.setType("instrumentRoomInspection");
|
|
|
+ if (processInspecion.getStartTime() == null) {
|
|
|
+ processInspecion.setStartTime(new Date());
|
|
|
+ }
|
|
|
+ if (processInspecion.getStatus() != 0) {
|
|
|
+ processInspecion.setEndTime(new Date());
|
|
|
+ processInspecion.setFirstUpdaterId(processInspecion.getFirstUpdaterId() == null || processInspecion.getFirstUpdaterId().equals(0L) ? SecurityUtils.getLoginUser().getUserId() : processInspecion.getFirstUpdaterId());
|
|
|
+ }
|
|
|
+ if (!checkDayworkItem(processInspecion.getLot().getDayworkItemId())) {
|
|
|
+ return error("编辑失败,下序已经生产加工");
|
|
|
+ }
|
|
|
+
|
|
|
+ //BizCarrier carrier = bizCarrierService.query().eq("id", processInspecion.getInspectionCarrierId()).one();
|
|
|
+// List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("carrier_id", processInspecion.getInspectionCarrierId()).eq("is_changed", 0).list();
|
|
|
+// if (dayworkCarriers.stream().anyMatch(v -> !v.getDayworkId().equals(processInspecion.getDayworkId()))) {
|
|
|
+// return error("检测载具已绑定其他批次");
|
|
|
+// }
|
|
|
+
|
|
|
+ //保存
|
|
|
+ bizProcessInspecionService.saveOrUpdate(processInspecion);
|
|
|
+
|
|
|
+// if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(processInspecion.getDayworkId())) && (processInspecion.getIsInspectionCarrierChanged() == null || processInspecion.getIsInspectionCarrierChanged().equals(0))) {
|
|
|
+// // 该检测载具需要绑定到当前批次
|
|
|
+// BizDayworkCarrier newDayworkCarrier = new BizDayworkCarrier();
|
|
|
+// newDayworkCarrier.setDayworkId(processInspecion.getDayworkId());
|
|
|
+// newDayworkCarrier.setCarrierCode(processInspecion.getInspectionCarrierCode());
|
|
|
+// newDayworkCarrier.setCarrierId(processInspecion.getInspectionCarrierId());
|
|
|
+// newDayworkCarrier.setLotCode(processInspecion.getLotCode());
|
|
|
+// newDayworkCarrier.setLotId(processInspecion.getLotId());
|
|
|
+// newDayworkCarrier.setProductionPlanDetailId(processInspecion.getProductionPlanDetailId());
|
|
|
+// newDayworkCarrier.setProcessInspectionId(processInspecion.getId());
|
|
|
+// bizDayworkCarrierService.save(newDayworkCarrier);
|
|
|
+// }
|
|
|
+
|
|
|
+ //保存废品信息
|
|
|
+ List<BizProcessInspectionDetail> rejects = processInspecion.getProcessInspectionDetails();
|
|
|
+ //保存前先删除原先废品信息
|
|
|
+ BizDayworkItemReject rej = new BizDayworkItemReject();
|
|
|
+ rej.setProcessInspectionId(processInspecion.getId());
|
|
|
+ List<BizProcessInspectionDetail> processInspectionDetailList = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
|
|
|
+ processInspectionDetailService.removeBatchByIds(processInspectionDetailList);
|
|
|
+
|
|
|
+ if (rejects != null && rejects.size() > 0) {
|
|
|
+ for (BizProcessInspectionDetail reject : rejects) {
|
|
|
+ reject.setId(null);
|
|
|
+ reject.setUserId(processInspecion.getLot().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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ processInspectionDetailService.saveBatch(rejects);
|
|
|
+ //保存咨询信息
|
|
|
+
|
|
|
+ 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) {
|
|
|
+ BizDayworkItemConsult consultInfo = new BizDayworkItemConsult();
|
|
|
+ consultInfo.setPictures(consult.getPictures());
|
|
|
+ consultInfo.setUserId(SecurityUtils.getLoginUser().getUserId());
|
|
|
+ consultInfo.setNickName(SecurityUtils.getLoginUser().getUser().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.setIsProcessInspection(1);
|
|
|
+ consultInfo.setProcessAlias(processInspecion.getLot().getProcessAlias());
|
|
|
+ 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));
|
|
|
+ }
|
|
|
/**
|
|
|
* 根据箱号查询批次信息
|
|
|
*/
|
|
@@ -1260,6 +1738,17 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
return success(lot);
|
|
|
}
|
|
|
|
|
|
+ //解绑检测载具
|
|
|
+ @PostMapping("/unbindInspectionCarrier")
|
|
|
+ public AjaxResult unbindInspectionCarrier(@RequestBody BizDayworkCarrier dayworkCarrier) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ List<BizDayworkCarrier> carrierList = bizDayworkCarrierService.query().eq("carrier_code", dayworkCarrier.getCarrierCode()).list();
|
|
|
+ carrierList.forEach(item -> {
|
|
|
+ item.setIsChanged(1);
|
|
|
+ });
|
|
|
+ return success(bizDayworkCarrierService.updateBatchById(carrierList));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 根据箱号查询批次信息
|
|
|
*/
|
|
@@ -1338,6 +1827,7 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
}).collect(Collectors.toList()));
|
|
|
lot.setDeptName(item.getDeptName());
|
|
|
lot.setDayworkItemId(item.getId());
|
|
|
+ lot.setProcessStepNumber(item.getProcessStepNumber());
|
|
|
lot.setCarrierCode(dayworkCarrier.getCarrierCode());
|
|
|
lot.setCarrierId(dayworkCarrier.getCarrierId());
|
|
|
lot.setPudName(item.getProdNum() == 0 ? lot.getProductionQuantity() : item.getProdNum());
|