Browse Source

2024-10-15

优化
master
fengyuan_yang 2 years ago
parent
commit
e173a39476
  1. 15
      src/main/java/com/xujie/sys/modules/pms/controller/QcController.java
  2. 6
      src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java
  3. 60
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  4. 4
      src/main/java/com/xujie/sys/modules/pms/service/QcService.java
  5. 174
      src/main/resources/mapper/pms/QcMapper.xml

15
src/main/java/com/xujie/sys/modules/pms/controller/QcController.java

@ -1369,8 +1369,8 @@ public class QcController {
**/
@PostMapping("/saveOsInspection")
public R saveOsInspection(@RequestBody QcFAIRecordData data){
qcService.saveOsInspection(data);
return R.ok();
String inspectionNo = qcService.saveOsInspection(data);
return R.ok().put("no", inspectionNo);
}
/**
@ -1784,6 +1784,17 @@ public class QcController {
return R.ok().put("page", page);
}
/**
* 获取派工单号
* @param data
* @return
*/
@PostMapping("/searchSeqInfo2")
public R searchSeqInfo2(@RequestBody QcFAIRecordData data){
PageUtils page = qcService.searchSeqInfo2(data);
return R.ok().put("page", page);
}
/**
* 获取物料信息
* @param data

6
src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java

@ -580,4 +580,10 @@ public interface QcMapper {
List<QcItemTypeData> itemTypeSearch(QcItemTypeData data);
QcFAIRecordData boxNoEnter(QcFAIRecordData data);
void updateIQCDetailedRecordByNos(QcFAIRecordData recordData);
IPage<QcFAIRecordData> searchSeqInfo2(Page<QcFAIRecordData> partInformationVoPage, @Param("query") QcFAIRecordData data);
void deleteInspectionFiles(QcFAIRecordData qcData);
}

60
src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java

@ -20,6 +20,7 @@ import com.xujie.sys.modules.pms.util.ResponseData;
import com.xujie.sys.modules.report.dao.ProcedureDao;
import com.xujie.sys.modules.sys.entity.SysSceneDynamicControlModelEntity;
import com.xujie.sys.modules.sys.entity.SysUserEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
@ -62,6 +63,7 @@ import static org.apache.coyote.http11.Constants.a;
* @date: 2023/3/20 17:06
**/
@Service
@Slf4j
public class QcServiceImpl implements QcService {
//记录日志使用
@ -3207,7 +3209,7 @@ public class QcServiceImpl implements QcService {
**/
@Override
@Transactional
public void saveOsInspection(QcFAIRecordData data) {
public String saveOsInspection(QcFAIRecordData data) {
// 获得 site bu
if (data.getBu().split("_").length >= 2 ) {
data.setSite(data.getBu().split("_")[0]);
@ -3422,6 +3424,7 @@ public class QcServiceImpl implements QcService {
}
// 新增IPQC主记录信息
qcMapper.saveIPQCRecord(data);
return data.getInspectionNo();
}
/**
@ -3464,6 +3467,8 @@ public class QcServiceImpl implements QcService {
qcMapper.deleteIPQCDetailedRecord(qcData);
// 删除子明细记录信息
qcMapper.deleteIPQCSubDetailedRecord(qcData);
// 删除文件
qcMapper.deleteInspectionFiles(qcData);
}
}
@ -3879,6 +3884,8 @@ public class QcServiceImpl implements QcService {
qcMapper.deleteIQCDetailedRecord(recordData);
// 删除子明细记录信息
qcMapper.deleteIQCSubDetailedRecord(recordData);
// 删除文件
qcMapper.deleteInspectionFiles(recordData);
// // 修改detailFlag字段为N
// qcMapper.updateIQCDetailFlag(qcData);
// 拿到供应商编码
@ -4133,6 +4140,18 @@ public class QcServiceImpl implements QcService {
controlModel.setControlNo("10005");
List<SysSceneDynamicControlModelEntity> controlList = qcMapper.queryController(controlModel);
// 获取所有检验单号
String nos = inData.getSubmitList().stream().map(QcFAIRecordData::getInspectionNo).map(s -> "'" + s + "'").collect(Collectors.joining(","));
// 修改明细记录信息
for (QcFAIRecordData recordData : inData.getItemList()) {
recordData.setInspectionNo(nos);
qcMapper.updateIQCDetailedRecordByNos(recordData);
}
// 记录开始时间
long startTime = System.currentTimeMillis();
// 循环所选检验单
for (int i = 0; i < inData.getSubmitList().size(); i++) {
QcFAIRecordData data = inData.getSubmitList().get(i);
@ -4141,18 +4160,12 @@ public class QcServiceImpl implements QcService {
data.setPassQty(data.getSamplingQty());
qcMapper.updateIQCMasterRecord(data);
// 修改明细记录信息
for (QcFAIRecordData recordData : inData.getItemList()) {
recordData.setInspectionNo(data.getInspectionNo());
recordData.setSamplingQty(data.getSamplingQty());
qcMapper.updateIQCDetailedRecord(recordData);
}
long n1 = System.currentTimeMillis();
// 删除之前的人员数据
qcMapper.delOperator(data);
// 添加协同人员
List<QcOperatorData> operators = new ArrayList<>();
// 添加协同人员
if (data.getOperator() != null && !"".equals(data.getOperator())){
String[] operatorList = data.getOperator().split(";");
for (String s : operatorList) {
@ -4165,7 +4178,6 @@ public class QcServiceImpl implements QcService {
operators.add(recordData);
}
}
// 添加责任人
if (data.getResponsiblePerson() != null && !"".equals(data.getResponsiblePerson())){
String[] operatorList = data.getResponsiblePerson().split(";");
@ -4183,6 +4195,9 @@ public class QcServiceImpl implements QcService {
qcMapper.saveOperator(operators);
}
long n2 = System.currentTimeMillis();
System.out.println("yfy-log:处理人员: " + (n2 - n1) + " ms");
// 查询首检验单的子明细
if (i > 0) {
List<SubDetailValues> firstInfo = qcMapper.getIQCFirstInfoSub(inData.getSubmitList().get(0));
@ -4219,6 +4234,9 @@ public class QcServiceImpl implements QcService {
}
}
long n3 = System.currentTimeMillis();
System.out.println("yfy-log:处理子明细和工作文件: " + (n3 - n2) + " ms");
// 自动审核
if ("控制".equals(controlList.get(0).getBaseData())) {
// 查询检验单
@ -4238,8 +4256,16 @@ public class QcServiceImpl implements QcService {
throw new XJException(msg, Integer.parseInt(code));
}
}
long n4 = System.currentTimeMillis();
System.out.println("yfy-log:处理自动审核: " + (n4 - n3) + " ms");
}
// 记录结束时间
long endTime = System.currentTimeMillis();
// 计算并输出执行时间
long executionTime = endTime - startTime;
System.out.println("yfy-log:总时间: " + executionTime + " ms");
}
// 复制文件
@ -4540,6 +4566,8 @@ public class QcServiceImpl implements QcService {
qcMapper.deleteIQCDetailedRecord(qcData);
// 删除子明细记录信息
qcMapper.deleteIQCSubDetailedRecord(qcData);
// 删除文件
qcMapper.deleteInspectionFiles(qcData);
}
}
@ -4959,6 +4987,12 @@ public class QcServiceImpl implements QcService {
return new PageUtils(list);
}
@Override
public PageUtils searchSeqInfo2(QcFAIRecordData data) {
IPage<QcFAIRecordData> list = this.qcMapper.searchSeqInfo2(new Page<QcFAIRecordData>(data.getPage(), data.getLimit()), data);
return new PageUtils(list);
}
@Override
public List<QcFAIRecordData> searchPartInfo(QcFAIRecordData data) {
// 获得 site bu
@ -5496,6 +5530,8 @@ public class QcServiceImpl implements QcService {
qcMapper.deleteFQASDetailedRecord(qcData);
// 删除子明细记录信息
qcMapper.deleteFQASSubDetailedRecord(qcData);
// 删除文件
qcMapper.deleteInspectionFiles(qcData);
}
}
@ -5512,7 +5548,9 @@ public class QcServiceImpl implements QcService {
// 删除子明细记录信息
qcMapper.deleteFQASSubDetailedRecord(qcData);
// 修改detailFlag字段为N
qcMapper.updateFQASDetailFlag(qcData);
//qcMapper.updateFQASDetailFlag(qcData);
// 删除文件
qcMapper.deleteInspectionFiles(qcData);
}
}

4
src/main/java/com/xujie/sys/modules/pms/service/QcService.java

@ -183,7 +183,7 @@ public interface QcService {
List<QcFAIRecordData> getPartList(QcFAIRecordData data);
void saveOsInspection(QcFAIRecordData data);
String saveOsInspection(QcFAIRecordData data);
PageUtils qcIQCInspectionSearch(QcFAIRecordData data);
@ -318,4 +318,6 @@ public interface QcService {
List<QcItemTypeData> itemTypeSearch(QcItemTypeData data);
List<QcFAIRecordData> boxNoEnter(QcFAIRecordData data);
PageUtils searchSeqInfo2(QcFAIRecordData data);
}

174
src/main/resources/mapper/pms/QcMapper.xml

@ -2177,7 +2177,7 @@
a.SeqNo as seqNo,
a.OrderNo as orderNo,
a.partNo,
dbo.Get_Part_DescSpec(a.site, a.partNo) as part_desc,
j.PartDescription + Isnull(j.Spec,'') as part_desc,
j.spec,
a.operationDesc as operationDesc,
a.ResourceID as resourceId,
@ -3237,43 +3237,133 @@
</where>
</select>
<!-- <select id="searchSeqInfo" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcFAIRecordData">-->
<!-- SELECT DISTINCT-->
<!-- a.SeqNo,-->
<!-- a.OrderNo,-->
<!-- a.PartNo,-->
<!-- p.PartDescription + Isnull(p.Spec,'') as part_desc,-->
<!-- t.lotsize,-->
<!-- a.qtyrequired,-->
<!-- a.operationDesc,-->
<!-- p.UMID as umId,-->
<!-- t.status-->
<!-- FROM view_virtual_SOScheduledRouting AS a-->
<!-- inner JOIN shoporder AS t ON t.OrderNo = a.OrderNo AND a.site = t.site-->
<!-- left join part as p on a.site = p.site and a.partNo = p.partNo-->
<!-- WHERE-->
<!-- a.site = #{query.site}-->
<!-- <if test="query.status != null and query.status != ''">-->
<!-- AND t.status = #{query.status}-->
<!-- </if>-->
<!-- <if test="(query.status == null or query.status == '') and query.cancelFlag == ''">-->
<!-- AND t.status <![CDATA[<>]]> '已取消'-->
<!-- </if>-->
<!-- <if test="query.orderNo != null and query.orderNo != ''">-->
<!-- AND a.orderno LIKE '%' + #{query.orderNo} + '%'-->
<!-- </if>-->
<!-- <if test="query.seqNo != null and query.seqNo != ''">-->
<!-- AND a.seqno LIKE '%' + #{query.seqNo} + '%'-->
<!-- </if>-->
<!-- <if test="query.partNo != null and query.partNo != ''">-->
<!-- AND a.partNo LIKE '%' + #{query.partNo} + '%'-->
<!-- </if>-->
<!-- <if test="query.partDesc != null and query.partDesc != ''">-->
<!-- AND dbo.Get_Part_DescSpec(a.site, a.partNo) LIKE '%' + #{query.partDesc} + '%'-->
<!-- </if>-->
<!-- <if test="query.operationDesc != null and query.operationDesc != ''">-->
<!-- AND a.operationDesc LIKE '%' + #{query.operationDesc} + '%'-->
<!-- </if>-->
<!-- </select>-->
<select id="searchSeqInfo" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcFAIRecordData">
SELECT DISTINCT
a.SeqNo,
a.OrderNo,
a.PartNo,
p.PartDescription + Isnull(p.Spec,'') as part_desc,
t.lotsize,
a.qtyrequired,
a.operationDesc,
p.UMID as umId,
t.status
FROM view_virtual_SOScheduledRouting AS a
inner JOIN shoporder AS t ON t.OrderNo = a.OrderNo AND a.site = t.site
SELECT
a.site,
a.BarcodeID as seqNo,
a.SOOrderNo as orderNo,
a.PartNo,
p.PartDescription + Isnull(p.Spec,'') as part_desc,
t.lotsize,
a.QtyRequired as qtyrequired,
a.OperationDesc as operationDesc,
p.UMID as umId,
t.status,
p.spec,
a.S_ResourceID as resourceId,
w.ResourceDesc as resourceDesc,
a.S_workCenterNo as workCenterNo
FROM SOScheduledRouting AS a
inner join ShopOrder as t ON t.Site = a.Site AND t.OrderNo = a.SOOrderNo
inner join WorkCenterResource as w ON w.Site = a.Site AND w.WorkCenterNo = a.S_WorkCenterNo and w.ResourceID = a.S_ResourceID
left join part as p on a.site = p.site and a.partNo = p.partNo
WHERE
a.site = #{query.site}
<if test="query.status != null and query.status != ''">
AND t.status = #{query.status}
</if>
<if test="(query.status == null or query.status == '') and query.cancelFlag == ''">
AND t.status <![CDATA[<>]]> '已取消'
</if>
<if test="query.orderNo != null and query.orderNo != ''">
AND a.orderno LIKE '%' + #{query.orderNo} + '%'
</if>
<if test="query.seqNo != null and query.seqNo != ''">
AND a.seqno LIKE '%' + #{query.seqNo} + '%'
</if>
<if test="query.partNo != null and query.partNo != ''">
AND a.partNo LIKE '%' + #{query.partNo} + '%'
</if>
<if test="query.partDesc != null and query.partDesc != ''">
AND dbo.Get_Part_DescSpec(a.site, a.partNo) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test="query.operationDesc != null and query.operationDesc != ''">
AND a.operationDesc LIKE '%' + #{query.operationDesc} + '%'
</if>
a.site = #{query.site}
<if test="query.status != null and query.status != ''">
AND t.status = #{query.status}
</if>
<if test="(query.status == null or query.status == '') and (query.cancelFlag == null or query.cancelFlag == '')">
AND t.status <![CDATA[<>]]> '已取消'
</if>
<if test="query.orderNo != null and query.orderNo != ''">
AND a.SOOrderNo LIKE '%' + #{query.orderNo} + '%'
</if>
<if test="query.seqNo != null and query.seqNo != ''">
AND a.BarcodeID LIKE '%' + #{query.seqNo} + '%'
</if>
<if test="query.partNo != null and query.partNo != ''">
AND a.partNo LIKE '%' + #{query.partNo} + '%'
</if>
<if test="query.partDesc != null and query.partDesc != ''">
AND (p.PartDescription + Isnull(p.Spec,'')) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test="query.operationDesc != null and query.operationDesc != ''">
AND a.operationDesc LIKE '%' + #{query.operationDesc} + '%'
</if>
</select>
<select id="searchSeqInfo2" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcFAIRecordData">
SELECT
a.site,
a.BarcodeID as seqNo,
a.SOOrderNo as orderNo,
a.PartNo,
p.PartDescription + Isnull(p.Spec,'') as part_desc,
t.lotsize,
a.QtyRequired as qtyrequired,
a.OperationDesc as operationDesc,
p.UMID as umId,
t.status,
p.spec,
a.S_ResourceID as resourceId,
w.ResourceDesc as resourceDesc,
a.S_workCenterNo as workCenterNo
FROM SOScheduledRouting AS a
inner join ShopOrder as t ON t.Site = a.Site AND t.OrderNo = a.SOOrderNo
inner join WorkCenterResource as w ON w.Site = a.Site AND w.WorkCenterNo = a.S_WorkCenterNo and w.ResourceID = a.S_ResourceID
left join part as p on a.site = p.site and a.partNo = p.partNo
WHERE
a.site in (select site from eam_access_site where username = #{query.userName})
<if test="query.status != null and query.status != ''">
AND t.status = #{query.status}
</if>
<if test="(query.status == null or query.status == '') and (query.cancelFlag == null or query.cancelFlag == '')">
AND t.status <![CDATA[<>]]> '已取消'
</if>
<if test="query.orderNo != null and query.orderNo != ''">
AND a.SOOrderNo LIKE '%' + #{query.orderNo} + '%'
</if>
<if test="query.seqNo != null and query.seqNo != ''">
AND a.BarcodeID LIKE '%' + #{query.seqNo} + '%'
</if>
<if test="query.partNo != null and query.partNo != ''">
AND a.partNo LIKE '%' + #{query.partNo} + '%'
</if>
<if test="query.partDesc != null and query.partDesc != ''">
AND (p.PartDescription + Isnull(p.Spec,'')) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test="query.operationDesc != null and query.operationDesc != ''">
AND a.operationDesc LIKE '%' + #{query.operationDesc} + '%'
</if>
</select>
<select id="searchPartInfo" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcFAIRecordData">
@ -4231,6 +4321,20 @@
FROM Supplier
WHERE site = #{site} and SupplierID = #{supplierID} and Active = #{active}
</select>
<!-- 修改IQC明细记录信息 -->
<update id="updateIQCDetailedRecordByNos" parameterType="QcFAIRecordData">
UPDATE qc_iqc_detailed_record
SET item_result = #{itemResult},
text_value = #{textValue},
number_value = #{numberValue,jdbcType=DECIMAL}
WHERE inspection_no in (#{inspectionNo}) and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo}
</update>
<delete id="deleteInspectionFiles" parameterType="QcFAIRecordData">
delete sys_oss
where order_ref1 = #{site} and order_ref2 = #{inspectionNo} and order_ref4 = #{buNo}
</delete>
</mapper>

Loading…
Cancel
Save