|
@@ -1,11 +1,13 @@
|
|
|
package cn.ezhizao.project.business.product.controller;
|
|
|
|
|
|
+import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import cn.ezhizao.common.utils.SecurityUtils;
|
|
|
import cn.ezhizao.common.utils.bean.BeanUtils;
|
|
|
import cn.ezhizao.common.utils.poi.ExcelUtil;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Log;
|
|
@@ -165,12 +167,41 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
* @throws NoSuchFieldException
|
|
|
* @throws IllegalAccessException
|
|
|
*/
|
|
|
+ //@PostMapping("/selectInspecion")
|
|
|
+// public AjaxResult selectInspecion(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+// List<BizDayworkItemConsult> itemConsults = bizDayworkItemConsultService.query().eq("process_inspection_id", processInspecion.getId()).eq("is_process_inspection", 1).list();
|
|
|
+// List<BizDayworkItemReject> itemRejects = bizDayworkItemRejectService.query().eq("process_inspection_id", processInspecion.getId()).list();
|
|
|
+// processInspecion.setDayworkItemConsults(itemConsults);
|
|
|
+// processInspecion.setDayworkItemRejects(itemRejects);
|
|
|
+//
|
|
|
+// BizDayworkItem dayworkItem = bizDayworkItemService.selById(processInspecion.getDayworkItemId());
|
|
|
+//
|
|
|
+// BizLot lot = new BizLot();
|
|
|
+// lot.setId(processInspecion.getLotId());
|
|
|
+// lot = bizLotService.getAllList(lot).get(0);
|
|
|
+//
|
|
|
+// if (lot.getIsAmend() == 1 || lot.getIsWasteRecycling() == 1) {
|
|
|
+// BizLotTechnologicalProcessDetail process = bizLotTechnologicalProcessDetailService.getById(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
+// lot.setProcessAlias(process.getProcessAlias());
|
|
|
+// } else {
|
|
|
+// BizTechnologicalProcessDetail process = bizTechnologicalProcessDetailService.getById(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
+// lot.setProcessAlias(process.getProcessAlias());
|
|
|
+// }
|
|
|
+//
|
|
|
+// lot.setAllCarrierName(dayworkItem.getCarrierName());
|
|
|
+// lot.setDayworkItemId(dayworkItem.getId());
|
|
|
+// lot.setCarrierCode(dayworkItem.getCarrierCode());
|
|
|
+// lot.setCarrierId(dayworkItem.getCarrierId());
|
|
|
+// lot.setPudName(dayworkItem.getProdNum() == 0 ? lot.getProductionQuantity() : dayworkItem.getProdNum());
|
|
|
+// processInspecion.setLot(lot);
|
|
|
+// return success(processInspecion);
|
|
|
+// }
|
|
|
@PostMapping("/selectInspecion")
|
|
|
public AjaxResult selectInspecion(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
List<BizDayworkItemConsult> itemConsults = bizDayworkItemConsultService.query().eq("process_inspection_id", processInspecion.getId()).eq("is_process_inspection", 1).list();
|
|
|
- List<BizDayworkItemReject> itemRejects = bizDayworkItemRejectService.query().eq("process_inspection_id", processInspecion.getId()).list();
|
|
|
+ List<BizProcessInspectionDetail> itemRejects = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
|
|
|
processInspecion.setDayworkItemConsults(itemConsults);
|
|
|
- processInspecion.setDayworkItemRejects(itemRejects);
|
|
|
+ processInspecion.setProcessInspectionDetails(itemRejects);
|
|
|
|
|
|
BizDayworkItem dayworkItem = bizDayworkItemService.selById(processInspecion.getDayworkItemId());
|
|
|
|
|
@@ -213,11 +244,21 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
if (lot.getIsAmend() == 1 || lot.getIsWasteRecycling() == 1) {
|
|
|
BizLotTechnologicalProcessDetail process = bizLotTechnologicalProcessDetailService.getById(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
lot.setProcessAlias(process.getProcessAlias());
|
|
|
+ lot.setProcessCode(process.getProcessCode());
|
|
|
+ lot.setProcessId(process.getProcessId());
|
|
|
} else {
|
|
|
BizTechnologicalProcessDetail process = bizTechnologicalProcessDetailService.getById(dayworkItem.getTechnologicalProcessDetailId());
|
|
|
lot.setProcessAlias(process.getProcessAlias());
|
|
|
+ lot.setProcessCode(process.getProcessCode());
|
|
|
+ lot.setProcessId(process.getProcessId());
|
|
|
}
|
|
|
-
|
|
|
+ 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.setDeptName(dayworkItem.getDeptName());
|
|
|
lot.setAllCarrierName(dayworkItem.getCarrierName());
|
|
|
lot.setDayworkItemId(dayworkItem.getId());
|
|
|
lot.setCarrierCode(dayworkItem.getCarrierCode());
|
|
@@ -542,6 +583,23 @@ 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);
|
|
|
}
|
|
|
+ private boolean checkDayworkItem(Long dayworkItemId) {
|
|
|
+ BizDayworkItem bizDayworkItem = bizDayworkItemService.query().eq("id", dayworkItemId).one();BizDaywork bizDaywork = bizDayworkService.getById(bizDayworkItem.getDayworkId());
|
|
|
+ List<BizDayworkItem> items = bizDayworkItemService.query().eq("daywork_id", bizDayworkItem.getDayworkId()).list();
|
|
|
+ boolean allStepsLessThanOrEqual = items.stream()
|
|
|
+ .noneMatch(v -> {
|
|
|
+ try {
|
|
|
+ int itemStepNumber = Integer.parseInt(v.getProcessStepNumber());
|
|
|
+ int bizStepNumber = Integer.parseInt(bizDayworkItem.getProcessStepNumber());
|
|
|
+ return itemStepNumber > bizStepNumber;
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ // 如果转换失败,可以记录日志或处理异常
|
|
|
+ e.printStackTrace();
|
|
|
+ return false; // 或者根据需要返回其他值
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return allStepsLessThanOrEqual;
|
|
|
+ }
|
|
|
|
|
|
@Transactional
|
|
|
// @PostMapping("/saveOutsourcedInspecion")
|
|
@@ -884,6 +942,139 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
dayworkItem.setIsProcessInspection(1);
|
|
|
return success(bizDayworkItemService.saveOrUpdate(dayworkItem));
|
|
|
}
|
|
|
+ @Transactional
|
|
|
+ @PostMapping("/saveOnSiteInspection")
|
|
|
+ public AjaxResult saveOnSiteInspection(@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.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("patrolInspection");
|
|
|
+ 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));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
// /**
|
|
@@ -1085,6 +1276,8 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
return error("该批次未开始加工");
|
|
|
}
|
|
|
BizDayworkItem item = itemList.get(0);
|
|
|
+ List<BizDayworkItem> latestList = itemList.stream().filter(v -> v.getProcessStepNumber().equals(item.getProcessStepNumber())).collect(Collectors.toList());
|
|
|
+
|
|
|
BizProductionPlanDetail productionPlanDetail = productionPlanDetailService.getById(item.getProductionPlanDetailId());
|
|
|
BizProduct product = productService.getById(productionPlanDetail.getProductId());
|
|
|
SysUser user = sysUserService.selectUserById(product.getTechnicianId());
|
|
@@ -1106,11 +1299,42 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
if (lot.getIsAmend() == 1 || lot.getIsWasteRecycling() == 1) {
|
|
|
BizLotTechnologicalProcessDetail process = bizLotTechnologicalProcessDetailService.getById(item.getTechnologicalProcessDetailId());
|
|
|
lot.setProcessAlias(process.getProcessAlias());
|
|
|
+ lot.setProcessCode(process.getProcessCode());
|
|
|
+ lot.setProcessId(process.getProcessId());
|
|
|
} else {
|
|
|
BizTechnologicalProcessDetail process = bizTechnologicalProcessDetailService.getById(item.getTechnologicalProcessDetailId());
|
|
|
lot.setProcessAlias(process.getProcessAlias());
|
|
|
+ lot.setProcessCode(process.getProcessCode());
|
|
|
+ lot.setProcessId(process.getProcessId());
|
|
|
}
|
|
|
lot.setAllCarrierName(item.getCarrierName());
|
|
|
+ if(latestList.stream().map(BizDayworkItem::getStatus).collect(Collectors.toList()).contains("0")){
|
|
|
+ return error("该批次未开始加工");
|
|
|
+ }
|
|
|
+ if(latestList.stream().map(BizDayworkItem::getStatus).collect(Collectors.toList()).contains("3")) {
|
|
|
+ return error("当前批次,工序已完成");
|
|
|
+ }
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ Date date = new Date();
|
|
|
+ String startTime = simpleDateFormat.format(date) + " 00:00:00";
|
|
|
+ String endTime = simpleDateFormat.format(date) + " 23:59:59";
|
|
|
+ List<BizDayworkItem> collect = latestList.stream().filter(v -> v.getStatus().equals("1") || v.getStatus().equals("2")).collect(Collectors.toList());
|
|
|
+ lot.setDayworkItemList(collect.stream().filter(info -> {
|
|
|
+ try {
|
|
|
+ if (info.getEndTime() == null) {
|
|
|
+ // 如果为 null,可以选择返回 false(排除该项),或者根据需要处理
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ // 确保 info 的状态为 "1" 或 "2",且结束时间不晚于当天结束时间
|
|
|
+ // 并且结束时间不早于当天开始时间
|
|
|
+ return info.getEndTime().before(sdf.parse(endTime))
|
|
|
+ && info.getEndTime().after(sdf.parse(startTime));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }).collect(Collectors.toList()));
|
|
|
+ lot.setDeptName(item.getDeptName());
|
|
|
lot.setDayworkItemId(item.getId());
|
|
|
lot.setCarrierCode(dayworkCarrier.getCarrierCode());
|
|
|
lot.setCarrierId(dayworkCarrier.getCarrierId());
|
|
@@ -1234,7 +1458,10 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
List<BizDayworkCarrier> carriers = bizDayworkCarrierService.query().in("process_inspection_id", ids).list();
|
|
|
List<BizDayworkItemReject> rejects = bizDayworkItemRejectService.query().in("process_inspection_id", ids).list();
|
|
|
List<BizDayworkItemConsult> consults = bizDayworkItemConsultService.query().in("process_inspection_id", ids).list();
|
|
|
-
|
|
|
+ if(consults.size()>0){
|
|
|
+ List<BizDayworkItemConsultPicture> consultPictures = bizDayworkItemConsultPictureService.query().in("daywork_item_consult_id", consults.stream().map(BizDayworkItemConsult::getId).collect(Collectors.toList())).list();
|
|
|
+ bizDayworkItemConsultPictureService.removeBatchByIds(consultPictures);
|
|
|
+ }
|
|
|
processInspectionDetailService.removeBatchByIds(bizProcessInspectionDetails);
|
|
|
bizDayworkItemRejectService.removeBatchByIds(rejects);
|
|
|
bizDayworkCarrierService.removeBatchByIds(carriers);
|