|
@@ -17,7 +17,9 @@ import cn.ezhizao.project.business.service.*;
|
|
|
import cn.ezhizao.project.system.service.ISysDeptService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import lombok.Data;
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
+import org.springframework.cloud.client.loadbalancer.RequestData;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
@@ -87,6 +89,15 @@ public class BizTechnologicalAmendController extends BaseController {
|
|
|
@Resource
|
|
|
private IBizDayworkItemService bizDayworkItemService;
|
|
|
|
|
|
+ // 静态内部类 RequestData
|
|
|
+ @Data
|
|
|
+ public static class RequestData {
|
|
|
+
|
|
|
+ private List<BizLot> lotList;
|
|
|
+ private List<BizTechnologicalProcessDetail> processList;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询修改后工艺列表
|
|
|
*/
|
|
@@ -144,30 +155,38 @@ public class BizTechnologicalAmendController extends BaseController {
|
|
|
//查询报工信息
|
|
|
BizDaywork daywork = new BizDaywork();
|
|
|
daywork.setLotId(lot.getId());
|
|
|
- daywork = bizDayworkService.getList(daywork).get(0);
|
|
|
- lot.setDaywork(daywork);
|
|
|
- //根据报工id和计划单id查询 furnaceNoInfo
|
|
|
- BizFurnaceNoInfo furnaceNoInfo = new BizFurnaceNoInfo();
|
|
|
- furnaceNoInfo.setProductionPlanDetailId(lot.getProductionPlanDetailId());
|
|
|
- furnaceNoInfo.setDayworkId(daywork.getId());
|
|
|
-
|
|
|
- //查询箱号
|
|
|
- BizDayworkCarrier dayworkCarrier = new BizDayworkCarrier();
|
|
|
- dayworkCarrier.setDayworkId(daywork.getId());
|
|
|
- dayworkCarrier.setIsChanged(0);
|
|
|
- List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.getList(dayworkCarrier);
|
|
|
- StringBuffer carrierName = new StringBuffer();
|
|
|
- dayworkCarriers.forEach(item -> {
|
|
|
- carrierName.append(item.getCarrierCode()).append(", ");
|
|
|
- });
|
|
|
- // 删除末尾多余的逗号和空格
|
|
|
- if (carrierName.length() > 0) {
|
|
|
- carrierName.delete(carrierName.length() - 2, carrierName.length());
|
|
|
+ List<BizDaywork> dayworks= bizDayworkService.getList(daywork);
|
|
|
+ if(dayworks.size()>0){
|
|
|
+ daywork = bizDayworkService.getList(daywork).get(0);
|
|
|
+ lot.setDaywork(daywork);
|
|
|
+ //根据报工id和计划单id查询 furnaceNoInfo
|
|
|
+ BizFurnaceNoInfo furnaceNoInfo = new BizFurnaceNoInfo();
|
|
|
+ furnaceNoInfo.setProductionPlanDetailId(lot.getProductionPlanDetailId());
|
|
|
+ furnaceNoInfo.setDayworkId(daywork.getId());
|
|
|
+
|
|
|
+ //查询箱号
|
|
|
+ BizDayworkCarrier dayworkCarrier = new BizDayworkCarrier();
|
|
|
+ dayworkCarrier.setDayworkId(daywork.getId());
|
|
|
+ dayworkCarrier.setIsChanged(0);
|
|
|
+ List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.getList(dayworkCarrier);
|
|
|
+ StringBuffer carrierName = new StringBuffer();
|
|
|
+ dayworkCarriers.forEach(item -> {
|
|
|
+ carrierName.append(item.getCarrierCode()).append(", ");
|
|
|
+ });
|
|
|
+ // 删除末尾多余的逗号和空格
|
|
|
+ if (carrierName.length() > 0) {
|
|
|
+ carrierName.delete(carrierName.length() - 2, carrierName.length());
|
|
|
+ }
|
|
|
+ lot.setCarrierName(carrierName.toString());
|
|
|
+ //设置furnaceNoInfo
|
|
|
+ lot.setFurnaceNoInfo(bizFurnaceNoInfoService.getList(furnaceNoInfo).size() > 0 ? bizFurnaceNoInfoService.getList(furnaceNoInfo).get(0) : new BizFurnaceNoInfo());
|
|
|
+ lot.getProductionPlanDetail().setRequisitionDepartmentName(sysDeptService.selectDeptById(daywork.getDeptId()).getDeptName());
|
|
|
+
|
|
|
+ }else{
|
|
|
+ lot.setFurnaceNoInfo(new BizFurnaceNoInfo());
|
|
|
+ lot.getProductionPlanDetail().setRequisitionDepartmentName("");
|
|
|
}
|
|
|
- lot.setCarrierName(carrierName.toString());
|
|
|
- //设置furnaceNoInfo
|
|
|
- lot.setFurnaceNoInfo(bizFurnaceNoInfoService.getList(furnaceNoInfo).size() > 0 ? bizFurnaceNoInfoService.getList(furnaceNoInfo).get(0) : new BizFurnaceNoInfo());
|
|
|
- lot.getProductionPlanDetail().setRequisitionDepartmentName(sysDeptService.selectDeptById(daywork.getDeptId()).getDeptName());
|
|
|
+
|
|
|
//查询工序信息
|
|
|
lot = selectProcess(lot);
|
|
|
|
|
@@ -243,62 +262,64 @@ public class BizTechnologicalAmendController extends BaseController {
|
|
|
private List<BizTechnologicalProcessDetail> selectDayworkItem(List<BizTechnologicalProcessDetail> processDetailList, BizLot lot) {
|
|
|
//查询报工信息
|
|
|
BizDayworkItem item = new BizDayworkItem();
|
|
|
- item.setDayworkId(lot.getDaywork().getId());
|
|
|
- List<BizDayworkItem> dayworkItems = bizDayworkItemService.selectList(item);
|
|
|
-
|
|
|
- for (BizTechnologicalProcessDetail t : processDetailList) {
|
|
|
- //给备料赋值,备料没有废品,默认完成
|
|
|
- if (processDetailList.get(0).getProcessId().equals(t.getProcessId())) {
|
|
|
- t.setInvestNum(lot.getProductionQuantity());
|
|
|
- t.setAbandonNum(0);
|
|
|
- t.setQualifiedNum(lot.getProductionQuantity());
|
|
|
- t.setStatus("2");
|
|
|
- }
|
|
|
- for (BizDayworkItem d : dayworkItems) {
|
|
|
-
|
|
|
- //如果是单批单改只查询FormDayworkItemId为0的数据
|
|
|
- if (lot.getIsAmend() == 1 && d.getFormDayworkItemId() == 0) {
|
|
|
- continue;
|
|
|
+ if(lot.getDaywork()!=null){
|
|
|
+ item.setDayworkId(lot.getDaywork().getId());
|
|
|
+ List<BizDayworkItem> dayworkItems = bizDayworkItemService.selectList(item);
|
|
|
+
|
|
|
+ for (BizTechnologicalProcessDetail t : processDetailList) {
|
|
|
+ //给备料赋值,备料没有废品,默认完成
|
|
|
+ if (processDetailList.get(0).getProcessId().equals(t.getProcessId())) {
|
|
|
+ t.setInvestNum(lot.getProductionQuantity());
|
|
|
+ t.setAbandonNum(0);
|
|
|
+ t.setQualifiedNum(lot.getProductionQuantity());
|
|
|
+ t.setStatus("2");
|
|
|
}
|
|
|
+ for (BizDayworkItem d : dayworkItems) {
|
|
|
|
|
|
- //根据工序判断,查询每道工序的报工信息
|
|
|
- if (t.getProcessId().equals(d.getProcessId())) {
|
|
|
- //查询状态为完成货工序已完成的状态,计算合格量,废品,投入量
|
|
|
- if (d.getStatus().equals("2") || d.getStatus().equals("3")) {
|
|
|
- if (d.getRejectNum() != null) {
|
|
|
- t.setAbandonNum(t.getAbandonNum() == null ? d.getRejectNum() : t.getAbandonNum() + d.getRejectNum());
|
|
|
- } else {
|
|
|
+ //如果是单批单改只查询FormDayworkItemId为0的数据
|
|
|
+ if (lot.getIsAmend() == 1 && d.getFormDayworkItemId() == 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据工序判断,查询每道工序的报工信息
|
|
|
+ if (t.getProcessId().equals(d.getProcessId())) {
|
|
|
+ //查询状态为完成货工序已完成的状态,计算合格量,废品,投入量
|
|
|
+ if (d.getStatus().equals("2") || d.getStatus().equals("3")) {
|
|
|
+ if (d.getRejectNum() != null) {
|
|
|
+ t.setAbandonNum(t.getAbandonNum() == null ? d.getRejectNum() : t.getAbandonNum() + d.getRejectNum());
|
|
|
+ } else {
|
|
|
+ t.setAbandonNum(0);
|
|
|
+ }
|
|
|
+ t.setQualifiedNum(t.getQualifiedNum() == null ? d.getQualifiedNum() : t.getQualifiedNum() + d.getQualifiedNum());
|
|
|
+ t.setInvestNum(d.getProdNum());
|
|
|
+ }
|
|
|
+ //未开始时合格量默,废品默认为0
|
|
|
+ if (d.getStatus().equals("0")) {
|
|
|
t.setAbandonNum(0);
|
|
|
+ t.setQualifiedNum(0);
|
|
|
+ t.setInvestNum(d.getProdNum());
|
|
|
+ //设置状态为未开始
|
|
|
+ t.setStatus("0");
|
|
|
+ } else if (d.getStatus().equals("1") || d.getStatus().equals("2")) {
|
|
|
+ //设置状态为进行中
|
|
|
+ t.setInvestNum(d.getProdNum());
|
|
|
+ t.setStatus("1");
|
|
|
+ } else {
|
|
|
+ //设置状态为已完成
|
|
|
+ t.setStatus("2");
|
|
|
}
|
|
|
- t.setQualifiedNum(t.getQualifiedNum() == null ? d.getQualifiedNum() : t.getQualifiedNum() + d.getQualifiedNum());
|
|
|
- t.setInvestNum(d.getProdNum());
|
|
|
- }
|
|
|
- //未开始时合格量默,废品默认为0
|
|
|
- if (d.getStatus().equals("0")) {
|
|
|
- t.setAbandonNum(0);
|
|
|
- t.setQualifiedNum(0);
|
|
|
- t.setInvestNum(d.getProdNum());
|
|
|
- //设置状态为未开始
|
|
|
- t.setStatus("0");
|
|
|
- } else if (d.getStatus().equals("1") || d.getStatus().equals("2")) {
|
|
|
- //设置状态为进行中
|
|
|
- t.setInvestNum(d.getProdNum());
|
|
|
- t.setStatus("1");
|
|
|
- } else {
|
|
|
- //设置状态为已完成
|
|
|
- t.setStatus("2");
|
|
|
- }
|
|
|
- //设置当前批次状态,当第一道序(不包括备料)状态为未开始时批次状态为未开始
|
|
|
- if (processDetailList.get(1).getProcessId().equals(t.getProcessId()) && d.getStatus().equals("0")) {
|
|
|
- lot.getDaywork().setStatus(0);
|
|
|
- } else if (processDetailList.get(processDetailList.size() - 1).getProcessId().equals(d.getProcessId())) {
|
|
|
- //最后一道工序如果状态为不是"未开始,进行中,已完成"当前批次已完成
|
|
|
- if (!d.getStatus().equals("1") && !d.getStatus().equals("2") && !d.getStatus().equals("0")) {
|
|
|
- lot.getDaywork().setStatus(2);
|
|
|
+ //设置当前批次状态,当第一道序(不包括备料)状态为未开始时批次状态为未开始
|
|
|
+ if (processDetailList.get(1).getProcessId().equals(t.getProcessId()) && d.getStatus().equals("0")) {
|
|
|
+ lot.getDaywork().setStatus(0);
|
|
|
+ } else if (processDetailList.get(processDetailList.size() - 1).getProcessId().equals(d.getProcessId())) {
|
|
|
+ //最后一道工序如果状态为不是"未开始,进行中,已完成"当前批次已完成
|
|
|
+ if (!d.getStatus().equals("1") && !d.getStatus().equals("2") && !d.getStatus().equals("0")) {
|
|
|
+ lot.getDaywork().setStatus(2);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //当前批次进行中
|
|
|
+ lot.getDaywork().setStatus(1);
|
|
|
}
|
|
|
- } else {
|
|
|
- //当前批次进行中
|
|
|
- lot.getDaywork().setStatus(1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -319,10 +340,74 @@ public class BizTechnologicalAmendController extends BaseController {
|
|
|
util.exportExcel(response, list, "修改后工艺数据");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Log(title = "多批单改", businessType = BusinessType.INSERT)
|
|
|
+ @PostMapping("/addMultiAmend")
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult addMultiAmend(@RequestBody RequestData requestData) {
|
|
|
+ List<BizLot> lotList = requestData.getLotList();
|
|
|
+ List<BizLot> newLotList=new ArrayList<>();
|
|
|
+ List<BizTechnologicalProcessDetail> processDetailList = requestData.getProcessList();
|
|
|
+ for (BizLot item : lotList) {
|
|
|
+ BizLot lot = new BizLot();
|
|
|
+ lot.setLotCode(item.getLotCode());
|
|
|
+ lot = bizLotService.getList(lot).get(0);
|
|
|
+
|
|
|
+ BizTechnologicalProcess technologicalProcess = new BizTechnologicalProcess();
|
|
|
+ //新增修改后工艺信息
|
|
|
+ BizTechnologicalAmend amend = new BizTechnologicalAmend();
|
|
|
+ amend.setTenantId(lot.getTenantId());
|
|
|
+ amend.setLotId(lot.getId());
|
|
|
+ amend.setLotCode(lot.getLotCode());
|
|
|
+ amend.setProductionPlanId(lot.getProductionPlanId());
|
|
|
+ amend.setProductionPlanDetailId(lot.getProductionPlanDetailId());
|
|
|
+ amend.setProductId(lot.getProductId());
|
|
|
+ amend.setAmendmentVersions(1);
|
|
|
+ amend.setTechnologicalProcessId(lot.getTechnologicalProcessId());
|
|
|
+ amend.setTechnologyVersion(lot.getTechnologyVersion());
|
|
|
+ amend.setProductDrawingNumber(technologicalProcess.getProductDrawingNumber());
|
|
|
+ amend.setProductShaftCategory(technologicalProcess.getProductShaftCategory());
|
|
|
+ amend.setProductSpecification(technologicalProcess.getProductSpecification());
|
|
|
+ amend.setProductShaftCategoryName(technologicalProcess.getProductShaftCategoryName());
|
|
|
+ amend.setProductCode(technologicalProcess.getProductCode());
|
|
|
+ amend.setProductDescription(technologicalProcess.getProductDescription());
|
|
|
+ bizTechnologicalAmendService.save(amend);
|
|
|
+
|
|
|
+ List<BizTechnologicalAmendDetail> amendDetailList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (BizTechnologicalProcessDetail detail : processDetailList) {
|
|
|
+ BizTechnologicalAmendDetail amendDetail = new BizTechnologicalAmendDetail();
|
|
|
+ amendDetail.setTechnologicalAmendId(amend.getId());
|
|
|
+ amendDetail.setTenantId(amend.getTenantId());
|
|
|
+ amendDetail.setTechnologyVersion(amend.getTechnologyVersion());
|
|
|
+ amendDetail.setProductId(amend.getProductId());
|
|
|
+ amendDetail.setProductCode(amend.getProductCode());
|
|
|
+ amendDetail.setProcessStepNumber(detail.getProcessStepNumber());
|
|
|
+ amendDetail.setProcessId(detail.getProcessId());
|
|
|
+ amendDetail.setProcessKey(detail.getProcessKey());
|
|
|
+ amendDetail.setProcessCode(detail.getProcessCode());
|
|
|
+ amendDetail.setProcessAlias(detail.getProcessAlias());
|
|
|
+ amendDetail.setProductShaftCategory(amend.getProductShaftCategory());
|
|
|
+ amendDetail.setProductShaftCategoryName(amend.getProductShaftCategoryName());
|
|
|
+ amendDetail.setProductDescription(amend.getProductDescription());
|
|
|
+ amendDetailList.add(amendDetail);
|
|
|
+ }
|
|
|
+ updateDayworkItem(item.getId(), amend.getId());
|
|
|
+
|
|
|
+ //修改批次工艺信息
|
|
|
+ lot.setTechnologicalProcessId(amend.getId());
|
|
|
+ lot.setIsAmend(1);
|
|
|
+ bizTechnologicalAmendDetailService.saveBatch(amendDetailList) ;
|
|
|
+ newLotList.add(lot);
|
|
|
+// bizLotService.updateById(lot);
|
|
|
+ }
|
|
|
+ return success(bizLotService.saveOrUpdateBatch(newLotList));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 新增修改后工艺
|
|
|
*/
|
|
|
- @Log(title = "修改后工艺", businessType = BusinessType.INSERT)
|
|
|
+ @Log(title = "单批单改", businessType = BusinessType.INSERT)
|
|
|
@PostMapping("/addAmend/{lotId}")
|
|
|
@Transactional
|
|
|
public AjaxResult addAmend(@PathVariable("lotId") Long lotId, @RequestBody List<BizTechnologicalProcessDetail> detailList) {
|
|
@@ -348,10 +433,10 @@ public class BizTechnologicalAmendController extends BaseController {
|
|
|
//查询原始工艺信息
|
|
|
technologicalProcess = bizTechnologicalProcessService.getById(technologicalAmend.getTechnologicalProcessId());
|
|
|
} else if (lot.getIsWasteRecycling() == 1) { //是否废品回用
|
|
|
-
|
|
|
- } else {
|
|
|
BizTechnologicalWasteRecycling wasteRecycling = bizTechnologicalWasteRecyclingService.getById(lot.getTechnologicalProcessId());
|
|
|
technologicalProcess = bizTechnologicalProcessService.getById(wasteRecycling.getTechnologicalProcessId());
|
|
|
+ } else {
|
|
|
+ technologicalProcess = bizTechnologicalProcessService.getById(lot.getTechnologicalProcessId());
|
|
|
}
|
|
|
|
|
|
//新增修改后工艺信息
|
|
@@ -392,27 +477,6 @@ public class BizTechnologicalAmendController extends BaseController {
|
|
|
amendDetail.setProductDescription(amend.getProductDescription());
|
|
|
amendDetailList.add(amendDetail);
|
|
|
}
|
|
|
-
|
|
|
-// 使用新方式,暂时注释
|
|
|
-// int num = 1100;//新增工序排序值
|
|
|
-// //新增工序信息
|
|
|
-// for (BizProcess process : processList) {
|
|
|
-// BizTechnologicalAmendDetail amendDetail = new BizTechnologicalAmendDetail();
|
|
|
-// amendDetail.setTechnologicalAmendId(amend.getId());
|
|
|
-// amendDetail.setTenantId(amend.getTenantId());
|
|
|
-// amendDetail.setTechnologyVersion(amend.getTechnologyVersion());
|
|
|
-// amendDetail.setProductId(amend.getProductId());
|
|
|
-// amendDetail.setProductCode(amend.getProductCode());
|
|
|
-// amendDetail.setProcessStepNumber(Integer.toString(num));
|
|
|
-// amendDetail.setProcessId(process.getId());
|
|
|
-// amendDetail.setProcessKey(process.getProcessKey());
|
|
|
-// amendDetail.setProcessCode(process.getProcessCode());
|
|
|
-// amendDetail.setProcessAlias(process.getProcessAlias());
|
|
|
-// amendDetail.setProductShaftCategory(amend.getProductShaftCategory());
|
|
|
-// amendDetail.setProductShaftCategoryName(amend.getProductShaftCategoryName());
|
|
|
-// amendDetail.setProductDescription(amend.getProductDescription());
|
|
|
-// amendDetailList.add(amendDetail);
|
|
|
-// }
|
|
|
updateDayworkItem(lotId, amend.getId());
|
|
|
|
|
|
//修改批次工艺信息
|