|
@@ -3,25 +3,33 @@ package com.iamberry.rst.service.fm;
|
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.iamberry.rst.core.cm.CmRelation;
|
|
|
+import com.iamberry.rst.core.cm.CompanyInfo;
|
|
|
import com.iamberry.rst.core.cm.ProcMethod;
|
|
|
import com.iamberry.rst.core.cm.SalesOrderItem;
|
|
|
import com.iamberry.rst.core.fm.*;
|
|
|
import com.iamberry.rst.core.order.OrderWarehouse;
|
|
|
+import com.iamberry.rst.core.order.Product;
|
|
|
import com.iamberry.rst.core.page.PageRequest;
|
|
|
import com.iamberry.rst.core.page.PagedResult;
|
|
|
+import com.iamberry.rst.core.pts.Produce;
|
|
|
import com.iamberry.rst.core.sys.Admin;
|
|
|
import com.iamberry.rst.faces.cm.InventoryService;
|
|
|
import com.iamberry.rst.faces.cm.SalesOrderService;
|
|
|
import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
|
|
|
import com.iamberry.rst.faces.sms.SmsService;
|
|
|
-import com.iamberry.rst.service.cm.mapper.CustomerInfoMapper;
|
|
|
-import com.iamberry.rst.service.cm.mapper.ProcMethodMapper;
|
|
|
+import com.iamberry.rst.service.cm.mapper.*;
|
|
|
import com.iamberry.rst.service.fm.mapper.ComplaintDetectInfoMapper;
|
|
|
import com.iamberry.rst.service.fm.mapper.ComplaintMaintenanceInfoMapper;
|
|
|
+import com.iamberry.rst.service.fm.mapper.DetectCustmoerPhenomenonMapper;
|
|
|
+import com.iamberry.rst.service.fm.mapper.DetectTransportMapper;
|
|
|
+import com.iamberry.rst.service.product.mapper.ProductMapper;
|
|
|
+import com.iamberry.rst.service.pts.mapper.ProduceMapper;
|
|
|
+import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
|
|
|
import com.iamberry.rst.service.sys.mapper.SysMapper;
|
|
|
import com.iamberry.rst.util.PageUtil;
|
|
|
import com.iamberry.rst.util.SmsConfig;
|
|
|
import com.iamberry.wechat.core.entity.AdminUtils;
|
|
|
+import com.iamberry.wechat.tools.DateTimeUtil;
|
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
|
import org.slf4j.Logger;
|
|
@@ -56,6 +64,22 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
private InventoryService inventoryService;
|
|
|
@Autowired
|
|
|
private SysMapper sysMapper;
|
|
|
+ @Autowired
|
|
|
+ private MaintainPhenomenonMapper phenomenonMapper;
|
|
|
+ @Autowired
|
|
|
+ private CompanyInfoMapper companyInfoMapper;
|
|
|
+ @Autowired
|
|
|
+ private StoreInfoMapper storeInfoMapper;
|
|
|
+ @Autowired
|
|
|
+ private ProductMapper productMapper;
|
|
|
+ @Autowired
|
|
|
+ private ProduceMapper produceMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysConfigMapper sysConfigMapper;
|
|
|
+ @Autowired
|
|
|
+ private DetectCustmoerPhenomenonMapper detectCustmoerPhenomenonMapper;
|
|
|
+ @Autowired
|
|
|
+ private DetectTransportMapper detectTransportMapper;
|
|
|
|
|
|
@Override
|
|
|
public ComplaintDetectInfo getDetectByMachine(String machine) {
|
|
@@ -64,7 +88,18 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
|
|
|
@Override
|
|
|
public ComplaintDetectInfo getDetectById(Integer detectId) {
|
|
|
- return complaintDetectInfoMapper.getDetectById(detectId);
|
|
|
+ ComplaintDetectInfo res = complaintDetectInfoMapper.getDetectById(detectId);
|
|
|
+ if (res == null) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (res.getSalesmanAdminId() != null) {
|
|
|
+ Admin temp = new Admin();
|
|
|
+ temp.setAdminId(res.getSalesmanAdminId());
|
|
|
+ res.setSalesmanAdminName(sysMapper.get(temp).getAdminName());
|
|
|
+ }
|
|
|
+ res.setPhenomena(complaintDetectInfoMapper.listDetectPhenomenon(detectId));
|
|
|
+ res.setTransport(detectTransportMapper.get(detectId));
|
|
|
+ return res;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -246,7 +281,8 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
throw new RuntimeException("修改QC检测状态");
|
|
|
}
|
|
|
|
|
|
- if(record.getMaintenanceResults() == 1){ //maintenanceResults
|
|
|
+ if(record.getMaintenanceResults() == 1){
|
|
|
+ //maintenanceResults
|
|
|
//判断是否为维修
|
|
|
ComplaintDetectInfo cdi = complaintDetectInfoMapper.getDetectById(record.getDetectId());
|
|
|
Integer typeId = cdi.getProcTypeId();
|
|
@@ -287,8 +323,6 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
inventoryInfo2.setInventoryRecentRecord("退货/换货,从售后不良品仓转入正常销售良品仓(维修ID:"+record.getDetectNumber()+")");
|
|
|
inventoryService.addInventory(inventoryInfo2);
|
|
|
}
|
|
|
- }else{
|
|
|
- throw new RuntimeException("未知的维修类型");
|
|
|
}
|
|
|
}
|
|
|
return flag;
|
|
@@ -311,73 +345,246 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
cmRelation = customerInfoMapper.getCmRelationInfo(cmRelation);
|
|
|
procMethod = procMethodMapper.getProcMethodById(cmRelation.getProcMethodId());
|
|
|
}
|
|
|
- procTypeId = procMethod.getProcTypeId();
|
|
|
- switch (procTypeId){
|
|
|
- case 3:
|
|
|
- //维修
|
|
|
- if(procMethod.getProcMethodIsCharge() == 0){
|
|
|
- //待定
|
|
|
- if(record.getIsMaintenance() == 1){
|
|
|
- //机器故障,待用户确认
|
|
|
- record.setDetectState(38);
|
|
|
- }else if(record.getIsMaintenance() == 2){
|
|
|
- //机器无故障,待用户确认
|
|
|
- record.setDetectState(37);
|
|
|
+ if (procMethod != null) {
|
|
|
+ procTypeId = procMethod.getProcTypeId();
|
|
|
+ switch (procTypeId){
|
|
|
+ case 3:
|
|
|
+ //维修
|
|
|
+ if(procMethod.getProcMethodIsCharge() == 0){
|
|
|
+ //待定
|
|
|
+ if(record.getIsMaintenance() == 1){
|
|
|
+ //机器故障,待用户确认
|
|
|
+ record.setDetectState(38);
|
|
|
+ }else if(record.getIsMaintenance() == 2){
|
|
|
+ //机器无故障,待用户确认
|
|
|
+ record.setDetectState(37);
|
|
|
+ }
|
|
|
+ }else if(procMethod.getProcMethodIsCharge() == 1){
|
|
|
+ //付费
|
|
|
+ //待用户确认
|
|
|
+ record.setDetectState(30);
|
|
|
+ }else if(procMethod.getProcMethodIsCharge() == 2){
|
|
|
+ //免费
|
|
|
+ //待客服确认维修
|
|
|
+ record.setDetectState(34);
|
|
|
}
|
|
|
- }else if(procMethod.getProcMethodIsCharge() == 1){
|
|
|
- //付费
|
|
|
- //待用户确认
|
|
|
- record.setDetectState(30);
|
|
|
- }else if(procMethod.getProcMethodIsCharge() == 2){
|
|
|
- //免费
|
|
|
- //待客服确认维修
|
|
|
- record.setDetectState(34);
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- // 退货/换货
|
|
|
- String processingResults = "";
|
|
|
- String text = "";
|
|
|
- if(record.getDetectRenovation() == 1){
|
|
|
- // 是否可翻新 1可翻新 2不可翻新
|
|
|
- // 待翻新入库
|
|
|
- record.setDetectState(20);
|
|
|
- processingResults = "维修";
|
|
|
- }else if(record.getDetectRenovation() == 2){
|
|
|
- // 不能翻新,待报废
|
|
|
- record.setDetectState(22);
|
|
|
- processingResults = "报废";
|
|
|
- }
|
|
|
- // 查询维修编号
|
|
|
- ComplaintDetectInfo info = complaintDetectInfoMapper.getDetectById(record.getDetectId());
|
|
|
- // 客诉状态为换货或退货时完成检测需要短信通知维修人员
|
|
|
- if(procTypeId == 2){
|
|
|
- //换货
|
|
|
- text = MessageFormat.format(SmsConfig.CUSTOMER_EXCHANGE, info.getDetectNumber(),processingResults);
|
|
|
- }
|
|
|
- if(procTypeId == 4){
|
|
|
- //退货
|
|
|
- text = MessageFormat.format(SmsConfig.CUSTOMER_RETURN, info.getDetectNumber(),processingResults);
|
|
|
- }
|
|
|
- if(procTypeId == 2 || procTypeId == 4){
|
|
|
- String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
|
|
|
- logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送完成检测结果("+processingResults+"):"+result);
|
|
|
- }
|
|
|
+ if (complaintDetectInfo.getDetectIsMaintain() == null) {
|
|
|
+ complaintDetectInfo.setDetectIsMaintain(1);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ // 退货/换货
|
|
|
+ String processingResults = "";
|
|
|
+ String text = "";
|
|
|
+ if(record.getDetectRenovation() == 1){
|
|
|
+ // 是否可翻新 1可翻新 2不可翻新
|
|
|
+ // 待翻新入库
|
|
|
+ record.setDetectState(20);
|
|
|
+ processingResults = "维修";
|
|
|
+ }else if(record.getDetectRenovation() == 2){
|
|
|
+ // 不能翻新,待报废
|
|
|
+ record.setDetectState(22);
|
|
|
+ processingResults = "报废";
|
|
|
+ }
|
|
|
+ // 查询维修编号
|
|
|
+ ComplaintDetectInfo info = complaintDetectInfoMapper.getDetectById(record.getDetectId());
|
|
|
+ // 客诉状态为换货或退货时完成检测需要短信通知维修人员
|
|
|
+ if(procTypeId == 2){
|
|
|
+ //换货
|
|
|
+ text = MessageFormat.format(SmsConfig.CUSTOMER_EXCHANGE, info.getDetectNumber(),processingResults);
|
|
|
+ }
|
|
|
+ if(procTypeId == 4){
|
|
|
+ //退货
|
|
|
+ text = MessageFormat.format(SmsConfig.CUSTOMER_RETURN, info.getDetectNumber(),processingResults);
|
|
|
+ }
|
|
|
+ if(procTypeId == 2 || procTypeId == 4){
|
|
|
+ String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
|
|
|
+ logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送完成检测结果("+processingResults+"):"+result);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (complaintDetectInfo.getDetectIsMaintain() == null) {
|
|
|
+ complaintDetectInfo.setDetectIsMaintain(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Product product = productMapper.getProduce(complaintDetectInfo.getProductId());
|
|
|
+ Produce temp = new Produce();
|
|
|
+ if (product != null && product.getProduceId() != null) {
|
|
|
+ temp.setProduceId(product.getProduceId());
|
|
|
+ temp = produceMapper.getProduceByPro(temp);
|
|
|
+ if (temp == null) {
|
|
|
+ throw new RuntimeException("销售产品未获取到对应的绑定生产产品");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
- //封装检测信息
|
|
|
- //检测现象
|
|
|
- if(record.getConfigli1() != null) {
|
|
|
- if (record.getConfigli1().length > 0) {
|
|
|
- StringBuilder detectPhenomenon = new StringBuilder();
|
|
|
- for (String configid : record.getConfigli1()) {
|
|
|
- detectPhenomenon.append(adddetectItem(configid, record.getDetectId())).append(";");
|
|
|
+ // 维修报价
|
|
|
+ CompanyInfo companyInfo = null;
|
|
|
+ if (record.getDetectPhenomenonIds() != null && record.getDetectPhenomenonIds().length >= 1) {
|
|
|
+
|
|
|
+ // 是否维修,1表示判断维修、2表示判断翻新
|
|
|
+ if (complaintDetectInfo.getDetectIsMaintain() == 1) {
|
|
|
+ if (complaintDetectInfo.getStoreId() == null) {
|
|
|
+ // 爱贝源客户
|
|
|
+ companyInfo = companyInfoMapper.getCompanyInfoById(1);
|
|
|
+ } else {
|
|
|
+ // 其他客户
|
|
|
+ companyInfo = companyInfoMapper.getCompanyInfoById(storeInfoMapper.getStoreInfoById(complaintDetectInfo.getStoreId()).getCompanyId());
|
|
|
+ }
|
|
|
+ Date createDate = DateTimeUtil.parse(record.getDetectProduction(), "yyyy-MM-dd");
|
|
|
+ createDate = DateTimeUtil.addMonth(createDate, companyInfo.getCompanyMaintainMonth());
|
|
|
+ createDate = DateTimeUtil.addMonth(createDate, companyInfo.getCompaynStorageMonth());
|
|
|
+ if (createDate.getTime() >= complaintDetectInfo.getDetectCreateTime().getTime()
|
|
|
+ && record.getIsMaintenance() == 1
|
|
|
+ && record.getDeleteMaintainType() == 1) {
|
|
|
+ // 质保期内、机器有故障,并且为质量问题导致的(免费维修)
|
|
|
+ record.setDetectState(34);
|
|
|
+ record.setDetectOffer(0);
|
|
|
+ } else if (procMethod != null && procMethod.getProcMethodIsCharge() != null && procMethod.getProcMethodIsCharge() == 0) {
|
|
|
+ // 此处为了兼容爱贝源的检测待定选项
|
|
|
+ if(record.getIsMaintenance() == 1){
|
|
|
+ // 机器故障,待用户确认
|
|
|
+ if (createDate.getTime() >= complaintDetectInfo.getDetectCreateTime().getTime() && record.getDeleteMaintainType() == 1) {
|
|
|
+ // 质保期内、机器有故障,并且为质量问题导致的(免费维修)
|
|
|
+ record.setDetectState(34);
|
|
|
+ record.setDetectOffer(0);
|
|
|
+ } else {
|
|
|
+ for (Integer id : record.getDetectPhenomenonIds()) {
|
|
|
+ if (record.getDetectOffer() == null) {
|
|
|
+ record.setDetectOffer(phenomenonMapper.get(id).getPhenomenonMaintainPrice());
|
|
|
+ } else {
|
|
|
+ record.setDetectOffer(record.getDetectOffer() + phenomenonMapper.get(id).getPhenomenonMaintainPrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record.setDetectState(30);
|
|
|
+ }
|
|
|
+ }else if(record.getIsMaintenance() == 2){
|
|
|
+ // 机器无故障,待用户确认
|
|
|
+ record.setDetectState(37);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 质保期外(付费维修) , 并且机器非检测待定的
|
|
|
+ for (Integer id : record.getDetectPhenomenonIds()) {
|
|
|
+ if (record.getDetectOffer() == null) {
|
|
|
+ record.setDetectOffer(phenomenonMapper.get(id).getPhenomenonMaintainPrice());
|
|
|
+ } else {
|
|
|
+ record.setDetectOffer(record.getDetectOffer() + phenomenonMapper.get(id).getPhenomenonMaintainPrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record.setDetectState(30);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (record.getIsMaintenance() == 1) {
|
|
|
+ // 无故障(付费翻新)
|
|
|
+ if (record.getDeleteIsUse() == 1) {
|
|
|
+ // 未过水(翻新)
|
|
|
+ if (temp.getProduceIsW() == 1) {
|
|
|
+ // W系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(12)));
|
|
|
+ } else if (temp.getProduceIsW() == 2) {
|
|
|
+ // S系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(14)));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 已过水(翻新)
|
|
|
+ if (temp.getProduceIsW() == 1) {
|
|
|
+ // W系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(11)));
|
|
|
+ } else if (temp.getProduceIsW() == 2) {
|
|
|
+ // S系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(13)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record.setDetectState(24);
|
|
|
+ } else {
|
|
|
+ // 有故障
|
|
|
+ if (record.getDeleteMaintainType() == 1) {
|
|
|
+ // 质量问题(获取当前客户录入日期和仓储期+售后期,对比机器生产日期)
|
|
|
+ if (complaintDetectInfo.getStoreId() == null) {
|
|
|
+ // 爱贝源客户
|
|
|
+ companyInfo = companyInfoMapper.getCompanyInfoById(1);
|
|
|
+ } else {
|
|
|
+ // 其他客户
|
|
|
+ companyInfo = companyInfoMapper.getCompanyInfoById(storeInfoMapper.getStoreInfoById(complaintDetectInfo.getStoreId()).getCompanyId());
|
|
|
+ }
|
|
|
+ Date createDate = DateTimeUtil.parse(record.getDetectProduction(), "yyyy-MM-dd");
|
|
|
+ createDate = DateTimeUtil.addMonth(createDate, companyInfo.getCompanyAfterMonth());
|
|
|
+ createDate = DateTimeUtil.addMonth(createDate, companyInfo.getCompaynStorageMonth());
|
|
|
+ if (createDate.getTime() >= complaintDetectInfo.getDetectCreateTime().getTime()) {
|
|
|
+ // 质保期内(免费换新)
|
|
|
+ record.setDetectOffer(0);
|
|
|
+ if (record.getDetectRenovation() == 1) {
|
|
|
+ // 可以翻新
|
|
|
+ record.setDetectState(20);
|
|
|
+ } else {
|
|
|
+ // 不可翻新
|
|
|
+ record.setDetectState(22);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 质保期外
|
|
|
+ if (record.getDeleteIsUse() == 1) {
|
|
|
+ // 未过水(翻新)
|
|
|
+ if (temp.getProduceIsW() == 1) {
|
|
|
+ // W系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(12)));
|
|
|
+ } else if (temp.getProduceIsW() == 2) {
|
|
|
+ // S系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(14)));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 已过水(翻新)
|
|
|
+ if (temp.getProduceIsW() == 1) {
|
|
|
+ // W系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(11)));
|
|
|
+ } else if (temp.getProduceIsW() == 2) {
|
|
|
+ // S系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(13)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record.setDetectState(24);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 非质量问题导致
|
|
|
+ if (record.getDeleteIsUse() == 1) {
|
|
|
+ // 未过水(翻新)
|
|
|
+ if (temp.getProduceIsW() == 1) {
|
|
|
+ // W系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(12)));
|
|
|
+ } else if (temp.getProduceIsW() == 2) {
|
|
|
+ // S系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(14)));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 已过水(翻新)
|
|
|
+ if (temp.getProduceIsW() == 1) {
|
|
|
+ // W系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(11)));
|
|
|
+ } else if (temp.getProduceIsW() == 2) {
|
|
|
+ // S系列
|
|
|
+ record.setDetectOffer(Integer.parseInt(sysConfigMapper.getSysConfig(13)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record.setDetectState(24);
|
|
|
+ }
|
|
|
}
|
|
|
- record.setDetectPhenomenon(detectPhenomenon.toString());
|
|
|
}
|
|
|
+
|
|
|
+ // 录入检测现象
|
|
|
+ StringBuilder detectPhenomenon = new StringBuilder();
|
|
|
+ complaintDetectInfoMapper.delPhenomenon(complaintDetectInfo.getDetectId());
|
|
|
+ for (Integer id : record.getDetectPhenomenonIds()) {
|
|
|
+ DetectPhenomenon dp = new DetectPhenomenon();
|
|
|
+ dp.setDetectId(record.getDetectId());
|
|
|
+ dp.setPhenomenonId(id);
|
|
|
+ dp.setDpName(phenomenonMapper.get(id).getPhenomenonName());
|
|
|
+ detectPhenomenon.append(dp.getDpName()).append(";");
|
|
|
+ complaintDetectInfoMapper.addPhenomenon(dp);
|
|
|
+ }
|
|
|
+ // 检测现象描述
|
|
|
+ record.setDetectPhenomenon(detectPhenomenon.toString());
|
|
|
}
|
|
|
|
|
|
+ // 修改
|
|
|
if(complaintDetectInfoMapper.updateDetectById(record) > 0){
|
|
|
if(imgs != null){
|
|
|
if(imgs.length > 0){
|
|
@@ -391,10 +598,26 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
}
|
|
|
}
|
|
|
if(complaintDetectInfo.getDetectSource() == 2 || complaintDetectInfo.getDetectSource() == 3){
|
|
|
- //手动添加需要给业务员发送短信
|
|
|
- //发送短信通知维修检测人员
|
|
|
- if(record.getDetectState() == 30 || record.getDetectState() == 34|| record.getDetectState() == 38 || record.getDetectState() == 37){
|
|
|
- if(complaintDetectInfo.getDetectTel() != null && !complaintDetectInfo.getDetectTel().equals("") && complaintDetectInfo.getSalesmanAdminId() != null){
|
|
|
+ // 给客户发送短信
|
|
|
+ if (complaintDetectInfo.getAdminId() != null) {
|
|
|
+ Admin admin = new Admin();
|
|
|
+ admin.setAdminId(complaintDetectInfo.getAdminId());
|
|
|
+ admin = sysMapper.get(admin);
|
|
|
+ String result = smsService.sendOtherCMS(admin.getAdminTel(), "【优尼雅电子科技】尊敬的客户您好,您的机器" + complaintDetectInfo.getDetectNumber() + "已经检测完成,请登入我司系统确认处理机器的方案。");
|
|
|
+ logger.info("给 " + admin.getAdminTel() + " 手机用户发送短信:通知客户选择处理方式:"+result+"维修id:"+record.getDetectId());
|
|
|
+ }
|
|
|
+ // 给业务员发短信
|
|
|
+ if (complaintDetectInfo.getSalesmanAdminId() != null && companyInfo != null && companyInfo.getCompanyName() != null) {
|
|
|
+ Admin admin = new Admin();
|
|
|
+ admin.setAdminId(complaintDetectInfo.getSalesmanAdminId());
|
|
|
+ admin = sysMapper.get(admin);
|
|
|
+ String result = smsService.sendOtherCMS(admin.getAdminTel(), "【优尼雅电子科技】您客户 " + companyInfo.getCompanyName() + " 的机器" + complaintDetectInfo.getDetectNumber() + "已检测完成,请联系客户进入系统确认处理机器的方案。");
|
|
|
+ logger.info("给 " + admin.getAdminTel() + " 手机用户发送短信:通知业务员选择处理方式:"+result+"维修id:"+record.getDetectId());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 手动添加需要给业务员发送短信
|
|
|
+ if(complaintDetectInfo.getDetectState() == 30 || complaintDetectInfo.getDetectState() == 34|| complaintDetectInfo.getDetectState() == 38 || complaintDetectInfo.getDetectState() == 37){
|
|
|
+ if(complaintDetectInfo.getDetectTel() != null && !"".equals(complaintDetectInfo.getDetectTel()) && complaintDetectInfo.getSalesmanAdminId() != null){
|
|
|
String text = MessageFormat.format(SmsConfig.NOTIFY_SALESMAN, complaintDetectInfo.getDetectName()+complaintDetectInfo.getDetectTel(), ResultInfo.DETECT_MSG+complaintDetectInfo.getDetectId());
|
|
|
Admin admin = new Admin();
|
|
|
admin.setAdminId(complaintDetectInfo.getSalesmanAdminId());
|
|
@@ -426,18 +649,59 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
public PagedResult<ComplaintDetectInfo> listComplaintDetect(PageRequest<ComplaintDetectInfo> pageRequest) {
|
|
|
PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal());
|
|
|
List<ComplaintDetectInfo> detectList = complaintDetectInfoMapper.listComplaintDetect(pageRequest.getData());
|
|
|
- return PageUtil.getPage(detectList);
|
|
|
+ PagedResult<ComplaintDetectInfo> result = PageUtil.getPage(detectList);
|
|
|
+ if (result.getDataList() != null && !result.getDataList().isEmpty()) {
|
|
|
+ for (ComplaintDetectInfo detectInfo : result.getDataList()) {
|
|
|
+ detectInfo.setTransport(detectTransportMapper.get(detectInfo.getDetectId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public PagedResult<ComplaintDetectInfo> listAfterSales(PageRequest<ComplaintDetectInfo> pageRequest) {
|
|
|
PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal());
|
|
|
List<ComplaintDetectInfo> detectList = complaintDetectInfoMapper.listAfterSales(pageRequest.getData());
|
|
|
- return PageUtil.getPage(detectList);
|
|
|
+ PagedResult<ComplaintDetectInfo> result = PageUtil.getPage(detectList);
|
|
|
+ if (result.getDataList() != null && !result.getDataList().isEmpty()) {
|
|
|
+ for (ComplaintDetectInfo detectInfo : result.getDataList()) {
|
|
|
+ detectInfo.setTransport(detectTransportMapper.get(detectInfo.getDetectId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = {Exception.class}, isolation = Isolation.REPEATABLE_READ)
|
|
|
public int insert(ComplaintDetectInfo record) {
|
|
|
+ // 判断是否有多个客户传递的问题现象
|
|
|
+ if (record.getCustmoerPhenomena() != null && !record.getCustmoerPhenomena().isEmpty()) {
|
|
|
+ record.setDetectCustmoerQuestion(null);
|
|
|
+ for (DetectCustmoerPhenomenon custmoerPhenomenon : record.getCustmoerPhenomena()) {
|
|
|
+ if (record.getDetectCustmoerQuestion() != null) {
|
|
|
+ record.setDetectCustmoerQuestion(record.getDetectCustmoerQuestion() + custmoerPhenomenon.getDcpName() + ";");
|
|
|
+ } else {
|
|
|
+ record.setDetectCustmoerQuestion(custmoerPhenomenon.getDcpName() + ";");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ int res = complaintDetectInfoMapper.insert(record);
|
|
|
+ // 添加问题现象
|
|
|
+ for (DetectCustmoerPhenomenon custmoerPhenomenon : record.getCustmoerPhenomena()) {
|
|
|
+ custmoerPhenomenon.setDetectId(record.getDetectId());
|
|
|
+ detectCustmoerPhenomenonMapper.add(custmoerPhenomenon);
|
|
|
+ }
|
|
|
+ // 添加运输信息
|
|
|
+ if (record.getTransport() == null) {
|
|
|
+ DetectTransport transport = new DetectTransport();
|
|
|
+ transport.setDetectId(record.getDetectId());
|
|
|
+ detectTransportMapper.add(transport);
|
|
|
+ } else {
|
|
|
+ record.getTransport().setDetectId(record.getDetectId());
|
|
|
+ detectTransportMapper.add(record.getTransport());
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ // 单个问题现象
|
|
|
return complaintDetectInfoMapper.insert(record);
|
|
|
}
|
|
|
|
|
@@ -458,7 +722,21 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
|
|
|
@Override
|
|
|
public List<ComplaintDetectInfo> listComplaintDetect(ComplaintDetectInfo detectInfo) {
|
|
|
- return complaintDetectInfoMapper.listComplaintDetect(detectInfo);
|
|
|
+ List<ComplaintDetectInfo> res = complaintDetectInfoMapper.listComplaintDetect(detectInfo);
|
|
|
+ if (res == null || res.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ res.forEach((d) -> {
|
|
|
+ if (d != null && d.getDetectPhenomenonId() != null) {
|
|
|
+ d.setPhenomen(phenomenonMapper.get(d.getDetectPhenomenonId()));
|
|
|
+ }
|
|
|
+ if (d != null && d.getSalesmanAdminId() != null) {
|
|
|
+ Admin temp = new Admin();
|
|
|
+ temp.setAdminId(d.getSalesmanAdminId());
|
|
|
+ d.setSalesmanAdminName(sysMapper.get(temp).getAdminName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return res;
|
|
|
}
|
|
|
@Transactional
|
|
|
@Override
|
|
@@ -483,7 +761,7 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
date.set(Calendar.DATE, date.get(Calendar.DATE) + 5);
|
|
|
}
|
|
|
|
|
|
- switch (detectInfo.getDetectState()){
|
|
|
+ /*switch (detectInfo.getDetectState()){
|
|
|
case 30:
|
|
|
if(detectInfo.getDetectProcessingResults() == 1){//付费维修
|
|
|
detectInfo.setDetectState(31);//同意付费维修
|
|
@@ -549,7 +827,7 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
detectInfo.setDetectState(37);//原机退回
|
|
|
}
|
|
|
break;
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
try {
|
|
|
if(complaintDetectInfoMapper.updateDetectById(detectInfo) > 0){
|
|
@@ -566,10 +844,33 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
log.setDetectId(detectInfo.getDetectId());
|
|
|
log.setRecordAdminId(admin.getAdminId());
|
|
|
log.setRecordDesc(detectInfo.getDetectCustomerDesc());
|
|
|
- log.setRecordProcessingResults(detectInfo.getDetectProcessingResults());
|
|
|
+ if (detectInfo.getDetectState() == 25) {
|
|
|
+ log.setRecordProcessingResults(6);
|
|
|
+ } else if (detectInfo.getDetectState() == 27) {
|
|
|
+ log.setRecordProcessingResults(5);
|
|
|
+ } else if (detectInfo.getDetectState() == 31) {
|
|
|
+ log.setRecordProcessingResults(1);
|
|
|
+ } else if (detectInfo.getDetectState() == 33) {
|
|
|
+ log.setRecordProcessingResults(6);
|
|
|
+ }
|
|
|
+
|
|
|
complaintDetectInfoMapper.addTreatmentRecordLog(log);
|
|
|
//发送确认短信
|
|
|
- String results = "";
|
|
|
+ //发送确认短信
|
|
|
+ if (detectInfo.getDetectState() != null) {
|
|
|
+ String msg = null;
|
|
|
+ switch (detect.getDetectState()) {
|
|
|
+ case 31: msg="【优尼雅电子科技】客户已确认" + detect.getDetectNumber() + "维修,请立即开始维修处理。";break;
|
|
|
+ case 33: msg="【优尼雅电子科技】客户确认" + detect.getDetectNumber() + "机器不维修(原机退回给客户),请联系业务员,并请业务员联系客户,将此机器寄回。";break;
|
|
|
+ case 25: msg="【优尼雅电子科技】客户确认" + detect.getDetectNumber() + "机器不翻新(原机退回给客户),请联系业务员,并请业务员联系客户,将此机器寄回。";break;
|
|
|
+ case 27: msg="【优尼雅电子科技】客户已确认" + detect.getDetectNumber() + "翻新,请立即开始翻新处理。";break;
|
|
|
+ default: break;
|
|
|
+ }
|
|
|
+ if (msg != null) {
|
|
|
+ smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* String results = "";
|
|
|
switch (detectInfo.getDetectProcessingResults()){
|
|
|
case 1:
|
|
|
results = "付费维修";
|
|
@@ -589,7 +890,7 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
}
|
|
|
String text = MessageFormat.format(SmsConfig.CUSTOMER_CONFIRM, detect.getDetectNumber(),results);
|
|
|
String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
|
|
|
- logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送结果:"+result);
|
|
|
+ logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送结果:"+result);*/
|
|
|
return true;
|
|
|
}
|
|
|
}catch (Exception e){
|
|
@@ -600,11 +901,11 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
}
|
|
|
|
|
|
|
|
|
- @Transactional
|
|
|
+ @Transactional(rollbackFor = {RuntimeException.class})
|
|
|
@Override
|
|
|
public boolean salesmanConfirm(ComplaintDetectInfo detectInfo) {
|
|
|
ComplaintDetectInfo detect = complaintDetectInfoMapper.getDetectById(detectInfo.getDetectId());
|
|
|
- if(detect.getDetectState() != 30 && detect.getDetectState() != 34 && detect.getDetectState() != 38 && detect.getDetectState() != 37){
|
|
|
+ if(detect.getDetectState() != 30 && detect.getDetectState() != 24 && detect.getDetectState() != 34 && detect.getDetectState() != 38 && detect.getDetectState() != 37){
|
|
|
return false;
|
|
|
}
|
|
|
//计算待维修完成时间
|
|
@@ -624,58 +925,57 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
}else{
|
|
|
date.set(Calendar.DATE, date.get(Calendar.DATE) + 5);
|
|
|
}
|
|
|
- if(detectInfo.getDetectProcessingResults() == 1){//付费维修
|
|
|
- detectInfo.setDetectState(31);//同意付费维修
|
|
|
- detectInfo.setCompleteCutTime(date.getTime());
|
|
|
- }else if(detectInfo.getDetectProcessingResults() == 2){//免费维修
|
|
|
- detectInfo.setDetectState(35);//同意付费维修
|
|
|
- detectInfo.setCompleteCutTime(date.getTime());
|
|
|
- }
|
|
|
- if(detectInfo.getDetectProcessingResults() == 3 || detectInfo.getDetectProcessingResults() == 4){//退货、换货
|
|
|
- if(detect.getDetectRenovation() == 1){
|
|
|
- detectInfo.setDetectState(20);//待翻新
|
|
|
- }else{
|
|
|
- detectInfo.setDetectState(22);//待报废
|
|
|
- }
|
|
|
- }
|
|
|
- if(detectInfo.getDetectProcessingResults() == 5){//原机退回
|
|
|
- detectInfo.setDetectState(33);//
|
|
|
+ if (detectInfo.getDetectProcessingResults() != null) {
|
|
|
+ if(detectInfo.getDetectProcessingResults() == 1){
|
|
|
+ //付费维修
|
|
|
+ detectInfo.setDetectState(31);//同意付费维修
|
|
|
+ detectInfo.setCompleteCutTime(date.getTime());
|
|
|
+ }else if(detectInfo.getDetectProcessingResults() == 2){
|
|
|
+ //免费维修
|
|
|
+ detectInfo.setDetectState(35);//同意付费维修
|
|
|
+ detectInfo.setCompleteCutTime(date.getTime());
|
|
|
+ }
|
|
|
+ if(detectInfo.getDetectProcessingResults() == 3 || detectInfo.getDetectProcessingResults() == 4){
|
|
|
+ //退货、换货
|
|
|
+ if(detect.getDetectRenovation() == 1){
|
|
|
+ //待翻新
|
|
|
+ detectInfo.setDetectState(20);
|
|
|
+ }else{
|
|
|
+ //待报废
|
|
|
+ detectInfo.setDetectState(22);
|
|
|
}
|
|
|
+ }
|
|
|
+ if(detectInfo.getDetectProcessingResults() == 5){
|
|
|
+ //原机退回
|
|
|
+ detectInfo.setDetectState(33);
|
|
|
+ }
|
|
|
+ }
|
|
|
try {
|
|
|
if(complaintDetectInfoMapper.updateDetectById(detectInfo) > 0){
|
|
|
//添加业务员操作记录
|
|
|
- if(detect.getSalesmanAdminId() != null && !detect.getSalesmanAdminId().equals("")){
|
|
|
+ if(detect.getSalesmanAdminId() != null){
|
|
|
TreatmentRecordLog log = new TreatmentRecordLog();
|
|
|
log.setDetectId(detectInfo.getDetectId());
|
|
|
log.setRecordAdminId(detect.getSalesmanAdminId());
|
|
|
log.setRecordDesc(detect.getDetectCustomerDesc());
|
|
|
log.setRecordProcessingResults(detectInfo.getDetectProcessingResults());
|
|
|
complaintDetectInfoMapper.addTreatmentRecordLog(log);
|
|
|
- //发送确认短信
|
|
|
- String results = "";
|
|
|
- switch (detectInfo.getDetectProcessingResults()){
|
|
|
- case 1:
|
|
|
- results = "付费维修";
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- results = "免费维修";
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- results = "退货";
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- results = "换货";
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- results = "原机退回";
|
|
|
- break;
|
|
|
+ }
|
|
|
+ //发送确认短信
|
|
|
+ if (detectInfo.getDetectState() != null) {
|
|
|
+ String msg = null;
|
|
|
+ switch (detect.getDetectState()) {
|
|
|
+ case 31: msg="【优尼雅电子科技】客户已确认" + detect.getDetectNumber() + "维修,请立即开始维修处理。";break;
|
|
|
+ case 33: msg="【优尼雅电子科技】客户确认" + detect.getDetectNumber() + "机器不维修(原机退回给客户),请联系业务员,并请业务员联系客户,将此机器寄回。";break;
|
|
|
+ case 25: msg="【优尼雅电子科技】客户确认" + detect.getDetectNumber() + "机器不翻新(原机退回给客户),请联系业务员,并请业务员联系客户,将此机器寄回。";break;
|
|
|
+ case 27: msg="【优尼雅电子科技】客户已确认" + detect.getDetectNumber() + "翻新,请立即开始翻新处理。";break;
|
|
|
+ default: break;
|
|
|
+ }
|
|
|
+ if (msg != null) {
|
|
|
+ smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, msg);
|
|
|
}
|
|
|
- String text = MessageFormat.format(SmsConfig.CUSTOMER_CONFIRM, detect.getDetectNumber(),results);
|
|
|
- String result = smsService.sendOtherCMS(SmsConfig.CUSTOMER_PHONE, text);
|
|
|
- logger.info("给 " + SmsConfig.CUSTOMER_PHONE + " 手机用户发送短信:" + text+"发送结果:"+result);
|
|
|
- return true;
|
|
|
}
|
|
|
-
|
|
|
+ return true;
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
@@ -844,5 +1144,22 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
|
|
|
return complaintDetectInfoMapper.addMaterial(materialNumberInfo);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<MaintainPhenomenon> listPhenomenon(Integer typeId) {
|
|
|
+ MaintainPhenomenon maintainPhenomenon = new MaintainPhenomenon();
|
|
|
+ maintainPhenomenon.setTypeId(typeId);
|
|
|
+ return phenomenonMapper.list(maintainPhenomenon);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int editTransport(DetectTransport detectTransport) {
|
|
|
+ return detectTransportMapper.edit(detectTransport);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MaintainPhenomenon getPhenomenon(Integer id) {
|
|
|
+ return phenomenonMapper.get(id);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|