Browse Source

2025-11-20

IPQC检验增加项目操作
master
fengyuan_yang 7 months ago
parent
commit
9281ab143e
  1. 18
      src/main/java/com/gaotao/modules/pms/controller/QcController.java
  2. 7
      src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java
  3. 87
      src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java
  4. 5
      src/main/java/com/gaotao/modules/pms/service/QcService.java
  5. 52
      src/main/resources/mapper/pms/QcMapper.xml

18
src/main/java/com/gaotao/modules/pms/controller/QcController.java

@ -1368,6 +1368,24 @@ public class QcController {
return R.ok(); return R.ok();
} }
/**
* 获取IPQC模板列表
*/
@PostMapping("/getIPQCTemplateList")
public R getIPQCTemplateList(@RequestBody Map<String, Object> params){
List<Map<String, Object>> list = qcService.getIPQCTemplateList(params);
return R.ok().put("code", 0).put("rows", list);
}
/**
* 导入IPQC模板项目到检验单
*/
@PostMapping("/importIPQCTemplateItems")
public R importIPQCTemplateItems(@RequestBody Map<String, Object> params){
int importCount = qcService.importIPQCTemplateItems(params);
return R.ok().put("code", 0).put("importCount", importCount);
}
/** /**
* 获取检验标准 * 获取检验标准
*/ */

7
src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java

@ -322,6 +322,13 @@ public interface QcMapper {
void deleteIPQCSubDetailByItem(Map<String, Object> params); void deleteIPQCSubDetailByItem(Map<String, Object> params);
// IPQC模板导入
List<Map<String, Object>> getIPQCTemplateList(Map<String, Object> params);
List<EamPropertiesItemData> getTemplateItems(Map<String, Object> params);
List<String> getExistingItemNos(Map<String, Object> params);
List<QcInspectionStandardData> getInspectionStandards(QcInspectionStandardData data); List<QcInspectionStandardData> getInspectionStandards(QcInspectionStandardData data);
void deleteInspectionStandard(QcInspectionStandardData data); void deleteInspectionStandard(QcInspectionStandardData data);

87
src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java

@ -2817,6 +2817,93 @@ public class QcServiceImpl implements QcService {
} }
} }
/**
* 获取IPQC模板列表
*/
@Override
public List<Map<String, Object>> getIPQCTemplateList(Map<String, Object> params) {
return qcMapper.getIPQCTemplateList(params);
}
/**
* 导入IPQC模板项目到检验单
*/
@Override
@Transactional
public int importIPQCTemplateItems(Map<String, Object> params) {
String site = (String) params.get("site");
String buNo = (String) params.get("buNo");
String inspectionNo = (String) params.get("inspectionNo");
String orderNo = (String) params.get("orderNo");
List<Map<String, Object>> templateList = (List<Map<String, Object>>) params.get("templateList");
int importCount = 0;
if (templateList != null && !templateList.isEmpty()) {
// 查询当前检验单是否已有检验项目
Map<String, Object> queryParams = new HashMap<>();
queryParams.put("site", site);
queryParams.put("buNo", buNo);
queryParams.put("inspectionNo", inspectionNo);
List<EamPropertiesItemData> existingItems = qcMapper.getExistingIPQCItems(queryParams);
// 确定template_id和foreign_flag
String targetTemplateId;
String foreignFlag = "Y"; // 模板导入的项目标记为Y
if (existingItems != null && !existingItems.isEmpty()) {
// 如果有现有项目随便取第一条的template_id
targetTemplateId = existingItems.get(0).getTemplateId();
} else {
// 如果没有现有项目template_id赋值为"*"
targetTemplateId = "*";
}
// 遍历选中的模板
for (Map<String, Object> template : templateList) {
String templateId = (String) template.get("templateId");
// 查询模板的所有检验项目
Map<String, Object> templateItemParams = new HashMap<>();
templateItemParams.put("site", site);
templateItemParams.put("buNo", buNo);
templateItemParams.put("templateId", templateId);
List<EamPropertiesItemData> templateItems = qcMapper.getTemplateItems(templateItemParams);
// 查询当前检验单已有的项目编码避免重复导入
List<String> existingItemNos = qcMapper.getExistingItemNos(queryParams);
// 插入模板项目
for (EamPropertiesItemData item : templateItems) {
// 跳过已存在的项目
if (existingItemNos.contains(item.getItemNo())) {
continue;
}
Map<String, Object> insertParams = new HashMap<>();
insertParams.put("site", site);
insertParams.put("buNo", buNo);
insertParams.put("inspectionNo", inspectionNo);
insertParams.put("orderNo", orderNo);
insertParams.put("templateId", targetTemplateId);
insertParams.put("itemNo", item.getItemNo());
insertParams.put("itemDesc", item.getItemDesc());
insertParams.put("defaultValue", item.getDefaultValue());
insertParams.put("maxValue", item.getMaxValue());
insertParams.put("minValue", item.getMinValue());
insertParams.put("valueType", item.getValueType());
insertParams.put("valueTypeDb", item.getValueTypeDb());
insertParams.put("foreignFlag", foreignFlag);
qcMapper.insertIPQCItemDetail(insertParams);
importCount++;
}
}
}
return importCount;
}
/** /**
* 获取检验标准 * 获取检验标准
*/ */

5
src/main/java/com/gaotao/modules/pms/service/QcService.java

@ -188,6 +188,11 @@ public interface QcService {
void deleteIPQCItemDetails(Map<String, Object> params); void deleteIPQCItemDetails(Map<String, Object> params);
// IPQC模板导入
List<Map<String, Object>> getIPQCTemplateList(Map<String, Object> params);
int importIPQCTemplateItems(Map<String, Object> params);
List<QcInspectionStandardData> getInspectionStandards(QcInspectionStandardData data); List<QcInspectionStandardData> getInspectionStandards(QcInspectionStandardData data);
void saveInspectionStandard(QcInspectionStandardData data); void saveInspectionStandard(QcInspectionStandardData data);

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

@ -2529,6 +2529,58 @@
AND item_no = #{itemNo} AND item_no = #{itemNo}
</delete> </delete>
<!-- IPQC模板导入相关SQL -->
<!-- 查询IPQC模板列表 -->
<select id="getIPQCTemplateList" parameterType="java.util.Map" resultType="java.util.HashMap">
SELECT
t.template_id as templateId,
t.template_name as templateName,
t.template_remark as remark,
(SELECT COUNT(*) FROM qc_template_detailed d
WHERE d.site = t.site AND d.bu_no = t.bu_no AND d.template_id = t.template_id) as itemCount
FROM qc_template t
WHERE t.site = #{site}
AND t.bu_no = #{buNo}
AND t.inspection_type_no = '101'
<if test="templateId != null and templateId != ''">
AND t.template_id LIKE '%' + #{templateId} + '%'
</if>
<if test="templateDesc != null and templateDesc != ''">
AND t.template_name LIKE '%' + #{templateDesc} + '%'
</if>
ORDER BY t.template_id
</select>
<!-- 查询模板的所有检验项目 -->
<select id="getTemplateItems" parameterType="java.util.Map" resultType="com.gaotao.modules.pms.data.EamPropertiesItemData">
SELECT
d.ItemNo as itemNo,
p.ItemDesc as itemDesc,
d.default_value as defaultValue,
d.max_value as maxValue,
d.min_value as minValue,
p.ValueType as valueType,
p.ValueType_DB as valueTypeDb
FROM qc_template_detailed d
LEFT JOIN eam_properties_item p
ON d.site = p.site
AND d.bu_no = p.bu_no
AND d.ItemNo = p.ItemNo
WHERE d.site = #{site}
AND d.bu_no = #{buNo}
AND d.template_id = #{templateId}
ORDER BY d.ItemNo
</select>
<!-- 查询检验单已有的项目编码列表 -->
<select id="getExistingItemNos" parameterType="java.util.Map" resultType="java.lang.String">
SELECT item_no
FROM qc_ipqc_detailed_record
WHERE site = #{site}
AND bu_no = #{buNo}
AND inspection_no = #{inspectionNo}
</select>
<select id="getInspectionStandards" parameterType="com.gaotao.modules.pms.data.QcInspectionStandardData" resultType="com.gaotao.modules.pms.data.QcInspectionStandardData"> <select id="getInspectionStandards" parameterType="com.gaotao.modules.pms.data.QcInspectionStandardData" resultType="com.gaotao.modules.pms.data.QcInspectionStandardData">
select select
site, site,

Loading…
Cancel
Save