Browse Source

2025.05.27 6.生产在报TPM红牌异常时,系统不要立即发送异常短信给机修,同时机修那边也不要立即生产维修工单。等我这边与生产沟通好之后,点击了“下达”按钮后,再生产异常短信,以及维修那边的工单;

7.生成的维修短信需要由TPM红牌之类的字样,与普通异常短信进行区别,方便维修到现场与生产沟通。
           9.增加“未下达”TPM异常筛选条件;
           11.增加TPM转单功能

           核心备件-备件编码无数据
java8
jiayang yue 1 year ago
parent
commit
807f08c36f
  1. 7
      src/main/java/com/xujie/sys/modules/pms/controller/EamController.java
  2. 2
      src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java
  3. 2
      src/main/java/com/xujie/sys/modules/pms/service/EamService.java
  4. 190
      src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java
  5. 5
      src/main/resources/mapper/pms/EamMapper.xml
  6. 2
      src/main/resources/mapper/pms/QcMapper.xml

7
src/main/java/com/xujie/sys/modules/pms/controller/EamController.java

@ -2426,4 +2426,11 @@ public class EamController {
eamService.sendLoraWatch();
return R.ok();
}
@PostMapping(value="/updateRepairTypes")
@ResponseBody
public R updateRepairTypes (@RequestBody List<EamWorkOrderInData> list) {
eamService.updateRepairTypes(list);
return R.ok();
}
}

2
src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java

@ -477,4 +477,6 @@ public interface EamMapper {
void updateOrderStatus(EamWorkOrderInData inData);
void updateMessageNotification(EamWorkOrderInData inData);
void updateRepairTypes(EamWorkOrderInData inData);
}

2
src/main/java/com/xujie/sys/modules/pms/service/EamService.java

@ -1178,4 +1178,6 @@ public interface EamService {
void getLoraWatch();
void sendThreeColourLight();
void updateRepairTypes(List<EamWorkOrderInData> list);
}

190
src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java

@ -2500,6 +2500,72 @@ public class EamServiceImpl implements EamService {
// 如果 key 已经存在则获取当前 value 并加 1
redisTemplate.opsForValue().set(key, val + 1);
}
// 根据设备查所属部门
List<EamObjectAdminData> deptData = eamMapper.queryDepartmentByObjectId(inData);
// 角色
if ("设备维修组".equals(inData.getRepairType())) {
deptData.get(0).setRoleNo("R021");
} else {
deptData.get(0).setRoleNo("R020");
}
// 根据部门ID查机修人员电话
List<EamObjectAdminData> phoneList = eamMapper.queryPhoneByDepartmentId(deptData.get(0));
if (!phoneList.isEmpty()) {
StringBuilder phoneNumber = new StringBuilder();
// 拼接所有人员的手机号/姓名
for (EamObjectAdminData data : phoneList) {
if(StringUtils.isNotBlank(data.getPhone())){
phoneNumber.append(data.getPhone()).append(",");
}
}
String mobile = "";
if (StringUtils.isNotBlank(phoneNumber)) {
mobile = phoneNumber.substring(0, phoneNumber.length() - 1);
}
// 拼接短信内容
String content =
inData.getRepairReportingType() + ":" + inData.getObjectID() + "-" + deptData.get(0).getObjectDesc() +
" 在 " + deptData.get(0).getLocationName() + " 发生了 " + inData.getFeedBackDesc() +" 故障,请及时处理!【齐克庞德】";
try {
// 发送短信
int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, "");
//int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, "");
if (code <= 0) {
throw new RuntimeException("短信发送失败,code = " + code + " !");
}
// 保存短信记录
MessageRecordData recordData = new MessageRecordData();
recordData.setSite(inData.getSite());
recordData.setBuNo(inData.getBuNo());
recordData.setPlanId(inData.getFeedBackID());
recordData.setObjectId(inData.getObjectID());
recordData.setDefectId(inData.getDefectID());
recordData.setFeedBackDesc(inData.getFeedBackDesc());
recordData.setSender(inData.getCreatedBy());
for (EamObjectAdminData data : phoneList) {
if (data.getPhone() != null) {
recordData.setPhone(data.getPhone());
}
if (data.getAdminName() != null) {
recordData.setRecipient(data.getAdminName());
}
eamMapper.saveMessageRecord(recordData);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 查该设备的标准响应时间
List<EamObjectData> objectList = eamMapper.getObjectInfo(inData.getSite(), inData.getBuNo(), inData.getObjectID());
if (!objectList.isEmpty()) {
if (objectList.get(0).getStandardResponseDuration() != null && objectList.get(0).getStandardResponseDuration() != 0) {
// 将标准响应时间作为失效日期存入redis
String key1 = inData.getSite() + "_" + inData.getBuNo() + "_" + inData.getOrderNo() + "_" + "response";
redisTemplate.opsForValue().set(key1, inData,
Duration.ofMinutes(objectList.get(0).getStandardResponseDuration() + (objectList.get(0).getTimeOutResponseDuration() == null ? 0 : objectList.get(0).getTimeOutResponseDuration())));
}
}
}
@Override
public List<EamPropertiesItemData> getItemLists(EamPropertiesModelHeaderData inData){
@ -3005,67 +3071,69 @@ public class EamServiceImpl implements EamService {
// 如果 key 已经存在则获取当前 value 并加 1
redisTemplate.opsForValue().set(key, val + 1);
}
}
// 根据设备查所属部门
List<EamObjectAdminData> deptData = eamMapper.queryDepartmentByObjectId(inData);
// 角色
if ("设备维修组".equals(inData.getRepairType())) {
deptData.get(0).setRoleNo("R021");
} else {
deptData.get(0).setRoleNo("R020");
}
// 根据部门ID查机修人员电话
List<EamObjectAdminData> phoneList = eamMapper.queryPhoneByDepartmentId(deptData.get(0));
if (!phoneList.isEmpty()) {
StringBuilder phoneNumber = new StringBuilder();
// 拼接所有人员的手机号/姓名
for (EamObjectAdminData data : phoneList) {
if(StringUtils.isNotBlank(data.getPhone())){
phoneNumber.append(data.getPhone()).append(",");
}
}
String mobile = "";
if (StringUtils.isNotBlank(phoneNumber)) {
mobile = phoneNumber.substring(0, phoneNumber.length() - 1);
// 根据设备查所属部门
List<EamObjectAdminData> deptData = eamMapper.queryDepartmentByObjectId(inData);
// 角色
if ("设备维修组".equals(inData.getRepairType())) {
deptData.get(0).setRoleNo("R021");
} else {
deptData.get(0).setRoleNo("R020");
}
// 拼接短信内容
String content = inData.getObjectID() + "-" + deptData.get(0).getObjectDesc() + " 在 " + deptData.get(0).getLocationName() + " 发生了 " + inData.getFeedBackDesc() +" 故障,请及时处理!【齐克庞德】";
try {
// 发送短信
int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, "");
//int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, "");
if (code <= 0) {
throw new RuntimeException("短信发送失败,code = " + code + " !");
}
// 保存短信记录
MessageRecordData recordData = new MessageRecordData();
recordData.setSite(inData.getSite());
recordData.setBuNo(inData.getBuNo());
recordData.setPlanId(inData.getFeedBackID());
recordData.setObjectId(inData.getObjectID());
recordData.setDefectId(inData.getDefectID());
recordData.setFeedBackDesc(inData.getFeedBackDesc());
recordData.setSender(inData.getCreatedBy());
// 根据部门ID查机修人员电话
List<EamObjectAdminData> phoneList = eamMapper.queryPhoneByDepartmentId(deptData.get(0));
if (!phoneList.isEmpty()) {
StringBuilder phoneNumber = new StringBuilder();
// 拼接所有人员的手机号/姓名
for (EamObjectAdminData data : phoneList) {
if (data.getPhone() != null) {
recordData.setPhone(data.getPhone());
if(StringUtils.isNotBlank(data.getPhone())){
phoneNumber.append(data.getPhone()).append(",");
}
if (data.getAdminName() != null) {
recordData.setRecipient(data.getAdminName());
}
String mobile = "";
if (StringUtils.isNotBlank(phoneNumber)) {
mobile = phoneNumber.substring(0, phoneNumber.length() - 1);
}
// 拼接短信内容
String content =inData.getRepairReportingType() + ":" + inData.getObjectID() + "-" + deptData.get(0).getObjectDesc() + " 在 " + deptData.get(0).getLocationName() + " 发生了 " + inData.getFeedBackDesc() +" 故障,请及时处理!【齐克庞德】";
try {
// 发送短信
int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, "");
//int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, "");
if (code <= 0) {
throw new RuntimeException("短信发送失败,code = " + code + " !");
}
eamMapper.saveMessageRecord(recordData);
// 保存短信记录
MessageRecordData recordData = new MessageRecordData();
recordData.setSite(inData.getSite());
recordData.setBuNo(inData.getBuNo());
recordData.setPlanId(inData.getFeedBackID());
recordData.setObjectId(inData.getObjectID());
recordData.setDefectId(inData.getDefectID());
recordData.setFeedBackDesc(inData.getFeedBackDesc());
recordData.setSender(inData.getCreatedBy());
for (EamObjectAdminData data : phoneList) {
if (data.getPhone() != null) {
recordData.setPhone(data.getPhone());
}
if (data.getAdminName() != null) {
recordData.setRecipient(data.getAdminName());
}
eamMapper.saveMessageRecord(recordData);
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 查该设备的标准响应时间
List<EamObjectData> objectList = eamMapper.getObjectInfo(inData.getSite(), inData.getBuNo(), inData.getObjectID());
if (!objectList.isEmpty()) {
if (objectList.get(0).getStandardResponseDuration() != null && objectList.get(0).getStandardResponseDuration() != 0) {
// 将标准响应时间作为失效日期存入redis
String key = inData.getSite() + "_" + inData.getBuNo() + "_" + inData.getOrderNo() + "_" + "response";
redisTemplate.opsForValue().set(key, inData, Duration.ofMinutes(objectList.get(0).getStandardResponseDuration() + (objectList.get(0).getTimeOutResponseDuration() == null ? 0 : objectList.get(0).getTimeOutResponseDuration())));
// 查该设备的标准响应时间
List<EamObjectData> objectList = eamMapper.getObjectInfo(inData.getSite(), inData.getBuNo(), inData.getObjectID());
if (!objectList.isEmpty()) {
if (objectList.get(0).getStandardResponseDuration() != null && objectList.get(0).getStandardResponseDuration() != 0) {
// 将标准响应时间作为失效日期存入redis
String key1 = inData.getSite() + "_" + inData.getBuNo() + "_" + inData.getOrderNo() + "_" +
"response";
redisTemplate.opsForValue().set(key1, inData,
Duration.ofMinutes(objectList.get(0).getStandardResponseDuration() + (objectList.get(0).getTimeOutResponseDuration() == null ? 0 : objectList.get(0).getTimeOutResponseDuration())));
}
}
}
}
@ -3699,6 +3767,18 @@ public class EamServiceImpl implements EamService {
sendMessageNotificationService.save(sendMessageNotification);
}
@Override
public void updateRepairTypes(List<EamWorkOrderInData> list) {
if (list == null || list.isEmpty()) {
throw new IllegalArgumentException("数据列表为空");
}
String repairType = list.get(0).getRepairType();
list.forEach(data -> {
data.setRepairType(repairType);
eamMapper.updateRepairTypes(data);
});
}
public Long calculateFutureTime(Date lastTime,String minutes) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(lastTime);

5
src/main/resources/mapper/pms/EamMapper.xml

@ -3606,4 +3606,9 @@
set send_flag = 'N'
WHERE SITE = #{site} AND bu_no = #{buNo} AND plan_no = #{feedBackId} AND order_no = #{orderNo}
</update>
<update id="updateRepairTypes">
UPDATE eam_workOrder
SET repair_type = #{repairType}
WHERE site = #{site} AND bu_no = #{buNo} AND OrderNo = #{orderNo}
</update>
</mapper>

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

@ -4006,7 +4006,7 @@
order by order_id
</select>
<update id="updateEquipmentDataDetailInspectionNo" parameterType="com.xujie.sys.modules.pms.data.SubDetailValues">getUpItemdata
<update id="updateEquipmentDataDetailInspectionNo" parameterType="com.xujie.sys.modules.pms.data.SubDetailValues">
update Equipment_data_detail
set inspection_no = #{inspectionNo}
where id = #{id}

Loading…
Cancel
Save