Browse Source

1.新增功能:外采设备维护

2.IQC任务查询增加字段 审核时间  取消审核时间
java8
赵宏斌 10 months ago
parent
commit
510815d0f9
  1. 62
      src/main/java/com/xujie/sys/modules/pms/controller/QcController.java
  2. 114
      src/main/java/com/xujie/sys/modules/pms/data/QCEquipmentFolderLocation.java
  3. 3
      src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java
  4. 12
      src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java
  5. 47
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  6. 12
      src/main/java/com/xujie/sys/modules/pms/service/QcService.java
  7. 89
      src/main/resources/mapper/pms/QcMapper.xml

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

@ -5,14 +5,11 @@ import com.xujie.sys.common.utils.R;
import com.xujie.sys.modules.base.data.BuData;
import com.xujie.sys.modules.oss.entity.SysOssEntity;
import com.xujie.sys.modules.pms.data.*;
import com.xujie.sys.modules.pms.data.QcMasterInformationData;
import com.xujie.sys.modules.pms.entity.DetailTree;
import com.xujie.sys.modules.pms.entity.vo.CheckSubDetailValueVo;
import com.xujie.sys.modules.pms.service.EamService;
import com.xujie.sys.modules.pms.service.QcService;
import com.xujie.sys.modules.pms.util.ResponseData;
import com.xujie.sys.modules.sys.entity.SysSceneDynamicControlModelEntity;
import com.xujie.sys.modules.sys.entity.SysUserEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -2065,6 +2062,65 @@ public class QcController {
qcService.goDownItem(inData);
return R.ok();
}
/**
* @Description 查询 外采设备维护 数据
* @Title queryEquipmentFolderLocationList
* @param inData
* @author zhb
* @date 2025/8/11
* @return R
* @throw
*/
@PostMapping("/queryEquipmentFolderLocationList")
@ResponseBody
public R queryEquipmentFolderLocationList(@RequestBody QCEquipmentFolderLocation inData){
List<QCEquipmentFolderLocation> list = qcService.queryEquipmentFolderLocationList(inData);
return R.ok().put("rows", list).put("total", list.size());
}
/**
* @Description 删除外采设备维护 数据
* @Title queryEquipmentFolderLocationList
* @param inData
* @author zhb
* @date 2025/8/11
* @return R
* @throw
*/
@PostMapping("/deleteEquipmentFolderLocationList")
@ResponseBody
public R deleteEquipmentFolderLocationList(@RequestBody List<QCEquipmentFolderLocation> inData){
qcService.deleteEquipmentFolderLocationList(inData);
return R.ok();
}
/**
* @Description 获取外采设备维护 采集方式列表
* @Title getSuffixList
* @author zhb
* @date 2025/8/12
* @return R
* @throw
*/
@PostMapping("/getSuffixList")
@ResponseBody
public R getSuffixList(){
List<String> list = qcService.getSuffixList();
return R.ok().put("rows", list);
}
/**
* @Description 保存外采设备维护 数据
* @Title queryEquipmentFolderLocationList
* @param inData
* @author zhb
* @date 2025/8/11
* @return R
* @throw
*/
@PostMapping("/saveEquipmentFolderLocationList")
@ResponseBody
public R saveEquipmentFolderLocationList(@RequestBody QCEquipmentFolderLocation inData){
R r = qcService.saveEquipmentFolderLocationList(inData);
return r;
}
}

114
src/main/java/com/xujie/sys/modules/pms/data/QCEquipmentFolderLocation.java

@ -0,0 +1,114 @@
package com.xujie.sys.modules.pms.data;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class QCEquipmentFolderLocation {
private Integer id;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer pageCount;
@TableField(exist = false)
private Integer editFlag;
private String site;
private String buNo;
private String bu;
private String buDesc;
//文件解析路径
private String folderPath;
//设备编码
private String equipmentNo;
private String equipmentDesc;
//采集ID
private String fileNo;
//IP
private String IP;
//采集方式
private String suffix;
//每批次时间
private String batchDate;
//端口
private Integer port;
//图片备份路径
private String backupPhotoPath;
//文件备份路径
private String backupFolderPath;
//检验项目编码
private String itemNo;
//检验类型
private String itemType;
//寄存器地址
private Integer registerAddress;
//寄存器位数
private Integer registerNum;
//寄存器数量类型
private String registerNumColumntype;
//寄存器地址类型
private Integer registerAddressInspection;
//寄存器读取开始位
private Integer registerNumInspection;
//寄存器检验单号类型
private String registerNumInspectionColumntype;
//单位数量
private Integer unitId;
//文件类型读取行特殊标识
private String excelCompareFieldsX;
//文件读取列位数
private Integer excelCompareFieldsY;
//文件从多少行开始读取
private Integer initialLine;
//文件读取行数
private Integer dataRow;
//文件读取跳过行数
private Integer skipLine;
//数据分割标识
private String cuttingSymbol;
//设备直连标识
private String transparentFlag;
//采集数据是否参与公式计算
private String formulaCalculation;
//计算单位maxmin...)
private String formula;
//采集数据是否需要分组
private String groupCalculation;
//正则表达式
private String regexp;
//设备类型A:短信B:邮件C:随身机D:三色灯
private String repairType;
//设备报警声音标识
private String buzzer;
//创建人
private String createBy;
//创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
//变更人
private String updateBy;
//变更时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}

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

@ -251,6 +251,9 @@ public class QcFAIRecordData extends QueryPage {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date submitDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date cancelCheckDate;
private Integer orderId;

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

@ -624,4 +624,16 @@ public interface QcMapper {
void saveFAIDetailedRecord(QcFAIRecordData recordData);
void saveIPQCDetailedRecord(QcFAIRecordData recordData);
List<QCEquipmentFolderLocation> queryEquipmentFolderLocationList(IPage<QCEquipmentFolderLocation> page, @Param("params") QCEquipmentFolderLocation inData);
List<String> getSuffixList();
void saveEquipmentFolderLocationList(QCEquipmentFolderLocation inData);
int updateEquipmentFolderLocation(QCEquipmentFolderLocation inData);
void deleteEquipmentFolderLocationList(QCEquipmentFolderLocation data);
int checkEquipmentFolderLocation(QCEquipmentFolderLocation inData);
}

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

@ -15,16 +15,13 @@ import com.xujie.sys.modules.pms.entity.vo.CheckSubDetailValueVo;
import com.xujie.sys.modules.pms.mapper.PqcMapper;
import com.xujie.sys.modules.pms.mapper.QcDao;
import com.xujie.sys.modules.pms.mapper.QcMapper;
import com.xujie.sys.modules.pms.service.EamService;
import com.xujie.sys.modules.pms.service.QcService;
import com.xujie.sys.modules.pms.util.HttpClientUtil;
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;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.DateUtil;
@ -34,7 +31,6 @@ import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
@ -50,15 +46,12 @@ import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static org.apache.coyote.http11.Constants.a;
@Service
@Slf4j
public class QcServiceImpl implements QcService {
@ -3360,6 +3353,46 @@ public class QcServiceImpl implements QcService {
}
}
@Override
public List<QCEquipmentFolderLocation> queryEquipmentFolderLocationList(QCEquipmentFolderLocation inData) {
String[] s = inData.getBu().split("_");
inData.setSite(s[0]);
inData.setBuNo(s[1]);
IPage<QCEquipmentFolderLocation> page = new Page<>(inData.getPage(), inData.getPageCount());
return qcMapper.queryEquipmentFolderLocationList(page,inData);
}
@Override
public List<String> getSuffixList() {
return qcMapper.getSuffixList();
}
@Override
public R saveEquipmentFolderLocationList(QCEquipmentFolderLocation inData) {
//判断 新增 || 修改
if (inData.getEditFlag()>0){
int update = qcMapper.updateEquipmentFolderLocation(inData);
}else{
String[] s = inData.getBu().split("_");
inData.setSite(s[0]);
inData.setBuNo(s[1]);
//查重 site buNo equipmentNo(设备编码) 不能重复
int count = qcMapper.checkEquipmentFolderLocation(inData);
if (count>0){
return R.error("该记录已存在,请修改后重新保存!");
}
qcMapper.saveEquipmentFolderLocationList(inData);
}
return R.ok();
}
@Override
public void deleteEquipmentFolderLocationList(List<QCEquipmentFolderLocation> inData) {
for (QCEquipmentFolderLocation data : inData) {
qcMapper.deleteEquipmentFolderLocationList(data);
}
}
public void sendMailIQC(QcFAIRecordData data, String type) throws Exception {
// 判断检验结论,不合格则发送邮件
if ("不合格".equals(data.getInspectionResult())) {

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

@ -1,14 +1,12 @@
package com.xujie.sys.modules.pms.service;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.common.utils.R;
import com.xujie.sys.modules.oss.entity.SysOssEntity;
import com.xujie.sys.modules.pms.data.*;
import com.xujie.sys.modules.pms.data.QcMasterInformationData;
import com.xujie.sys.modules.pms.entity.DetailTree;
import com.xujie.sys.modules.pms.entity.vo.CheckSubDetailValueVo;
import com.xujie.sys.modules.pms.util.ResponseData;
import com.xujie.sys.modules.sys.entity.SysSceneDynamicControlModelEntity;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@ -344,4 +342,12 @@ public interface QcService {
void cancelApproval(QcFAIRecordData data);
void cancelApproval2(QcFAIRecordData data);
List<QCEquipmentFolderLocation> queryEquipmentFolderLocationList(QCEquipmentFolderLocation inData);
List<String> getSuffixList();
R saveEquipmentFolderLocationList(QCEquipmentFolderLocation inData);
void deleteEquipmentFolderLocationList(List<QCEquipmentFolderLocation> inData);
}

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

@ -2419,6 +2419,8 @@
a.production_date,
a.expiration_warning_date,
a.expiration_date,
a.cancel_check_date,
a.submit_date,
a.pass_qty,
a.not_pass_qty,
a.batch_qualified_qty
@ -3991,6 +3993,17 @@
(#{item.site}, #{item.buNo}, #{item.templateId}, #{item.itemNo}, #{item.defaultValue}, #{item.minValue}, #{item.maxValue}, #{item.condition}, #{item.collectionSource}, #{item.seqNo})
</foreach>
</insert>
<insert id="saveEquipmentFolderLocationList">
insert into Equipment_folder_location
(folder_path,equipment_no,site,bu_no,file_no,backup_folder_path,IP,suffix,equipment_desc,backup_photo_path,batch_date,port,register_address,
register_num,register_num_columntype,register_address_inspection,register_num_inspection,register_num_inspection_columntype,unit_id,
excel_compare_fields_x,excel_compare_fields_y,initial_line,data_row,skip_line,cutting_symbol,transparent_flag,Formula_calculation,
Formula,Group_calculation,regexp,repair_type,buzzer,create_by,create_time)
values (#{folderPath}, #{equipmentNo}, #{site}, #{buNo}, #{fileNo}, #{backupFolderPath}, #{IP}, #{suffix}, #{equipmentDesc}, #{backupPhotoPath}, #{batchDate}, #{port}, #{registerAddress},
#{registerNum}, #{registerNumColumntype}, #{registerAddressInspection}, #{registerNumInspection}, #{registerNumInspectionColumntype}, #{unitId},
#{excelCompareFieldsX}, #{excelCompareFieldsY}, #{initialLine}, #{dataRow}, #{skipLine}, #{cuttingSymbol}, #{transparentFlag}, #{formulaCalculation},
#{formula}, #{groupCalculation}, #{regexp}, #{repairType}, #{buzzer}, #{createBy}, getDate())
</insert>
<select id="getInspectionTemplateDetail" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcInspectionStandardData">
select
@ -4209,6 +4222,10 @@
delete receiving_task
where site = #{site} and citem_code = #{buNo} and inspection_no = #{inspectionNo}
</delete>
<delete id="deleteEquipmentFolderLocationList">
delete from Equipment_folder_location
where id = #{id}
</delete>
<select id="getQMSTask" resultType="com.xujie.sys.modules.pms.data.QmsTaskData">
select
@ -4231,12 +4248,84 @@
from QMS_soscheduledrouting_TASK
where ISNULL(delete_flag, '') <![CDATA[<>]]> 'Y'
</select>
<select id="getSuffixList" resultType="java.lang.String">
select distinct suffix from Equipment_folder_location
</select>
<select id="checkEquipmentFolderLocation" resultType="java.lang.Integer">
select count(1)
from Equipment_folder_location
where site = #{site} and bu_no = #{buNo} and equipment_no = #{equipmentNo}
</select>
<update id="updateQMSTaskById">
UPDATE QMS_soscheduledrouting_TASK
SET delete_flag = 'Y'
WHERE id = #{id}
</update>
<select id="queryEquipmentFolderLocationList"
resultType="com.xujie.sys.modules.pms.data.QCEquipmentFolderLocation">
select efl.*,
dbo.get_bu_desc(efl.site, efl.bu_no) as buDesc
from Equipment_folder_location efl
<where>
<if test="params.site != null and params.site != ''">
and efl.site = #{params.site}
</if>
<if test="params.buNo != null and params.buNo != ''">
and efl.bu_no = #{params.buNo}
</if>
<if test="params.equipmentNo != null and params.equipmentNo != ''">
and efl.equipment_no like '%'+ #{params.equipmentNo} +'%'
</if>
<if test="params.equipmentDesc != null and params.equipmentDesc != ''">
and efl.equipment_desc like '%'+ #{params.equipmentDesc} +'%'
</if>
<if test="params.IP != null and params.IP != ''">
and efl.IP like '%'+ #{params.IP} +'%'
</if>
<if test="params.suffix != null and params.suffix != ''">
and efl.suffix like '%'+ #{params.suffix} +'%'
</if>
</where>
</select>
<update id="updateEquipmentFolderLocation">
UPDATE Equipment_folder_location
SET
folder_path = #{folderPath},
equipment_no = #{equipmentNo},
bu_no = #{buNo},
file_no = #{fileNo},
backup_folder_path = #{backupFolderPath},
IP = #{IP},
suffix = #{suffix},
equipment_desc = #{equipmentDesc},
backup_photo_path = #{backupPhotoPath},
batch_date = #{batchDate},
port = #{port},
register_address = #{registerAddress},
register_num = #{registerNum},
register_num_columntype = #{registerNumColumntype},
register_address_inspection = #{registerAddressInspection},
register_num_inspection = #{registerNumInspection},
register_num_inspection_columntype = #{registerNumInspectionColumntype},
unit_id = #{unitId},
excel_compare_fields_x = #{excelCompareFieldsX},
excel_compare_fields_y = #{excelCompareFieldsY},
initial_line = #{initialLine},
data_row = #{dataRow},
skip_line = #{skipLine},
cutting_symbol = #{cuttingSymbol},
transparent_flag = #{transparentFlag},
Formula_calculation = #{formulaCalculation},
Formula = #{formula},
Group_calculation = #{groupCalculation},
regexp = #{regexp},
repair_type = #{repairType},
buzzer = #{buzzer},
update_by = #{updateBy},
update_time = getDate()
WHERE id = #{id}
</update>
</mapper>

Loading…
Cancel
Save