Commit 6b633c41 authored by 李驰骋's avatar 李驰骋

Merge remote-tracking branch 'origin/master'

parents 83d11194 0517b307
...@@ -215,4 +215,6 @@ qc.error.error6=\u68C0\u6D4B\u9879\u7F16\u53F7\u5DF2\u5B58\u5728 ...@@ -215,4 +215,6 @@ qc.error.error6=\u68C0\u6D4B\u9879\u7F16\u53F7\u5DF2\u5B58\u5728
qc.error.error7=\u68C0\u6D4B\u9879\u540D\u79F0\u5DF2\u5B58\u5728 qc.error.error7=\u68C0\u6D4B\u9879\u540D\u79F0\u5DF2\u5B58\u5728
#system.printer #system.printer
system.printer.error.repeat.bind=\u8BE5\u6253\u5370\u673A\u5DF2\u7ED1\u5B9A\u4E86 system.printer.error.repeat.bind=\u8BE5\u6253\u5370\u673A\u5DF2\u7ED1\u5B9A\u4E86
rule.currentSerial.error= \u8BE5\u4EA7\u54C1\u5E8F\u5217\u53F7\u5269\u4F59:{0}\u4E0D\u6EE1\u8DB3\u5DE5\u5355\u6570\u91CF:{1} rule.currentSerial.error= \u8BE5\u4EA7\u54C1\u5E8F\u5217\u53F7\u5269\u4F59:{0}\u4E0D\u6EE1\u8DB3\u5DE5\u5355\u6570\u91CF:{1}
\ No newline at end of file #工作单元编不唯一
md.workUnit.error.workunitCode.unique = \u5de5\u5355\u5355\u5143\u7f16\u7801\u5df2\u5b58\u5728
\ No newline at end of file
...@@ -212,4 +212,6 @@ qc.error.error6=Inspection item number already exists. ...@@ -212,4 +212,6 @@ qc.error.error6=Inspection item number already exists.
qc.error.error7=Inspection item name already exists. qc.error.error7=Inspection item name already exists.
#system.printer #system.printer
system.printer.error.repeat.bind=This printer has been bound. system.printer.error.repeat.bind=This printer has been bound.
rule.currentSerial.error= The remaining quantity of the product serial number is insufficient :{0} , workorder quantity : {1} rule.currentSerial.error= The remaining quantity of the product serial number is insufficient :{0} , workorder quantity : {1}
\ No newline at end of file #工作单元编不唯一
md.workUnit.error.workunitCode.unique = unique workunitCode.
\ No newline at end of file
...@@ -217,4 +217,6 @@ system.printer.error.repeat.bind=\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E1 ...@@ -217,4 +217,6 @@ system.printer.error.repeat.bind=\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E1
md.workStation.error.not.productionSolutionCode = \u0050\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e\u0053\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0043\u006f\u0064\u0065\u0020\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e01\u0e23\u0e2d\u0e01 md.workStation.error.not.productionSolutionCode = \u0050\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e\u0053\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0043\u006f\u0064\u0065\u0020\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e01\u0e23\u0e2d\u0e01
md.workStation.error.productionSolutionCode.unique = \u0050\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e\u0053\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0043\u006f\u0064\u0065\u003a\u0020\u0e44\u0e21\u0e48\u0e40\u0e09\u0e1e\u0e32\u0e30 md.workStation.error.productionSolutionCode.unique = \u0050\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e\u0053\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0043\u006f\u0064\u0065\u003a\u0020\u0e44\u0e21\u0e48\u0e40\u0e09\u0e1e\u0e32\u0e30
md.workStation.error.productionSolutionCode.size = \u0050\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e\u0053\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0043\u006f\u0064\u0065\u003a\u0020\u0e21\u0e35\u0e04\u0e48\u0e32\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 md.workStation.error.productionSolutionCode.size = \u0050\u0072\u006f\u0064\u0075\u0063\u0074\u0069\u006f\u006e\u0053\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0043\u006f\u0064\u0065\u003a\u0020\u0e21\u0e35\u0e04\u0e48\u0e32\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27
rule.currentSerial.error= \u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0020\u0e40\u0e2b\u0e25\u0e37\u0e2d {0},\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e08\u0e33\u0e19\u0e27\u0e19\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e07\u0e32\u0e19{1} rule.currentSerial.error= \u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0020\u0e40\u0e2b\u0e25\u0e37\u0e2d {0},\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e08\u0e33\u0e19\u0e27\u0e19\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e07\u0e32\u0e19{1}
\ No newline at end of file #工作单元编不唯一
md.workUnit.error.workunitCode.unique = \u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27
\ No newline at end of file
...@@ -215,4 +215,6 @@ qc.error.error6=\u68C0\u6D4B\u9879\u7F16\u53F7\u5DF2\u5B58\u5728 ...@@ -215,4 +215,6 @@ qc.error.error6=\u68C0\u6D4B\u9879\u7F16\u53F7\u5DF2\u5B58\u5728
qc.error.error7=\u68C0\u6D4B\u9879\u540D\u79F0\u5DF2\u5B58\u5728 qc.error.error7=\u68C0\u6D4B\u9879\u540D\u79F0\u5DF2\u5B58\u5728
#system.printer #system.printer
system.printer.error.repeat.bind=\u8BE5\u6253\u5370\u673A\u5DF2\u7ED1\u5B9A\u4E86 system.printer.error.repeat.bind=\u8BE5\u6253\u5370\u673A\u5DF2\u7ED1\u5B9A\u4E86
rule.currentSerial.error= \u8BE5\u4EA7\u54C1\u5E8F\u5217\u53F7\u5269\u4F59:{0}\u4E0D\u6EE1\u8DB3\u5DE5\u5355\u6570\u91CF:{1} rule.currentSerial.error= \u8BE5\u4EA7\u54C1\u5E8F\u5217\u53F7\u5269\u4F59:{0}\u4E0D\u6EE1\u8DB3\u5DE5\u5355\u6570\u91CF:{1}
\ No newline at end of file #工作单元编不唯一
md.workUnit.error.workunitCode.unique = \u5de5\u5355\u5355\u5143\u7f16\u7801\u5df2\u5b58\u5728
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<!-- 日志存放路径 --> <!-- 日志存放路径 -->
<property name="log.path" value="d:/logs/mes" /> <property name="log.path" value="/home/ximai/logs" />
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制台输出 --> <!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> </encoder>
</encoder> </appender>
</appender>
<!-- 系统日志输出 --> <!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file> <file>${log.path}/sys-info.log</file>
<!-- 循环政策:基于时间创建日志文件 --> <!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 --> <!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 --> <!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory> <maxHistory>60</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset> </encoder>
</encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 --> <!-- 过滤的级别 -->
<level>INFO</level> <level>INFO</level>
<!-- 匹配时的操作:接收(记录) --> <!-- 匹配时的操作:接收(记录) -->
...@@ -35,34 +33,33 @@ ...@@ -35,34 +33,33 @@
<!-- 不匹配时的操作:拒绝(不记录) --> <!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
</filter> </filter>
</appender> </appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file> <file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 --> <!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 --> <!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 --> <!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory> <maxHistory>60</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder> </encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter"> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 --> <!-- 过滤的级别 -->
<level>ERROR</level> <level>ERROR</level>
<!-- 匹配时的操作:接收(记录) --> <!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) --> <!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
</filter> </filter>
</appender> </appender>
<!-- 用户访问日志输出 --> <!-- 用户访问日志输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file> <file>${log.path}/sys-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily --> <!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
...@@ -71,7 +68,6 @@ ...@@ -71,7 +68,6 @@
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder> </encoder>
</appender> </appender>
...@@ -86,26 +82,25 @@ ...@@ -86,26 +82,25 @@
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder> </encoder>
</appender> </appender>
<!-- 系统模块日志级别控制 --> <!-- 系统模块日志级别控制 -->
<logger name="com.ximai" level="info" /> <logger name="com.ximai" level="info" />
<!-- Spring日志级别控制 --> <!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" /> <logger name="org.springframework" level="warn" />
<root level="info"> <root level="info">
<appender-ref ref="console" /> <appender-ref ref="console" />
</root> </root>
<!--系统操作日志--> <!--系统操作日志-->
<root level="info"> <root level="info">
<appender-ref ref="file_info" /> <appender-ref ref="file_info" />
<appender-ref ref="file_error" /> <appender-ref ref="file_error" />
</root> </root>
<!--系统用户操作日志--> <!--系统用户操作日志-->
<logger name="sys-user" level="info"> <logger name="sys-user" level="info">
<appender-ref ref="sys-user"/> <appender-ref ref="sys-user"/>
</logger> </logger>
......
...@@ -3,6 +3,7 @@ package com.ximai.mes.md.service.impl; ...@@ -3,6 +3,7 @@ package com.ximai.mes.md.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ximai.common.core.domain.AjaxResult;
import com.ximai.common.utils.MessageUtils; import com.ximai.common.utils.MessageUtils;
import com.ximai.common.utils.data.DateUtils; import com.ximai.common.utils.data.DateUtils;
import com.ximai.common.utils.data.ExceptionUtil; import com.ximai.common.utils.data.ExceptionUtil;
...@@ -93,6 +94,9 @@ public class MdWorkunitServiceImpl implements IMdWorkunitService { ...@@ -93,6 +94,9 @@ public class MdWorkunitServiceImpl implements IMdWorkunitService {
MdWorkstation mdWorkstation = mdWorkstationMapper.selectMdWorkstationByWorkstationId(mdWorkunit.getWorkstationId()); MdWorkstation mdWorkstation = mdWorkstationMapper.selectMdWorkstationByWorkstationId(mdWorkunit.getWorkstationId());
if(mdWorkstation != null) if(mdWorkstation != null)
mdWorkunit.setWorkstationCode(mdWorkstation.getWorkstationCode()); mdWorkunit.setWorkstationCode(mdWorkstation.getWorkstationCode());
}else{
MdWorkunit mdWorkunitCheck = mdWorkunitMapper.selectMdWorkunitByWorkunitCodes(mdWorkunit.getWorkunitCode());
ExceptionUtil.checkTrueThrowException(mdWorkunitCheck != null, MessageUtils.message("md.workUnit.error.workunitCode.unique"));
} }
return mdWorkunitMapper.insertMdWorkunit(mdWorkunit); return mdWorkunitMapper.insertMdWorkunit(mdWorkunit);
} }
......
...@@ -318,7 +318,8 @@ public class ProTask extends BaseEntity { ...@@ -318,7 +318,8 @@ public class ProTask extends BaseEntity {
private String idx; private String idx;
@ApiModelProperty("超报标识") @ApiModelProperty("超报标识")
private Boolean surpassState; private Boolean surpassState;
@TableField(exist = false)
private String processRemark;
public String getStatusName() { public String getStatusName() {
return TaskStatusEnum.getStatusCn(this.getStatus()); return TaskStatusEnum.getStatusCn(this.getStatus());
} }
......
...@@ -125,4 +125,16 @@ public interface ProFeedbackMapper { ...@@ -125,4 +125,16 @@ public interface ProFeedbackMapper {
void updateLastFeedback(@Param("qrcode")String qrcode, @Param("taskId")Long taskId); void updateLastFeedback(@Param("qrcode")String qrcode, @Param("taskId")Long taskId);
List<FeedbackResponse> getList(FeedbackRequest feedbackRequest); List<FeedbackResponse> getList(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkOrder(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkshop(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkstation(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkunit(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByProcess(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByUser(FeedbackRequest feedbackRequest);
} }
...@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ximai.common.exception.ServiceException; import com.ximai.common.exception.ServiceException;
import com.ximai.common.utils.MessageUtils; import com.ximai.common.utils.MessageUtils;
import com.ximai.common.utils.SecurityUtils;
import com.ximai.common.utils.data.DataUtil; import com.ximai.common.utils.data.DataUtil;
import com.ximai.common.utils.data.ExceptionUtil; import com.ximai.common.utils.data.ExceptionUtil;
import com.ximai.common.utils.data.StringUtils; import com.ximai.common.utils.data.StringUtils;
...@@ -224,6 +225,9 @@ public class ProProductionSolutionServiceImpl implements IProProductionSolutionS ...@@ -224,6 +225,9 @@ public class ProProductionSolutionServiceImpl implements IProProductionSolutionS
} }
// 保存主数据 // 保存主数据
String createBy = SecurityUtils.getUsername();
proProductionSolution.setCreateBy(createBy);
proProductionSolution.setCreateTime(new Date());
int i = proProductionSolutionMapper.insertProProductionSolution(proProductionSolution); int i = proProductionSolutionMapper.insertProProductionSolution(proProductionSolution);
if (i != 1) { if (i != 1) {
return 2; return 2;
...@@ -397,6 +401,9 @@ public class ProProductionSolutionServiceImpl implements IProProductionSolutionS ...@@ -397,6 +401,9 @@ public class ProProductionSolutionServiceImpl implements IProProductionSolutionS
ProProductionSolution proProductionSolution = proProductionSolutionMapper.selectProProductionSolutionByProductionSolutionId(proProductionSolutionVo.getProductionSolutionId()); ProProductionSolution proProductionSolution = proProductionSolutionMapper.selectProProductionSolutionByProductionSolutionId(proProductionSolutionVo.getProductionSolutionId());
proProductionSolution.setRemark(proProductionSolutionVo.getRemark()); proProductionSolution.setRemark(proProductionSolutionVo.getRemark());
BeanUtils.copyProperties(proProductionSolutionVo, proProductionSolution); BeanUtils.copyProperties(proProductionSolutionVo, proProductionSolution);
String createBy = SecurityUtils.getUsername();
proProductionSolution.setCreateBy(createBy);
proProductionSolution.setCreateTime(new Date());
int i = proProductionSolutionMapper.updateProProductionSolution(proProductionSolution); int i = proProductionSolutionMapper.updateProProductionSolution(proProductionSolution);
// 获取打样工序 // 获取打样工序
......
...@@ -29,8 +29,10 @@ import com.ximai.mes.pro.domain.productionSolution.ProProductionSolution; ...@@ -29,8 +29,10 @@ import com.ximai.mes.pro.domain.productionSolution.ProProductionSolution;
import com.ximai.mes.pro.domain.task.*; import com.ximai.mes.pro.domain.task.*;
import com.ximai.mes.pro.domain.vo.*; import com.ximai.mes.pro.domain.vo.*;
import com.ximai.mes.pro.domain.vo.task.FeedbackValidateSerialNoParams; import com.ximai.mes.pro.domain.vo.task.FeedbackValidateSerialNoParams;
import com.ximai.mes.pro.dto.ProProductQrcodeRecordDto;
import com.ximai.mes.pro.dto.task.ProTaskLinkFile; import com.ximai.mes.pro.dto.task.ProTaskLinkFile;
import com.ximai.mes.pro.mapper.ProProcessMapper; import com.ximai.mes.pro.mapper.ProProcessMapper;
import com.ximai.mes.pro.mapper.ProProductQrcodeRecordMapper;
import com.ximai.mes.pro.mapper.ProProductionLogMapper; import com.ximai.mes.pro.mapper.ProProductionLogMapper;
import com.ximai.mes.pro.mapper.ProRouteMapper; import com.ximai.mes.pro.mapper.ProRouteMapper;
import com.ximai.mes.pro.mapper.proWorkOrder.ProWorkOrderProcessMapper; import com.ximai.mes.pro.mapper.proWorkOrder.ProWorkOrderProcessMapper;
...@@ -161,6 +163,8 @@ public class ProTaskServiceImpl implements IProTaskService { ...@@ -161,6 +163,8 @@ public class ProTaskServiceImpl implements IProTaskService {
@Autowired @Autowired
ProProductionSolutionMapper proProductionSolutionMapper; ProProductionSolutionMapper proProductionSolutionMapper;
@Autowired
ProProductQrcodeRecordMapper proProductQrcodeRecordMapper;
/** /**
* 查询生产任务 * 查询生产任务
* *
...@@ -1393,9 +1397,17 @@ public class ProTaskServiceImpl implements IProTaskService { ...@@ -1393,9 +1397,17 @@ public class ProTaskServiceImpl implements IProTaskService {
Double v = proFeedbackService.selectQuantityQualifySum(new ProFeedback(arrangeCode, null, null, task.getTaskWorkunitId())); Double v = proFeedbackService.selectQuantityQualifySum(new ProFeedback(arrangeCode, null, null, task.getTaskWorkunitId()));
task.setArrangeFeedbackSum(v); task.setArrangeFeedbackSum(v);
} }
//增加校验是否序列号报工
if(StringUtils.isNotEmpty(task.getIsSerialReport()) && "1".equals(task.getIsSerialReport())){
QueryWrapper<ProProductQrcodeRecord> proProductQrcodeRecordQuery = new QueryWrapper<>();
proProductQrcodeRecordQuery.eq("m.work_order_no",task.getArrangeCode());
List<ProProductQrcodeRecordDto> proProductQrcodeRecordDtos = proProductQrcodeRecordMapper.selectDtoListByQw(proProductQrcodeRecordQuery);
if(proProductQrcodeRecordDtos.size() < 1){
task.setIsSerialReport("0");
}
}
} }
} }
Set<Long> taskWorkunitIds = rst.stream().map(ProTask::getTaskWorkunitId).collect(Collectors.toSet()); Set<Long> taskWorkunitIds = rst.stream().map(ProTask::getTaskWorkunitId).collect(Collectors.toSet());
if (CollectionUtil.isNotEmpty(taskWorkunitIds)) { if (CollectionUtil.isNotEmpty(taskWorkunitIds)) {
Map<Long, ProTaskAssistProcess> assistProcessMap = proTaskAssistProcessMapper.selectListByQw(new QueryWrapper<ProTaskAssistProcess>().in("task_workunit_id", taskWorkunitIds)).stream().collect(Collectors.toMap(ProTaskAssistProcess::getTaskWorkunitId, x -> x)); Map<Long, ProTaskAssistProcess> assistProcessMap = proTaskAssistProcessMapper.selectListByQw(new QueryWrapper<ProTaskAssistProcess>().in("task_workunit_id", taskWorkunitIds)).stream().collect(Collectors.toMap(ProTaskAssistProcess::getTaskWorkunitId, x -> x));
......
...@@ -43,6 +43,7 @@ import com.ximai.mes.tm.mapper.TmToolMapper; ...@@ -43,6 +43,7 @@ import com.ximai.mes.tm.mapper.TmToolMapper;
import com.ximai.mes.tm.mapper.TmToolRequestUseItemMapper; import com.ximai.mes.tm.mapper.TmToolRequestUseItemMapper;
import com.ximai.mes.tm.service.ITmToolRequestService; import com.ximai.mes.tm.service.ITmToolRequestService;
import com.ximai.system.mapper.SysUserMapper; import com.ximai.system.mapper.SysUserMapper;
import com.ximai.system.service.ISysDictDataService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -75,7 +76,8 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService { ...@@ -75,7 +76,8 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
private IProTaskWorkunitService proTaskWorkunitService; private IProTaskWorkunitService proTaskWorkunitService;
@Resource @Resource
private ProWorkorderMapper proWorkorderMapper; private ProWorkorderMapper proWorkorderMapper;
@Autowired
private ISysDictDataService dictDataService;
@Resource @Resource
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@Autowired @Autowired
...@@ -596,6 +598,7 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService { ...@@ -596,6 +598,7 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
ProWorkorder proWorkorder = proWorkorderMapper.selectProWorkorderWorderCode(taskBatchTasks.get(0).getArrangeCode()); ProWorkorder proWorkorder = proWorkorderMapper.selectProWorkorderWorderCode(taskBatchTasks.get(0).getArrangeCode());
TaskProWorkorderPrintData taskProWorkorderPrintData = new TaskProWorkorderPrintData(); TaskProWorkorderPrintData taskProWorkorderPrintData = new TaskProWorkorderPrintData();
BeanUtil.copyProperties(proWorkorder,taskProWorkorderPrintData); BeanUtil.copyProperties(proWorkorder,taskProWorkorderPrintData);
taskProWorkorderPrintData.setWorkorderType(dictDataService.getDictLabel("mes_workorder_type", taskProWorkorderPrintData.getWorkorderType()));
value.put("header",taskProWorkorderPrintData); value.put("header",taskProWorkorderPrintData);
value.put("detail",taskProPrintDatas); value.put("detail",taskProPrintDatas);
if(taskProWorkorderPrintData.getExpectStartDate() != null || taskProWorkorderPrintData.getRequestDate() != null){ if(taskProWorkorderPrintData.getExpectStartDate() != null || taskProWorkorderPrintData.getRequestDate() != null){
...@@ -607,6 +610,7 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService { ...@@ -607,6 +610,7 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
taskProPrintData.setExpectStartDateString(begin); taskProPrintData.setExpectStartDateString(begin);
taskProPrintData.setRequestDateString(end); taskProPrintData.setRequestDateString(end);
taskProPrintDatas.add(taskProPrintData); taskProPrintDatas.add(taskProPrintData);
} }
} }
taskProWorkorderPrintData.setSize(i++); taskProWorkorderPrintData.setSize(i++);
......
...@@ -3,6 +3,7 @@ package com.ximai.mes.report.controller; ...@@ -3,6 +3,7 @@ package com.ximai.mes.report.controller;
import com.ximai.common.annotation.Log; import com.ximai.common.annotation.Log;
import com.ximai.common.core.controller.BaseController; import com.ximai.common.core.controller.BaseController;
import com.ximai.common.core.domain.AjaxResult; import com.ximai.common.core.domain.AjaxResult;
import com.ximai.common.core.page.TableDataInfo;
import com.ximai.common.enums.BusinessType; import com.ximai.common.enums.BusinessType;
import com.ximai.mes.report.request.FeedbackRequest; import com.ximai.mes.report.request.FeedbackRequest;
import com.ximai.mes.report.response.FeedbackResponse; import com.ximai.mes.report.response.FeedbackResponse;
...@@ -14,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.List; import java.util.List;
@Api("生产报工") @Api("生产报工")
...@@ -26,12 +29,141 @@ public class FeedbackController extends BaseController { ...@@ -26,12 +29,141 @@ public class FeedbackController extends BaseController {
/** /**
* 新增生产报工记录 * 新增生产报工记录
*/ */
@ApiOperation("新增报工单接口") @ApiOperation("生产报工记录:明细界面")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:add')") @PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录", businessType = BusinessType.QUERY) @Log(title = "生产报工记录", businessType = BusinessType.QUERY)
@GetMapping("/getList") @GetMapping("/getList")
public AjaxResult getList(@RequestBody FeedbackRequest feedbackRequest) { public TableDataInfo getList(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getList(feedbackRequest); List<FeedbackResponse> feedbackResponseList = feedbackService.getList(feedbackRequest);
return null; return getDataTable(feedbackResponseList);
}
@ApiOperation("生产报工记录")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录:统计方式工单", businessType = BusinessType.QUERY)
@GetMapping("/getListByWorkOrder")
public TableDataInfo getListByWorkOrder(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getListByWorkOrder(feedbackRequest);
DecimalFormat df = new DecimalFormat("0.00%");
for(FeedbackResponse feedbackResponse : feedbackResponseList){
if(feedbackResponse.getQuantityFeedback() != null
&& feedbackResponse.getQuantityFeedback().compareTo(BigDecimal.ZERO) != 0
&& feedbackResponse.getQuantityUnqualify()!= null ){
feedbackResponse.setQualificationRate(df.format((feedbackResponse.getQuantityQualify().divide(feedbackResponse.getQuantityFeedback()).doubleValue())));
}else{
feedbackResponse.setQualificationRate("0.00%");
}
}
return getDataTable(feedbackResponseList);
}
@ApiOperation("生产报工记录:统计方式车间")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录:统计方式车间", businessType = BusinessType.QUERY)
@GetMapping("/getListByWorkshop")
public TableDataInfo getListByWorkshop(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getListByWorkshop(feedbackRequest);
DecimalFormat df = new DecimalFormat("0.00%");
for(FeedbackResponse feedbackResponse : feedbackResponseList){
if(feedbackResponse.getQuantityFeedback() != null
&& feedbackResponse.getQuantityFeedback().compareTo(BigDecimal.ZERO) != 0
&& feedbackResponse.getQuantityUnqualify()!= null ){
feedbackResponse.setQualificationRate(df.format((feedbackResponse.getQuantityQualify().divide(feedbackResponse.getQuantityFeedback()).doubleValue())));
}else{
feedbackResponse.setQualificationRate("0.00%");
}
}
return getDataTable(feedbackResponseList);
}
@ApiOperation("生产报工记录:统计方式工作中心")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录:统计方式工作中心", businessType = BusinessType.QUERY)
@GetMapping("/getListByWorkstation")
public TableDataInfo getListByWorkstation(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getListByWorkstation(feedbackRequest);
DecimalFormat df = new DecimalFormat("0.00%");
for(FeedbackResponse feedbackResponse : feedbackResponseList){
if(feedbackResponse.getQuantityFeedback() != null
&& feedbackResponse.getQuantityFeedback().compareTo(BigDecimal.ZERO) != 0
&& feedbackResponse.getQuantityUnqualify()!= null ){
feedbackResponse.setQualificationRate(df.format((feedbackResponse.getQuantityQualify().divide(feedbackResponse.getQuantityFeedback()).doubleValue())));
}else{
feedbackResponse.setQualificationRate("0.00%");
}
}
return getDataTable(feedbackResponseList);
}
@ApiOperation("生产报工记录:统计方式工作单元")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录:统计方式工作单元", businessType = BusinessType.QUERY)
@GetMapping("/getListByWorkunit")
public TableDataInfo getListByWorkunit(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getListByWorkunit(feedbackRequest);
DecimalFormat df = new DecimalFormat("0.00%");
for(FeedbackResponse feedbackResponse : feedbackResponseList){
if(feedbackResponse.getQuantityFeedback() != null
&& feedbackResponse.getQuantityFeedback().compareTo(BigDecimal.ZERO) != 0
&& feedbackResponse.getQuantityUnqualify()!= null ){
feedbackResponse.setQualificationRate(df.format((feedbackResponse.getQuantityQualify().divide(feedbackResponse.getQuantityFeedback()).doubleValue())));
}else{
feedbackResponse.setQualificationRate("0.00%");
}
}
return getDataTable(feedbackResponseList);
}
@ApiOperation("生产报工记录:统计方式工序")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录:统计方式工序", businessType = BusinessType.QUERY)
@GetMapping("/getListByProcess")
public TableDataInfo getListByProcess(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getListByProcess(feedbackRequest);
DecimalFormat df = new DecimalFormat("0.00%");
for(FeedbackResponse feedbackResponse : feedbackResponseList){
if(feedbackResponse.getQuantityFeedback() != null
&& feedbackResponse.getQuantityFeedback().compareTo(BigDecimal.ZERO) != 0
&& feedbackResponse.getQuantityUnqualify()!= null ){
feedbackResponse.setQualificationRate(df.format((feedbackResponse.getQuantityQualify().divide(feedbackResponse.getQuantityFeedback()).doubleValue())));
}else{
feedbackResponse.setQualificationRate("0.00%");
}
}
return getDataTable(feedbackResponseList);
}
@ApiOperation("生产报工记录:统计方式工序")
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产报工记录:统计方式工序", businessType = BusinessType.QUERY)
@GetMapping("/getListByUser")
public TableDataInfo getListByUser(@RequestBody FeedbackRequest feedbackRequest) {
startPage();
List<FeedbackResponse> feedbackResponseList = feedbackService.getListByUser(feedbackRequest);
DecimalFormat df = new DecimalFormat("0.00%");
for(FeedbackResponse feedbackResponse : feedbackResponseList){
if(feedbackResponse.getQuantityFeedback() != null
&& feedbackResponse.getQuantityFeedback().compareTo(BigDecimal.ZERO) != 0
&& feedbackResponse.getQuantityUnqualify()!= null ){
feedbackResponse.setQualificationRate(df.format((feedbackResponse.getQuantityQualify().divide(feedbackResponse.getQuantityFeedback()).doubleValue())));
}else{
feedbackResponse.setQualificationRate("0.00%");
}
}
return getDataTable(feedbackResponseList);
} }
} }
...@@ -4,10 +4,11 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,10 +4,11 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.ximai.common.annotation.Excel; import com.ximai.common.annotation.Excel;
import com.ximai.mes.pro.domain.ProFeedback; import com.ximai.mes.pro.domain.ProFeedback;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data
public class FeedbackResponse extends ProFeedback { public class FeedbackResponse extends ProFeedback {
/** /**
* 工单类型,项目号,订单号, * 工单类型,项目号,订单号,
...@@ -38,6 +39,8 @@ public class FeedbackResponse extends ProFeedback { ...@@ -38,6 +39,8 @@ public class FeedbackResponse extends ProFeedback {
@ApiModelProperty(name = "工单编码") @ApiModelProperty(name = "工单编码")
private String workorderCode; private String workorderCode;
@ApiModelProperty(name = "工单名称")
private String workorderName;
/** /**
* 产品编号 * 产品编号
*/ */
...@@ -56,6 +59,13 @@ public class FeedbackResponse extends ProFeedback { ...@@ -56,6 +59,13 @@ public class FeedbackResponse extends ProFeedback {
@ApiModelProperty(name = "工序任务号") @ApiModelProperty(name = "工序任务号")
private String taskCode; private String taskCode;
/**
* 工序名称
*/
@ApiModelProperty(name = "工序编码")
private String processCode;
/** /**
* 工序名称 * 工序名称
*/ */
...@@ -82,6 +92,12 @@ public class FeedbackResponse extends ProFeedback { ...@@ -82,6 +92,12 @@ public class FeedbackResponse extends ProFeedback {
@ApiModelProperty("工作单元ID") @ApiModelProperty("工作单元ID")
private Long workunitId; private Long workunitId;
/**
*
*/
@ApiModelProperty("工作单元编码")
private String workunitCode;
@ApiModelProperty("工作单元名称") @ApiModelProperty("工作单元名称")
private String workunitName; private String workunitName;
...@@ -138,4 +154,13 @@ public class FeedbackResponse extends ProFeedback { ...@@ -138,4 +154,13 @@ public class FeedbackResponse extends ProFeedback {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "报工时间") @ApiModelProperty(name = "报工时间")
private Date feedbackTime; private Date feedbackTime;
@ApiModelProperty("良率")
private String qualificationRate;
@ApiModelProperty("车间编号")
private String workshopCode;
@ApiModelProperty("车间名称")
private String workshopName;
} }
...@@ -7,4 +7,16 @@ import java.util.List; ...@@ -7,4 +7,16 @@ import java.util.List;
public interface FeedbackService { public interface FeedbackService {
List<FeedbackResponse> getList(FeedbackRequest feedbackRequest); List<FeedbackResponse> getList(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkOrder(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkshop(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkstation(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByWorkunit(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByProcess(FeedbackRequest feedbackRequest);
List<FeedbackResponse> getListByUser(FeedbackRequest feedbackRequest);
} }
...@@ -19,4 +19,34 @@ public class FeedbackServiceImp implements FeedbackService { ...@@ -19,4 +19,34 @@ public class FeedbackServiceImp implements FeedbackService {
public List<FeedbackResponse> getList(FeedbackRequest feedbackRequest) { public List<FeedbackResponse> getList(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getList(feedbackRequest); return proFeedbackMapper.getList(feedbackRequest);
} }
@Override
public List<FeedbackResponse> getListByWorkOrder(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getListByWorkOrder(feedbackRequest);
}
@Override
public List<FeedbackResponse> getListByWorkshop(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getListByWorkshop(feedbackRequest);
}
@Override
public List<FeedbackResponse> getListByWorkstation(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getListByWorkstation(feedbackRequest);
}
@Override
public List<FeedbackResponse> getListByWorkunit(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getListByWorkunit(feedbackRequest);
}
@Override
public List<FeedbackResponse> getListByProcess(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getListByProcess(feedbackRequest);
}
@Override
public List<FeedbackResponse> getListByUser(FeedbackRequest feedbackRequest) {
return proFeedbackMapper.getListByUser(feedbackRequest);
}
} }
...@@ -171,6 +171,7 @@ ...@@ -171,6 +171,7 @@
t.arrange_code, t.arrange_code,
p.process_code, p.process_code,
p.process_name, p.process_name,
p.remark as processRemark,
t.item_id, t.item_id,
i.item_code, i.item_code,
i.item_name, i.item_name,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment