src/main/java/com/ruoyi/production/controller/ProductProcessController.java
@@ -2,14 +2,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.device.pojo.DeviceRepair; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.oA.pojo.OaProject; import com.ruoyi.production.dto.ProductProcessDto; import com.ruoyi.production.pojo.ProductProcess; import com.ruoyi.production.service.impl.ProductProcessServiceImpl; @@ -17,7 +14,6 @@ import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -51,8 +47,9 @@ @ApiOperation("æ´æ°å·¥åº") @Log(title = "ä¿®æ¹", businessType = BusinessType.UPDATE) @PutMapping("/update") public AjaxResult update(@RequestBody ProductProcess productProcess) { return AjaxResult.success(productProcessService.updateById(productProcess)); public AjaxResult update(@RequestBody ProductProcessDto productProcess) { return AjaxResult.success(productProcessService.updateProcess(productProcess)); } @ApiOperation("å é¤å·¥åº") src/main/java/com/ruoyi/production/controller/ProductionMachineRecordController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package com.ruoyi.production.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.production.dto.ProductionMachineRecordDto; import com.ruoyi.production.service.ProductionMachineRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; /** * <p> * çäº§ä¸æºè®°å½è¡¨ å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-04-27 06:12:04 */ @RestController @RequestMapping("/productionMachineRecord") @AllArgsConstructor @Api(tags = "çäº§ä¸æºè®°å½è¡¨") public class ProductionMachineRecordController { private final ProductionMachineRecordService productionMachineRecordService; @GetMapping("/listPage") @ApiOperation("å页æ¥è¯¢") public R listPage(Page<ProductionMachineRecordDto> page, ProductionMachineRecordDto productionMachineRecord) { return R.ok(productionMachineRecordService.listPage(page, productionMachineRecord)); } @PostMapping("/add") @ApiOperation("æ·»å ") public R add(@RequestBody ProductionMachineRecordDto productionMachineRecordDto) { return R.ok(productionMachineRecordService.add(productionMachineRecordDto.getProductionMachineRecord())); } @DeleteMapping("/delete") @ApiOperation("å é¤") public R delete(@RequestBody List<Long> ids) { return R.ok(productionMachineRecordService.delete(ids)); } } src/main/java/com/ruoyi/production/dto/ProductProcessDto.java
@@ -1,16 +1,19 @@ package com.ruoyi.production.dto; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.production.pojo.ProductProcess; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data @ApiModel public class ProductProcessDto extends ProductProcess { @ApiModelProperty(value = "æ¥å·¥ç¨æ·åç§°") private String userNames; @ApiModelProperty(value = "æ¥å·¥ç¨æ·id") private List<Long> ids; } src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
@@ -1,14 +1,11 @@ package com.ruoyi.production.dto; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.production.pojo.ProductWorkOrder; import com.ruoyi.production.pojo.ProductWorkOrderFile; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.List; @EqualsAndHashCode(callSuper = true) @Data @@ -47,4 +44,7 @@ private String deviceName; private Long deviceId; @ApiModelProperty(value = "å·¥åå¤çç¨æ·ids") private String processUserIds; } src/main/java/com/ruoyi/production/dto/ProductionMachineRecordDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.ruoyi.production.dto; import com.ruoyi.production.pojo.ProductionMachineRecord; import lombok.Data; import java.util.List; @Data public class ProductionMachineRecordDto extends ProductionMachineRecord { private String nickName; private String deviceName; private List<ProductionMachineRecordDto> productionMachineRecord; private List<Long> operatorIds; } src/main/java/com/ruoyi/production/mapper/ProductionMachineRecordMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.production.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.production.dto.ProductionMachineRecordDto; import com.ruoyi.production.pojo.ProductionMachineRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * <p> * çäº§ä¸æºè®°å½è¡¨ Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-04-27 06:12:04 */ @Mapper public interface ProductionMachineRecordMapper extends BaseMapper<ProductionMachineRecord> { IPage<ProductionMachineRecordDto> listPage(Page<ProductionMachineRecordDto> page, @Param("ew") ProductionMachineRecordDto productionMachineRecord); } src/main/java/com/ruoyi/production/pojo/ProductProcess.java
@@ -55,6 +55,10 @@ @Excel(name = "夿³¨") private String remark; @ApiModelProperty(value ="æ¥å·¥äººids") @TableField(value = "user_ids") @Excel(name = "æ¥å·¥äººids") private String userIds; /** * å·¥èµå®é¢ src/main/java/com/ruoyi/production/pojo/ProductionMachineRecord.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ package com.ruoyi.production.pojo; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; /** * <p> * çäº§ä¸æºè®°å½è¡¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-04-27 06:12:04 */ @Getter @Setter @TableName("production_machine_record") @ApiModel(value = "ProductionMachineRecord对象", description = "çäº§ä¸æºè®°å½è¡¨") public class ProductionMachineRecord implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("主é®ID") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty("å·¥åID") private Long workOrderId; @ApiModelProperty("䏿ºäººID") private String operatorId; @ApiModelProperty("䏿ºæºå°ID") private Long machineId; @ApiModelProperty("æ¬æ¬¡ä¸æºæ¶é´") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime machineStartTime; @ApiModelProperty("䏿ºæ¶é´") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime machineEndTime; @ApiModelProperty("æ¥å·¥ç¶æï¼0-æªæ¥å·¥ï¼1-å·²æ¥å·¥") private Boolean reportStatus; @ApiModelProperty("æ¥å·¥å·¥æ¶") private BigDecimal reportHours; @ApiModelProperty("ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; @ApiModelProperty("å建è ") private String createBy; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("æ´æ°è ") private String updateBy; @ApiModelProperty("æ´æ°æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty("夿³¨") private String remark; @ApiModelProperty("å 餿 å¿ï¼0代表åå¨ 1代表å é¤ï¼") private String delFlag; } src/main/java/com/ruoyi/production/service/ProductProcessService.java
@@ -3,14 +3,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.device.pojo.DeviceRepair; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.production.dto.*; import com.ruoyi.production.dto.ProductProcessDto; import com.ruoyi.production.pojo.ProductProcess; import com.ruoyi.production.pojo.SalesLedgerScheduling; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -25,4 +22,6 @@ AjaxResult importData(MultipartFile file); String batchDelete(List<Integer> ids); String updateProcess(ProductProcessDto productProcess); } src/main/java/com/ruoyi/production/service/ProductionMachineRecordService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.production.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.production.dto.ProductionMachineRecordDto; import com.ruoyi.production.pojo.ProductionMachineRecord; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * <p> * çäº§ä¸æºè®°å½è¡¨ æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-04-27 06:12:04 */ public interface ProductionMachineRecordService extends IService<ProductionMachineRecord> { IPage<ProductionMachineRecordDto> listPage(Page<ProductionMachineRecordDto> page, ProductionMachineRecordDto productionMachineRecord); Boolean add(List<ProductionMachineRecordDto> productionMachineRecordDtoList); Object delete(List<Long> ids); } src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.device.mapper.DeviceLedgerMapper; import com.ruoyi.device.pojo.DeviceLedger; @@ -19,12 +18,15 @@ import com.ruoyi.production.pojo.ProductProcess; import com.ruoyi.production.pojo.ProductProcessRouteItem; import com.ruoyi.production.service.ProductProcessService; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.mapper.SysUserMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -40,15 +42,33 @@ @Autowired private DeviceLedgerMapper deviceLedgerMapper; @Override public IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto) { return productProcessMapper.listPage(page, productProcessDto); } @Autowired private SysUserMapper userMapper; @Override public IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto) { IPage<ProductProcessDto> productProcessDtoIPage = productProcessMapper.listPage(page, productProcessDto); productProcessDtoIPage.getRecords().forEach(item -> { if (ObjectUtils.isNotEmpty(item.getUserIds())) { List<Long> userIds = Arrays.stream(item.getUserIds().split(",")) .filter(s -> !s.trim().isEmpty() && !"null".equals(s)) .map(Long::parseLong) .collect(Collectors.toList()); item.setIds(userIds); if (!userIds.isEmpty()) { List<SysUser> sysUsers = userMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds)); item.setUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(","))); } } }); return productProcessDtoIPage; } @Override public AjaxResult add(ProductProcessDto productProcessDto) { String idStr = String.join(",", productProcessDto.getUserIds()); ProductProcess productProcess = new ProductProcess(); BeanUtils.copyProperties(productProcessDto,productProcess); BeanUtils.copyProperties(productProcessDto, productProcess); productProcess.setUserIds(idStr); boolean save = productProcessMapper.insert(productProcess) > 0; if (save && ObjectUtils.isNull(productProcessDto.getNo())) { // æ ¹æ®idçænoåæ®µï¼GX + 8使°åï¼ä¸è¶³8ä½åé¢è¡¥0ï¼ @@ -66,7 +86,7 @@ try { ExcelUtil<ProductProcess> util = new ExcelUtil<ProductProcess>(ProductProcess.class); List<ProductProcess> productProcessList = util.importExcel(file.getInputStream()); if(CollectionUtils.isEmpty(productProcessList)){ if (CollectionUtils.isEmpty(productProcessList)) { return AjaxResult.warn("模æ¿é误æå¯¼å ¥æ°æ®ä¸ºç©º"); } productProcessList.forEach(productProcess -> { @@ -83,7 +103,7 @@ // éè¿æºå°åç§°æ¥è¯¢æºå°ä¿¡æ¯ List<String> deviceNames = productProcessList.stream().map(ProductProcess::getDeviceName).collect(Collectors.toList()); List<DeviceLedger> deviceLedgerList = deviceLedgerMapper.selectList(Wrappers.<DeviceLedger>lambdaQuery().in(DeviceLedger::getDeviceName, deviceNames)); if(CollectionUtils.isEmpty(deviceLedgerList)){ if (CollectionUtils.isEmpty(deviceLedgerList)) { throw new RuntimeException("æªè½æ¥è¯¢å°è¯¥æºå°ä¿¡æ¯ï¼è¯·æ£æ¥æºå°åç§°æ¯å¦æ£ç¡®"); } Map<String, DeviceLedger> deviceNameMap = deviceLedgerList.stream().collect(Collectors.toMap(DeviceLedger::getDeviceName, deviceLedger -> deviceLedger)); @@ -91,7 +111,7 @@ DeviceLedger deviceLedger = deviceNameMap.get(productProcess.getDeviceName()); productProcess.setDeviceLeaderId(deviceLedger.getId()); this.save(productProcess); if(StrUtil.isEmpty(productProcess.getNo())){ if (StrUtil.isEmpty(productProcess.getNo())) { String no = "GX" + String.format("%08d", productProcess.getId()); productProcess.setNo(no); productProcessMapper.updateById(productProcess); @@ -100,7 +120,7 @@ }); return AjaxResult.success(true); }catch (Exception e){ } catch (Exception e) { e.printStackTrace(); return AjaxResult.error(e.getMessage()); } @@ -111,10 +131,22 @@ //æ¥è¯¢æ¯å¦ç产ä¸å·²ç»å¼ç¨äºè¿äºå·¥åº List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery().in(ProcessRouteItem::getProcessId, ids)); List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().in(ProductProcessRouteItem::getProcessId, ids)); if (!CollectionUtils.isEmpty(processRouteItems) || !CollectionUtils.isEmpty(productProcessRouteItems)){ if (!CollectionUtils.isEmpty(processRouteItems) || !CollectionUtils.isEmpty(productProcessRouteItems)) { throw new RuntimeException("该工åºå·²ç»è¢«ä½¿ç¨ï¼æ æ³å é¤"); } productProcessMapper.deleteBatchIds(ids); return null; } @Override public String updateProcess(ProductProcessDto productProcess) { if (ObjectUtils.isEmpty(productProcess.getIds())) { throw new RuntimeException("æ¥å·¥ç¨æ·ä¸è½ä¸ºç©º"); } productProcess.setUserIds(productProcess.getIds().stream() .map(String::valueOf) .collect(Collectors.joining(","))); productProcessMapper.updateById(productProcess); return ""; } } src/main/java/com/ruoyi/production/service/impl/ProductionMachineRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,111 @@ package com.ruoyi.production.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.production.dto.ProductionMachineRecordDto; import com.ruoyi.production.mapper.ProductWorkOrderMapper; import com.ruoyi.production.mapper.ProductionMachineRecordMapper; import com.ruoyi.production.pojo.ProductWorkOrder; import com.ruoyi.production.pojo.ProductionMachineRecord; import com.ruoyi.production.service.ProductionMachineRecordService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * <p> * çäº§ä¸æºè®°å½è¡¨ æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-04-27 06:12:04 */ @Service @RequiredArgsConstructor public class ProductionMachineRecordServiceImpl extends ServiceImpl<ProductionMachineRecordMapper, ProductionMachineRecord> implements ProductionMachineRecordService { private final ProductionMachineRecordMapper productionMachineRecordMapper; private final ProductWorkOrderMapper productWorkOrderMapper; @Override public IPage<ProductionMachineRecordDto> listPage(Page<ProductionMachineRecordDto> page, ProductionMachineRecordDto productionMachineRecord) { return productionMachineRecordMapper.listPage(page, productionMachineRecord); } @Override @Transactional(rollbackFor = Exception.class) public Boolean add(List<ProductionMachineRecordDto> productionMachineRecord) { for (ProductionMachineRecordDto productionMachineRecordDto : productionMachineRecord) { this.saveOrUpdate(productionMachineRecordDto); ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionMachineRecordDto.getWorkOrderId()); if (productWorkOrder != null) { String userIds = productWorkOrder.getUserIds(); String operatorId = productionMachineRecordDto.getOperatorId(); if (ObjectUtils.isNotEmpty(operatorId)) { if (userIds == null || userIds.isEmpty()) { productWorkOrder.setUserIds(operatorId); } else { List<String> userIdList = new ArrayList<>(Arrays.asList(userIds.split(","))); List<String> operatorIdList = Arrays.asList(operatorId.split(",")); for (String opId : operatorIdList) { String trimmedOpId = opId.trim(); if (!userIdList.contains(trimmedOpId)) { userIdList.add(trimmedOpId); } } productWorkOrder.setUserIds(String.join(",", userIdList)); } } productWorkOrder.setDeviceId(productionMachineRecordDto.getMachineId()); productWorkOrderMapper.updateById(productWorkOrder); } else { throw new RuntimeException("æä½å¤±è´¥ï¼å·¥åä¿¡æ¯ä¸åå¨"); } } return true; } @Override @Transactional(rollbackFor = Exception.class) public Object delete(List<Long> ids) { List<ProductionMachineRecord> productionMachineRecords = this.listByIds(ids); for (ProductionMachineRecord productionMachineRecord : productionMachineRecords) { ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionMachineRecord.getWorkOrderId()); if (productWorkOrder != null) { String operatorId = productionMachineRecord.getOperatorId(); if (operatorId != null && !operatorId.isEmpty()) { List<String> operatorIdList = Arrays.asList(operatorId.split(",")); List<String> userIdsToRemove = new ArrayList<>(); for (String opId : operatorIdList) { String trimmedOpId = opId.trim(); Long count = this.lambdaQuery() .eq(ProductionMachineRecord::getWorkOrderId, productionMachineRecord.getWorkOrderId()) .ne(ProductionMachineRecord::getId, productionMachineRecord.getId()) .apply("FIND_IN_SET({0}, operator_id)", trimmedOpId) .count(); if (count == 0) { userIdsToRemove.add(trimmedOpId); } } if (!userIdsToRemove.isEmpty()) { String userIds = productWorkOrder.getUserIds(); if (userIds != null && !userIds.isEmpty()) { List<String> userIdList = new ArrayList<>(Arrays.asList(userIds.split(","))); userIdList.removeAll(userIdsToRemove); productWorkOrder.setUserIds(String.join(",", userIdList)); productWorkOrderMapper.updateById(productWorkOrder); } } } } } return this.removeByIds(ids); } } src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -31,6 +31,7 @@ import com.ruoyi.quality.mapper.*; import com.ruoyi.quality.pojo.*; import com.ruoyi.quality.service.IQualityInspectService; import com.ruoyi.sales.mapper.SalesLedgerMapper; import lombok.AllArgsConstructor; import org.springframework.aop.framework.AopContext; import org.springframework.stereotype.Service; @@ -52,6 +53,7 @@ @Transactional(rollbackFor = Exception.class) public class ProductionProductMainServiceImpl extends ServiceImpl<ProductionProductMainMapper, ProductionProductMain> implements ProductionProductMainService { private final SalesLedgerMapper salesLedgerMapper; private IQualityInspectService qualityInspectService; private ProductionProductMainMapper productionProductMainMapper; @@ -102,7 +104,6 @@ LocalDateTime now = LocalDateTime.now(); ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(dto.getWorkOrderId()); SysUser user = userMapper.selectUserById(dto.getUserId()); ProductionProductMain productionProductMain = new ProductionProductMain(); //å½åå·¥èºè·¯çº¿å¯¹åºçå·¥åºè¯¦æ ProductProcessRouteItem productProcessRouteItem = productProcessRouteItemMapper.selectById(dto.getProductProcessRouteItemId()); @@ -150,8 +151,9 @@ productionProductMain.setTeamIds(dto.getTeamList().stream().map(ProductionProductMainDto.Team::getUserId).map(String::valueOf).collect(Collectors.joining(","))); productionProductMain.setTeamNames(dto.getTeamList().stream().map(ProductionProductMainDto.Team::getUserName).collect(Collectors.joining(","))); productionProductMain.setUserId(dto.getTeamList().get(0).getUserId()); productionProductMain.setUserName(dto.getTeamList().get(0).getUserName()); //æ¥å·¥äºº æ¯ è°æ¥å·¥å°±æ¯æ¯è° productionProductMain.setUserId(SecurityUtils.getUserId()); productionProductMain.setUserName(SecurityUtils.getLoginUser().getNickName()); src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -31,7 +31,8 @@ WHEN pwo.work_order_no LIKE 'FG%' THEN 'è¿å·¥è¿ä¿®' ELSE 'æ£å¸¸' END AS work_order_type, pp.device_name pp.device_name, pp.user_ids as process_user_ids FROM product_work_order pwo LEFT JOIN product_process_route_item ppri ON ppri.id = pwo.product_process_route_item_id src/main/resources/mapper/production/ProductionMachineRecordMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.production.mapper.ProductionMachineRecordMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionMachineRecord"> <id column="id" property="id" /> <result column="work_order_id" property="workOrderId" /> <result column="process_id" property="processId" /> <result column="operator_id" property="operatorId" /> <result column="machine_id" property="machineId" /> <result column="machine_start_time" property="machineStartTime" /> <result column="machine_end_time" property="machineEndTime" /> <result column="report_status" property="reportStatus" /> <result column="report_hours" property="reportHours" /> <result column="tenant_id" property="tenantId" /> <result column="create_by" property="createBy" /> <result column="create_time" property="createTime" /> <result column="update_by" property="updateBy" /> <result column="update_time" property="updateTime" /> <result column="remark" property="remark" /> <result column="del_flag" property="delFlag" /> </resultMap> <select id="listPage" resultType="com.ruoyi.production.dto.ProductionMachineRecordDto"> select pmr.*,su.nick_name,dl.device_name from production_machine_record pmr left join device_ledger dl on pmr.machine_id = dl.id left join sys_user su on pmr.operator_id = su.user_id <where> <if test="ew.workOrderId != null"> and pmr.work_order_id = #{ew.workOrderId} </if> </where> </select> </mapper>