更新自动生成工单的修改

This commit is contained in:
panshuling321 2022-06-08 15:07:22 +08:00
parent 9eb7162561
commit 7dce8aa986
7 changed files with 123 additions and 83 deletions

View File

@ -826,7 +826,7 @@ CREATE TABLE `xhpc_activity_cash`
`receive_count` int(9) DEFAULT '0' COMMENT '领取次数', `receive_count` int(9) DEFAULT '0' COMMENT '领取次数',
`auto_receive` smallint(2) DEFAULT '0' COMMENT '是否自动领取0-否1-是)', `auto_receive` smallint(2) DEFAULT '0' COMMENT '是否自动领取0-否1-是)',
`auto_status` smallint(2) DEFAULT '0' COMMENT '是否自动发送完成0-未完成1-已完成)', `auto_status` smallint(2) DEFAULT '0' COMMENT '是否自动发送完成0-未完成1-已完成)',
`amount` decimal(4, 2) DEFAULT '0' COMMENT '红包金额', `amount` decimal(10, 4) DEFAULT '0' COMMENT '红包金额',
`app_user_list` text COMMENT 'C端用户ID-1表示全部', `app_user_list` text COMMENT 'C端用户ID-1表示全部',
`com_user_list` text COMMENT '社区用户ID列表-1表示全部', `com_user_list` text COMMENT '社区用户ID列表-1表示全部',
`cus_user_list` text COMMENT 'B端用户ID列表-1表示全部', `cus_user_list` text COMMENT 'B端用户ID列表-1表示全部',
@ -850,7 +850,7 @@ CREATE TABLE `xhpc_activity_template`
`activity_template_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '模板ID', `activity_template_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
`template_name` varchar(100) DEFAULT NULL COMMENT '模板名称', `template_name` varchar(100) DEFAULT NULL COMMENT '模板名称',
`discount_type` smallint(2) DEFAULT NULL COMMENT '优惠类型1-总金额2-服务费3-电量)', `discount_type` smallint(2) DEFAULT NULL COMMENT '优惠类型1-总金额2-服务费3-电量)',
`discount_rate` decimal(10, 2) DEFAULT NULL COMMENT '优惠比率', `discount_rate` decimal(10, 4) DEFAULT NULL COMMENT '优惠比率',
`start_time` datetime DEFAULT NULL COMMENT '开始时间', `start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间',
`discount_count` smallint(4) DEFAULT '0' COMMENT '折扣次数', `discount_count` smallint(4) DEFAULT '0' COMMENT '折扣次数',
@ -897,8 +897,8 @@ CREATE TABLE `xhpc_activity_formula`
`activity_id` int(11) DEFAULT NULL COMMENT '活动ID', `activity_id` int(11) DEFAULT NULL COMMENT '活动ID',
`start_time` time DEFAULT NULL COMMENT '开始时间', `start_time` time DEFAULT NULL COMMENT '开始时间',
`end_time` time DEFAULT NULL COMMENT '结束时间', `end_time` time DEFAULT NULL COMMENT '结束时间',
`power_price` decimal(10, 2) DEFAULT NULL COMMENT '电费', `power_price` decimal(10, 4) DEFAULT NULL COMMENT '电费',
`service_price` decimal(10, 2) DEFAULT null COMMENT '服务费', `service_price` decimal(10, 4) DEFAULT null COMMENT '服务费',
`compute_formula` varchar(200) DEFAULT NULL COMMENT '计算公式', `compute_formula` varchar(200) DEFAULT NULL COMMENT '计算公式',
`create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
@ -929,8 +929,8 @@ CREATE TABLE `xhpc_activity_internet`
`internet_name` varchar(64) DEFAULT NULL COMMENT '流量方名称', `internet_name` varchar(64) DEFAULT NULL COMMENT '流量方名称',
`compute_type` smallint(4) DEFAULT NULL COMMENT '计算类型1-总金额2-服务费3-电量)', `compute_type` smallint(4) DEFAULT NULL COMMENT '计算类型1-总金额2-服务费3-电量)',
`compute_formula` varchar(200) DEFAULT NULL COMMENT '默认计算公式', `compute_formula` varchar(200) DEFAULT NULL COMMENT '默认计算公式',
`power_price` decimal(10, 2) DEFAULT NULL COMMENT '默认电费', `power_price` decimal(10, 4) DEFAULT NULL COMMENT '默认电费',
`service_price` decimal(10, 2) DEFAULT NULL COMMENT '默认服务费', `service_price` decimal(10, 4) DEFAULT NULL COMMENT '默认服务费',
`start_time` datetime DEFAULT NULL COMMENT '开始时间', `start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间',
`station_list` text COMMENT '参与场站列表', `station_list` text COMMENT '参与场站列表',
@ -954,7 +954,7 @@ CREATE TABLE `xhpc_activity_record`
`activity_id` int(11) DEFAULT NULL COMMENT '活动ID', `activity_id` int(11) DEFAULT NULL COMMENT '活动ID',
`source` smallint(4) DEFAULT NULL COMMENT '人员类型0 C端用户 1 流量方用户 2社区用户 3B端用户', `source` smallint(4) DEFAULT NULL COMMENT '人员类型0 C端用户 1 流量方用户 2社区用户 3B端用户',
`user_id` varchar(16) DEFAULT NULL COMMENT '用户ID', `user_id` varchar(16) DEFAULT NULL COMMENT '用户ID',
`amount` decimal(4, 2) DEFAULT NULL COMMENT '红包金额', `amount` decimal(10, 4) DEFAULT NULL COMMENT '红包金额',
`create_time` datetime DEFAULT NULL COMMENT '领取时间', `create_time` datetime DEFAULT NULL COMMENT '领取时间',
PRIMARY KEY (`activity_record_id`) PRIMARY KEY (`activity_record_id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET=utf8mb4 COMMENT='活动参与领取表'; ) ENGINE=InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET=utf8mb4 COMMENT='活动参与领取表';

View File

@ -11,7 +11,7 @@ public interface XhpcWorkOrderImageMapper {
List<Long> selectImageIdByOrderIdAndType(@Param("orderId") Long orderId, @Param("type") Integer type); List<Long> selectImageIdByOrderIdAndType(@Param("orderId") Long orderId, @Param("type") Integer type);
int deleteByImageIds(List<Long> imageIds); int deleteByImageIds(@Param("imageIds") List<Long> imageIds);
int deleteByPrimaryKey(Long orderImageId); int deleteByPrimaryKey(Long orderImageId);

View File

@ -29,5 +29,6 @@ public interface XhpcWorkUserMapper {
List<Map<String, Object>> selectMapList(@Param("params") Map<String, Object> params); List<Map<String, Object>> selectMapList(@Param("params") Map<String, Object> params);
String selectPhoneListByIds(@Param("userIds")String userIds);
} }

View File

@ -34,4 +34,6 @@ public interface WorkUserService {
Boolean resetPassword(SysUserResetPasswordVo vo); Boolean resetPassword(SysUserResetPasswordVo vo);
Object updateDomainStatus(XhpcWorkUserDomain domain); Object updateDomainStatus(XhpcWorkUserDomain domain);
String getPhoneListByUserIds(String userIds);
} }

View File

@ -2,6 +2,7 @@ package com.xhpc.activity.service.impl;
import com.xhpc.common.api.SmsService; import com.xhpc.common.api.SmsService;
import com.xhpc.common.core.domain.R; import com.xhpc.common.core.domain.R;
import com.xhpc.common.core.exception.CustomException;
import com.xhpc.common.core.utils.StringUtils; import com.xhpc.common.core.utils.StringUtils;
import com.xhpc.activity.domain.*; import com.xhpc.activity.domain.*;
import com.xhpc.activity.mapper.*; import com.xhpc.activity.mapper.*;
@ -54,75 +55,7 @@ public class WorkOrderServiceImpl implements WorkOrderService {
} }
@Override private Boolean insertDomain(XhpcWorkOrderDomain domain){
public Boolean updateOrder(XhpcWorkOrderDomain domain){
orderMapper.updateByPrimaryKeySelective(domain);
List<Long> imageIds = imageMapper.selectImageIdByOrderIdAndType(domain.getWorkOrderId(), 1);
for (XhpcWorkOrderImageDomain imageDomain: domain.getQuestionImgList()){
if(StringUtils.isEmpty(imageDomain.getOrderImageId().toString())){
imageDomain.setOrderId(domain.getWorkOrderId());
imageDomain.setType(Short.valueOf("1"));
imageDomain.setDelFlag(Short.valueOf("0"));
imageMapper.insertSelective(imageDomain);
} else {
if(imageIds.contains(imageDomain.getOrderImageId())){
imageIds.remove(imageDomain.getOrderImageId());
}
}
}
if(imageIds.size() > 0){
imageMapper.deleteByImageIds(imageIds);
}
// 更新处理人
String phoneList = "";
orderMapper.deleteOrderUserByOrderId(domain.getWorkOrderId());
List<XhpcWorkOrderUserDomain> orderUserDomainList = new ArrayList<>();
for(XhpcWorkUserDomain userDomain: domain.getUserList()){
XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain();
orderUserDomain.setOrderId(domain.getWorkOrderId());
orderUserDomain.setUserId(userDomain.getWorkUserId());
orderUserDomainList.add(orderUserDomain);
phoneList = userDomain.getPhone() + "," + phoneList;
}
orderMapper.insertOrderUser(orderUserDomainList);
if(StringUtils.isNotEmpty(phoneList) && domain.getStatus() != null && domain.getStatus()==1){
sendSms(phoneList, domain.getWorkOrderId().toString());
}
return true;
}
@Override
public Boolean replyOrder(XhpcWorkOrderDomain domain){
XhpcWorkOrderDomain orderDomain = orderMapper.selectByPrimaryKey(domain.getWorkOrderId());
if(orderDomain == null){
throw new RuntimeException("订单不存在");
}
orderDomain.setReason(domain.getReason());
orderDomain.setDisposalMethod(domain.getDisposalMethod());
orderDomain.setStatus(Short.valueOf("2"));
orderDomain.setRemark(domain.getRemark());
orderMapper.updateByPrimaryKeySelective(orderDomain);
for(XhpcWorkOrderImageDomain imageDomain: domain.getReplyImgList()){
imageDomain.setOrderId(domain.getWorkOrderId());
imageDomain.setType(Short.valueOf("2"));
imageDomain.setDelFlag(Short.valueOf("0"));
imageMapper.insertSelective(imageDomain);
}
return true;
}
@Override
public Boolean insertOrder(XhpcWorkOrderDomain domain){
List<XhpcWorkUserDomain> userDomains = new ArrayList<>(); List<XhpcWorkUserDomain> userDomains = new ArrayList<>();
if(domain.getUserList() != null){ if(domain.getUserList() != null){
for(XhpcWorkUserDomain userDomain: domain.getUserList()){ for(XhpcWorkUserDomain userDomain: domain.getUserList()){
@ -151,25 +84,108 @@ public class WorkOrderServiceImpl implements WorkOrderService {
// 绑定人员 // 绑定人员
List<XhpcWorkOrderUserDomain> orderUserDomainList = new ArrayList<>(); List<XhpcWorkOrderUserDomain> orderUserDomainList = new ArrayList<>();
String phoneList = ""; StringBuilder userIdList = new StringBuilder();
for (XhpcWorkUserDomain userDomain: domain.getUserList()){ for (XhpcWorkUserDomain userDomain: domain.getUserList()){
XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain(); XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain();
orderUserDomain.setOrderId(domain.getWorkOrderId()); orderUserDomain.setOrderId(domain.getWorkOrderId());
orderUserDomain.setUserId(userDomain.getWorkUserId()); orderUserDomain.setUserId(userDomain.getWorkUserId());
orderUserDomainList.add(orderUserDomain); orderUserDomainList.add(orderUserDomain);
phoneList = userDomain.getPhone() + "," + phoneList; userIdList.insert(0, userDomain.getWorkUserId() + ",");
} }
if(orderUserDomainList.size() > 0){ if(orderUserDomainList.size() > 0){
orderMapper.insertOrderUser(orderUserDomainList); orderMapper.insertOrderUser(orderUserDomainList);
} }
// todo 发送多人短信 if(StringUtils.isNotEmpty(userIdList.toString()) && domain.getStatus() != null && domain.getStatus()==1){
if(StringUtils.isNotEmpty(phoneList) && domain.getStatus() != null && domain.getStatus()==1){ sendSms(userIdList.toString(), domain.getWorkOrderId().toString());
sendSms(phoneList, domain.getWorkOrderId().toString());
} }
return true; return true;
} }
private Boolean updateDomain(XhpcWorkOrderDomain domain){
orderMapper.updateByPrimaryKeySelective(domain);
List<Long> imageIds = imageMapper.selectImageIdByOrderIdAndType(domain.getWorkOrderId(), 1);
for (XhpcWorkOrderImageDomain imageDomain: domain.getQuestionImgList()){
if( imageDomain.getOrderImageId() == null || StringUtils.isEmpty(imageDomain.getOrderImageId().toString())){
imageDomain.setOrderId(domain.getWorkOrderId());
imageDomain.setType(Short.valueOf("1"));
imageDomain.setDelFlag(Short.valueOf("0"));
imageMapper.insertSelective(imageDomain);
} else {
if(imageIds.contains(imageDomain.getOrderImageId())){
imageIds.remove(imageDomain.getOrderImageId());
}
}
}
if(imageIds.size() > 0){
imageMapper.deleteByImageIds(imageIds);
}
// 更新处理人
StringBuilder userIdList = new StringBuilder();
orderMapper.deleteOrderUserByOrderId(domain.getWorkOrderId());
List<XhpcWorkOrderUserDomain> orderUserDomainList = new ArrayList<>();
for(XhpcWorkUserDomain userDomain: domain.getUserList()){
XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain();
orderUserDomain.setOrderId(domain.getWorkOrderId());
orderUserDomain.setUserId(userDomain.getWorkUserId());
orderUserDomainList.add(orderUserDomain);
userIdList.insert(0, userDomain.getWorkUserId() + ",");
}
orderMapper.insertOrderUser(orderUserDomainList);
if(StringUtils.isNotEmpty(userIdList.toString()) && domain.getStatus() != null && domain.getStatus()==1){
sendSms(userIdList.toString(), domain.getWorkOrderId().toString());
}
return true;
}
@Override
public Boolean updateOrder(XhpcWorkOrderDomain domain){
if(domain.getWorkOrderId() == null || domain.getWorkOrderId() < 1L){
return insertDomain(domain);
} else {
return updateDomain(domain);
}
}
@Override
public Boolean replyOrder(XhpcWorkOrderDomain domain){
XhpcWorkOrderDomain orderDomain = orderMapper.selectByPrimaryKey(domain.getWorkOrderId());
if(orderDomain == null){
throw new RuntimeException("订单不存在");
}
orderDomain.setReason(domain.getReason());
orderDomain.setDisposalMethod(domain.getDisposalMethod());
orderDomain.setStatus(Short.valueOf("2"));
orderDomain.setRemark(domain.getRemark());
orderMapper.updateByPrimaryKeySelective(orderDomain);
for(XhpcWorkOrderImageDomain imageDomain: domain.getReplyImgList()){
imageDomain.setOrderId(domain.getWorkOrderId());
imageDomain.setType(Short.valueOf("2"));
imageDomain.setDelFlag(Short.valueOf("0"));
imageMapper.insertSelective(imageDomain);
}
return true;
}
@Override
public Boolean insertOrder(XhpcWorkOrderDomain domain){
if(domain.getWorkOrderId() == null || domain.getWorkOrderId() < 1L){
return insertDomain(domain);
} else {
return updateDomain(domain);
}
}
@Override @Override
public Boolean deleteOrder(Long orderId) throws Exception { public Boolean deleteOrder(Long orderId) throws Exception {
@ -214,7 +230,13 @@ public class WorkOrderServiceImpl implements WorkOrderService {
} }
private void sendSms(String phoneList, String orderId){ private void sendSms(String userIds, String orderId){
String phoneList = workUserService.getPhoneListByUserIds(userIds);
if(StringUtils.isEmpty(phoneList)){
throw new CustomException("没有待发送短信");
}
HashMap<String, String> paramMap = new HashMap<>(); HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("orderNo", orderId); paramMap.put("orderNo", orderId);
paramMap.put("phone", phoneList); paramMap.put("phone", phoneList);

View File

@ -209,6 +209,16 @@ public class WorkUserServiceImpl implements WorkUserService {
} }
@Override
public String getPhoneListByUserIds(String userIds){
if(StringUtils.isEmpty(userIds)){
return "";
}
return workUserMapper.selectPhoneListByIds(userIds);
}
private void getUserConvert(SysUser user, XhpcWorkUserDomain domain){ private void getUserConvert(SysUser user, XhpcWorkUserDomain domain){
user.setUserName(domain.getLoginName()); user.setUserName(domain.getLoginName());
user.setNickName(domain.getUserName()); user.setNickName(domain.getUserName());

View File

@ -154,4 +154,9 @@
</if> </if>
</select> </select>
<select id="selectPhoneListByIds" resultType="java.lang.String">
SELECT GROUP_CONCAT(phone) from xhpc_work_user where find_in_set(work_user_id, #{userIds})
</select>
</mapper> </mapper>