Merge remote-tracking branch 'origin/master'

liweidong
zangzhipeng 4 days ago
commit a38309468e
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
  2. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java
  3. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java
  4. 185
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessProjectController.java
  5. 84
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java
  6. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  7. 324
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/WorkPlanItemController.java
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java
  9. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml
  10. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java
  11. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  12. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java
  13. 8
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  14. 7
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGraphiteMoldOutServiceImpl.java

@ -60,7 +60,7 @@ public class PlateGoodsRecord extends BaseEntity {
* 上报银钾剩余量
*/
@TableField(value = "SILVER_POTASSIUM_RESIDUE")
private Double silverPotassiumResidue;
private BigDecimal silverPotassiumResidue;
/**
* 银钾系数

@ -131,4 +131,7 @@ public class WorkPlanItem extends BaseEntity {
@Schema(description = "来源工序号")
private String sourceOrders;
@Schema(description = "来源ID")
private Long sourceId;
}

@ -25,11 +25,11 @@ public class WorkPlanItemVO extends WorkPlanItem {
/**
* 表层
*/
private static Integer SURFACE_COAT = 1;
public static Integer SURFACE_COAT = 1;
/**
* 底镀层
*/
private static Integer UNDER_COAT = 2;
public static Integer UNDER_COAT = 2;
private static Map<Integer, String> coatTypeMap = new HashMap<>(3);
@ -42,12 +42,12 @@ public class WorkPlanItemVO extends WorkPlanItem {
/**
* 实测值
*/
private static Integer ACTUAL_SOURCE = 1;
public static Integer ACTUAL_SOURCE = 1;
/**
* 共享值
*/
private static Integer SHARE_SOURCE = 2;
public static Integer SHARE_SOURCE = 2;
private static Map<Integer, String> sourceTypeMap = new HashMap<>(3);

@ -50,8 +50,10 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.Map;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
/**
@ -66,96 +68,97 @@ import jakarta.servlet.http.HttpServletResponse;
@Tag(name = "工序项目信息表", description = "工序项目信息表接口")
public class DsProcessProjectController extends BladeController {
private final IDsProcessProjectService dsProcessProjectService;
/**
* 工序项目信息表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入dsProcessProject")
public R<DsProcessProjectVO> detail(DsProcessProjectEntity dsProcessProject) {
DsProcessProjectEntity detail = dsProcessProjectService.getOne(Condition.getQueryWrapper(dsProcessProject));
return R.data(DsProcessProjectWrapper.build().entityVO(detail));
}
/**
* 工序项目信息表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入dsProcessProject")
public R<IPage<DsProcessProjectVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> dsProcessProject, Query query) {
IPage<DsProcessProjectEntity> pages = dsProcessProjectService.page(Condition.getPage(query), Condition.getQueryWrapper(dsProcessProject, DsProcessProjectEntity.class));
return R.data(DsProcessProjectWrapper.build().pageVO(pages));
}
/**
* 工序项目信息表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入dsProcessProject")
public R<IPage<DsProcessProjectVO>> page(DsProcessProjectVO dsProcessProject, Query query) {
IPage<DsProcessProjectVO> pages = dsProcessProjectService.selectDsProcessProjectPage(Condition.getPage(query), dsProcessProject);
return R.data(pages);
}
/**
* 工序项目信息表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入dsProcessProject")
public R save(@Valid @RequestBody DsProcessProjectEntity dsProcessProject) {
return R.status(dsProcessProjectService.save(dsProcessProject));
}
/**
* 工序项目信息表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入dsProcessProject")
public R update(@Valid @RequestBody DsProcessProjectEntity dsProcessProject) {
return R.status(dsProcessProjectService.updateById(dsProcessProject));
}
/**
* 工序项目信息表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入dsProcessProject")
public R submit(@Valid @RequestBody DsProcessProjectEntity dsProcessProject) {
return R.status(dsProcessProjectService.saveOrUpdate(dsProcessProject));
}
/**
* 工序项目信息表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(dsProcessProjectService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-dsProcessProject")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入dsProcessProject")
public void exportDsProcessProject(@Parameter(hidden = true) @RequestParam Map<String, Object> dsProcessProject, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<DsProcessProjectEntity> queryWrapper = Condition.getQueryWrapper(dsProcessProject, DsProcessProjectEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(DsProcessProject::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(DsProcessProjectEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<DsProcessProjectExcel> list = dsProcessProjectService.exportDsProcessProject(queryWrapper);
ExcelUtil.export(response, "工序项目信息表数据" + DateUtil.time(), "工序项目信息表数据表", list, DsProcessProjectExcel.class);
}
private final IDsProcessProjectService dsProcessProjectService;
/**
* 工序项目信息表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入dsProcessProject")
public R<DsProcessProjectVO> detail(DsProcessProjectEntity dsProcessProject) {
DsProcessProjectEntity detail = dsProcessProjectService.getOne(Condition.getQueryWrapper(dsProcessProject));
return R.data(DsProcessProjectWrapper.build().entityVO(detail));
}
/**
* 工序项目信息表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入dsProcessProject")
public R<IPage<DsProcessProjectVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> dsProcessProject, Query query) {
IPage<DsProcessProjectEntity> pages = dsProcessProjectService.page(Condition.getPage(query), Condition.getQueryWrapper(dsProcessProject, DsProcessProjectEntity.class));
return R.data(DsProcessProjectWrapper.build().pageVO(pages));
}
/**
* 工序项目信息表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入dsProcessProject")
public R<IPage<DsProcessProjectVO>> page(DsProcessProjectVO dsProcessProject, Query query) {
IPage<DsProcessProjectVO> pages = dsProcessProjectService.selectDsProcessProjectPage(Condition.getPage(query), dsProcessProject);
return R.data(pages);
}
/**
* 工序项目信息表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入dsProcessProject")
public R save(@Valid @RequestBody DsProcessProjectEntity dsProcessProject) {
return R.status(dsProcessProjectService.save(dsProcessProject));
}
/**
* 工序项目信息表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入dsProcessProject")
public R update(@Valid @RequestBody DsProcessProjectEntity dsProcessProject) {
return R.status(dsProcessProjectService.updateById(dsProcessProject));
}
/**
* 工序项目信息表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入dsProcessProject")
public R submit(@Valid @RequestBody DsProcessProjectEntity dsProcessProject) {
return R.status(dsProcessProjectService.saveOrUpdate(dsProcessProject));
}
/**
* 工序项目信息表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(dsProcessProjectService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-dsProcessProject")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入dsProcessProject")
public void exportDsProcessProject(@Parameter(hidden = true) @RequestParam Map<String, Object> dsProcessProject, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<DsProcessProjectEntity> queryWrapper = Condition.getQueryWrapper(dsProcessProject, DsProcessProjectEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(DsProcessProject::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(DsProcessProjectEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<DsProcessProjectExcel> list = dsProcessProjectService.exportDsProcessProject(queryWrapper);
ExcelUtil.export(response, "工序项目信息表数据" + DateUtil.time(), "工序项目信息表数据表", list, DsProcessProjectExcel.class);
}
}

@ -99,44 +99,98 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
return dataList;
}
// @Override
// public boolean save(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
//
// String goodsCode = entity.getGoodsCode();
// BigDecimal silverPotassium = entity.getSilverPotassium();
// BigDecimal coefficient = entity.getCoefficient();
//
// BigDecimal sunGoodsDemand = entity.getGoodsDemand();
//
// if (goodsCode.equals(PlateGoodsConst.SILVER_PLATE) && silverPotassium.compareTo(BigDecimal.ZERO) > 0) {
// BigDecimal silverPotassiumProduct = silverPotassium.multiply(coefficient);
//
// if (sunGoodsDemand.subtract(silverPotassiumProduct).compareTo(BigDecimal.ZERO) >= 0) {
// sunGoodsDemand = sunGoodsDemand.subtract(silverPotassiumProduct);
// } else {
// throw new ServiceException("上报银钾转换后大于银板需求数,请减小上报银钾数");
// }
//
// entity.setSilverPotassium(silverPotassium);
// entity.setSilverPotassiumResidue(silverPotassium.doubleValue());
// entity.setCoefficient(coefficient);
// }
//
// entity.setGoodsDemand(sunGoodsDemand);
// entity.setSurplus(sunGoodsDemand);
// entity.setDemandCode(generateCode());
// entity.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
// entity.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
// if (StringUtils.isEmpty(entity.getGoodsName())) {
// entity.setGoodsName(PlateGoodsConst.GOODS_NAME_MAP.get(entity.getGoodsCode()));
// }
// if (this.save(entity)) {
// for (PlateGoodsRecordDetail detail : detailList) {
// detail.setPgrdId(entity.getId());
// }
// return detailService.saveBatch(detailList);
// }
// return Boolean.FALSE;
// }
@Override
@Transactional(rollbackFor = Exception.class)
public boolean save(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
if (entity == null || StringUtils.isEmpty(entity.getGoodsCode())) {
throw new ServiceException("参数错误");
}
String goodsCode = entity.getGoodsCode();
BigDecimal silverPotassium = entity.getSilverPotassium();
BigDecimal coefficient = entity.getCoefficient();
BigDecimal goodsDemand = entity.getGoodsDemand();
BigDecimal sunGoodsDemand = entity.getGoodsDemand();
// 银板特殊处理
if (PlateGoodsConst.SILVER_PLATE.equals(goodsCode)
&& entity.getSilverPotassium() != null
&& entity.getSilverPotassium().compareTo(BigDecimal.ZERO) > 0) {
if (goodsCode.equals(PlateGoodsConst.SILVER_PLATE) && silverPotassium.compareTo(BigDecimal.ZERO) > 0) {
BigDecimal silverPotassium = entity.getSilverPotassium();
BigDecimal coefficient = entity.getCoefficient();
BigDecimal silverPotassiumProduct = silverPotassium.multiply(coefficient);
if (sunGoodsDemand.subtract(silverPotassiumProduct).compareTo(BigDecimal.ZERO) >= 0) {
sunGoodsDemand = sunGoodsDemand.subtract(silverPotassiumProduct);
if (goodsDemand.compareTo(silverPotassiumProduct) >= 0) {
goodsDemand = goodsDemand.subtract(silverPotassiumProduct);
} else {
throw new ServiceException("上报银钾转换后大于银板需求数,请减小上报银钾数");
}
entity.setSilverPotassium(silverPotassium);
entity.setSilverPotassiumResidue(silverPotassium.doubleValue());
entity.setSilverPotassiumResidue(silverPotassium);
entity.setCoefficient(coefficient);
}
entity.setGoodsDemand(sunGoodsDemand);
entity.setSurplus(sunGoodsDemand);
entity.setGoodsDemand(goodsDemand);
entity.setSurplus(goodsDemand);
entity.setDemandCode(generateCode());
entity.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
entity.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
if (StringUtils.isEmpty(entity.getGoodsName())) {
entity.setGoodsName(PlateGoodsConst.GOODS_NAME_MAP.get(entity.getGoodsCode()));
}
if (this.save(entity)) {
for (PlateGoodsRecordDetail detail : detailList) {
detail.setPgrdId(entity.getId());
}
return detailService.saveBatch(detailList);
if (!this.save(entity)) {
return false;
}
return Boolean.FALSE;
if (detailList == null || detailList.isEmpty()) {
return true;
}
for (PlateGoodsRecordDetail detail : detailList) {
detail.setPgrdId(entity.getId());
}
return detailService.saveBatch(detailList);
}
@Override

@ -37,6 +37,7 @@ import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.produce.service.*;
import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.pojo.entity.InspectionItem;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
@ -417,9 +418,14 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
boolean save = inspectionTaskService.save(inspectionTask);
if (CollectionUtils.isNotEmpty(inspectionTask.getWpItemList())) {
List<InspectionItem> inspectionItems = inspectionItemService.list();
// double sumCheckQty = 0, sumTestQty = 0, sumLossQty = 0;
for (WorkPlanItemVO workPlanItemVO : inspectionTask.getWpItemList()) {
// sumCheckQty += workPlanItemVO.getCheckQty() != null ? workPlanItemVO.getCheckQty() : 0;
// sumTestQty += workPlanItemVO.getTestQty() != null ? workPlanItemVO.getTestQty() : 0;
// sumLossQty += workPlanItemVO.getLossQty() != null ? workPlanItemVO.getLossQty() : 0;
WorkPlanItem workPlanItem = new WorkPlanItem();
BeanUtils.copyProperties(workPlanItemVO, workPlanItem);
workPlanItem.setWpId(inspectionTask.getWpId());
workPlanItem.setTaskId(inspectionTask.getId());
// 检验项目基础数据中项目名称匹配
for (InspectionItem inspectionItem : inspectionItems) {
@ -440,7 +446,15 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
}
}
// inspectionTask.setScrapQty(0d);
// inspectionTask.setCheckQty(sumCheckQty);
// inspectionTask.setLossQty(sumLossQty);
// inspectionTaskService.updateById(inspectionTask);
}
// if (inspectionTask.getCheckResult() == InspectionTaskConst.CHECK_RESULT_NG) {
// inspectionTaskService.addRsSheet(inspectionTask.getId());
// }
// 刷新状态和数量
inspectionTaskService.refreshStatusAndQty(inspectionTask.getId());
// 保存镀后检验数据

@ -55,184 +55,196 @@ import java.util.stream.Collectors;
public class WorkPlanItemController extends BladeController {
@Resource
private IWorkPlanItemService service;
/**
* [工序检验项] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入WorkPlanItem Obj")
public R<WorkPlanItemVO> detail(WorkPlanItem workPlanItem) {
QueryWrapper<WorkPlanItem> qw = Condition.getQueryWrapper(workPlanItem);
WorkPlanItem detail = service.getOne(qw);
WorkPlanItemVO detailVO = WorkPlanItemWrapper.build().entityVO(detail);
service.setVOValue(detailVO);
return R.data(detailVO);
}
/**
* [工序检验项] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入WorkPlanItem Obj")
public R<IPage<WorkPlanItemVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> workPlanItem,
Query query) {
private IWorkPlanItemService service;
/**
* [工序检验项] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入WorkPlanItem Obj")
public R<WorkPlanItemVO> detail(WorkPlanItem workPlanItem) {
QueryWrapper<WorkPlanItem> qw = Condition.getQueryWrapper(workPlanItem);
WorkPlanItem detail = service.getOne(qw);
WorkPlanItemVO detailVO = WorkPlanItemWrapper.build().entityVO(detail);
service.setVOValue(detailVO);
return R.data(detailVO);
}
/**
* [工序检验项] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入WorkPlanItem Obj")
public R<IPage<WorkPlanItemVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> workPlanItem,
Query query) {
QueryWrapper<WorkPlanItem> qw = Condition.getQueryWrapper(workPlanItem, WorkPlanItem.class);
IPage<WorkPlanItem> pages = service.page(Condition.getPage(query), qw);
IPage<WorkPlanItemVO> pagesVO = WorkPlanItemWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [工序检验项] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入WorkPlanItem Obj")
public R<IPage<WorkPlanItemVO>> page(WorkPlanItemVO workPlanItem, Query query) {
IPage<WorkPlanItemVO> pagesVO = service.selectWorkPlanItemPage(
Condition.getPage(query), workPlanItem
);
return R.data(pagesVO);
}
/**
IPage<WorkPlanItem> pages = service.page(Condition.getPage(query), qw);
IPage<WorkPlanItemVO> pagesVO = WorkPlanItemWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [工序检验项] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入WorkPlanItem Obj")
public R<IPage<WorkPlanItemVO>> page(WorkPlanItemVO workPlanItem, Query query) {
IPage<WorkPlanItemVO> pagesVO = service.selectWorkPlanItemPage(
Condition.getPage(query), workPlanItem
);
return R.data(pagesVO);
}
/**
* [工序检验项] list下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "")
@Operation(summary = "list下拉选择", description = "")
public R<List<WorkPlanItemVO>> listForSelect() {
List<WorkPlanItem> list = service.list();
List<WorkPlanItemVO> listVO = WorkPlanItemWrapper.build().listVO(list);
return R.data(listVO);
List<WorkPlanItem> list = service.list();
List<WorkPlanItemVO> listVO = WorkPlanItemWrapper.build().listVO(list);
return R.data(listVO);
}
/**
* [工序检验项] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入WorkPlanItem Obj")
public R save(@Valid @RequestBody WorkPlanItem addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
/**
/**
* [工序检验项] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入WorkPlanItem Obj")
public R save(@Valid @RequestBody WorkPlanItem addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
/**
* [工序检验项] 新增批量
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入WorkPlanItem List")
public R saveBat(@Valid @RequestBody List<WorkPlanItem> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
/**
* [工序检验项] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入WorkPlanItem Obj")
public R update(@Valid @RequestBody WorkPlanItem updateOne) {
return R.status(service.updateById(updateOne));
}
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入WorkPlanItem List")
public R saveBat(@Valid @RequestBody List<WorkPlanItem> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
/**
* [工序检验项] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入WorkPlanItem Obj")
public R update(@Valid @RequestBody WorkPlanItem updateOne) {
return R.status(service.updateById(updateOne));
}
/**
* [工序检验项] 修改批量
*/
@PostMapping("/updateBat")
@ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入WorkPlanItem List")
@Operation(summary = "修改批量", description = "传入WorkPlanItem List")
public R updateBat(@Valid @RequestBody List<WorkPlanItem> updateList) {
return R.status(service.updateBatchById(updateList));
}
/**
* [工序检验项] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入WorkPlanItem Obj")
public R submit(@Valid @RequestBody WorkPlanItem mergeOne) {
return R.status(service.saveOrUpdate(mergeOne));
}
/**
/**
* [工序检验项] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入WorkPlanItem Obj")
public R submit(@Valid @RequestBody WorkPlanItem mergeOne) {
return R.status(service.saveOrUpdate(mergeOne));
}
/**
* [工序检验项] 新增或修改批量
*/
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入WorkPlanItem List")
public R submitBat(@Valid @RequestBody List<WorkPlanItem> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList));
}
/**
* [工序检验项] 逻辑删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids)));
}
/**
* [工序检验项] 导出Excel
*/
@GetMapping("/exportExcel")
@ApiOperationSupport(order = 70)
@Operation(summary = "导出Excel", description = "传入WorkPlanItem")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> workPlanItem,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<WorkPlanItem> qw = Condition.getQueryWrapper(workPlanItem, WorkPlanItem.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(WorkPlanItem::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(WorkPlanItemEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<WorkPlanItemExcel> list = service.exportWorkPlanItem(qw);
ExcelUtil.export(response, "[工序检验项]数据" + DateUtil.time(),
"[工序检验项]数据表", list, WorkPlanItemExcel.class);
}
/**
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入WorkPlanItem List")
public R submitBat(@Valid @RequestBody List<WorkPlanItem> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList));
}
/**
* [工序检验项] 逻辑删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids)));
}
/**
* [工序检验项] 导出Excel
*/
@GetMapping("/exportExcel")
@ApiOperationSupport(order = 70)
@Operation(summary = "导出Excel", description = "传入WorkPlanItem")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> workPlanItem,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<WorkPlanItem> qw = Condition.getQueryWrapper(workPlanItem, WorkPlanItem.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(WorkPlanItem::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(WorkPlanItemEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<WorkPlanItemExcel> list = service.exportWorkPlanItem(qw);
ExcelUtil.export(response, "[工序检验项]数据" + DateUtil.time(),
"[工序检验项]数据表", list, WorkPlanItemExcel.class);
}
/**
* [工序检验项] 下载Excel模板
*/
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls",
"导入模版-周期试验项目.xls");
}
/**
* [工序检验项] 导入Excel
*/
@PostMapping("/importExcel")
@ApiOperationSupport(order = 72)
@Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) {
return checkR;
}
List<WorkPlanItem> importList = ExcelUtil.read(
file, 0, 1, WorkPlanItem.class
);
return R.status(service.saveBatch(importList));
}
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls",
"导入模版-周期试验项目.xls");
}
/**
* [工序检验项] 导入Excel
*/
@PostMapping("/importExcel")
@ApiOperationSupport(order = 72)
@Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) {
return checkR;
}
List<WorkPlanItem> importList = ExcelUtil.read(
file, 0, 1, WorkPlanItem.class
);
return R.status(service.saveBatch(importList));
}
/**
* 根据id查询同订单共享值
*
* @param workPlanItem
* @return
*/
@GetMapping("/listShareVOByWpiId")
@Operation(summary = "根据ID查询同订单共享值", description = "传入WorkPlanItem Obj")
public R listShareVOByWpiId(WorkPlanItem workPlanItem) {
return R.data(service.listShareVOByWpiId(workPlanItem.getId()));
}
}

@ -41,4 +41,6 @@ public interface WorkPlanItemMapper extends BaseMapper<WorkPlanItem> {
List<WorkPlanItem> listByWoId(Long woId);
List<WorkPlanItemVO> listByWoIdNotNG(Long woId);
List<WorkPlanItem> listShareByWpiId(Long wpiId);
}

@ -65,4 +65,21 @@
AND b.wo_id = #{woId}
AND a.CHECK_RESULT != 3
</select>
<select id="listShareByWpiId" resultMap="workPlanItemResultMap">
SELECT a.*
FROM QA_WORK_PLAN_ITEM a
LEFT JOIN MES_WORK_PLAN b ON a.WP_ID = b.ID
INNER JOIN (
SELECT t.item_name, m.WO_ID, t.COATING_TYPE
FROM QA_WORK_PLAN_ITEM t
LEFT JOIN MES_WORK_PLAN m ON t.WP_ID = m.ID
WHERE t.id = #{wpiId}
) cond
ON a.item_name = cond.item_name
AND a.COATING_TYPE = cond.COATING_TYPE
AND b.WO_ID = cond.WO_ID
WHERE a.is_deleted = 0 AND a.SOURCE_TYPE = 1
</select>
</mapper>

@ -65,4 +65,6 @@ public interface IWorkPlanItemService extends BaseService<WorkPlanItem> {
List<WorkPlanItemVO> listByWoIdNotNG(Long woId);
List<WorkPlanItemVO> listVOByWpIdAndItemName(Long wpId, String itemName);
List<WorkPlanItemVO> listShareVOByWpiId(Long wpiId);
}

@ -2359,15 +2359,15 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
@Override
public void computeOrderQty(WorkPlan wp, InspectionTask wc, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty) {
if (wc != null) {
wc.setScrapQty(wc.getScrapQty() + scrapQty);
wc.setCheckQty(wc.getCheckQty() + checkQ);
wc.setLossQty(wc.getLossQty() + lossQty);
wc.setScrapQty(Optional.ofNullable(wc.getScrapQty()).orElse(0D) + scrapQty);
wc.setCheckQty(Optional.ofNullable(wc.getCheckQty()).orElse(0D) + checkQ);
wc.setLossQty(Optional.ofNullable(wc.getLossQty()).orElse(0D) + lossQty);
}
if (wo != null) {
wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty));
wo.setTestQty(wo.getTestQty() + testQty);
wo.setLossQty(wo.getLossQty() + lossQty);
wo.setScrapQty(wo.getScrapQty() + scrapQty);
wo.setMakeQty(Optional.ofNullable(wo.getMakeQty()).orElse(0D) - (testQty + lossQty + scrapQty));
wo.setTestQty(Optional.ofNullable(wo.getTestQty()).orElse(0D) + testQty);
wo.setLossQty(Optional.ofNullable(wo.getLossQty()).orElse(0D) + lossQty);
wo.setScrapQty(Optional.ofNullable(wo.getScrapQty()).orElse(0D) + scrapQty);
log.info("车间订单:{}, 扣除测试数量:{}", wo.getWoCode(), wo.getTestQty());
}
@ -2380,9 +2380,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
if (list != null && list.size() > 0) {
wp.setWorkQty(wo.getMakeQty());
}
wp.setTestQty(wp.getTestQty() + testQty);
wp.setLossQty(wp.getLossQty() + lossQty);
wp.setScrapQty(wp.getScrapQty() + scrapQty);
wp.setTestQty(Optional.ofNullable(wp.getTestQty()).orElse(0D) + testQty);
wp.setLossQty(Optional.ofNullable(wp.getLossQty()).orElse(0D) + lossQty);
wp.setScrapQty(Optional.ofNullable(wp.getScrapQty()).orElse(0D) + scrapQty);
}
}

@ -115,7 +115,11 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
}
if(vo.getItem() != null){
List<WorkPlanItemDetailVO> list = wpItemDetailService.listVOByWorkPlanItemId(vo.getId());
Long sourceId = vo.getId();
if(vo.getSourceType() == WorkPlanItemVO.SHARE_SOURCE){
sourceId = vo.getSourceId();
}
List<WorkPlanItemDetailVO> list = wpItemDetailService.listVOByWorkPlanItemId(sourceId);
if(null == list || list.size() == 0){
vo.setWpItemDetailList(new ArrayList<>());
}else{
@ -265,4 +269,14 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
}
return listVO;
}
@Override
public List<WorkPlanItemVO> listShareVOByWpiId(Long wpiId) {
List<WorkPlanItem> list = baseMapper.listShareByWpiId(wpiId);
List<WorkPlanItemVO> listVO = WorkPlanItemWrapper.build().listVO(list);
for (WorkPlanItemVO vo : listVO) {
setVOValue(vo);
}
return listVO;
}
}

@ -750,7 +750,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
log.info("当前订单是:" + order.getId() + ",工序是:" + craft.getId()+",获取到的设备资源是:[作业中心:" + equipResource.getWorkCenterId() + ",工艺能力:" + equipResource.getCraftId() + ",工序:" + equipResource.getProcessId() +",资源id是:" + equipResource.getId() + "]");
//更新剩余产能
equipResource.setRestCapacity(equipResource.getRestCapacity().subtract(capacity));
equipResource.setIsUsed("1");
//当剩余产能不足20%时,更新为已使用
if(equipResource.getRestCapacity().divide(equipResource.getTotalCapacity(),2,RoundingMode.HALF_UP).compareTo(new BigDecimal("0.2")) < 0){
equipResource.setIsUsed("1");
}
if (order.getYieldType() != YieldOrderEnum.YIELD_TYPE_1.getCode() && sameMap.get("glassCode") != null) {
equipResource.setGlassCode(sameMap.get("glassCode").toString());
}
@ -795,6 +799,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
if(CollectionUtils.isNotEmpty(processPlanList)){
log.info("设备排产用到的资源是:" + JSONObject.toJSONString(processPlanList));
WorkPlanEntity workPlan = new WorkPlanEntity();
BeanUtils.copyProperties(processPlanList.get(0),workPlan);
workPlan.setPlanStartTime(processPlanList.get(0).getPlanStartTime());
@ -802,6 +807,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
String equipCode = processPlanList.stream().map(WorkPlanEntity::getEquipCode).collect(Collectors.joining(","));
String equipName = processPlanList.stream().map(WorkPlanEntity::getEquipName).collect(Collectors.joining(","));
String equipResourceId = processPlanList.stream().map(WorkPlanEntity::getEquipResourceId).map(String::valueOf).collect(Collectors.joining(","));
log.info("设备排产占用的资源ID是:" + equipResourceId);
Double hourQuota = processPlanList.stream().mapToDouble(WorkPlanEntity::getHourQuota).sum();
workPlan.setEquipCode(equipCode);
workPlan.setEquipName(equipName);

@ -141,7 +141,11 @@ public class StGraphiteMoldOutServiceImpl extends BaseServiceImpl<StGraphiteMold
int lastNum = 0;
if (StrUtil.isNotBlank(maxCode)) {
String number = maxCode.substring(datePrefix.length());
lastNum = Integer.parseInt(number);
String[] arr = number.split("-");
String realNum = arr[0];
if(StrUtil.isNumeric(realNum)){
lastNum = Integer.parseInt(realNum);
}
}
int childNum = 1;
@ -174,6 +178,7 @@ public class StGraphiteMoldOutServiceImpl extends BaseServiceImpl<StGraphiteMold
preOutStock.setYoCode(faYieldOrder.getYoCode());
preOutStock.setCardNo(dto.getCardNo());
lastNum++;
String parentOutCode = datePrefix + StrUtil.padPre(String.valueOf(lastNum), 4, '0');
preOutStock.setParentOutCode(parentOutCode);
String outCode = parentOutCode + "-" + childNum;

Loading…
Cancel
Save