添加排产数据同步到新mes

1. 生产订单状态
2. 车间订单调度
liweidong
liuqingkun 3 months ago
parent e68650294d
commit 3eafa13e5d
  1. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java
  2. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/request/PlateGoodsApplySave.java
  3. 5
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/YieldPlanVo.java
  4. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/PlateGoodsApplyController.java
  5. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldOrderController.java
  6. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsApplyService.java
  7. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  8. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java
  9. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  10. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/wrapper/YieldPlanWrapper.java
  11. 13
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java
  12. 9
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java
  13. 50
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java

@ -66,7 +66,7 @@ public class YieldPlan extends BaseEntity {
* 使用部门
*/
@TableField(value = "USE_DEPT")
private String useDept;
private Long useDept;
/**
* 数量
@ -90,7 +90,7 @@ public class YieldPlan extends BaseEntity {
* 计划员
*/
@TableField(value = "PLAN_USER")
private String planUser;
private Long planUser;
/**
* 计划下达时间

@ -22,4 +22,10 @@ public class PlateGoodsApplySave {
* 化验含量明细
*/
private List<PlateGoodsApplyDetail> detailList;
/**
* 本次添加相关的需求单ID列表
*/
private List<Long> recordIdList;
}

@ -27,4 +27,9 @@ public class YieldPlanVo extends YieldPlan {
* 状态名称
*/
String statusName;
/**
* 计划员名称
*/
String planUserName;
}

@ -72,7 +72,8 @@ public class PlateGoodsApplyController extends BladeController {
public R save(@Valid @RequestBody PlateGoodsApplySave saveData) {
PlateGoodsApply entity = saveData.getAssayContent();
List<PlateGoodsApplyDetail> detailList = saveData.getDetailList();
plateGoodsApplyService.save(entity, detailList);
List<Long> recordIdList = saveData.getRecordIdList();
plateGoodsApplyService.save(entity, detailList, recordIdList);
return R.status(true);
}

@ -225,6 +225,7 @@ public class YieldOrderController extends BladeController {
*
* @return true:重复 false:不重复
*/
@Deprecated
@PostMapping(value = "/receiveOrderFromOldMes")
@Operation(summary = "保存旧mes传过来的生产订单", description = "")
public R receiveOrderFromOldMes(@RequestBody JSONObject dataObject) {
@ -232,4 +233,17 @@ public class YieldOrderController extends BladeController {
yieldOrderService.receiveOrderFromOldMes(dataList);
return R.success();
}
/**
* 保存旧mes传过来的生产订单状态
*
* @return
*/
@Deprecated
@PostMapping(value = "/receiveOrderStatusFromOldMes")
@Operation(summary = "保存旧mes传过来的生产订单状态数据", description = "")
public R receiveOrderStatusFromOldMes(@RequestBody JSONObject entity) {
yieldOrderService.receiveOrderStatusFromOldMes(entity.getString("cardNo"), entity.getInteger("status"));
return R.success();
}
}

@ -27,9 +27,10 @@ public interface IPlateGoodsApplyService extends BaseService<PlateGoodsApply> {
*
* @param entity
* @param detailList
* @param recordIdList
* @return
*/
boolean save(PlateGoodsApply entity, List<PlateGoodsApplyDetail> detailList);
boolean save(PlateGoodsApply entity, List<PlateGoodsApplyDetail> detailList, List<Long> recordIdList);
/**
* 修改

@ -151,4 +151,12 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
* @param dataList
*/
void receiveOrderFromOldMes(JSONArray dataList);
/**
* 接收旧mes同步的生产订单状态数据
*
* @param cardNo
* @param statusCode
*/
void receiveOrderStatusFromOldMes(String cardNo, Integer statusCode);
}

@ -34,8 +34,11 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
}
@Override
public boolean save(PlateGoodsApply entity, List<PlateGoodsApplyDetail> detailList) {
public boolean save(PlateGoodsApply entity, List<PlateGoodsApplyDetail> detailList, List<Long> recordIdList) {
if (this.save(entity)) {
// 1. 更新化验记录相关数据
// 2. 更新需求单的相关数据
for (PlateGoodsApplyDetail detail : detailList) {
detail.setPgadId(entity.getId());
}

@ -94,8 +94,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
public IPage<YieldOrder> pageMaterialApply(IPage<YieldOrder> page, Long wcId, Integer materialType, Integer overHalfMon) {
YieldOrder entity = new YieldOrder();
entity.setWorkCenterId(wcId);
//TODO 1. 金钾银钾如何区分
// 2. 允许使用半月以上的数据是以生产订单的什么时间算
// TODO 1. 金钾银钾如何区分,使用工艺编制中的物料编号,其中只有金钾、银钾的选项
// TODO 2. 允许使用半月以上的数据是以生产订单的什么时间算,需查看原来的逻辑
List<YieldOrder> dataList = baseMapper.selectPage(page, entity, null);
return page.setRecords(dataList);
}
@ -552,6 +552,26 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
}
@Override
public void receiveOrderStatusFromOldMes(String cardNo, Integer statusCode) {
// 先根据流程卡号查询订单,如果查不到则不处理
List<YieldOrder> orderList = baseMapper.selectList(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, cardNo));
if (orderList.size() > 0) {
YieldOrder yieldOrder = orderList.get(0);
switch (statusCode) {
case 15:
yieldOrder.setStatus(YieldOrderEnum.STATUS_COMPLETED.getCode());
break;
case 21:
yieldOrder.setStatus(YieldOrderEnum.STATUS_CLOSED.getCode());
break;
default:
break;
}
this.updateById(yieldOrder);
}
}
/**
* 验证零件子件信息
*

@ -2,9 +2,12 @@ package org.springblade.desk.order.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.order.pojo.entity.YieldPlan;
import org.springblade.desk.order.pojo.enums.YieldPlanEnum;
import org.springblade.desk.order.pojo.vo.YieldPlanVo;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import java.util.Objects;
@ -23,6 +26,11 @@ public class YieldPlanWrapper extends BaseEntityWrapper<YieldPlan, YieldPlanVo>
public YieldPlanVo entityVO(YieldPlan entity) {
YieldPlanVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, YieldPlanVo.class));
vo.setStatusName(YieldPlanEnum.getName(entity.getStatus()));
User user = UserCache.getUser(entity.getPlanUser());
if (Func.isNotEmpty(user)) {
vo.setPlanUserName(user.getAccount());
}
return vo;
}
}

@ -25,6 +25,7 @@
*/
package org.springblade.scheduling.scheduling.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@ -236,10 +237,20 @@ public class WorkOrderController extends BladeController {
*/
@PostMapping("/exportBoard")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入WorkOrder")
@Operation(summary = "导出数据", description = "传入WorkOrder")
public void exportSchedulingBoard(@RequestBody WorkOrderDto workOrder, HttpServletResponse response) {
List<SchedulingBoardExcel> list = workOrderService.exportSchedulingBoard(workOrder);
ExcelUtil.export(response, "车间订单表数据" + DateUtil.time(), "车间订单表数据表", list, SchedulingBoardExcel.class);
}
/**
* 车间订单 更新调度人员
*/
@PostMapping("/receiveDispatcherFromOldMes")
@Operation(summary = "更新调度人员", description = "")
public R receiveDispatcherFromOldMes(@RequestBody JSONObject entity) {
workOrderService.receiveDispatcherFromOldMes(entity.getLong("id"), entity.getLong("dispatcher"));
return R.success();
}
}

@ -86,4 +86,13 @@ public interface IWorkOrderService extends BaseService<WorkOrderEntity> {
List<String> selectEquip();
List<SchedulingBoardExcel> exportSchedulingBoard(WorkOrderDto workOrder);
/**
* 接收旧mes同步的车间订单调度数据
*
* @param id
* @param userId
*/
void receiveDispatcherFromOldMes(Long id, Long userId);
}

@ -298,27 +298,35 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return baseMapper.selectTeam();
}
@Override
public List<String> selectEquip() {
return baseMapper.selectEquip();
}
@Override
public List<SchedulingBoardExcel> exportSchedulingBoard(WorkOrderDto workOrder) {
return baseMapper.exportSchedulingBoard(workOrder);
}
void calculateCr(List<YieldOrderEntity> list) {
//查询订单下的工序,计算cr值
for (YieldOrderEntity entity : list) {
List<YieldOrderCraftEntity> craftList = yieldOrderCraftService.list(Wrappers.<YieldOrderCraftEntity>lambdaQuery().eq(YieldOrderCraftEntity::getYoId, entity.getId()));
//定义订单总工时
BigDecimal total = new BigDecimal(0);
for (YieldOrderCraftEntity craftEntity : craftList) {
total = total.add(craftEntity.getHourQuota());
}
//换算成天
total = total.divide(BigDecimal.valueOf(1440), 2, RoundingMode.HALF_UP);
@Override
public List<String> selectEquip() {
return baseMapper.selectEquip();
}
@Override
public List<SchedulingBoardExcel> exportSchedulingBoard(WorkOrderDto workOrder) {
return baseMapper.exportSchedulingBoard(workOrder);
}
@Override
public void receiveDispatcherFromOldMes(Long id, Long userId) {
WorkOrderEntity workOrder = new WorkOrderEntity();
workOrder.setId(id);
workOrder.setDispatcher(userId);
updateById(workOrder);
}
void calculateCr(List<YieldOrderEntity> list) {
//查询订单下的工序,计算cr值
for (YieldOrderEntity entity : list) {
List<YieldOrderCraftEntity> craftList = yieldOrderCraftService.list(Wrappers.<YieldOrderCraftEntity>lambdaQuery().eq(YieldOrderCraftEntity::getYoId, entity.getId()));
//定义订单总工时
BigDecimal total = new BigDecimal(0);
for (YieldOrderCraftEntity craftEntity : craftList) {
total = total.add(craftEntity.getHourQuota());
}
//换算成天
total = total.divide(BigDecimal.valueOf(1440), 2, RoundingMode.HALF_UP);
if (total.compareTo(new BigDecimal(0)) == 0) {
entity.setCrValue(new BigDecimal(0));
continue;

Loading…
Cancel
Save