Browse Source

2023-12-14 维修反馈增加“新增”功能

java8
fengyuan_yang 3 years ago
parent
commit
064c329569
  1. 11
      src/main/java/com/xujie/sys/modules/pms/controller/EamController.java
  2. 20
      src/main/java/com/xujie/sys/modules/pms/data/EamDefectFeedBackData.java
  3. 2
      src/main/java/com/xujie/sys/modules/pms/service/EamService.java
  4. 129
      src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java
  5. 12
      src/main/resources/mapper/pms/EamMapper.xml

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

@ -2024,4 +2024,15 @@ public class EamController {
eamService.updateReportResult(inData);
return R.ok();
}
/**
* 新增维修反馈
* @param inData
* @return
*/
@PostMapping("/saveEamGzBbData")
public R saveEamGzBbData(@RequestBody EamDefectFeedBackInData inData){
eamService.saveEamGzBbData(inData);
return R.ok();
}
}

20
src/main/java/com/xujie/sys/modules/pms/data/EamDefectFeedBackData.java

@ -34,13 +34,31 @@ public class EamDefectFeedBackData extends QueryPage {
private Date updateDate;
private String updateBy;
private Integer version;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date defectDate;
// 工单号
private String orderNo;
// 单据来源
private String documentSource;
private String objectInfo;
private String defectInfo;
public String getObjectInfo() {
return objectInfo;
}
public void setObjectInfo(String objectInfo) {
this.objectInfo = objectInfo;
}
public String getDefectInfo() {
return defectInfo;
}
public void setDefectInfo(String defectInfo) {
this.defectInfo = defectInfo;
}
public String getDocumentSource() {
return documentSource;

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

@ -1102,4 +1102,6 @@ public interface EamService {
List<String> getDeptList(EamWorkOrderInData data);
void updateReportResult(EamWorkOrderInData inData);
void saveEamGzBbData(EamDefectFeedBackInData inData);
}

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

@ -109,7 +109,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamGroupSave(EamGroupData inData){
ResponseData responseData=new ResponseData();
List<EamGroupData> checkEamGroup=eamDao.checkEamGroup(inData);
if(checkEamGroup.size()>0){
if (!checkEamGroup.isEmpty()) {
throw new RuntimeException("该设备分组编码已存在!");
}
eamDao.saveNewEamGroup(inData);
@ -122,7 +122,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamGroupEdit(EamGroupData inData){
ResponseData responseData=new ResponseData();
List<EamGroupData> checkEamGroup=eamDao.checkEamGroup(inData);
if(checkEamGroup.size()==0){
if (checkEamGroup.isEmpty()) {
throw new RuntimeException("该设备分组编码不存在请刷新数据!");
}
eamDao.eamGroupEdit(inData);
@ -136,7 +136,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamGroupDelete(EamGroupData inData){
ResponseData responseData=new ResponseData();
List<EamObjectData> checkDelete=eamMapper.checkEamGroupDelete(inData);
if(checkDelete.size()>0){
if (!checkDelete.isEmpty()) {
throw new RuntimeException("该设备分组已被设备引用无法删除!");
}
eamDao.eamGroupDelete(inData);
@ -157,7 +157,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamLocationSave(EamLocationData inData){
ResponseData responseData=new ResponseData();
List<EamLocationData> checkEamLocation=eamDao.checkEamLocation(inData);
if(checkEamLocation.size()>0){
if (!checkEamLocation.isEmpty()) {
throw new RuntimeException("该设备位置编码已存在!");
}
eamDao.saveNewEamLocation(inData);
@ -170,7 +170,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamLocationEdit(EamLocationData inData){
ResponseData responseData=new ResponseData();
List<EamLocationData> checkEamLocation=eamDao.checkEamLocation(inData);
if(checkEamLocation.size()==0){
if (checkEamLocation.isEmpty()) {
throw new RuntimeException("该设备位置编码不存在请刷新数据!");
}
eamDao.eamLocationEdit(inData);
@ -184,7 +184,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamLocationDelete(EamLocationData inData){
ResponseData responseData=new ResponseData();
List<EamObjectData> checkDelete=eamMapper.checkEamLocationDelete(inData);
if(checkDelete.size()>0){
if (!checkDelete.isEmpty()) {
throw new RuntimeException("该设备位置已被设备引用无法删除!");
}
eamDao.eamLocationDelete(inData);
@ -205,7 +205,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamSupplierSave(EamSupplierData inData){
ResponseData responseData=new ResponseData();
List<EamSupplierData> checkEamSupplier=eamDao.checkEamSupplier(inData);
if(checkEamSupplier.size()>0){
if (!checkEamSupplier.isEmpty()) {
throw new RuntimeException("该设备供应商编码已存在!");
}
eamDao.saveNewEamSupplier(inData);
@ -218,7 +218,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamSupplierEdit(EamSupplierData inData){
ResponseData responseData=new ResponseData();
List<EamSupplierData> checkEamSupplier=eamDao.checkEamSupplier(inData);
if(checkEamSupplier.size()==0){
if (checkEamSupplier.isEmpty()) {
throw new RuntimeException("该设备供应商编码不存在请刷新数据!");
}
eamDao.eamSupplierEdit(inData);
@ -249,7 +249,7 @@ public class EamServiceImpl implements EamService {
public ResponseData eamManufacturerSave(EamManufacturerData inData){
ResponseData responseData=new ResponseData();
List<EamManufacturerData> checkEamManufacturer=eamDao.checkEamManufacturer(inData);
if(checkEamManufacturer.size()>0){
if (!checkEamManufacturer.isEmpty()) {
throw new RuntimeException("该设备制造商编码已存在!");
}
eamDao.saveNewEamManufacturer(inData);
@ -2439,6 +2439,117 @@ public class EamServiceImpl implements EamService {
eamMapper.updateReportResult(inData);
}
/**
* 新增维修反馈
* @param inData
*/
@Override
@Transactional
public void saveEamGzBbData(EamDefectFeedBackInData inData) {
inData.setFunctionType("C");
inData.setDeleteFlag("N");
inData.setVersion(0);
EamDefectFeedBackData searchData = new EamDefectFeedBackData();
searchData.setSite(inData.getSite());
searchData.setFeedBackID(inData.getFeedBackID());
//获取任务号记录数
//验证信息参数集合
List<Object> params = new ArrayList<>();
params.add(inData.getSite());
params.add("eam_feedBackId");
params.add("feedBackId");
params.add("-124");
//
List<Map<String, Object>> resultList = procedureDao.getProcedureData("getFeedBackSerialNo", params);
//修改任务号+1
//batchDao.updateBatchSerialNumber(inData.getSite(),"-124","eam_feedBackId","feedBackId");
Map<String, Object> resultMap = resultList.get(0);
String serialNo = String.valueOf(resultMap.get("serial_no"));
String batchNo = "FB" + serialNo;
inData.setFeedBackID(batchNo);
searchData.setFeedBackID(batchNo);
List<EamDefectFeedBackData> FeedIdData = eamMapper.getEamGzData(searchData);
if (!FeedIdData.isEmpty()){
throw new RuntimeException("该任务号已存在,请刷新页面后再试!");
}
EamDefectFeedBackData searchParam = new EamDefectFeedBackData();
searchParam.setSite(inData.getSite());
searchParam.setObjectInfo(inData.getObjectID());
searchParam.setDefectInfo(inData.getDefectID());
List<EamDefectFeedBackData> eamGzData = eamMapper.getEamGzData(searchParam);
if (!eamGzData.isEmpty() && ("已录入".equalsIgnoreCase(eamGzData.get(0).getStatus()) || "已下达".equalsIgnoreCase(eamGzData.get(0).getStatus()))){
throw new RuntimeException("该设备已存在当前故障的录入或下达记录,请查看后再试!");
}
String interfaceDate = DateUtils.getStringNow();
Date planDate = DateUtils.getStringToDate(interfaceDate, "yyyy-MM-dd");
inData.setPlanDate(planDate);
//保存故障信息
eamMapper.saveEamGzBbData(inData);
// 查看现场动控是否开启
List<SysSceneDynamicControlModelEntity> controlData = eamMapper.selectControlBaseData("10001", inData.getSite());
if (controlData.get(0).getBaseData().equals("控制")) {
// 修改反馈状态为已下达
eamMapper.updateDefectFeedBackStatus(inData);
// 获取orderNo
EamWorkOrderInData data = new EamWorkOrderInData();
data.setSite(inData.getSite());
data.setFunctionType("C");
String orderNo = eamMapper.getOrderNo(data);
inData.setOrderNo(orderNo);
inData.setDocumentSource("设备维修");
// 创建维修工单
eamMapper.saveWorkOrder(inData);
// 创建count表
eamMapper.saveDefectRecordCount(inData);
}
// 根据设备查所属部门
List<EamObjectAdminData> deptData = eamMapper.queryDepartmentByObjectId(inData);
// 根据部门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.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("短信发送失败!");
}
// 保存短信记录
MessageRecordData recordData = new MessageRecordData();
recordData.setSite(inData.getSite());
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();
}
}
}
/**
* @description: 排列树形集合
* @author: fengyuan_yang

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

@ -2102,7 +2102,8 @@
a.Site,
a.FeedBackID,
a.FeedBackDesc,
a.ObjectID
a.ObjectID,
a.Status
from eam_defect_feedBack a
left join eam_defect b on a.DefectID = b.DefectID
<where>
@ -2110,6 +2111,15 @@
<if test="feedBackID != null and feedBackID != ''">
AND a.FeedBackID LIKE '%' + #{feedBackID}+'%'
</if>
<if test="feedBackDesc != null and feedBackDesc != ''">
AND a.FeedBackDesc LIKE '%' + #{feedBackDesc}+'%'
</if>
<if test="objectInfo != null and objectInfo != ''">
AND (a.ObjectID like '%' + #{objectInfo} + '%' or dbo.eam_Get_eamObjectDesc(a.Site,a.ObjectID) like '%' + #{objectInfo} + '%')
</if>
<if test="defectInfo != null and defectInfo != ''">
AND (a.DefectID like '%' + #{defectInfo} + '%' or b.defectDesc like '%' + #{defectInfo} + '%')
</if>
</where>
</select>

Loading…
Cancel
Save