质量过程巡检+来料检验任务接口+报工sql调整

master
zhaoxiaolin 1 year ago
parent 4e65a7d092
commit 30fac0e8dd

@ -18,7 +18,8 @@ public class QcUserMaterialDTO extends BaseEntity {
/** id */
private String id;
private String belongTo;
private String checkNo;
/** 员工编码 */
@Excel(name = "员工编码")
private String userCode;
@ -75,6 +76,22 @@ public class QcUserMaterialDTO extends BaseEntity {
private List<String> selectedValues;
public String getBelongTo() {
return belongTo;
}
public void setBelongTo(String belongTo) {
this.belongTo = belongTo;
}
public String getCheckNo() {
return checkNo;
}
public void setCheckNo(String checkNo) {
this.checkNo = checkNo;
}
public void setId(String id) {
this.id = id;
}

@ -327,15 +327,16 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR));
//最终报工标识且sap报工成功关闭子母工单
MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork);
if("1".equals(endReport.getEndReport())&&sapR.getCode()==200){
MesReportWork rworkVo = new MesReportWork();
rworkVo.setStatus("w3");
rworkVo.setUpdateTime(DateUtils.getNowDate());
rworkVo.setUpdateBy(SecurityUtils.getUsername());
rworkVo.setWorkorderCode(belongWorkOrder);
//pro_work_order status->w3报工--belong_work_order
mesReportWorkMapper.updateOrderWorkStatus(rworkVo);
}
//-----改为由上位机触发
// if("1".equals(endReport.getEndReport())&&sapR.getCode()==200){
// MesReportWork rworkVo = new MesReportWork();
// rworkVo.setStatus("w3");
// rworkVo.setUpdateTime(DateUtils.getNowDate());
// rworkVo.setUpdateBy(SecurityUtils.getUsername());
// rworkVo.setWorkorderCode(belongWorkOrder);
// //pro_work_order status->w3报工--belong_work_order
// mesReportWorkMapper.updateOrderWorkStatus(rworkVo);
// }
}
return R.ok();
}

@ -435,8 +435,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from pro_order_workorder pow
left join base_shifts_t s on pow.shift_id = s.Shift_Id
left join pro_order_workorder pows on pows.parent_order = pow.workorder_code
left join mes_report_work mrw on mrw.workorder_code = pow.workorder_code
where pow.del_flag = '0' and pow.status = 'w2' and pow.parent_order ='0'
and mrw.upload_status != '1'
<if test="workorderCode != null and workorderCode != ''">
and pow.workorder_code like concat('%', #{workorderCode}, '%')
</if>

@ -76,6 +76,8 @@ public interface OpenMapper {
public int addBatch(@Param("list") List<QcCheckTaskDetailDTO> items);
QcUserMaterialDTO getUserByMaterial(String materialCode);
List<QcUserMaterialDTO> getUserByMaterial(String materialCode);
public int addCheckUsers(@Param("list") List<QcUserMaterialDTO> users);
}

@ -295,7 +295,7 @@ public class OpenServiceImpl implements OpenService {
Date nowDate= DateUtils.getNowDate();
//获取当前所选工厂
String factoryCode = qcCheckTaskProduce.getFactoryCode();
String beLongId = IdUtils.fastSimpleUUID();
qcCheckTaskProduce.setCheckNo(bpDD+liushuiStr);
/**取检测项**/
@ -304,14 +304,24 @@ public class OpenServiceImpl implements OpenService {
qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性
/**qc_user_material取默认检查人**/
QcUserMaterialDTO qcUserMaterialDTO = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode());
if(qcUserMaterialDTO == null){
qcCheckTaskProduce.setCheckManCode("mobile");
qcCheckTaskProduce.setCheckManName("手持测试用户");
List<QcUserMaterialDTO> users = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode());
if(CollectionUtils.isEmpty(users)){
QcUserMaterialDTO dto0 = new QcUserMaterialDTO();
dto0.setUserCode("mobile");
dto0.setUserName("手持测试用户");
users.add(dto0);
}else{
qcCheckTaskProduce.setCheckManCode(qcUserMaterialDTO.getUserCode());
qcCheckTaskProduce.setCheckManName(qcUserMaterialDTO.getUserName());
for(QcUserMaterialDTO user:users){
user.setId(IdUtils.fastSimpleUUID());
user.setBelongTo(beLongId);
user.setCheckNo(qcCheckTaskProduce.getCheckNo());
user.setCreateBy(createBy);
user.setFactoryCode(factoryCode);
user.setCreateTime(nowDate);
}
}
int m=openMapper.addCheckUsers(users);
logger.info("检查人新增"+m+"成功");
/**qc_check_type_project**/
List<QcCheckTaskDetailDTO> items = openMapper.getTPByTypeMaterial(qctp);
@ -331,7 +341,7 @@ public class OpenServiceImpl implements OpenService {
}
/**qc_check_task**/
String beLongId = IdUtils.fastSimpleUUID();
qcCheckTaskProduce.setRecordId(beLongId);
qcCheckTaskProduce.setFactoryCode(factoryCode);
qcCheckTaskProduce.setCreateTime(nowDate);

@ -196,10 +196,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by qctp.sort
</select>
<select id="getUserByMaterial" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select top 1 user_code userCode,
select user_code userCode,
user_name userName
from qc_user_material where material_code = #{materialCode}
order by create_time desc
</select>
<insert id="insertEquRepairOrder" parameterType="DeviceRepairOrder">
@ -358,5 +357,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)
</foreach>
</insert>
<insert id="addCheckUsers">
insert into qc_check_task_user(
record_id,belong_to,check_no,
check_man_code,check_man_name,
create_by,create_time,factory_code
) values
<foreach item="item" index="index" collection="list" separator=",">
(
#{item.id},#{item.belongTo},#{item.checkNo},
#{item.userCode},#{item.userName},
#{item.createBy},#{item.createTime},#{item.factoryCode}
)
</foreach>
</insert>
</mapper>

@ -8,6 +8,7 @@ import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcSupplier;
import com.op.system.api.domain.SysDictData;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.quality.QcUserMaterialDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -88,4 +89,8 @@ public interface QcCheckTaskIncomeMapper {
String getTypeCode(String checkType);
List<String> selectQcCheckTaskCheckNoByRecordIds(String[] recordIds);
List<QcUserMaterialDTO> getUserByMaterial(String materialCode);
int addCheckUsers(@Param("list") List<QcUserMaterialDTO> users);
}

@ -17,6 +17,7 @@ import com.op.quality.mapper.*;
import com.op.quality.service.IQcCheckTaskProduceService;
import com.op.quality.service.IQcCheckTaskUserService;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.quality.QcUserMaterialDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -144,6 +145,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
//String typeCode = qcCheckTaskIncomeMapper.getTypeCode(qcCheckTaskIncome.getCheckType());
qcCheckTaskIncome.setTypeCode("material");//大检验节点
/**qc_task_user start**/
if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckManName())){//管理系统创建任务
String checkManName = qcCheckTaskIncome.getCheckManName();
String checkManCode = qcCheckTaskIncome.getCheckManCode();
qcCheckTaskIncome.setCheckManName("");
@ -159,9 +161,33 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
qcCheckTaskUser.setBelongTo(beLongId);
qcCheckTaskUserList.add(qcCheckTaskUser);
}
qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTaskIncome);
//检验人插入
qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList);
}else{//上位机触发
qcCheckTaskIncome.setCheckManName("");
qcCheckTaskIncome.setCheckManCode("");
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskIncome.getMaterialCode());
if(CollectionUtils.isEmpty(users)){
QcUserMaterialDTO dto0 = new QcUserMaterialDTO();
dto0.setUserCode("mobile");
dto0.setUserName("手持测试用户");
users.add(dto0);
}else{
for(QcUserMaterialDTO user:users){
user.setId(IdUtils.fastSimpleUUID());
user.setBelongTo(beLongId);
user.setCheckNo(qcCheckTaskIncome.getCheckNo());
user.setCreateBy(createBy);
user.setFactoryCode(factoryCode);
user.setCreateTime(nowDate);
}
}
int m=qcCheckTaskIncomeMapper.addCheckUsers(users);
logger.info("检查人新增"+m+"成功");
}
qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTaskIncome);
/**qc_check_task_detail**/
for(QcCheckTaskDetail item:items){
item.setRecordId(IdUtils.fastSimpleUUID());
@ -312,10 +338,11 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
qcCheckTaskIncome.setCheckStatus("2");
qcCheckTaskIncome.setCheckResult(result);
qcCheckTaskIncome.setCheckTime(DateUtils.getNowDate());
qcCheckTaskIncome.setCheckManCode(SecurityUtils.getUsername());
n = qcCheckTaskIncomeMapper.updateQcCheckTaskIncome(qcCheckTaskIncome);
/**wms_raw_order_in-->quality_status->**/
qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"0");
qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2");
qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome);
}else if("produce".equals(qcCheckTaskIncome.getTypeCode())){
QcCheckTaskProduce qcCheckTaskProduce = new QcCheckTaskProduce();
@ -323,6 +350,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
qcCheckTaskProduce.setRecordId(recordId);
qcCheckTaskProduce.setCheckResult(result);
qcCheckTaskProduce.setCheckTime(DateUtils.getNowDate());
qcCheckTaskProduce.setCheckManCode(SecurityUtils.getUsername());
n = qcCheckTaskProduceMapper.updateQcCheckTaskProduce(qcCheckTaskProduce);
@ -335,6 +363,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
warehousing.setRecordId(recordId);
warehousing.setCheckResult(result);
warehousing.setCheckTime(DateUtils.getNowDate());
warehousing.setCheckManCode(SecurityUtils.getUsername());
n = qcCheckTaskWarehousingMapper.updateQcCheckTaskWarehousing(warehousing);
}

@ -1,5 +1,6 @@
package com.op.quality.service.impl;
import java.util.Date;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
@ -138,9 +139,10 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService {
String key = "#header.poolName";
String factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
//遍历赋值
Date nowTime = DateUtils.getNowDate();
for (QcCheckTaskUser qcCheckTaskUser : qcCheckTaskUserList){
qcCheckTaskUser.setRecordId(IdUtils.fastSimpleUUID());
qcCheckTaskUser.setCreateTime(DateUtils.getNowDate());
qcCheckTaskUser.setCreateTime(nowTime);
qcCheckTaskUser.setCreateBy(SecurityUtils.getUsername());
qcCheckTaskUser.setFactoryCode(factoryCode);
}

@ -230,6 +230,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
</insert>
<update id="updateQcCheckTaskIncome" parameterType="QcCheckTaskIncome">
update qc_check_task
<trim prefix="SET" suffixOverrides=",">
@ -270,6 +271,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update qc_check_task
set
check_status = #{checkStatus},
check_man_code = #{updateBy},
<if test="checkTime != null">check_time = #{checkTime},</if>
<if test="sampleQuality != null">sample_quality = #{sampleQuality},</if>
<if test="noOkQuality != null">noOk_quality = #{noOkQuality},</if>
@ -311,4 +313,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{recordId}
</foreach>
</select>
<select id="getUserByMaterial" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select user_code userCode,
user_name userName
from qc_user_material where material_code = #{materialCode}
</select>
<insert id="addCheckUsers">
insert into qc_check_task_user(
record_id,belong_to,check_no,
check_man_code,check_man_name,
create_by,create_time,factory_code
) values
<foreach item="item" index="index" collection="list" separator=",">
(
#{item.id},#{item.belongTo},#{item.checkNo},
#{item.userCode},#{item.userName},
#{item.createBy},#{item.createTime},#{item.factoryCode}
)
</foreach>
</insert>
</mapper>

@ -119,15 +119,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
e.workshop_code supplierCode,
e.workshop_name supplierName,
pow.product_date incomeTime,
task.createTime
task.createTime,
task.order_no orderNo,
task.check_loc checkLoc
from pro_order_workorder pow
left join pro_order_workorder_batch powb on powb.workorder_id = pow.workorder_id
left join base_equipment e on e.equipment_code = pow.workorder_name
left join (
select max(create_time) createTime,income_batch_no from qc_check_task
where type_code = 'produce' and income_batch_no='20270104LJ20240105CBRA0L'
<!--生产放开and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120)-->
GROUP BY income_batch_no
select max(create_time) createTime,income_batch_no,order_no,check_loc
from qc_check_task
where type_code = 'produce'
and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
GROUP BY income_batch_no,order_no,check_loc
) task on task.income_batch_no = powb.batch_code
where pow.status = 'w2' and pow.parent_order = '0' and pow.del_flag ='0'
and powb.del_flag = '0' and pow.product_date >= '2023-12-22'

@ -48,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
'检验任务' attr1
from qc_check_task qct
left join qc_check_type qc on qct.check_type = qc.order_code
where qct.check_status = '0' and qct.check_man_code = #{checkManCode}
left join qc_check_task_user qctu on qctu.belong_to = qct.record_id
where qct.check_status = '0' and qctu.check_man_code = #{checkManCode}
group by qct.check_type,qc.check_name
union all
select '','',

@ -256,10 +256,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
qct.status,qct.create_by,qct.create_time,qct.check_type,
qct.noOk_quality,qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality,qct.sample_quality
from qc_check_task qct
left join qc_check_task_user qctu on qctu.belong_to = qct.record_id
<where>
and qct.del_flag = '0'
<if test="checkType != null and checkType != ''"> and qct.check_type = #{checkType}</if>
<if test="checkManCode != null and checkManCode != ''"> and qct.check_man_code = #{checkManCode}</if>
<if test="checkManCode != null and checkManCode != ''"> and qctu.check_man_code = #{checkManCode}</if>
<if test="checkStatus != null and checkStatus != ''"> and qct.check_status in (${checkStatus})</if>
</where>
order by qct.create_time desc

Loading…
Cancel
Save