新增留样复检任务提醒,留样复检任务触发OA流程

master
FCD 1 month ago
parent 30b2e7ec6e
commit 478e70ca22

@ -50,4 +50,7 @@ public interface RemoteQualityService {
@PostMapping("/qc-check-sample-task/createTask")
public R createCheckSampleTask();
@PostMapping("/qc-check-sample-task/sendSampleRemind")
public R syncSendSampleCheckRemind();
}

@ -72,6 +72,11 @@ public class RemoteQualityFallbackFactory implements FallbackFactory<RemoteQuali
public R createCheckSampleTask() {
return R.fail("创建留样复检任务失败:" + throwable.getMessage());
}
@Override
public R syncSendSampleCheckRemind() {
return R.fail("发送留样复检任务提醒失败:" + throwable.getMessage());
}
};
}
}

@ -285,5 +285,11 @@ public class RyTask {
logger.info("+++开始更新产线设备的运行参数++syncEquRunStatus+++++");
remoteDeviceService.updateDeviceRunTimeORRate();
}
/**********留样复检任务提醒*********/
public void syncSendSampleCheckRemind(){
logger.info("+++留样复检任务提醒++syncSendSampleCheckRemind+++++");
remoteQualityService.syncSendSampleCheckRemind();
}
}

@ -7,14 +7,17 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.common.core.web.page.TableDataInfo;
import com.op.common.log.annotation.Log;
import com.op.common.log.enums.BusinessType;
import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.QcCheckSampleSignTask;
import com.op.quality.domain.QcCheckSampleTask;
import com.op.quality.domain.QcCheckSampleTaskResult;
import com.op.quality.domain.query.QcCheckSampleTaskQuery;
import com.op.quality.service.IQcCheckSampleTaskService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
@ -94,4 +97,31 @@ public class QcCheckSampleTaskController extends BaseController {
return qcCheckSampleTaskService.createCheckSampleTask();
}
/** 提交品质异常流程ZL0030 **/
@PostMapping("/zl0030")
public AjaxResult submitCheckSampleTaskZl0030(@RequestBody QcCheckSampleTaskResult params) {
qcCheckSampleTaskService.submitCheckSampleTaskZl0030(params);
return success();
}
/** 获取留样列表 **/
@PostMapping("/add")
public AjaxResult add( @RequestBody QcCheckSampleSignTask params) {
params.setCreateTime(new Date());
params.setSampleUserCode(SecurityUtils.getUsername());
qcCheckSampleTaskService.insertQcCheckSampleSignTask(params);
return AjaxResult.success();
}
/**
*
* **/
@PostMapping("/sendSampleRemind")
public AjaxResult sendSampleCheckRemind() {
qcCheckSampleTaskService.sendSampleCheckRemind();
return success();
}
}

@ -1,6 +1,7 @@
package com.op.quality.domain;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import java.util.Date;
@ -10,7 +11,7 @@ import java.util.Date;
* @author 019117
* @date
*/
public class QcCheckSampleSignTask {
public class QcCheckSampleSignTask extends BaseEntity {
/** id **/
private String id;
@ -26,6 +27,8 @@ public class QcCheckSampleSignTask {
@Excel(name = "生产批号")
private String incomeBatchNo;
private String workOrderCodeSap;
/** 留样时间 **/
@Excel(name = "留样时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date sampleTime;
@ -34,6 +37,9 @@ public class QcCheckSampleSignTask {
@Excel(name = "留样数量")
private String sampleNum;
/** 取样人工号 **/
private String sampleUserCode;
/** 取样人 **/
@Excel(name = "取样人")
private String sampleUserName;
@ -105,4 +111,20 @@ public class QcCheckSampleSignTask {
public void setGainSampleAddress(String gainSampleAddress) {
this.gainSampleAddress = gainSampleAddress;
}
public String getWorkOrderCodeSap() {
return workOrderCodeSap;
}
public void setWorkOrderCodeSap(String workOrderCodeSap) {
this.workOrderCodeSap = workOrderCodeSap;
}
public String getSampleUserCode() {
return sampleUserCode;
}
public void setSampleUserCode(String sampleUserCode) {
this.sampleUserCode = sampleUserCode;
}
}

@ -4,6 +4,7 @@ import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import java.util.Date;
import java.util.List;
/**
*
@ -20,6 +21,11 @@ public class QcCheckSampleTask extends BaseEntity {
/** id **/
private String id;
/**
*
* **/
private String materialCode;
/** 物料名称 **/
@Excel(name = "物料名称")
private String materialName;
@ -36,6 +42,14 @@ public class QcCheckSampleTask extends BaseEntity {
@Excel(name = "留样时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date sampleTime;
/** 留样人工号 **/
@Excel(name = "留样人工号")
private String sampleUserCode;
/** 留样人姓名 **/
@Excel(name = "留样人姓名")
private String sampleUserName;
/** 留样数量 **/
@Excel(name = "留样数量")
@ -54,7 +68,7 @@ public class QcCheckSampleTask extends BaseEntity {
private String firstCheckUserName;
/** 第一次检验结果 **/
@Excel(name = "第一次检验结果")
@Excel(name = "第一次检验结果", readConverterExp="M=合格,N=不合格")
private String firstCheckResult;
/** 第一次检验时间 **/
@ -69,7 +83,7 @@ public class QcCheckSampleTask extends BaseEntity {
private String secondCheckUserName;
/** 第二次检验结果 **/
@Excel(name = "第二次检验结果")
@Excel(name = "第二次检验结果", readConverterExp="M=合格,N=不合格")
private String secondCheckResult;
/** 第二次检验时间 **/
@ -84,26 +98,40 @@ public class QcCheckSampleTask extends BaseEntity {
private String thirdCheckUserName;
/** 第三次检验结果 **/
@Excel(name = "第三次检验结果")
@Excel(name = "第三次检验结果", readConverterExp="M=合格,N=不合格")
private String thirdCheckResult;
/** 第三次检验时间 **/
@Excel(name = "第三次检验时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private String thirdCheckTime;
/** 留样人工号 **/
@Excel(name = "留样人工号")
private String sampleUserCode;
/** 留样人姓名 **/
@Excel(name = "留样人姓名")
private String sampleUserName;
/** 订单号 **/
private String orderNo;
@Excel(name = "间隔6个月检验结果", readConverterExp="M=合格,N=不合格")
private String halfYearCheckResult;
@Excel(name = "间隔6个月检验人")
private String halfYearCheckUserName;
@Excel(name = "间隔6个月检验时间")
private String halfYearCheckTime;
@Excel(name = "间隔12个月检验结果", readConverterExp="M=合格,N=不合格")
private String oneYearCheckResult;
@Excel(name = "间隔12个月检验人")
private String oneYearCheckUserName;
@Excel(name = "间隔12个月检验时间")
private String oneYearCheckTime;
/**
*
* **/
private List<QcCheckSampleTaskResult> resultList;
public String getId() {
return id;
}
@ -279,4 +307,68 @@ public class QcCheckSampleTask extends BaseEntity {
public void setSampleUserName(String sampleUserName) {
this.sampleUserName = sampleUserName;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public List<QcCheckSampleTaskResult> getResultList() {
return resultList;
}
public void setResultList(List<QcCheckSampleTaskResult> resultList) {
this.resultList = resultList;
}
public String getHalfYearCheckResult() {
return halfYearCheckResult;
}
public void setHalfYearCheckResult(String halfYearCheckResult) {
this.halfYearCheckResult = halfYearCheckResult;
}
public String getHalfYearCheckUserName() {
return halfYearCheckUserName;
}
public void setHalfYearCheckUserName(String halfYearCheckUserName) {
this.halfYearCheckUserName = halfYearCheckUserName;
}
public String getHalfYearCheckTime() {
return halfYearCheckTime;
}
public void setHalfYearCheckTime(String halfYearCheckTime) {
this.halfYearCheckTime = halfYearCheckTime;
}
public String getOneYearCheckResult() {
return oneYearCheckResult;
}
public void setOneYearCheckResult(String oneYearCheckResult) {
this.oneYearCheckResult = oneYearCheckResult;
}
public String getOneYearCheckUserName() {
return oneYearCheckUserName;
}
public void setOneYearCheckUserName(String oneYearCheckUserName) {
this.oneYearCheckUserName = oneYearCheckUserName;
}
public String getOneYearCheckTime() {
return oneYearCheckTime;
}
public void setOneYearCheckTime(String oneYearCheckTime) {
this.oneYearCheckTime = oneYearCheckTime;
}
}

@ -30,6 +30,10 @@ public class QcCheckSampleTaskQuery {
private String thirdDate;
private String searchFlag;
private String intervalDate;
public String getQueryDate() {
return queryDate;
@ -94,4 +98,20 @@ public class QcCheckSampleTaskQuery {
public void setThirdDate(String thirdDate) {
this.thirdDate = thirdDate;
}
public String getSearchFlag() {
return searchFlag;
}
public void setSearchFlag(String searchFlag) {
this.searchFlag = searchFlag;
}
public String getIntervalDate() {
return intervalDate;
}
public void setIntervalDate(String intervalDate) {
this.intervalDate = intervalDate;
}
}

@ -2,6 +2,7 @@ package com.op.quality.mapper;
import com.op.quality.domain.QcCheckSampleSignTask;
import com.op.quality.domain.QcCheckSampleTask;
import com.op.quality.domain.QcCheckSampleTaskResult;
import com.op.quality.domain.query.QcCheckSampleTaskQuery;
import org.apache.ibatis.annotations.Mapper;
@ -55,7 +56,7 @@ public interface QcCheckSampleTaskMapper {
/**
*
*
* **/
int insertQcCheckSampleTask(QcCheckSampleTask params);
@ -64,4 +65,17 @@ public interface QcCheckSampleTaskMapper {
*
* **/
QcCheckSampleTask selectQcCheckSampleTask(QcCheckSampleTask params);
/**
*id
* **/
QcCheckSampleTask selectQcCheckSampleTaskById(String id);
List<QcCheckSampleTaskResult> selectQcCheckSampleTaskResultByTaskId(String taskId);
Long selectQcCheckSampleTaskResultId(QcCheckSampleTaskResult params);
void insertQcCheckSampleTaskResult(QcCheckSampleTaskResult params);
void insertQcCheckSampleSignTask( QcCheckSampleSignTask params);
}

@ -3,6 +3,7 @@ package com.op.quality.service;
import com.op.common.core.web.domain.AjaxResult;
import com.op.quality.domain.QcCheckSampleSignTask;
import com.op.quality.domain.QcCheckSampleTask;
import com.op.quality.domain.QcCheckSampleTaskResult;
import com.op.quality.domain.query.QcCheckSampleTaskQuery;
import java.util.List;
@ -42,4 +43,11 @@ public interface IQcCheckSampleTaskService {
* **/
AjaxResult createCheckSampleTask();
void submitCheckSampleTaskZl0030(QcCheckSampleTaskResult params);
void insertQcCheckSampleSignTask(QcCheckSampleSignTask params);
void sendSampleCheckRemind();
}

@ -1,22 +1,33 @@
package com.op.quality.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.utils.uuid.UUID;
import com.op.common.core.web.domain.AjaxResult;
import com.op.quality.domain.QcCheckSampleSignTask;
import com.op.quality.domain.QcCheckSampleTask;
import com.op.quality.domain.QcCheckSampleTaskResult;
import com.op.quality.domain.query.QcCheckSampleTaskQuery;
import com.op.quality.mapper.QcCheckSampleTaskMapper;
import com.op.quality.mapper.QcCheckTaskIncomeMapper;
import com.op.quality.service.IQcCheckSampleTaskService;
import com.op.system.api.RemoteUserService;
import com.op.system.api.RemoteOpenService;
import com.op.system.api.domain.SysNoticeGroup;
import com.op.system.api.domain.dto.WechartDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import static com.op.common.core.web.domain.AjaxResult.success;
@ -35,13 +46,59 @@ public class QcCheckSampleTaskServiceImpl implements IQcCheckSampleTaskService {
@Resource
private QcCheckSampleTaskMapper qcCheckSampleTaskMapper;
@Resource
private RemoteOpenService remoteOpenService;
@Resource
private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
/**
*
* **/
@Override
@DS("#header.poolName")
public List<QcCheckSampleTask> selectQcCheckSampleTaskList(QcCheckSampleTaskQuery query) {
return qcCheckSampleTaskMapper.selectQcCheckSampleTaskList(query);
List<QcCheckSampleTask> list = qcCheckSampleTaskMapper.selectQcCheckSampleTaskList(query);
for (QcCheckSampleTask task : list) {
List<QcCheckSampleTaskResult> results = qcCheckSampleTaskMapper.selectQcCheckSampleTaskResultByTaskId(task.getId());
if (results != null && !results.isEmpty()) {
for (QcCheckSampleTaskResult result : results) {
String user = result.getCreateUserName();
String isQualified = result.getIsQualified();
String checkTime = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", result.getCreateTime());
switch (result.getCheckTimes()) {
case 1:
task.setFirstCheckTime(checkTime);
task.setFirstCheckUserName(user);
task.setFirstCheckResult(isQualified);
break;
case 2:
task.setSecondCheckTime(checkTime);
task.setSecondCheckUserName(user);
task.setSecondCheckResult(isQualified);
break;
case 3:
task.setThirdCheckTime(checkTime);
task.setThirdCheckUserName(user);
task.setThirdCheckResult(isQualified);
break;
case 6:
task.setHalfYearCheckTime(checkTime);
task.setHalfYearCheckUserName(user);
task.setHalfYearCheckResult(isQualified);
break;
case 12:
task.setOneYearCheckTime(checkTime);
task.setOneYearCheckUserName(user);
task.setOneYearCheckResult(isQualified);
break;
default: break;
}
}
}
}
return list;
}
@ -62,7 +119,15 @@ public class QcCheckSampleTaskServiceImpl implements IQcCheckSampleTaskService {
@Override
@DS("#header.poolName")
public List<QcCheckSampleTask> selectQcWaitCheckSampleTaskList(QcCheckSampleTaskQuery query) {
return qcCheckSampleTaskMapper.selectQcWaitCheckSampleTaskList(query);
List<QcCheckSampleTask> list = qcCheckSampleTaskMapper.selectQcWaitCheckSampleTaskList(query);
//获取检验结果
for (QcCheckSampleTask task : list) {
List<QcCheckSampleTaskResult> results = qcCheckSampleTaskMapper.selectQcCheckSampleTaskResultByTaskId(task.getId());
if (results != null && !results.isEmpty()) {
task.setResultList(results);
}
}
return list;
}
/**
@ -97,4 +162,169 @@ public class QcCheckSampleTaskServiceImpl implements IQcCheckSampleTaskService {
return success();
}
@Override
@DS("#header.poolName")
public void submitCheckSampleTaskZl0030(QcCheckSampleTaskResult params) {
QcCheckSampleTask task = qcCheckSampleTaskMapper.selectQcCheckSampleTaskById(params.getSampleTaskId());
if (ObjectUtil.isEmpty(task)){
throw new RuntimeException("留样复检任务不存在");
}
Long id = qcCheckSampleTaskMapper.selectQcCheckSampleTaskResultId(params);
//不合格发起OA流程
if ("N".equals(params.getQualified()) && "0".equals(params.getIsApplyOa()) ){
//新增留样检验发起oa流程记录
//发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>();
//提交人工号
paramMap.put("user",params.getCreateBy());
//流程紧急度
paramMap.put("requestLevel",0);
//流程名称
paramMap.put("requestName","ZL0030-品质异常流程-留样复检-"+"(产品名称:"+task.getMaterialName()+"");
//该流程对应的唯
paramMap.put("workflowId","187461");
StringBuffer mainObject = new StringBuffer();
mainObject.append("{");
//产品名称
mainObject.append("\"CPMC\":"+"\""+task.getMaterialName()+"\"");
//产品编码
mainObject.append(",\"CPBM\":"+"\""+task.getMaterialCode()+"\"");
//0品质保障部
mainObject.append(",\"SQBM\":"+"\""+params.getApplyDept()+"\"");
//申请人:默认当前用户
mainObject.append(",\"SQR\":"+"\""+"MSL#"+params.getCreateBy()+"\"");
//申请时间
mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",new Date())+"\"");
//所属车间
mainObject.append(",\"SCCJ\":"+"\""+"MSD#"+params.getWorkshop()+"\"");
//生产批号
mainObject.append(",\"SCPH\":"+"\""+task.getIncomeBatchNo()+"\"");
//生产数量
mainObject.append(",\"SCSL\":"+params.getQuantity());
//发现地点
mainObject.append(",\"FXDD\":"+"\""+params.getFindPlace()+"\"");
//发现日期
mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",new Date())+"\"");
//编号:流水号 年月日+四位流水号
mainObject.append(",\"BH\":"+"\""+id+"\"");
// mainObject.append(",\"BH\":"+"\""+"202510230001"+"\"");
//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
mainObject.append(",\"YCFW\":"+"\""+params.getExcRange()+"\"");
//品质异常描述
mainObject.append(",\"PZYCMS\":"+"\""+params.getReason()+"\"");
if (StringUtils.isNotBlank(params.getRemark())){
//备注
mainObject.append(",\"Notes\":"+"\""+params.getRemark()+"\"");
}
//*是否需要主管审核 1否 0是
mainObject.append(",\"SFXYZG\":"+"\""+params.getIsNeedAudit()+"\"");
//QC主管SFXYZG字段为"是",则此项选择QC主管信息
mainObject.append(",\"PGZG\":"+"\""+"MSL#"+params.getQcManager()+"\"");
//质量主管 660朱继新
mainObject.append(",\"PGZR\":"+"\""+"MSL#"+params.getQtManager()+"\"");
//*是否供应商问题 1非供应商问题 0是供应商问题
mainObject.append(",\"SFGYSWT\":"+"\""+params.getIsSupplierIssue()+"\"");
mainObject.append("}");
paramMap.put("mainObject",mainObject.toString());
logger.info("流程Id 187461:"+ JSONObject.toJSONString(paramMap));
AjaxResult res = remoteOpenService.OAInspection(paramMap);
if (res.isSuccess()){
params.setRequestId(res.get("data").toString());
}
}
params.setId(id);
qcCheckSampleTaskMapper.insertQcCheckSampleTaskResult(params);
}
@Override
@DS("#header.poolName")
public void insertQcCheckSampleSignTask(QcCheckSampleSignTask task) {
if (StringUtils.isEmpty(task.getWorkOrderCodeSap())){
throw new RuntimeException("工单号不能为空");
}
if (!task.getWorkOrderCodeSap().startsWith("000")){
task.setWorkOrderCodeSap("000"+task.getWorkOrderCodeSap());
}
task.setId(IdUtils.fastSimpleUUID());
qcCheckSampleTaskMapper.insertQcCheckSampleSignTask(task);
}
@Override
public void sendSampleCheckRemind() {
//获取今天是几号
String nowDate = DateUtils.parseDateToStr("dd", new Date());
DynamicDataSourceContextHolder.push("ds_1000");
try {
//获取需要发送的人员以及发送的模板
SysNoticeGroup noticeQo = new SysNoticeGroup();
noticeQo.setNoticeId(26L);
List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo);
//1号发送6、12个月
if ("01".equals(nowDate)){
//间隔6个月
handleSendMessage(notices, -6);
//间隔12个月
handleSendMessage(notices, -12);
}
//15号发送1、2、3个月
if ("15".equals(nowDate)){
//间隔1个月
handleSendMessage(notices, -1);
//间隔2个月
handleSendMessage(notices, -2);
//间隔3个月
handleSendMessage(notices, -3);
}
}finally {
DynamicDataSourceContextHolder.poll();
}
}
private void handleSendMessage(List<SysNoticeGroup> notices, Integer intervalMonth){
QcCheckSampleTaskQuery query = new QcCheckSampleTaskQuery();
String intervalDate = DateUtils.parseDateToStr("yyyy-MM", DateUtils.addMonths(new Date(), intervalMonth));
query.setIntervalDate(intervalDate);
List<QcCheckSampleTask> list = qcCheckSampleTaskMapper.selectQcCheckSampleTaskList(query);
List<WechartDTO> messageList = new ArrayList<>();
if (!list.isEmpty()){
List<String> workOrderCode = list.stream()
.map(QcCheckSampleTask::getWorkOrderCodeSap)
.limit(10)
.collect(Collectors.toList());
for (SysNoticeGroup notice : notices) {
WechartDTO message = new WechartDTO();
message.setUserId(notice.getWxId());
String contentInfo = notice.getNoticeContent();
contentInfo = contentInfo
.replace("${month}", Math.abs(intervalMonth)+"")
.replace("${workOrderCodes}", workOrderCode.toString());
message.setText(contentInfo);
messageList.add(message);
}
}
remoteOpenService.sendWeChartMessage(messageList);
}
}

@ -6,6 +6,7 @@
<resultMap type="com.op.quality.domain.QcCheckSampleTask" id="QcCheckSampleDefectResult">
<result property="materialName" column="material_name"/>
<result property="materialCode" column="product_code"/>
<result property="incomeBatchNo" column="income_batch_no"/>
<result property="workOrderCodeSap" column="work_order_code_sap"/>
<result property="sampleTime" column="sample_time"/>
@ -34,25 +35,18 @@
<select id="selectQcCheckSampleTaskList" parameterType="com.op.quality.domain.query.QcCheckSampleTaskQuery"
resultMap="QcCheckSampleDefectResult">
SELECT
id,
material_name,
income_batch_no,
sample_time,
sample_num,
sample_address,
first_check_user_code,
first_check_user_name,
first_check_result,
first_check_time,
second_check_user_code,
second_check_user_name,
second_check_result,
second_check_time,
third_check_user_code,
third_check_user_name,
third_check_result,
third_check_time
from qc_check_sample_task task
task.id,
task.material_name,
task.income_batch_no,
task.sample_time,
task.sample_num,
task.sample_address,
task.work_order_code_sap,
task.sample_user_code,
u.nick_name sample_user_name
FROM
qc_check_sample_task task
LEFT JOIN lanju_op_cloud.dbo.sys_user u ON task.sample_user_code = u.user_name
<where>
<if test="queryDate != null and queryDate != ''">
and CONVERT(VARCHAR(10), task.create_time ,23) <![CDATA[ = ]]> #{queryDate}
@ -67,7 +61,10 @@
and task.material_name like concat('%', #{materialName}, '%')
</if>
<if test="workOrderCodeSap != null and workOrderCodeSap != ''">
and task.work_order_code_sap = #{workOrderCodeSap}
and task.work_order_code_sap like concat('%', #{workOrderCodeSap}, '%')
</if>
<if test="intervalDate != null and intervalDate != ''">
and FORMAT ( task.sample_time, 'yyyy-MM' ) = #{intervalDate}
</if>
</where>
order by task.sample_time desc,task.create_time desc
@ -81,11 +78,13 @@
task.income_batch_no incomeBatchNo,
task.sample_time sampleTime,
task.sample_num sampleNum,
task.sample_user_name sampleUserName,
u.nick_name sampleUserName,
o.workorder_name gainSampleAddress
FROM
qc_check_sample_task task
LEFT JOIN pro_order_workorder o ON o.workorder_code_sap = task.work_order_code_sap
LEFT JOIN lanju_op_cloud.dbo.sys_user u ON task.sample_user_code = u.user_name
<where>
<if test="queryDate != null and queryDate != ''">
and CONVERT(VARCHAR(10), task.create_time ,23) <![CDATA[ = ]]> #{queryDate}
@ -110,45 +109,64 @@
<select id="selectQcWaitCheckSampleTaskList" parameterType="com.op.quality.domain.query.QcCheckSampleTaskQuery"
resultMap="QcCheckSampleDefectResult">
select
id, material_name, income_batch_no, work_order_code_sap, sample_time,
first_check_user_code, first_check_user_name, first_check_result, first_check_time,
second_check_user_code, second_check_user_name, second_check_result, second_check_time,
third_check_user_code, third_check_user_name, third_check_result, third_check_time
from qc_check_sample_task
SELECT
t.id,
t.material_name,
t.income_batch_no,
t.work_order_code_sap,
t.sample_time
FROM (
SELECT
t.id,
t.material_name,
t.income_batch_no,
t.work_order_code_sap ,
FORMAT ( t.sample_time, 'yyyy-MM' ) AS sample_date,
t.sample_time,
COALESCE ( r.check_times, 0 ) check_times
FROM qc_check_sample_task t
LEFT JOIN qc_check_sample_result r ON t.id = r.sample_task_id
) t
<where>
<if test="firstDate != null and firstDate != ''">
and CONVERT(VARCHAR(10), sample_time ,23) <![CDATA[ <= ]]> #{firstDate}
and first_check_result is null
t.sample_date is not null
<if test="searchFlag == 1">
AND sample_date <![CDATA[ < ]]> CASE WHEN DAY(GETDATE()) <![CDATA[ <= ]]> 14 THEN FORMAT(DATEADD(MONTH, -1, GETDATE()), 'yyyy-MM') ELSE FORMAT(GETDATE(), 'yyyy-MM') END
</if>
<if test="searchFlag == 2">
AND sample_date <![CDATA[ < ]]> CASE WHEN DAY(GETDATE()) <![CDATA[ <= ]]> 14 THEN FORMAT(DATEADD(MONTH, -2, GETDATE()), 'yyyy-MM') ELSE FORMAT(DATEADD(MONTH, -1, GETDATE()), 'yyyy-MM') END
</if>
<if test="searchFlag == 3">
AND sample_date <![CDATA[ < ]]> CASE WHEN DAY(GETDATE()) <![CDATA[ <= ]]> 14 THEN FORMAT(DATEADD(MONTH, -3, GETDATE()), 'yyyy-MM') ELSE FORMAT(DATEADD(MONTH, -2, GETDATE()), 'yyyy-MM') END
</if>
<if test="searchFlag == 6">
AND FORMAT(DATEADD(mm, -6, GETDATE()), 'yyyy-MM') >= t.sample_date
</if>
<if test="searchFlag == 12">
AND FORMAT(DATEADD(mm, -12, GETDATE()), 'yyyy-MM') >= t.sample_date
</if>
</where>
UNION
select
id, material_name, income_batch_no, work_order_code_sap, sample_time,
first_check_user_code, first_check_user_name, first_check_result, first_check_time,
second_check_user_code, second_check_user_name, second_check_result, second_check_time,
third_check_user_code, third_check_user_name, third_check_result, third_check_time
from qc_check_sample_task
<where>
<if test="secondDate != null and secondDate != ''">
and CONVERT(VARCHAR(10), sample_time ,23) <![CDATA[ <= ]]> #{secondDate}
and second_check_result is null
</if>
</where>
UNION
select
id, material_name, income_batch_no, work_order_code_sap, sample_time,
first_check_user_code, first_check_user_name, first_check_result, first_check_time,
second_check_user_code, second_check_user_name, second_check_result, second_check_time,
third_check_user_code, third_check_user_name, third_check_result, third_check_time
from qc_check_sample_task
<where>
<if test="thirdDate != null and thirdDate != ''">
and CONVERT(VARCHAR(10), sample_time ,23) <![CDATA[ <= ]]> #{thirdDate}
and third_check_result is null
<if test="workOrderCodeSap != null and workOrderCodeSap != ''">
and t.work_order_code_sap like concat('%', #{workOrderCodeSap}, '%')
</if>
</where>
GROUP BY t.id, t.material_name, t.income_batch_no, t.work_order_code_sap, t.sample_time
<if test="searchFlag == 1 ">
HAVING SUM(t.check_times) <![CDATA[ < ]]> 1
</if>
<if test="searchFlag == 2 ">
HAVING SUM(t.check_times) <![CDATA[ < ]]> 3
</if>
<if test="searchFlag == 3 ">
HAVING SUM(t.check_times) <![CDATA[ < ]]> 6
</if>
<if test="searchFlag == 6 ">
HAVING SUM(t.check_times) <![CDATA[ < ]]> 12
</if>
<if test="searchFlag == 12 ">
HAVING SUM(t.check_times) <![CDATA[ < ]]> 24
</if>
ORDER BY t.sample_time desc
</select>
@ -173,6 +191,9 @@
<if test="firstCheckResult != null and firstCheckResult != ''">
first_check_result = #{firstCheckResult},
</if>
<if test="firstCheckReason != null and firstCheckReason != ''">
first_check_reason = #{firstCheckReason},
</if>
<if test="firstCheckTime != null and firstCheckTime != ''">
first_check_time = #{firstCheckTime},
</if>
@ -185,6 +206,9 @@
<if test="secondCheckResult != null and secondCheckResult != ''">
second_check_result = #{secondCheckResult},
</if>
<if test="secondCheckReason != null and secondCheckReason != ''">
second_check_reason = #{secondCheckReason},
</if>
<if test="secondCheckTime != null and secondCheckTime != ''">
second_check_time = #{secondCheckTime},
</if>
@ -197,6 +221,9 @@
<if test="thirdCheckResult != null and thirdCheckResult != ''">
third_check_result = #{thirdCheckResult},
</if>
<if test="thirdCheckReason != null and thirdCheckReason != ''">
third_check_reason = #{thirdCheckReason},
</if>
<if test="thirdCheckTime != null and thirdCheckTime != ''">
third_check_time = #{thirdCheckTime},
</if>
@ -298,5 +325,77 @@
WHERE material_name = #{materialName} AND work_order_code_sap = #{workOrderCodeSap}
</select>
<select id="selectQcCheckSampleTaskResultByTaskId" parameterType="String" resultType="com.op.quality.domain.QcCheckSampleTaskResult">
SELECT
id,
check_times checkTimes,
qualified,
reason,
remark,
create_by createBy,
create_time createTime,
create_user_name createUserName
FROM qc_check_sample_result
WHERE sample_task_id = #{taskId}
</select>
<select id="selectQcCheckSampleTaskById" parameterType="com.op.quality.domain.query.QcCheckSampleTaskQuery"
resultType="com.op.quality.domain.QcCheckSampleTask">
SELECT
task.id,
task.material_name materialName,
STUFF(pow.product_code, 1, 7, '') materialCode,
task.income_batch_no incomeBatchNo
FROM qc_check_sample_task task
LEFT JOIN pro_order_workorder pow ON task.work_order_code_sap = pow.workorder_code_sap
WHERE
id = #{id}
</select>
<select id="selectQcCheckSampleTaskResultId" parameterType="com.op.quality.domain.query.QcCheckSampleTaskQuery" resultType="Long">
SELECT COUNT(0) + 1 id
FROM qc_check_sample_result
</select>
<insert id="insertQcCheckSampleTaskResult" parameterType="com.op.quality.domain.QcCheckSampleTaskResult">
insert into qc_check_sample_result (
id,sample_task_id,check_times,quantity,qualified,apply_dept,find_place,supplier_issue,
exc_range,workshop,need_audit,qc_manager,qt_manager,reason,request_id,remark,create_by,create_user_name,create_time,is_apply_oa
)
VALUES
(
#{id},#{sampleTaskId},#{checkTimes},#{quantity},#{qualified},#{applyDept},#{findPlace},#{isSupplierIssue},
#{excRange},#{workshop},#{isNeedAudit},#{qcManager},#{qtManager},#{reason},#{requestId},#{remark},#{createBy},#{createUserName},GETDATE(),#{isApplyOa}
)
</insert>
<insert id="insertQcCheckSampleSignTask" parameterType="com.op.quality.domain.QcCheckSampleSignTask">
INSERT INTO qc_check_sample_task (
id,
material_name,
income_batch_no,
work_order_code_sap,
sample_num,
sample_user_code,
sample_user_name,
sample_time,
create_time
)
VALUES
(
#{id},
#{materialName},
#{incomeBatchNo},
#{workOrderCodeSap},
#{sampleNum},
#{sampleUserCode},
#{sampleUserName},
#{sampleTime},
#{createTime}
)
</insert>
</mapper>
Loading…
Cancel
Save