Merge branch 'dev-wuhan' of http://git.estsh.com/I3-YF/i3plus-mes-yfai into dev-wuhan

tags/yfai-mes-ext-v2.3
gsz 8 months ago
commit bcadbdb396

@ -49,6 +49,10 @@ public interface IMesWorkOrderService extends IBaseMesService<MesWorkOrder> {
@ApiOperation("装配目视单补打")
List<Map<String, Object>> doReprintWorkOrder(Long[] ids, String organizeCode, String userName);
@ApiOperation("装配目视单预览")
List<Map<String, Object>> doShowWorkOrderPrint(String partNo, String workCenterCode, String partProdGroupCode,
String carModelCode, String organizeCode, String userName);
List<MesProductionRecord> getPreDayReportMesProductionRecord(String organizeCode , List<MesShift> mesShiftList, String workCenterCode);
List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode ,List<MesProductionRecord> mesProductionRecordList );

@ -200,13 +200,14 @@ public class MesWorkOrderController extends BaseMesController<MesWorkOrder> {
@PostMapping(value = "/work-order-reprint")
@ApiOperation(value = "装配目视单补打")
public ResultBean doSaveWorkOrderPrintQueue(@RequestBody Long[] ids) {
public ResultBean doReprintWorkOrder(Long[] ids) {
try {
ValidatorBean.checkNotNull(ids,"工单不能为空");
mesWorkOrderService.doReprintWorkOrder(ids, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName());
return ResultBean.success("装配目视单补打成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
return ResultBean.success("装配目视单补打成功")
.setResultObject(mesWorkOrderService.doReprintWorkOrder(ids, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName()))
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
@ -214,6 +215,7 @@ public class MesWorkOrderController extends BaseMesController<MesWorkOrder> {
}
}
@PutMapping(value = "/reopen")
@ApiOperation(value = "重新打开")
public ResultBean doReopen(Long[] ids) {

@ -142,6 +142,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Autowired
private IMesPartProdGroupService partProdGroupService;
@Autowired
private IMesPrintedSnLogRepository printedSnLogRepository;
@Override
public MesWorkOrder insert(MesWorkOrder bean) {
//校验产线与工位的关系
@ -219,8 +222,16 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
}
boolean isSavePrintQueue = false;
//更新状态
if (result.getWorkOrderStatus().intValue() != bean.getWorkOrderStatus().intValue()) {
// 发布时创建工单打印队列
if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) {
isSavePrintQueue = true;
}
result.setWorkOrderStatus(bean.getWorkOrderStatus());
if (result.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()
&& bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) {
@ -232,7 +243,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrderToWmsService.insertBatch(mesWorkOrderToWmsService.saveMesWorkOrderToWms(result, bomList));
}
}
updateMesWorkOrder(result,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,0);
if (isSavePrintQueue) insertPrintQueue(result, null);
return result;
}
@ -453,6 +467,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (workOrder.getWorkOrderType() != MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) return null;
if (workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) return null;
if (mesPartProdGroup == null) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(workOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(workOrder.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean);
@ -1172,16 +1188,28 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return;
}
insertPrintQueue(workOrder, null);
if (workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) {
log.info("doSaveWorkOrderPrintQueue --- 工单:{} 不为{},无需新增打印队列", workOrder.getWorkOrderNo(), MesExtEnumUtil.ORDER_STATUS.RELEASE.getDescription());
return;
}
insertPrintQueue(workOrder, null);
}
@Override
public List<Map<String, Object>> doReprintWorkOrder(Long[] ids, String organizeCode, String userName) {
// 根据id 获取工单数据
List<MesWorkOrder> mesWorkOrderList = getMesWorkOrderList(ids, organizeCode);
List<Map<String, Object>> resultMapList = packPrintResultMap(organizeCode, mesWorkOrderList, userName);
return resultMapList;
}
private List<Map<String, Object>> packPrintResultMap(String organizeCode, List<MesWorkOrder> mesWorkOrderList, String userName) {
// 根据工单号对工单分组
Map<String, MesWorkOrder> workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y));
@ -1209,6 +1237,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
// 返回结果
List<Map<String, Object>> resultMapList = new ArrayList<>();
// 条码打印
List<MesPrintedSnLog> printedSnLogList = new ArrayList<>();
for (MesWorkOrder mesWorkOrder : mesWorkOrderList) {
if (mesWorkOrder == null) {
@ -1262,12 +1293,38 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板【%s】策略类【%s】执行异常", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode(), labelTemplate.getTemplateCode(), labelTemplate.getMethodCode());
}
MesPrintedSnLog printedSnLog = new MesPrintedSnLog();
printedSnLog.setOrganizeCode(mesWorkOrder.getOrganizeCode());
printedSnLog.setWorkOrderNo(mesWorkOrder.getWorkOrderNo());
printedSnLog.setCustPartNo(mesWorkOrder.getCustPartNo());
ConvertBean.serviceModelInitialize(printedSnLog, userName);
printedSnLogList.add(printedSnLog);
resultMapList.addAll(snPrintModel.getPrintContextList());
}
if (!CollectionUtils.isEmpty(printedSnLogList)) printedSnLogRepository.saveAll(printedSnLogList);
return resultMapList;
}
@Override
public List<Map<String, Object>> doShowWorkOrderPrint(String partNo, String workCenterCode, String partProdGroupCode,
String carModelCode, String organizeCode, String userName) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, packBean);
DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringEqualPack(partProdGroupCode, MesExtConstWords.PART_PROD_GROUP_CODE, packBean);
DdlPreparedPack.getStringEqualPack(carModelCode, MesExtConstWords.CAR_MODEL_CODE, packBean);
packBean.setOrderByStr(" order by createDatetime desc ");
MesWorkOrder workOrder = workOrderRepository.getByProperty(packBean);
List<MesWorkOrder> workOrderList = new ArrayList<>();
workOrderList.add(workOrder);
return packPrintResultMap(organizeCode, workOrderList, userName);
}
private Map<String, MesCustomerCarModel> getMesCustomerCarModelMap(String organizeCode, List<MesWorkOrder> workOrderList) {

@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesCustSoftInfoService;
import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesWorkOrderService;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
@ -87,6 +88,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
@Autowired
private MesQueueOrderRepository queueOrderRao;
@Autowired
private MesWorkOrderService mesWorkOrderService;
@Override
public void execute(MesPartProdGroup partProdGroup, List<MesCustSortInfo> sortInfoList, List<MesPartProdGroupDetail> details) {
try {
@ -456,7 +460,10 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
ConvertBean.saveOrUpdate(mesWorkOrder, "MES-JOB");
mesWorkOrderRao.insert(mesWorkOrder);
/**
*
*/
mesWorkOrderService.doSaveWorkOrderPrintQueue(mesWorkOrder);
if (!assemblyList.isEmpty()) {
for (MesWorkOrderAssembly orderAssembly : assemblyList) {
orderAssembly.setWorkOrderNo(mesWorkOrder.getWorkOrderNo());

@ -37,8 +37,8 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
// 客户车型配置信息
MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null;
// 工单装配件信息
List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : null;
workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList());
List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : new ArrayList<>();
workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? new ArrayList<>() : workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq));
// 返回的结果集合
List<Map<String, Object>> printDataMapList = new ArrayList<>();

Loading…
Cancel
Save