|
@@ -1,14 +1,11 @@
|
|
|
package cn.ezhizao.project.business.product.controller;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
-import cn.ezhizao.common.utils.DateUtils;
|
|
|
import cn.ezhizao.common.utils.poi.ExcelUtil;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Log;
|
|
|
import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
|
|
@@ -17,15 +14,15 @@ import cn.ezhizao.framework.web.domain.AjaxResult;
|
|
|
import cn.ezhizao.framework.web.page.TableDataInfo;
|
|
|
import cn.ezhizao.project.business.carrierReject.domain.BizCarrierReject;
|
|
|
import cn.ezhizao.project.business.carrierReject.service.IBizCarrierRejectService;
|
|
|
+import cn.ezhizao.project.business.outsource.domain.BizOutsourcedOrderDetail;
|
|
|
+import cn.ezhizao.project.business.outsource.domain.BizOutsourcedOrderDetailProcess;
|
|
|
+import cn.ezhizao.project.business.outsource.service.IBizOutsourcedOrderDetailService;
|
|
|
import cn.ezhizao.project.business.product.domain.*;
|
|
|
-import cn.ezhizao.project.business.product.mapper.BizDayworkCarrierMapper;
|
|
|
import cn.ezhizao.project.business.product.service.*;
|
|
|
import cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnologicalProcessDetail;
|
|
|
import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
|
|
|
import cn.ezhizao.project.system.domain.SysUser;
|
|
|
import cn.ezhizao.project.system.service.ISysUserService;
|
|
|
-import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
-import org.apache.xmlbeans.impl.soap.Detail;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -88,6 +85,8 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
private IBizProductionPlanDetailService productionPlanDetailService;
|
|
|
@Resource
|
|
|
private IBizProcessInspectionDetailService processInspectionDetailService;
|
|
|
+ @Resource
|
|
|
+ private IBizOutsourcedOrderDetailService bizOutsourcedOrderDetailService;
|
|
|
|
|
|
/**
|
|
|
* 查询序检主列表
|
|
@@ -351,7 +350,6 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
processInspecion.setEndTime(new Date());
|
|
|
|
|
|
}
|
|
|
-
|
|
|
//保存
|
|
|
bizProcessInspecionService.saveOrUpdate(processInspecion);
|
|
|
|
|
@@ -407,17 +405,28 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
return success(bizDayworkItemService.saveOrUpdate(dayworkItem) && bizDayworkItemConsultService.saveOrUpdateBatch(consults));
|
|
|
}
|
|
|
|
|
|
+ private boolean checkOutsourceDayworkItem(Long outsourceOrderDetailId) {
|
|
|
+ // 检测外协序检后是否已经周转到下一工序。
|
|
|
+ BizDayworkItem bizDayworkItem = bizDayworkItemService.query().eq("outsource_detail_id", outsourceOrderDetailId).orderByDesc("process_step_number").one();
|
|
|
+ BizDaywork bizDaywork = bizDayworkService.getById(bizDayworkItem.getDayworkId());
|
|
|
+ List<BizDayworkItem> items = bizDayworkItemService.query().eq("daywork_id", bizDayworkItem.getDayworkId()).list();
|
|
|
+ // 下序已经报工
|
|
|
+ // 下序未报工
|
|
|
+ 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 saveOutsourcedInspecionV2(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ public AjaxResult saveOutsourcedInspectionV2(@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());
|
|
|
+ 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());
|
|
|
- BizDayworkItem dayworkItem = bizDayworkItemService.getById(processInspecion.getLot().getDayworkItemId());
|
|
|
+ processInspecion.setReturnReceiptDetailId(bizReturnReceiptDetail.getId());
|
|
|
processInspecion.setUserId(user == null ? 0L : user.getUserId());
|
|
|
processInspecion.setNickName(user == null ? "" : user.getNickName());
|
|
|
processInspecion.setCarrierId(processInspecion.getLot().getCarrierId());
|
|
@@ -442,9 +451,32 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
processInspecion.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(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(carrier.getCode());
|
|
|
+ newDayworkCarrier.setCarrierId(carrier.getId());
|
|
|
+ newDayworkCarrier.setLotCode(processInspecion.getLotCode());
|
|
|
+ newDayworkCarrier.setLotId(processInspecion.getLotId());
|
|
|
+ newDayworkCarrier.setProductionPlanDetailId(processInspecion.getProductionPlanDetailId());
|
|
|
+ newDayworkCarrier.setProcessInspectionId(processInspecion.getId());
|
|
|
+ bizDayworkCarrierService.save(newDayworkCarrier);
|
|
|
+ }
|
|
|
+
|
|
|
//保存废品信息
|
|
|
List<BizProcessInspectionDetail> rejects = processInspecion.getRejects();
|
|
|
//保存前先删除原先废品信息
|
|
@@ -675,6 +707,10 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
lot.setCarrierCode(dayworkCarrier.getCarrierCode());
|
|
|
lot.setCarrierId(dayworkCarrier.getCarrierId());
|
|
|
lot.setPudName(item.getProdNum() == 0 ? lot.getProductionQuantity() : item.getProdNum());
|
|
|
+ // 获取外协工序列表
|
|
|
+ BizOutsourcedOrderDetail detail = bizOutsourcedOrderDetailService.getById(detailList.get(0).getOutsourceDetailId());
|
|
|
+ lot.setOutsourceOrderDetailId(detail != null ? detail.getId() : null);
|
|
|
+ lot.setProcessList(detail != null ? detail.getProcessNames() : "");
|
|
|
return success(lot);
|
|
|
}
|
|
|
|
|
@@ -842,4 +878,42 @@ public class BizProcessInspecionController extends BaseController {
|
|
|
public AjaxResult remove(@PathVariable List<Long> ids) {
|
|
|
return toAjax(bizProcessInspecionService.removeBatchByIds(ids));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存序检箱
|
|
|
+ */
|
|
|
+ @Log(title = "序检换箱", businessType = BusinessType.INSERT)
|
|
|
+ @PostMapping("/saveInspectionCarrier")
|
|
|
+ public AjaxResult saveInspectionCarrier(@RequestBody BizProcessInspecion bizProcessInspecion) {
|
|
|
+ List<BizDayworkCarrier> bizDayworkCarriers = bizDayworkCarrierService.query().eq("process_inspection_id", bizProcessInspecion.getId()).eq("is_changed", 0).list();
|
|
|
+ BizProcessInspecion current = bizProcessInspecionService.getById(bizProcessInspecion.getId());
|
|
|
+ List<BizDayworkCarrier> newCarriers = bizProcessInspecion.getDayworkCarriers();
|
|
|
+ if (bizProcessInspecion.getStatus().equals(0) && newCarriers.isEmpty()) {
|
|
|
+ return error("该序检未完成,不能解绑载具");
|
|
|
+ }
|
|
|
+ bizDayworkCarriers.forEach(l -> l.setIsChanged(1));
|
|
|
+ bizDayworkCarrierService.updateBatchById(bizDayworkCarriers);
|
|
|
+ if (newCarriers.isEmpty()) {
|
|
|
+ current.setIsInspectionCarrierChanged(1);
|
|
|
+ current.setInspectionCarrierChangedTime(new Date());
|
|
|
+ bizProcessInspecionService.updateById(current);
|
|
|
+ } else {
|
|
|
+ current.setIsInspectionCarrierChanged(0);
|
|
|
+ current.setInspectionCarrierChangedTime(null);
|
|
|
+ current.setInspectionCarrierId(newCarriers.get(0).getCarrierId());
|
|
|
+ current.setInspectionCarrierCode(newCarriers.get(0).getCarrierCode());
|
|
|
+ bizProcessInspecionService.updateById(current);
|
|
|
+ }
|
|
|
+ newCarriers.forEach(l -> {
|
|
|
+ l.setId(null);
|
|
|
+ l.setIsChanged(0);
|
|
|
+ l.setProcessInspectionId(bizProcessInspecion.getId());
|
|
|
+ l.setDayworkId(bizProcessInspecion.getDayworkId());
|
|
|
+ l.setProductionPlanId(bizProcessInspecion.getProductionPlanId());
|
|
|
+ l.setLotId(bizProcessInspecion.getLotId());
|
|
|
+ });
|
|
|
+ bizDayworkCarrierService.saveOrUpdateBatch(newCarriers);
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
}
|