杨万里 3 months ago
commit 08971e1852

@ -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();
}
}

@ -3,12 +3,14 @@ package com.op.plan.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSONObject;
import com.op.common.core.domain.ExcelCol;
import com.op.common.core.exception.ServiceException;
import com.op.common.core.utils.ServletUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.poi.ExcelMapUtil;
import com.op.plan.domain.*;
@ -402,4 +404,17 @@ public class ProOrderWorkorderController extends BaseController {
String m = "000000010101000115";
System.out.println(m.substring(7));
}
@RequiresPermissions("mes:pro:workorder:productExport")
@Log(title = "导出成品区位填报表", businessType = BusinessType.EXPORT)
@PostMapping("/productExport")
public void productExport(HttpServletResponse response, ProOrderWorkorder proOrderWorkorder) {
String factoryCode = Objects.requireNonNull(ServletUtils.getRequest()).getHeader("PoolName");
proOrderWorkorder.setFactoryCode(factoryCode.replace("ds_",""));
List<ProductFillIn> list = proOrderWorkorderService.getProductFillInList(proOrderWorkorder);
ExcelUtil<ProductFillIn> util = new ExcelUtil<>(ProductFillIn.class);
util.exportExcel(response, list, "物料区位信息");
}
}

@ -0,0 +1,142 @@
package com.op.plan.domain;
import com.op.common.core.annotation.Excel;
/**
* remark
*
* @author 019117
* @date
*/
public class ProductFillIn {
/**
*
* **/
@Excel(name = "生产日期")
private String productionDate;
/**
*
* **/
@Excel(name = "工单号")
private String workOrderNumber;
/**
*
* **/
@Excel(name = "物料编码")
private String materialCode;
/**
*
* **/
@Excel(name = "物料名称")
private String materialName;
/**
*
* **/
@Excel(name = "批次编码")
private String batchCode;
/**
*
* **/
@Excel(name = "批次数量")
private String batchNumber;
/**
*
* **/
@Excel(name = "工厂编码")
private String factoryCode;
/**
*
* **/
@Excel(name = "地点")
private String location;
/**
*
* **/
@Excel(name = "区号")
private String areaCode;
public String getProductionDate() {
return productionDate;
}
public void setProductionDate(String productionDate) {
this.productionDate = productionDate;
}
public String getWorkOrderNumber() {
return workOrderNumber;
}
public void setWorkOrderNumber(String workOrderNumber) {
this.workOrderNumber = workOrderNumber;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public String getBatchCode() {
return batchCode;
}
public void setBatchCode(String batchCode) {
this.batchCode = batchCode;
}
public String getBatchNumber() {
return batchNumber;
}
public void setBatchNumber(String batchNumber) {
this.batchNumber = batchNumber;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
}

@ -268,5 +268,7 @@ public interface ProOrderWorkorderMapper {
List<ProOrderWorkorder> getBPNBomList(ProOrderWorkorder proOrderWorkorder);
List<BaseProduct> getPackType(@Param("workorderCodes")String[] workorderCodes);
List<ProductFillIn> getProductFillInList(ProOrderWorkorder proOrderWorkorder);
}

@ -162,4 +162,6 @@ public interface IProOrderWorkorderService {
List<ProOrderWorkorder> getBPNBomList(ProOrderWorkorder proOrderWorkorder);
List<BaseProduct> getPackType(String[] workorderIds);
List<ProductFillIn> getProductFillInList(ProOrderWorkorder proOrderWorkorder);
}

@ -9,6 +9,7 @@ import com.op.common.core.domain.ExcelCol;
import com.op.common.core.domain.R;
import com.op.common.core.exception.ServiceException;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.ServletUtils;
import com.op.common.core.utils.bean.BeanUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult;
@ -1851,4 +1852,10 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
String s = "000800003044";
System.out.println(s.substring(3));
}
@Override
@DS("#header.poolName")
public List<ProductFillIn> getProductFillInList(ProOrderWorkorder proOrderWorkorder) {
return proOrderWorkorderMapper.getProductFillInList(proOrderWorkorder);
}
}

@ -1144,4 +1144,36 @@
and pow.del_flag = '0'
</select>
<select id="getProductFillInList" parameterType="com.op.plan.domain.ProOrderWorkorder" resultType="com.op.plan.domain.ProductFillIn">
SELECT
CONVERT(VARCHAR, pow.product_date, 23) productionDate,
SUBSTRING(pow.workorder_code_sap, 4, 10) workOrderNumber,
SUBSTRING(pow.product_code, 8,11) materialCode,
pow.product_name materialName,
CASE
WHEN LEN(powb.batch_code) = 24 THEN SUBSTRING(powb.batch_code, 13, 10)
WHEN LEN(powb.batch_code) <![CDATA[ < ]]> 24 THEN powb.batch_code
WHEN LEN(powb.batch_code) > 24 THEN CONVERT(VARCHAR(8), pow.create_time, 112)
ELSE ''
END batchCode,
powb.batch_quantity batchNumber,
#{factoryCode} factoryCode
FROM pro_order_workorder pow
LEFT JOIN pro_order_workorder_batch powb ON pow.workorder_id = powb.workorder_id
WHERE powb.del_flag = '0' AND pow.product_code like '00000001%' and pow.parent_order = #{parentOrder}
<if test="productDateStart != null ">and CONVERT(varchar(10),pow.product_date, 120) >= '${productDateStart}'</if>
<if test="productDateEnd != null ">and '${productDateEnd}' >= CONVERT(varchar(10),pow.product_date, 120)</if>
<if test="workorderCode != null and workorderCode != ''">and pow.workorder_code like concat('%', #{workorderCode}, '%')</if>
<if test="orderCode != null and orderCode != ''">and pow.workorder_code_sap like concat('%', #{orderCode}, '%')</if>
<if test="productCode != null and productCode != ''">and pow.product_code like concat('%', #{productCode},'%')</if>
<if test="prodLineCode != null and prodLineCode != ''">and pow.prod_line_code like concat('%', #{prodLineCode},'%')</if>
<if test="shiftId != null and shiftId != ''">and pow.shift_id = #{shiftId}</if>
<if test="status != null and status != ''">and pow.status = #{status}</if>
<if test="routeCode != null and routeCode != ''">and pow.route_code = #{routeCode}</if>
ORDER BY pow.workorder_code_sap, powb.batch_code
</select>
</mapper>

@ -0,0 +1,43 @@
package com.op.quality.controller;
import com.op.common.core.web.domain.AjaxResult;
import com.op.quality.domain.QcCheckBp;
import com.op.quality.service.IQcCheckBpService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* remark
*
* @author 019117
* @date
*/
@RestController
@RequestMapping("/checkBp")
public class QcCheckBpController {
@Resource
private IQcCheckBpService qcCheckBpService;
/**
*
* **/
@GetMapping("/checkBpList")
public List<QcCheckBp> getCheckBpList( QcCheckBp params ){
return qcCheckBpService.getCheckBpList(params);
}
/**
*
* **/
@PostMapping("/submitCheckResult")
public AjaxResult submitCheckResult(@RequestBody QcCheckBp params){
qcCheckBpService.submitCheckResult(params);
return AjaxResult.success();
}
}

@ -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();
}
}

@ -0,0 +1,145 @@
package com.op.quality.domain;
import com.op.common.core.web.domain.BaseEntity;
/**
* remark
*
* @author 019117
* @date
*/
public class QcCheckBp extends BaseEntity {
/**
*
* **/
private String materialCode;
/**
*
* **/
private String materialName;
/**
* checkDate
* **/
private String checkDate;
/**
*
* **/
private Integer checkNum;
/**
*
* **/
private Integer badNum;
/**
*
* **/
private String isQualified;
/**
*
* **/
private String unqualifiedReason;
/**
*
* **/
private String badItem;
/**
*
* **/
private String factoryCode;
/**
*
* **/
private String createUserName;
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public String getCheckDate() {
return checkDate;
}
public void setCheckDate(String checkDate) {
this.checkDate = checkDate;
}
public Integer getCheckNum() {
return checkNum;
}
public void setCheckNum(Integer checkNum) {
this.checkNum = checkNum;
}
public Integer getBadNum() {
return badNum;
}
public void setBadNum(Integer badNum) {
this.badNum = badNum;
}
public String getIsQualified() {
return isQualified;
}
public void setIsQualified(String isQualified) {
this.isQualified = isQualified;
}
public String getUnqualifiedReason() {
return unqualifiedReason;
}
public void setUnqualifiedReason(String unqualifiedReason) {
this.unqualifiedReason = unqualifiedReason;
}
public String getBadItem() {
return badItem;
}
public void setBadItem(String badItem) {
this.badItem = badItem;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getCreateUserName() {
return createUserName;
}
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName;
}
}

@ -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;
}
}

@ -0,0 +1,241 @@
package com.op.quality.domain;
import com.op.common.core.web.domain.BaseEntity;
/**
* remark oa
*
* @author 019117
* @date
*/
public class QcCheckSampleTaskResult extends BaseEntity {
/**
* id
* **/
private Long id;
/**
* sampleTaskId
* **/
private String sampleTaskId;
/**
*
* **/
private Integer checkTimes;
/**
*
* **/
private Integer quantity;
/**
*
* **/
private String isQualified;
/**
* oa
* **/
private String isApplyOa;
/**
*
* **/
private String applyDept;
/**
*
* **/
private String findPlace;
/**
*
* */
private String isSupplierIssue;
/**
*
* **/
private String excRange;
/**
*
* **/
private String workshop;
/**
*
* **/
private String isNeedAudit;
/**
* QC
* **/
private String qcManager;
/**
*
* **/
private String qtManager;
/**
*
* **/
private String reason;
/**
* requestId
* **/
private String requestId;
/**
*
* **/
private String createUserName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSampleTaskId() {
return sampleTaskId;
}
public void setSampleTaskId(String sampleTaskId) {
this.sampleTaskId = sampleTaskId;
}
public Integer getCheckTimes() {
return checkTimes;
}
public void setCheckTimes(Integer checkTimes) {
this.checkTimes = checkTimes;
}
public String getQualified() {
return isQualified;
}
public void setQualified(String qualified) {
isQualified = qualified;
}
public String getIsApplyOa() {
return isApplyOa;
}
public void setIsApplyOa(String isApplyOa) {
this.isApplyOa = isApplyOa;
}
public String getApplyDept() {
return applyDept;
}
public void setApplyDept(String applyDept) {
this.applyDept = applyDept;
}
public String getFindPlace() {
return findPlace;
}
public void setFindPlace(String findPlace) {
this.findPlace = findPlace;
}
public String getExcRange() {
return excRange;
}
public void setExcRange(String excRange) {
this.excRange = excRange;
}
public String getWorkshop() {
return workshop;
}
public void setWorkshop(String workshop) {
this.workshop = workshop;
}
public String getQcManager() {
return qcManager;
}
public void setQcManager(String qcManager) {
this.qcManager = qcManager;
}
public String getQtManager() {
return qtManager;
}
public void setQtManager(String qtManager) {
this.qtManager = qtManager;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
public String getIsQualified() {
return isQualified;
}
public void setIsQualified(String isQualified) {
this.isQualified = isQualified;
}
public String getIsSupplierIssue() {
return isSupplierIssue;
}
public void setIsSupplierIssue(String isSupplierIssue) {
this.isSupplierIssue = isSupplierIssue;
}
public String getIsNeedAudit() {
return isNeedAudit;
}
public void setIsNeedAudit(String isNeedAudit) {
this.isNeedAudit = isNeedAudit;
}
public String getCreateUserName() {
return createUserName;
}
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName;
}
}

@ -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;
}
}

@ -0,0 +1,25 @@
package com.op.quality.mapper;
import com.op.quality.domain.QcCheckBp;
import com.op.quality.domain.QcCheckTaskIncome;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* remark
*
* @author 019117
* @date
*/
@Mapper
public interface QcCheckBpMapper {
List<QcCheckBp> getCheckBpList(QcCheckBp params );
void insertCheckBpResult( QcCheckTaskIncome task );
}

@ -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);
}

@ -0,0 +1,20 @@
package com.op.quality.service;
import com.op.quality.domain.QcCheckBp;
import java.util.List;
/**
* remark
*
* @author 019117
* @date
*/
public interface IQcCheckBpService {
List<QcCheckBp> getCheckBpList( QcCheckBp params );
void submitCheckResult( QcCheckBp 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();
}

@ -0,0 +1,74 @@
package com.op.quality.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.quality.domain.QcCheckBp;
import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcCheckTaskProduce;
import com.op.quality.mapper.QcCheckBpMapper;
import com.op.quality.mapper.QcCheckTaskIncomeMapper;
import com.op.quality.mapper.QcCheckTaskProduceMapper;
import com.op.quality.service.IQcCheckBpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* remark
*
* @author 019117
* @date
*/
@Service
public class QcCheckBpServiceImpl implements IQcCheckBpService {
@Resource
private QcCheckBpMapper qcCheckBpMapper;
@Resource
private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
@Override
@DS("#header.poolName")
public List<QcCheckBp> getCheckBpList(QcCheckBp params) {
return qcCheckBpMapper.getCheckBpList(params);
}
@Override
@DS("#header.poolName")
public void submitCheckResult(QcCheckBp params) {
QcCheckTaskIncome task = new QcCheckTaskIncome();
String prefixNoStr = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
String suffixNoStr = String.format("%04d", qcCheckTaskIncomeMapper.getTodayMaxNum(task));
task.setRecordId(IdUtils.fastSimpleUUID());
task.setCheckNo(prefixNoStr + suffixNoStr);
task.setMaterialCode(params.getMaterialCode());
task.setMaterialName(params.getMaterialName());
task.setIncomeTime(new Date());
task.setCheckStatus("2");
task.setCheckManCode(params.getCreateBy());
task.setCheckManName(params.getCreateUserName());
task.setCheckTime(new Date());
task.setCheckResult(params.getIsQualified());
task.setStatus("0");
task.setCreateTime(new Date());
task.setFactoryCode(params.getFactoryCode());
task.setCheckType("checkTypeLL");
task.setNoOkQuality(new BigDecimal(params.getBadNum()));
task.setSampleQuality(new BigDecimal(params.getCheckNum()));
task.setTypeCode("material");
task.setOrderType("bp");
task.setRemark(params.getRemark());
task.setRemarkCode(params.getBadItem());
qcCheckBpMapper.insertCheckBpResult(task);
}
}

@ -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);
}
}

@ -0,0 +1,102 @@
<?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.op.quality.mapper.QcCheckBpMapper">
<select id="getCheckBpList" parameterType="com.op.quality.domain.QcCheckBp" resultType="com.op.quality.domain.QcCheckBp">
SELECT
mpd.material_code materialCode,
mpd.material_name materialName
FROM pro_order_workorder ow
LEFT JOIN mes_prepare mp ON ow.workorder_code = mp.workorder_code
LEFT JOIN mes_prepare_detail mpd ON mp.prepare_id = mpd.prepare_id
WHERE ow.product_date = #{checkDate} AND mpd.material_name LIKE '%白坯%'
AND mpd.recoil = 'X' AND mp.del_flag = '0' AND mpd.del_flag = '0'
AND ow.del_flag = '0'
GROUP BY
mpd.material_code,
mpd.material_name
</select>
<insert id="insertCheckBpResult" parameterType="com.op.quality.domain.QcCheckTaskIncome">
insert into qc_check_task
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordId != null">record_id,</if>
<if test="checkNo != null">check_no,</if>
<if test="incomeBatchNo != null">income_batch_no,</if>
<if test="orderNo != null">order_no,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="quality != null">quality,</if>
<if test="noOkQuality != null">noOk_quality,</if>
<if test="unit != null">unit,</if>
<if test="supplierCode != null">supplier_code,</if>
<if test="supplierName != null">supplier_name,</if>
<if test="incomeTime != null">income_time,</if>
<if test="checkLoc != null">check_loc,</if>
<if test="checkStatus != null">check_status,</if>
<if test="checkManCode != null">check_man_code,</if>
<if test="checkManName != null">check_man_name,</if>
<if test="checkTime != null">check_time,</if>
<if test="checkResult != null">check_result,</if>
<if test="status != null">status,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null and factoryCode != ''">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
<if test="checkType != null">check_type,</if>
<if test="typeCode != null">type_code,</if>
<if test="sampleQuality != null">sample_quality,</if>
<if test="orderType != null">order_type,</if>
<if test="orderTypeDesc != null">order_type_desc,</if>
<if test="sampleCode != null">sample_code,</if>
<if test="remarkCode != null">remark_code,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recordId != null">#{recordId},</if>
<if test="checkNo != null">#{checkNo},</if>
<if test="incomeBatchNo != null">#{incomeBatchNo},</if>
<if test="orderNo != null">#{orderNo},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="quality != null">#{quality},</if>
<if test="noOkQuality != null">#{noOkQuality},</if>
<if test="unit != null">#{unit},</if>
<if test="supplierCode != null">#{supplierCode},</if>
<if test="supplierName != null">#{supplierName},</if>
<if test="incomeTime != null">#{incomeTime},</if>
<if test="checkLoc != null">#{checkLoc},</if>
<if test="checkStatus != null">#{checkStatus},</if>
<if test="checkManCode != null">#{checkManCode},</if>
<if test="checkManName != null">#{checkManName},</if>
<if test="checkTime != null">#{checkTime},</if>
<if test="checkResult != null">#{checkResult},</if>
<if test="status != null">#{status},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">#{factoryCode},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="checkType != null">#{checkType},</if>
<if test="typeCode != null">#{typeCode},</if>
<if test="sampleQuality != null">#{sampleQuality},</if>
<if test="orderType != null">#{orderType},</if>
<if test="orderTypeDesc != null">#{orderTypeDesc},</if>
<if test="sampleCode != null">#{sampleCode},</if>
<if test="remarkCode != null">#{remarkCode},</if>
</trim>
</insert>
</mapper>

@ -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