Browse Source

2024-06-20 功能优化

master
fengyuan_yang 2 years ago
parent
commit
fa0ed0d0c3
  1. 47
      src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java
  2. 128
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  3. 93
      src/main/resources/mapper/pms/QcMapper.xml

47
src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java

@ -249,6 +249,53 @@ public class QcFAIRecordData extends QueryPage {
private BigDecimal notPassQty;
private String orderRefType;
private String refInfo1;
private String refInfo2;
private String refInfo3;
private String refInfo4;
public String getRefInfo1() {
return refInfo1;
}
public void setRefInfo1(String refInfo1) {
this.refInfo1 = refInfo1;
}
public String getRefInfo2() {
return refInfo2;
}
public void setRefInfo2(String refInfo2) {
this.refInfo2 = refInfo2;
}
public String getRefInfo3() {
return refInfo3;
}
public void setRefInfo3(String refInfo3) {
this.refInfo3 = refInfo3;
}
public String getRefInfo4() {
return refInfo4;
}
public void setRefInfo4(String refInfo4) {
this.refInfo4 = refInfo4;
}
public String getOrderRefType() {
return orderRefType;
}
public void setOrderRefType(String orderRefType) {
this.orderRefType = orderRefType;
}
public BigDecimal getPassQty() {
return passQty;
}

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

@ -3293,8 +3293,6 @@ public class QcServiceImpl implements QcService {
}
// 新增IPQC主记录信息
qcMapper.saveIPQCRecord(data);
// 新增IPQC记录到count表
qcMapper.saveIPQCRecordCount(data);
}
/**
@ -3337,8 +3335,6 @@ public class QcServiceImpl implements QcService {
qcMapper.deleteIPQCDetailedRecord(qcData);
// 删除子明细记录信息
qcMapper.deleteIPQCSubDetailedRecord(qcData);
// 删除count表记录
qcMapper.deleteIPQCRecordCount(qcData);
}
}
@ -4056,8 +4052,8 @@ public class QcServiceImpl implements QcService {
// }
Float arriveQty = inData.getRollCount().floatValue(); // 送检数量
Float qtyInspected = inData.getSamplingQty().floatValue(); // 检验数量/抽样数量
Float qtyApproved = inData.getPassQty().floatValue();// 合格数量
Float qtyScrapt = inData.getNotPassQty().floatValue();// 不合格数量
Float qtyApproved = inData.getPassQty() == null ? 0 : inData.getPassQty().floatValue();// 合格数量
Float qtyScrapt = inData.getNotPassQty() == null ? 0 : inData.getNotPassQty().floatValue();// 不合格数量
String inspectResult = inData.getInspectionResult(); // 检验结果
String handleType = inData.getDisposalMeasures(); // 不合格处理方式
String username = inData.getUpdateBy(); // 用户名
@ -5156,80 +5152,58 @@ public class QcServiceImpl implements QcService {
// 修改子明细记录标识为已提交
qcMapper.updateFQASSubDetailSubmitFlag(qcData);
// // 判断检验结论是否合格
// if ("合格".equals(qcData.getInspectionResult()) || "让步接收".equals(qcData.getDisposalMeasures()) || "挑选使用".equals(qcData.getDisposalMeasures())) {
// // 根据 sitepo_orderNopo_itemNo view_po_order 中查出数据
// List<PoOrderData> poOrderData = qcMapper.queryDataFromViewPoOrder(qcData);
// if (!poOrderData.isEmpty() && poOrderData.get(0) != null) {
// // 修改order_qty为送检数量
// poOrderData.get(0).setOrderQty(qcData.getRollQty().toString());
// poOrderData.get(0).setInspectionNo(qcData.getInspectionNo());
//
// // 获取物料的 control_mes
// List<QcFAIRecordData> partInformationList = qcMapper.getPartInformation(qcData);
// if (partInformationList.isEmpty()) {
// throw new RuntimeException("未查到该物料数据!");
// }
// // control_mes Y 的插入task表
// if ("G".equals(partInformationList.get(0).getControlMes())) {
// // 获取接口时间
// String interfaceDate = getInterfaceDate(qcData.getSite());
// Date dateByParten = DateUtils.getStringToDate(interfaceDate, "yyyy-MM-dd");
// //获取当前时间
// String stringNow = DateUtils.getStringNow();
// String stringDate = DateUtils.getStringDate(dateByParten);
// //获取收发类别
// List<RdStyleData> rdstyleList = qcMapper.getInterfaceRdStyleData("采购入库");
// if (rdstyleList.isEmpty()) {
// throw new RuntimeException("获取收发类别失败!");
// }
// String cdepcode = "";
// if ("4".equals(qcData.getSite())){
// cdepcode = "100";
// }
// HardtagPurchaseInStorageCountData inStorageCountData = new HardtagPurchaseInStorageCountData(qcData.getSite(), qcData.getInspectionNo(), stringNow, data.getUpdateBy(), "0", toacc, stringDate,
// poOrderData.get(0).getOrderNo(), partInformationList.get(0).getDefaultWarehouseId(), rdstyleList.get(0).getCrdcode(), qcData.getInspectionNo(), DateUtils.getStringDate(dateByParten), "1", "",
// "1", poOrderData.get(0).getItemNo(), qcData.getPartNo(), qcData.getRollQty().doubleValue(), poOrderData.get(0).getCitemCode(), stringNow, "采购订单");
// inStorageCountData.setTransType("采购材料订单入库");
// inStorageCountData.setCdepcode(cdepcode);
// //批量添加汇总数据
// int i = qcMapper.insertHardtagPurchaseInStorageData(inStorageCountData);
//
// //生成Transheader
// HardtagTransHeaderData inData = new HardtagTransHeaderData(qcData.getInspectionNo(),qcData.getSite(),partInformationList.get(0).getDefaultWarehouseId(),dateByParten,"CRT","采购材料订单入库",data.getUpdateBy(),
// data.getUpdateBy(),0,0,"*","D","N","N",new Date(),
// "N",poOrderData.get(0).getOrderNo(),"Y","已录入",partInformationList.get(0).getDefaultWarehouseId(),"1","","",
// "","","");
// inData.setCountId(i);
// inData.setRemark("采购订单入库");
// //保存transHeader数据
// qcMapper.batchSaveHrdtagTransHeader(inData);
//
// HardtagTransDetailData hardtagTransDetailData = new HardtagTransDetailData(qcData.getInspectionNo(), qcData.getSite(), 1, qcData.getPartNo(), "", qcData.getRollQty(), "+", poOrderData.get(0).getOrderNo(), "0", poOrderData.get(0).getCitemCode());
// //保存transDetail数据
// qcMapper.batchSaveHardtagTransDetail(hardtagTransDetailData);
// } else {
// // 向收货任务表里添加数据
// qcMapper.saveReceivingTask(poOrderData.get(0));
// }
// } else {
// throw new RuntimeException("未查询到采购订单!");
// }
// }
//
// // 发送邮件
// if ("不合格".equals(qcData.getInspectionResult())) {
// try {
// List<QcFAIRecordData> list = qcMapper.iqcDetailSearch(qcData);
// qcData.setItemList(list);
// sendMailIQC(qcData, "IQC");
// } catch (Exception e) {
// logger.info(e.getMessage());
// }
// }
if ("生产入库检验".equals(qcData.getOrderRefType())) {
// 调用存储过程执行
Map<String, Object> resultMap = this.dboSaveFQASSubmitResult(qcData);
// 判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(code)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new XJException(msg, Integer.parseInt(code));
}
}
}
}
public Map<String, Object> dboSaveFQASSubmitResult(QcFAIRecordData inData) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//公共参数
String site = inData.getSite();
String receiptNo = inData.getReceiptNo(); // 接收单号
int receiptItemNo = 0;
try {
receiptItemNo = Integer.parseInt(inData.getReceiptItemNo()); // 接收单号
} catch (NumberFormatException e) {
System.out.println("字符串转换数值失败(receiptItemNo): " + inData.getReceiptItemNo());
}
String inspectDate = sdf.format(inData.getInspectorDate());
Float arriveQty = inData.getRollCount().floatValue(); // 送检数量
Float qtyInspected = inData.getSamplingQty().floatValue(); // 检验数量/抽样数量
Float qtyApproved = inData.getPassQty() == null ? 0 : inData.getPassQty().floatValue();// 合格数量
Float qtyScrapt = inData.getNotPassQty() == null ? 0 : inData.getNotPassQty().floatValue();// 不合格数量
String inspectResult = inData.getInspectionResult(); // 检验结果
String handleType = inData.getDisposalMeasures(); // 不合格处理方式
String username = inData.getUpdateBy(); // 用户名
String inspector = inData.getInspectorName();// 检验员名称
List<Object> params = new ArrayList<>();
params.add(site);
params.add(inspectResult);
params.add(receiptNo);
params.add(receiptItemNo);
params.add(inspectDate);
params.add(arriveQty);
params.add(qtyApproved);
params.add(qtyScrapt);
params.add(qtyInspected);
params.add(handleType);
params.add(username);
params.add(inspector);
//执行方法
List<Map<String, Object>> resultList = procedureDao.getProcedureData("update_ERPSOOpsTransfer", params);
return resultList.get(0);
}
/**
* 删除检验记录
* @param data

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

@ -1856,8 +1856,8 @@
<!-- 新增IPQC主记录信息 -->
<insert id="saveIPQCRecord" parameterType="QcFAIRecordData">
INSERT INTO qc_ipqc_record (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id, part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id)
VALUES(#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId}, #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId})
INSERT INTO qc_ipqc_record (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id, part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id, pass_qty)
VALUES(#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId}, #{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId}, #{samplingQty})
</insert>
<!-- 查询IPQC主记录信息 -->
@ -1878,7 +1878,6 @@
dbo.qc_get_resource_desc(site, resource_id, work_center_no) as resourceDesc,
part_no,
dbo.qc_get_part_desc(part_no) as part_desc,
dbo.qc_get_cinv_source_code(part_no) as cinvSourceCode,
inspection_remark,
roll_qty,
sampling_qty,
@ -1890,7 +1889,6 @@
ssr_id,
unqualified_qty,
submit_flag,
dbo.qc_get_sku(part_no) as sku,
dbo.qc_get_spec(part_no) as spec,
seq_no,
batch_roll_no,
@ -1904,7 +1902,9 @@
isnull(dbo.joint_id(site, bu_no, inspection_no, 'coordination'), '') as operator,
isnull(dbo.joint_name(site, bu_no, inspection_no, 'coordination'), '') as operatorName,
isnull(dbo.joint_id(site, bu_no, inspection_no, 'responsible'), '') as responsiblePerson,
isnull(dbo.joint_name(site, bu_no, inspection_no, 'responsible'), '') as responsiblePersonName
isnull(dbo.joint_name(site, bu_no, inspection_no, 'responsible'), '') as responsiblePersonName,
pass_qty,
not_pass_qty
FROM qc_ipqc_record
<where>
site in (select site from eam_access_site where username = #{query.userName})
@ -1921,12 +1921,6 @@
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.qc_get_part_desc(part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
AND dbo.qc_get_cinv_source_code(part_no) LIKE '%' + #{query.cinvSourceCode} + '%'
</if>
<if test = "query.sku != null and query.sku != ''">
AND dbo.qc_get_sku(part_no) LIKE '%' + #{query.sku} + '%'
</if>
<if test = "query.states != null and query.states.size > 0">
AND state in
<foreach item="item" collection="query.states" open="(" separator="," close=")">
@ -2047,7 +2041,9 @@
inspector_date = getDate(),
sampling_qty = #{samplingQty,jdbcType=DECIMAL},
roll_qty = #{rollQty,jdbcType=DECIMAL},
unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL}
unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL},
pass_qty = #{passQty,jdbcType=DECIMAL},
not_pass_qty = #{notPassQty, jdbcType=DECIMAL}
WHERE site = #{site} and inspection_no = #{inspectionNo} and bu_no = #{buNo}
</update>
@ -2130,21 +2126,18 @@
<select id="getOperationList" parameterType="QcFAIRecordData" resultType="QcFAIRecordData">
SELECT
DISTINCT
a.seqno as seqNo,
a.orderno as orderNo,
j.partNo,
dbo.Get_Part_DescSpec(j.site, j.partNo) as part_desc,
a.SeqNo as seqNo,
a.OrderNo as orderNo,
a.partNo,
dbo.Get_Part_DescSpec(a.site, a.partNo) as part_desc,
j.spec,
j.sku,
c.operation_desc as operationDesc,
a.itemno as operationNo,
a.s_resourceid as resourceId,
DBO.getResourceDesc(a.site, a.s_resourceid) as resourceDesc,
c.work_center_no
FROM soscheduledrouting as a
LEFT JOIN so_routing as c ON c.order_no = a.orderno and a.itemno = c.item_no
LEFT JOIN part j ON a.part_no = j.partNo
WHERE a.seqno = #{seqNo}
a.operationDesc as operationDesc,
a.s_ResourceID as resourceId,
DBO.getResourceDesc(a.site, a.s_ResourceID) as resourceDesc,
a.S_workCenterNo as workCenterNo
FROM view_virtual_SOScheduledRouting as a
LEFT JOIN part j ON a.partNo = j.partNo and a.site = j.site
WHERE a.SeqNo = #{seqNo}
</select>
<!-- 根据工单号和工序号查出所有数据 -->
@ -2218,7 +2211,9 @@
sampling_qty = #{samplingQty},
inspection_cycle = #{inspectionCycle},
part_desc = #{partDesc},
detail_flag = 'Y'
detail_flag = 'Y',
pass_qty = sampling_qty,
not_pass_qty = 0
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</update>
@ -2252,7 +2247,7 @@
po_orderNo,
po_itemNo,
roll_count,
'采购订单' as orderType,
'' as orderType,
action_date,
action_by,
isnull(dbo.joint_id(site, bu_no, inspection_no, 'coordination'), '') as operator,
@ -2262,7 +2257,11 @@
receipt_no,
receipt_item_no,
pass_qty,
not_pass_qty
not_pass_qty,
ref_info1,
ref_info2,
ref_info3,
ref_info4
FROM qc_iqc_record
<where>
site in (select site from eam_access_site where username = #{query.userName})
@ -3124,24 +3123,15 @@
</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,
J.partNo,
dbo.Get_Part_DescSpec(j.site, j.partNo) as part_desc,
a.SeqNo,
a.OrderNo,
a.PartNo,
dbo.Get_Part_DescSpec(a.site, a.partNo) as part_desc,
t.lotsize,
a.qtyrequired,
c.operation_desc,
J.sku,
(select sum(roll_qty) from qc_ipqc_record where order_no = #{query.orderNo}) as sjzs
FROM
soscheduledrouting AS a
inner JOIN so_routing AS c ON c.order_no = a.orderno
AND a.itemno = c.item_no
AND c.site = a.site
inner JOIN part AS J ON a.site = J.site
AND a.part_no = J.partNo
inner JOIN shoporder AS t ON t.orderno = a.orderno
AND a.site = t.site
a.operationDesc
FROM view_virtual_SOScheduledRouting AS a
inner JOIN shoporder AS t ON t.OrderNo = a.OrderNo AND a.site = t.site
WHERE
a.site = #{query.site}
<if test="query.status != null and query.status != ''">
@ -3154,13 +3144,13 @@
AND a.seqno LIKE '%' + #{query.seqNo} + '%'
</if>
<if test="query.partNo != null and query.partNo != ''">
AND J.partNo LIKE '%' + #{query.partNo} + '%'
AND a.partNo LIKE '%' + #{query.partNo} + '%'
</if>
<if test="query.partDesc != null and query.partDesc != ''">
AND dbo.Get_Part_DescSpec(j.site, j.partNo) LIKE '%' + #{query.partDesc} + '%'
AND dbo.Get_Part_DescSpec(a.site, a.partNo) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test="query.operationDesc != null and query.operationDesc != ''">
AND c.operation_desc LIKE '%' + #{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">
@ -3505,7 +3495,9 @@
sampling_qty = #{samplingQty},
inspection_cycle = #{inspectionCycle},
part_desc = #{partDesc},
detail_flag = 'Y'
detail_flag = 'Y',
pass_qty = sampling_qty,
not_pass_qty = 0
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</update>
@ -3542,7 +3534,8 @@
isnull(dbo.joint_id(site, bu_no, inspection_no, 'responsible'), '') as responsiblePerson,
isnull(dbo.joint_name(site, bu_no, inspection_no, 'responsible'), '') as responsiblePersonName,
pass_qty,
not_pass_qty
not_pass_qty,
order_ref_type
FROM qc_stock_record
<where>
site in (select site from eam_access_site where username = #{query.userName})

Loading…
Cancel
Save