han\hanst 4 months ago
parent
commit
fc0fd674b3
  1. 38
      src/main/java/com/gaotao/modules/pms/controller/QcController.java
  2. 23
      src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java
  3. 52
      src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java
  4. 22
      src/main/java/com/gaotao/modules/pms/service/QcService.java
  5. 141
      src/main/resources/mapper/pms/QcMapper.xml

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

@ -1595,6 +1595,44 @@ public class QcController {
return R.ok().put("rows", list);
}
// ======================= SOP清单API =======================
/**
* SOP清单查询
**/
@PostMapping("/sopListSearch")
public R sopListSearch(@RequestBody Map<String, Object> params){
PageUtils page = qcService.sopListSearch(params);
return R.ok().put("page", page);
}
/**
* 查询可用的SOP文件
**/
@PostMapping("/sopAvailableFiles")
public R sopAvailableFiles(@RequestBody Map<String, Object> params){
PageUtils page = qcService.sopAvailableFiles(params);
return R.ok().put("page", page);
}
/**
* 保存SOP文件关联
**/
@PostMapping("/sopFileUploadSave")
public R sopFileUploadSave(@RequestBody List<Map<String, Object>> dataList){
qcService.sopFileUploadSave(dataList);
return R.ok();
}
/**
* 删除SOP记录
**/
@PostMapping("/sopList/delete")
public R deleteSopRecord(@RequestBody Map<String, Object> params){
qcService.deleteSopRecord(params);
return R.ok();
}
}

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

@ -14,6 +14,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Mapper
public interface QcMapper {
@ -423,4 +424,26 @@ public interface QcMapper {
void updateDetailSamplingQty(QcFAIRecordData headerData);
List<EamAdminData> getCheckerList(EamAdminData data);
// ======================= SOP清单相关方法 =======================
/**
* SOP清单查询
*/
IPage<Map<String, Object>> sopListSearch(IPage<Map<String, Object>> page, @Param("params") Map<String, Object> params);
/**
* 查询可用的SOP文件
*/
IPage<Map<String, Object>> sopAvailableFiles(IPage<Map<String, Object>> page, @Param("params") Map<String, Object> params);
/**
* 插入SOP记录
*/
void insertSopRecord(@Param("data") Map<String, Object> data);
/**
* 删除SOP记录
*/
void deleteSopRecord(@Param("params") Map<String, Object> params);
}

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

@ -3455,6 +3455,58 @@ public class QcServiceImpl implements QcService {
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
// ======================= SOP清单相关方法实现 =======================
@Override
public PageUtils sopListSearch(Map<String, Object> params) {
IPage<Map<String, Object>> page = new Page<>(
Long.valueOf(params.get("page").toString()),
Long.valueOf(params.get("limit").toString())
);
IPage<Map<String, Object>> resultPage = qcMapper.sopListSearch(page, params);
return new PageUtils(resultPage);
}
@Override
public PageUtils sopAvailableFiles(Map<String, Object> params) {
IPage<Map<String, Object>> page = new Page<>(
Long.valueOf(params.get("page").toString()),
Long.valueOf(params.get("limit").toString())
);
IPage<Map<String, Object>> resultPage = qcMapper.sopAvailableFiles(page, params);
return new PageUtils(resultPage);
}
@Override
@Transactional
public void sopFileUploadSave(List<Map<String, Object>> dataList) {
for (Map<String, Object> data : dataList) {
// 确保日期字段为字符串格式避免类型转换错误
if (data.get("phaseInDate") != null) {
data.put("phaseInDate", data.get("phaseInDate").toString());
}
if (data.get("phaseOutDate") != null) {
data.put("phaseOutDate", data.get("phaseOutDate").toString());
}
if (data.get("creationDate") != null) {
data.put("creationDate", data.get("creationDate").toString());
}
// 确保buNo字段不为空
if (data.get("buNo") != null) {
data.put("buNo", data.get("buNo").toString());
}
qcMapper.insertSopRecord(data);
}
}
@Override
@Transactional
public void deleteSopRecord(Map<String, Object> params) {
qcMapper.deleteSopRecord(params);
}
}

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

@ -224,4 +224,26 @@ public interface QcService {
void changeInspectionWay(QcFAIRecordData data);
List<EamAdminData> getOperatorList(EamAdminData data);
// ======================= SOP清单相关方法 =======================
/**
* SOP清单查询
*/
PageUtils sopListSearch(Map<String, Object> params);
/**
* 查询可用的SOP文件
*/
PageUtils sopAvailableFiles(Map<String, Object> params);
/**
* 保存SOP文件关联
*/
void sopFileUploadSave(List<Map<String, Object>> dataList);
/**
* 删除SOP记录
*/
void deleteSopRecord(Map<String, Object> params);
}

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

@ -3112,6 +3112,147 @@
</if>
</where>
</select>
<!-- ================================================= SOP清单相关SQL ================================================= -->
<!-- SOP清单查询 -->
<select id="sopListSearch" resultType="map">
SELECT
ps.site,
ps.bu_no as buNo,
ps.part_no as partNo,
ps.sop_no as sopNo,
ps.sop_name as sopName,
ps.sop_url as sopUrl,
ps.version,
ps.sop_status as sopStatus,
ps.phase_in_date as phaseInDate,
ps.phase_out_date as phaseOutDate,
ps.created_by as createdBy,
ps.creation_date as creationDate,
ps.sop_type as sopType
FROM part_sop ps
<where>
<if test="params.site != null and params.site != ''">
AND ps.site = #{params.site}
</if>
<if test="params.partNo != null and params.partNo != ''">
AND ps.part_no = #{params.partNo}
</if>
</where>
ORDER BY ps.creation_date DESC
</select>
<!-- 查询可用的SOP文件 -->
<select id="sopAvailableFiles" resultType="map">
SELECT
A.site,
A.bu_no as buNo,
A.file_no as fileNo,
A.file_name as fileName,
A.file_type as fileType,
A.file_suffix as fileSuffix,
A.sop_rev_no as sopRevNo,
A.url_add_ress as sopUrl,
A.sop_type as sopType,
A.source_system as sourceSystem
FROM file_management A
LEFT JOIN part_sop B ON A.SITE = B.SITE AND A.BU_NO = B.BU_NO AND A.FILE_NO = B.sop_no
<where>
B.SITE IS NULL
AND A.status_tb = 0
<if test="params.site != null and params.site != ''">
AND A.site = #{params.site}
</if>
<if test="params.fileNo != null and params.fileNo != ''">
AND A.file_no LIKE '%' + #{params.fileNo} + '%'
</if>
<if test="params.fileName != null and params.fileName != ''">
AND A.file_name LIKE '%' + #{params.fileName} + '%'
</if>
<if test="params.fileType != null and params.fileType != ''">
AND A.file_type LIKE '%' + #{params.fileType} + '%'
</if>
<if test="params.sopRevNo != null and params.sopRevNo != ''">
AND A.sop_rev_no LIKE '%' + #{params.sopRevNo} + '%'
</if>
</where>
ORDER BY A.file_no
</select>
<!-- 插入SOP记录 -->
<insert id="insertSopRecord">
INSERT INTO part_sop (
site,
bu_no,
part_no,
sop_no,
sop_name,
sop_url,
sop_type,
version,
sop_status,
phase_in_date,
phase_out_date,
created_by,
creation_date
) VALUES (
#{data.site},
#{data.buNo},
#{data.partNo},
#{data.sopNo},
#{data.sopName},
#{data.sopUrl},
#{data.sopType},
#{data.version},
#{data.sopStatus},
<choose>
<when test="data.phaseInDate != null and data.phaseInDate != ''">
CONVERT(DATE, #{data.phaseInDate})
</when>
<otherwise>
NULL
</otherwise>
</choose>,
<choose>
<when test="data.phaseOutDate != null and data.phaseOutDate != ''">
CONVERT(DATE, #{data.phaseOutDate})
</when>
<otherwise>
NULL
</otherwise>
</choose>,
#{data.createdBy},
<choose>
<when test="data.creationDate != null and data.creationDate != ''">
CONVERT(DATE, #{data.creationDate})
</when>
<otherwise>
GETDATE()
</otherwise>
</choose>
)
</insert>
<!-- 删除SOP记录 -->
<delete id="deleteSopRecord">
DELETE FROM part_sop
<where>
<if test="params.site != null and params.site != ''">
AND site = #{params.site}
</if>
<if test="params.buNo != null and params.buNo != ''">
AND bu_no = #{params.buNo}
</if>
<if test="params.partNo != null and params.partNo != ''">
AND part_no = #{params.partNo}
</if>
<if test="params.sopNo != null and params.sopNo != ''">
AND sop_no = #{params.sopNo}
</if>
</where>
</delete>
</mapper>

Loading…
Cancel
Save