package com.qianwen.smartman.modules.fms.controller; import java.util.List; import java.util.Map; import javax.validation.Valid; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.scanner.modular.annotation.DeleteResource; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.annotation.PutResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.modules.fms.convert.FmsOrderProcessConvert; import com.qianwen.smartman.modules.fms.convert.FmsOrderProcessFixtureConvert; import com.qianwen.smartman.modules.fms.convert.FmsOrderProcessToolConvert; import com.qianwen.smartman.modules.fms.dto.ProgramIssuanceDTO; import com.qianwen.smartman.modules.fms.entity.FmsOrderProcess; import com.qianwen.smartman.modules.fms.service.IFmsOrderProcessFixtureService; import com.qianwen.smartman.modules.fms.service.IFmsOrderProcessService; import com.qianwen.smartman.modules.fms.service.IFmsOrderProcessToolService; import com.qianwen.smartman.modules.fms.vo.FmsOrderProcessFixtureVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderProcessToolVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderProcessVO; import com.qianwen.smartman.modules.fms.vo.FmsWorkStationProcessVO; import cn.hutool.core.bean.BeanUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import springfox.documentation.annotations.ApiIgnore; @Api(value = "工单工序信息管理", tags = {"fms_order_process"}) @ApiResource({"blade-fms/order/process"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/fms/controller/FmsOrderProcessController.class */ public class FmsOrderProcessController extends BladeController { private final IFmsOrderProcessService fmsOrderProcessService; private final IFmsOrderProcessFixtureService fmsOrderProcessFixtureService; private final IFmsOrderProcessToolService fmsOrderProcessToolService; public FmsOrderProcessController(final IFmsOrderProcessService fmsOrderProcessService, final IFmsOrderProcessFixtureService fmsOrderProcessFixtureService, final IFmsOrderProcessToolService fmsOrderProcessToolService) { this.fmsOrderProcessService = fmsOrderProcessService; this.fmsOrderProcessFixtureService = fmsOrderProcessFixtureService; this.fmsOrderProcessToolService = fmsOrderProcessToolService; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "工单工序信息详情", notes = "传入fmsOrderProcess") public R detail(@PathVariable String id) { FmsOrderProcess fmsOrderProcess = (FmsOrderProcess) this.fmsOrderProcessService.getById(id); return R.data(FmsOrderProcessConvert.INSTANCE.convert(fmsOrderProcess)); } @ApiOperationSupport(order = 2) @ApiImplicitParams({@ApiImplicitParam(name = "orderId", value = "工单ID", paramType = "query", dataType = "string")}) @GetResource({"/list"}) @ApiOperation(value = "工单工序信息列表", notes = "传入map") @PreAuth public R> list(@RequestParam @ApiIgnore Map params) { FmsOrderProcess orderProcess = (FmsOrderProcess) BeanUtil.mapToBean(params, FmsOrderProcess.class, true); List list = this.fmsOrderProcessService.list(Condition.getQueryWrapper(orderProcess)); List convert = FmsOrderProcessConvert.INSTANCE.convert(list); convert.forEach(item -> { List fixtureVOList = FmsOrderProcessFixtureConvert.INSTANCE.convert(this.fmsOrderProcessFixtureService.list(Lambda.eq((v0) -> { return v0.getOrderProcessId(); }, item.getId()))); List toolVOList = FmsOrderProcessToolConvert.INSTANCE.convert(this.fmsOrderProcessToolService.list(Lambda.eq((v0) -> { return v0.getOrderProcessId(); }, item.getId()))); item.setFixtureList(fixtureVOList); item.setToolList(toolVOList); }); return R.data(convert); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PutResource({"/update"}) @ApiOperation(value = "工单工序信息修改", notes = "传入fmsOrderProcessVO") public R update(@Valid @RequestBody FmsOrderProcessVO fmsOrderProcessVO) { FmsOrderProcess fmsOrderProcess = FmsOrderProcessConvert.INSTANCE.convert(fmsOrderProcessVO); this.fmsOrderProcessService.updateById(fmsOrderProcess); return R.data(FmsOrderProcessConvert.INSTANCE.convert(fmsOrderProcess)); } @ApiOperationSupport(order = 6) @DeleteResource({"/remove"}) @ApiOperation(value = "工单工序信息删除", notes = "传入ids") public R remove(@ApiParam(value = "主键", required = true) @RequestBody List ids) { if (ids.isEmpty()) { return R.status(false); } return R.status(this.fmsOrderProcessService.removeByIds(ids)); } @ApiOperationSupport(order = 7) @GetResource({"/workstation-list"}) @ApiOperation(value = "根据工单ID获取每道工序的工位列表数据", notes = "传入工单id") @PreAuth public R> workstationList(String orderId) { return R.data(this.fmsOrderProcessService.listWorkstation(orderId)); } @ApiOperationSupport(order = 8) @PostResource({"/issued"}) @ApiOperation(value = "南通柔性线程序下发", notes = "programIssuanceDTO") public void sendProgram(@RequestBody ProgramIssuanceDTO programIssuanceDTO) { this.fmsOrderProcessService.programIssuanceDmp(programIssuanceDTO); } }