Browse Source

2023年8月31日18:17:41

纪新园 2 years ago
parent
commit
8a36b699ab

+ 11 - 11
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IWechatClient.java

@@ -63,16 +63,16 @@ public interface IWechatClient {
 	 * @param type 类型
 	 */
 	@GetMapping(SEND_MESSAGE)
-	String sendMessage (@RequestParam("openid") String openid,
-						@RequestParam("title") String title,
-						@RequestParam("projectName") String projectName,
-						  @RequestParam("date") String date,
-						  @RequestParam("name") String name,
-						  @RequestParam("device") String device,
-						  @RequestParam("tel") String tel,
-						  @RequestParam("telW") String telW,
-						  @RequestParam("deviceDescription") String deviceDescription,
-						  @RequestParam("amount") BigDecimal amount,
-						@RequestParam("type") String type
+	String sendMessage (@RequestParam(value = "openid",required = false) String openid,
+						@RequestParam(value = "title",required = false) String title,
+						@RequestParam(value = "projectName",required = false) String projectName,
+						  @RequestParam(value = "date",required = false) String date,
+						  @RequestParam(value = "name",required = false) String name,
+						  @RequestParam(value = "device",required = false) String device,
+						  @RequestParam(value = "tel",required = false) String tel,
+						  @RequestParam(value = "telW",required = false) String telW,
+						  @RequestParam(value = "deviceDescription",required = false) String deviceDescription,
+						  @RequestParam(value = "amount",required = false) BigDecimal amount,
+						@RequestParam(value = "type",required = false) String type
 						);
 }

+ 1 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -66,7 +66,7 @@ public interface IUserClient {
 	String UPDATE_USER_BY_ID = API_PREFIX + "/updateUserById";
 
 	@GetMapping(LIST_USER_BY_ROLE_ID)
-	R<List<User>> listUserByRoleId(@RequestParam("roleId") Long roleId,@RequestParam("tenantId") String tenantId,@RequestParam("salesCompanyId") Long salesCompanyId);
+	R<List<User>> listUserByRoleId(@RequestParam("roleId") Long roleId,@RequestParam(value = "tenantId",required = false) String tenantId,@RequestParam(value = "salesCompanyId",required = false) Long salesCompanyId);
 
 	/**
 	 * 获取用户信息

+ 60 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescPartsController.java

@@ -11,6 +11,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springblade.client.corps.excel.CorpsYCPExcel;
+import org.springblade.client.corps.service.ICorpsAttnService;
 import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.corps.service.ICorpsTypeDescService;
 import org.springblade.client.corps.service.ICorpsTypeService;
@@ -18,6 +19,7 @@ import org.springblade.client.corps.service.impl.CorpsAddrServiceImpl;
 import org.springblade.client.dto.CorpsDescDto;
 import org.springblade.client.entity.*;
 import org.springblade.client.feign.ICorpsAttnClient;
+import org.springblade.client.feign.IRedisClient;
 import org.springblade.client.goods.excel.GoodsExcels;
 import org.springblade.client.goods.excel.GoodsOutExcel;
 import org.springblade.client.vo.CorpsDescVO;
@@ -66,8 +68,9 @@ public class CorpsDescPartsController extends BladeController {
 	private final IOrderDescClient orderDescClient;
 	private final ICorpsTypeDescService corpsTypeDescService;
 	private CorpsAddrServiceImpl corpsAddrService;
+	private final ICorpsAttnService corpsAttnService;
 
-	private final ICorpsAttnClient corpsAttnClient;
+	private final IRedisClient redisClient;//redis缓存处理
 
 	/**
 	 * 详情
@@ -80,6 +83,7 @@ public class CorpsDescPartsController extends BladeController {
 		return R.data(detail);
 	}
 
+
 	/**
 	 * 自定义分页 客户详情
 	 */
@@ -341,6 +345,60 @@ public class CorpsDescPartsController extends BladeController {
 	/**
 	 * 新增或修改 客户详情
 	 */
+	@PostMapping("/submitWeb")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
+	public R submitWeb(@Valid @RequestBody CorpsDesc corpsDesc) {
+		if (StringUtils.isBlank(corpsDesc.getTenantId())) {
+			corpsDesc.setTenantId(SecureUtil.getTenantId());
+		}
+		if (StringUtils.isBlank(corpsDesc.getCode())) {
+			return R.data(200, "error", "客户编号不能为空");
+		}
+		if (StringUtils.isBlank(corpsDesc.getCname())) {
+			return R.data(200, "error", "客户名称不能为空");
+		}
+		if ("NotUNIQUE".equals(corpsDescService.selectCorpsDescCode(corpsDesc))) {
+			return R.data(200, "error", "客户编号已存在");
+		}
+		if ("NotUNIQUE".equals(corpsDescService.selectCorpsDescCname(corpsDesc))) {
+			return R.data(200, "error", "客户名称已存在");
+		}
+		if (StringUtils.isBlank(corpsDesc.getLabels())) {
+//			corpsDesc.setLabels("\"\",\"\",\"\",\"\"");
+			corpsDesc.setLabels(",,,");
+		}
+		if (ObjectUtils.isNull(corpsDesc.getCorpsTypeId())) {
+			corpsDesc.setCorpsTypeId("1586314518265356290");
+		}
+		R corpsDesc1 = corpsDescService.submit(corpsDesc);
+		redisClient.basicData("corps");
+		return corpsDesc1;
+	}
+
+	/**
+	 * 新增或修改 客户联系人
+	 */
+	@PostMapping("/submitAttn")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
+	public R submitAttn(@Valid @RequestBody CorpsAttn corpsAttn) {
+		return corpsAttnService.submit(corpsAttn);
+	}
+
+	/**
+	 * 新增或修改 客户地址
+	 */
+	@PostMapping("/submitAddr")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
+	public R submitAddr(@Valid @RequestBody CorpsAddr corpsAddr) {
+		return corpsAddrService.submit(corpsAddr);
+	}
+
+	/**
+	 * 新增或修改 客户详情
+	 */
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
@@ -479,7 +537,7 @@ public class CorpsDescPartsController extends BladeController {
 		CorpsDesc corpsDesc = new CorpsDesc();
 		if (id == null) {
 			if (AuthUtil.getUserRole().equals("客户")) {
-				CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId(),null);
+				CorpsAttn corpsAttn = corpsAttnService.getUser(AuthUtil.getUserId(), null);
 				if (ObjectUtils.isNull(corpsAttn)) {
 					throw new RuntimeException("未查到用户信息");
 				} else {

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsAttnClient.java

@@ -3,15 +3,18 @@ package org.springblade.client.corps.feign;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.client.corps.service.ICorpsAttnService;
 import org.springblade.client.entity.CorpsAttn;
 import org.springblade.client.feign.ICorpsAttnClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.Date;
 import java.util.List;
 
 @NonDS

+ 2 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsAddrService.java

@@ -52,4 +52,6 @@ public interface ICorpsAddrService extends IService<CorpsAddr> {
 	List<CorpsAddr> getCorpsAddr(Long pid,String tenantId);
 
     R importCorpsAddr(List<CorpAddrDWTExcel> excelList, Long corpId);
+
+    R submit(CorpsAddr corpsAddr);
 }

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsAttnService.java

@@ -44,4 +44,7 @@ public interface ICorpsAttnService extends IService<CorpsAttn> {
 	 */
 	R createUser(CorpsAttn corpsAttn);
 
+    R submit(CorpsAttn corpsAttn);
+
+	CorpsAttn getUser(Long userId, String o);
 }

+ 21 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAddrServiceImpl.java

@@ -78,6 +78,27 @@ public class CorpsAddrServiceImpl extends ServiceImpl<CorpsAddrMapper, CorpsAddr
 		return R.data("保存成功");
 	}
 
+	@Override
+	public R submit(CorpsAddr corpsAddr) {
+		corpsAddr.setTenantId(AuthUtil.getTenantId());
+		if (ObjectUtils.isNull(corpsAddr.getId())) {
+			CorpsAddr corpsAttn = baseMapper.selectCorpsAddrCode(corpsAddr.getAddr(), corpsAddr.getPid(), SecureUtil.getTenantId());
+			if (corpsAttn != null && corpsAttn.getId() == null) {
+				throw new RuntimeException("地址不能重复:" + corpsAddr.getAddr() + "已存在");
+			} else if (corpsAttn != null && !corpsAttn.getId().equals(corpsAddr.getId())) {
+				throw new RuntimeException("地址不能重复:" + corpsAddr.getAddr() + "已存在");
+			}
+			corpsAddr.setCreateUser(AuthUtil.getUserId());
+			corpsAddr.setCreateTime(new Date());
+			baseMapper.insert(corpsAddr);
+		} else {
+			corpsAddr.setUpdateUser(AuthUtil.getUserId());
+			corpsAddr.setUpdateTime(new Date());
+			baseMapper.updateById(corpsAddr);
+		}
+		return R.data(corpsAddr);
+	}
+
 	public R saveOrUpdateAddr(CorpsDesc corpsDesc, Long userId, Long pId, String tenantId, Date date) {
 		if (CollectionUtils.isNotEmpty(corpsDesc.getCorpsAddrList())) {
 			for (CorpsAddr corpsAddr : corpsDesc.getCorpsAddrList()) {

+ 39 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAttnServiceImpl.java

@@ -1,6 +1,9 @@
 package org.springblade.client.corps.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
@@ -18,6 +21,8 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+
 /**
  * 客户联系人 服务实现类
  *
@@ -117,5 +122,39 @@ public class CorpsAttnServiceImpl extends ServiceImpl<CorpsAttnMapper, CorpsAttn
 		}
 		return R.success("操作成功");
 	}
+	/**
+	 * 获取登录用户客户ID
+	 */
+	@Override
+	public CorpsAttn getUser(Long userId, String tenantId) {
+		CorpsAttn corpsAttn = baseMapper.selectOne(new LambdaQueryWrapper<CorpsAttn>()
+			.eq(CorpsAttn::getUserId, userId)
+			.eq(CorpsAttn::getIsDeleted, 0)
+			.eq(CorpsAttn::getTenantId, ObjectUtils.isNotNull(tenantId) ? tenantId : AuthUtil.getTenantId())
+		);
+		return corpsAttn;
+	}
+
+	@Override
+	public R submit(CorpsAttn corpsAttn) {
+		if (StringUtils.isBlank(corpsAttn.getCode())) {
+			return R.data(200, "error", "客户联系人编码不能为空");
+		}
+		if (StringUtils.isBlank(corpsAttn.getCode())) {
+			return R.data(200, "error", "客户联系人名称不能为空");
+		}
+		if (corpsAttn.getId() == null) {
+			corpsAttn.setTenantId(AuthUtil.getTenantId());
+			corpsAttn.setCreateTime(new Date());
+			corpsAttn.setCreateUser(AuthUtil.getUserId());
+			baseMapper.insert(corpsAttn);
+		} else {
+			corpsAttn.setTenantId(AuthUtil.getTenantId());
+			corpsAttn.setUpdateTime(new Date());
+			corpsAttn.setUpdateUser(AuthUtil.getUserId());
+			baseMapper.updateById(corpsAttn);
+		}
+		return R.data(corpsAttn);
+	}
 
 }

+ 28 - 109
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -138,7 +138,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		String[] deptIds = SecureUtil.getDeptId().split(",");
 		if (corpsDesc.getId() == null) {
 			corpsDesc.setTenantId(SecureUtil.getTenantId());
-			if (deptIds.length>0){
+			if (deptIds.length > 0) {
 				corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 			}
 			corpsDesc.setCreateTime(date);
@@ -147,7 +147,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		} else {
 			corpsDesc.setTenantId(SecureUtil.getTenantId());
 			corpsDesc.setUpdateTime(date);
-			if (deptIds.length>0){
+			if (deptIds.length > 0) {
 				corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 			}
 			corpsDesc.setUpdateUser(userId);
@@ -155,96 +155,8 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		}
 		Long pId = corpsDesc.getId();
 		String tenantId = corpsDesc.getTenantId();
-		//保护客户联系人信息
-		R saveOrUpdateAttn = this.saveOrUpdateAttn(corpsDesc, userId, pId, tenantId, date);
-		if (saveOrUpdateAttn.getCode() != 200) {
-			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-			return saveOrUpdateAttn;
-		}
-		if ("1".equals(corpsDesc.getBillType())) {
-			User user = new User();
-			user.setTenantId(AuthUtil.getTenantId());
-			user.setUserType(1);
-			user.setAccount(corpsDesc.getTel());
-			user.setName(corpsDesc.getCname());
-			user.setRealName(corpsDesc.getCname());
-			user.setUserType(4);
-			user.setPhone(corpsDesc.getTel());
-			R<String> r = sysClient.getRoleIds(AuthUtil.getTenantId(), "客户");
-			if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
-				user.setRoleId(r.getData());
-			}
-			user.setDeptId(AuthUtil.getDeptId());
-			user.setPostId(AuthUtil.getPostId());
-
-			LambdaQueryWrapper<CorpsAttn> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-			lambdaQueryWrapper.eq(CorpsAttn::getTenantId, AuthUtil.getTenantId())
-				.eq(CorpsAttn::getIsDeleted, 0)
-				.eq(CorpsAttn::getTel, corpsDesc.getTel())
-				.eq(CorpsAttn::getPid, corpsDesc.getId());
-			CorpsAttn attn = corpsAttnService.getOne(lambdaQueryWrapper);
-			if (ObjectUtils.isNotNull(attn)) {
-				R<User> userR = userClient.userInfoById(attn.getUserId());
-				if (ObjectUtil.isNotEmpty(userR.getData())) {
-					user.setId(attn.getUserId());
-					R<Boolean> result = userClient.updateUser(user);
-
-					if (!result.isSuccess()) {
-						throw new ServiceException(result.getMsg());
-					}
-				} else {
-					user.setPassword(LandConstant.USER_PASSWORD);
-					R<Boolean> result = userClient.saveUser(user);
-					if (!result.isSuccess()) {
-						throw new ServiceException(result.getMsg());
-					}
-					R<User> userTemp = userClient.userByAccount(AuthUtil.getTenantId(), corpsDesc.getTel());
-					if (!userTemp.isSuccess()) {
-						throw new ServiceException(userTemp.getMsg());
-					}
-					attn.setUserId(userTemp.getData().getId());
-					corpsAttnService.updateById(attn);
-				}
-			} else {
-				user.setPassword(LandConstant.USER_PASSWORD);
-				R<Boolean> result = userClient.saveUser(user);
-				if (!result.isSuccess()) {
-					throw new ServiceException(result.getMsg());
-				}
-				R<User> userTemp = userClient.userByAccount(AuthUtil.getTenantId(), corpsDesc.getTel());
-				if (!userTemp.isSuccess()) {
-					throw new ServiceException(userTemp.getMsg());
-				}
-				CorpsAttn corpsAttn = new CorpsAttn();
-				corpsAttn.setCode(corpsDesc.getCname());
-				corpsAttn.setCname(corpsDesc.getCname());
-				corpsAttn.setAttn(corpsDesc.getAttn());
-				corpsAttn.setTel(corpsDesc.getTel());
-				corpsAttn.setTenantId(AuthUtil.getTenantId());
-				corpsAttn.setPid(corpsDesc.getId());
-				corpsAttn.setUserId(userTemp.getData().getId());
-				corpsAttn.setCreateTime(new Date());
-				corpsAttn.setTenantId(AuthUtil.getTenantId());
-				corpsAttn.setCreateUser(AuthUtil.getUserId());
-				corpsAttnService.save(corpsAttn);
-			}
-		}
-		//保存客户银行信息
-		this.saveOrUpdateBank(corpsDesc, userId, pId, tenantId, date);
 		//保存客户文件信息
 		this.saveOrUpdateFiles(corpsDesc, userId, pId, tenantId, date);
-		//保存客户优势项目信息
-		R saveOrUpdateItems = this.saveOrUpdateItems(corpsDesc, userId, pId, tenantId, date);
-		if (saveOrUpdateItems.getCode() != 200) {
-			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-			return saveOrUpdateItems;
-		}
-		//保存客户地址信息
-		R addr = corpsAddrService.saveOrUpdateAddr(corpsDesc, userId, pId, tenantId, date);
-		if (!addr.isSuccess()) {
-			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-			return addr;
-		}
 		//保存客户与类别对应关系
 		this.saveOrUpdateTypeDesc(corpsDesc, userId, pId, date, tenantId);
 		return R.data(corpsDesc);
@@ -385,7 +297,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 					if (selectOne == null) {
 						corpsDesc.setCreateTime(new Date());
 						corpsDesc.setCreateUser(AuthUtil.getUserId());
-						if (deptIds.length>0){
+						if (deptIds.length > 0) {
 							corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 						}
 						baseMapper.insert(corpsDesc);
@@ -394,7 +306,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 						middle.setCorpTypeId(corpsType.getId());
 						middle.setCreateTime(new Date());
 						middle.setCreateUser(AuthUtil.getUserId());
-						if (deptIds.length>0){
+						if (deptIds.length > 0) {
 							middle.setCreateDept(Long.valueOf(deptIds[0]));
 						}
 						middleMapper.insert(middle);
@@ -472,7 +384,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 						corpsDesc.setCorpType("GS");
 						corpsDesc.setCreateTime(new Date());
 						corpsDesc.setCreateUser(AuthUtil.getUserId());
-						if (deptIds.length>0){
+						if (deptIds.length > 0) {
 							corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 						}
 						baseMapper.insert(corpsDesc);
@@ -482,7 +394,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 						middle.setCorpTypeId(corpsType.getId());
 						middle.setCreateTime(new Date());
 						middle.setCreateUser(AuthUtil.getUserId());
-						if (deptIds.length>0){
+						if (deptIds.length > 0) {
 							middle.setCreateDept(Long.valueOf(deptIds[0]));
 						}
 						middleMapper.insert(middle);
@@ -553,7 +465,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 						corpsDesc.setCorpType("GYS");
 						corpsDesc.setCreateTime(new Date());
 						corpsDesc.setCreateUser(AuthUtil.getUserId());
-						if (deptIds.length>0){
+						if (deptIds.length > 0) {
 							corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 						}
 						baseMapper.insert(corpsDesc);
@@ -563,7 +475,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 						middle.setCorpTypeId(corpsType.getId());
 						middle.setCreateTime(new Date());
 						middle.setCreateUser(AuthUtil.getUserId());
-						if (deptIds.length>0){
+						if (deptIds.length > 0) {
 							middle.setCreateDept(Long.valueOf(deptIds[0]));
 						}
 						middleMapper.insert(middle);
@@ -665,7 +577,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 				fleet.setCorpType("CD");
 				fleet.setCreateTime(new Date());
 				fleet.setCreateUser(AuthUtil.getUserId());
-				if (deptIds.length>0){
+				if (deptIds.length > 0) {
 					fleet.setCreateDept(Long.valueOf(deptIds[0]));
 				}
 				baseMapper.insert(fleet);
@@ -712,7 +624,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 				factory.setCorpType("GC");
 				factory.setCreateTime(new Date());
 				factory.setCreateUser(AuthUtil.getUserId());
-				if (deptIds.length>0){
+				if (deptIds.length > 0) {
 					factory.setCreateDept(Long.valueOf(deptIds[0]));
 				}
 				baseMapper.insert(factory);
@@ -779,6 +691,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		return baseMapper.selectList(lambdaQueryWrapper);
 	}
 
+
 	@Override
 	public R saveCorpsDesc(CorpsDesc corpsDesc) {
 		Long userId = SecureUtil.getUserId();
@@ -829,14 +742,11 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			CorpsAddr corpsAddr = corpsAddrService.getOne(new LambdaQueryWrapper<CorpsAddr>().eq(CorpsAddr::getIsDeleted, 0)
 				.eq(CorpsAddr::getTenantId, AuthUtil.getTenantId())
 				.eq(CorpsAddr::getPid, corpsDesc1.getId())
-				.eq(CorpsAddr::getDetailedAddress, "1")
-				.eq(CorpsAddr::getTel, corpsDesc.getTel()));
+				.eq(CorpsAddr::getDetailedAddress, corpsDesc.getDetails())
+				.eq(CorpsAddr::getAddr, corpsDesc.getAddr()));
 			if (ObjectUtils.isNotNull(corpsAddr)) {
-				corpsAddr.setAddr(corpsDesc.getAddr());
-				corpsAddr.setDetailedAddress(corpsDesc.getDetails());
 				corpsAddr.setAttn(corpsDesc.getAttn());
-				corpsAddr.setAbbreviation("送货地址");
-				corpsAddr.setAlias("默认地址-" + corpsDesc.getAttn());
+				corpsAddr.setTel(corpsDesc.getTel());
 				corpsAddrService.updateById(corpsAddr);
 			} else {
 				//保存客户地址信息
@@ -845,8 +755,16 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 				corpsAddr1.setDetailedAddress(corpsDesc.getDetails());
 				corpsAddr1.setAttn(corpsDesc.getAttn());
 				corpsAddr1.setTel(corpsDesc.getTel());
-				corpsAddr1.setAbbreviation("送货地址");
-				corpsAddr1.setAlias("默认地址-" + corpsDesc.getAttn());
+				if (corpsAddrService.count(new LambdaQueryWrapper<CorpsAddr>().eq(CorpsAddr::getIsDeleted, 0)
+					.eq(CorpsAddr::getTenantId, AuthUtil.getTenantId())
+					.eq(CorpsAddr::getPid, corpsDesc1.getId())) == 0) {
+					corpsAddr1.setAbbreviation("送货地址");
+					corpsAddr1.setAlias("默认地址-" + corpsDesc.getAttn());
+					corpsAddr1.setDefaultAddres("1");
+				} else {
+					corpsAddr1.setAbbreviation("送货地址");
+					corpsAddr1.setAlias(corpsDesc.getAttn());
+				}
 				corpsAddr1.setTenantId(AuthUtil.getTenantId());
 				corpsAddr1.setPid(corpsDesc1.getId());
 				corpsAddr1.setCreateTime(new Date());
@@ -858,7 +776,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			if (null == corpsDesc.getId()) {
 				String[] deptIds = SecureUtil.getDeptId().split(",");
 				corpsDesc.setTenantId(SecureUtil.getTenantId());
-				if (deptIds.length>0){
+				if (deptIds.length > 0) {
 					corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 				}
 				corpsDesc.setCreateTime(date);
@@ -891,6 +809,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 				corpsAddr.setTel(corpsDesc.getTel());
 				corpsAddr.setAbbreviation("送货地址");
 				corpsAddr.setAlias("默认地址-" + corpsDesc.getAttn());
+				corpsAddr.setDefaultAddres("1");
 				corpsAddr.setTenantId(AuthUtil.getTenantId());
 				corpsAddr.setPid(corpsDesc.getId());
 				corpsAddr.setCreateTime(new Date());
@@ -963,7 +882,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			corpsDesc.setDetails(corpsYCPExcel.getAddress());
 			corpsDesc.setAttn(corpsYCPExcel.getUserName());
 			corpsDesc.setTenantId(SecureUtil.getTenantId());
-			if (deptIds.length>0){
+			if (deptIds.length > 0) {
 				corpsDesc.setCreateDept(Long.valueOf(deptIds[0]));
 			}
 			corpsDesc.setCreateTime(date);
@@ -1159,7 +1078,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		CorpsDescDto corpsDescDto = new CorpsDescDto();
 		CorpsDesc corpsDesc = baseMapper.selectById(id);
 		//客户信息
-		BeanUtil.copyProperties(corpsDesc,corpsDescDto);
+		BeanUtil.copyProperties(corpsDesc, corpsDescDto);
 		corpsDescDto.setBalanceAmounts(corpsDesc.getBalanceAmount());
 		//应收账款
 		BigDecimal debitAmount = new BigDecimal("0.00");

+ 25 - 17
blade-service/blade-client/src/main/java/org/springblade/client/wechat/feign/WechatClient.java

@@ -1,6 +1,7 @@
 package org.springblade.client.wechat.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
@@ -149,7 +150,7 @@ public class WechatClient implements IWechatClient {
 	}
 
 	@Override
-	public String sendMessage(String openid, String title,String projectName, String date, String name, String device, String tel,String telW,
+	public String sendMessage(String openid, String title, String projectName, String date, String name, String device, String tel, String telW,
 							  String deviceDescription, BigDecimal amount, String type) {
 		WechatMessageTemplate wechatMessageTemplate = wechatMessageTemplateService.getOne(new LambdaQueryWrapper<WechatMessageTemplate>()
 			.eq(WechatMessageTemplate::getIsDeleted, 0)
@@ -165,25 +166,32 @@ public class WechatClient implements IWechatClient {
 		WxMpService wxMpService = new WxMpServiceImpl();
 		wxMpService.setWxMpConfigStorage(wxStorage);
 
+
+		if (ObjectUtils.isNull(telW)) {
+			telW = "-";
+		}
 		List<WxMpTemplateData> data = Arrays.asList(
 			new WxMpTemplateData("first", title),
-			new WxMpTemplateData("keyword1", name + "/" + tel),
-			new WxMpTemplateData("keyword2", projectName),
-			new WxMpTemplateData("keyword3", date),
-			new WxMpTemplateData("keyword4", telW)
+			new WxMpTemplateData("thing2", name + "/" + tel),
+			new WxMpTemplateData("thing4", projectName),
+			new WxMpTemplateData("time8", date),
+			new WxMpTemplateData("phone_number7", telW)
 		);
-		//2,推送消息
-		WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
-			.toUser(openid)//要推送的用户openid
-			.templateId(wechatMessageTemplate.getTemplateId())//模版id
-			.miniProgram(new WxMpTemplateMessage.MiniProgram(wechatMessageTemplate.getAppId(), "pages/index"))
-			.data(data)
-			.build();
-		try {
-			wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
-		} catch (Exception e) {
-			System.out.println("推送失败:" + e.getMessage());
-			e.printStackTrace();
+		String[] arrs = openid.split(",");
+		for (String item : arrs) {
+			//2,推送消息
+			WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
+				.toUser(item)//要推送的用户openid
+				.templateId(wechatMessageTemplate.getTemplateId())//模版id
+				.miniProgram(new WxMpTemplateMessage.MiniProgram(wechatMessageTemplate.getAppId(), "pages/index"))
+				.data(data)
+				.build();
+			try {
+				wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
+			} catch (Exception e) {
+				System.out.println("推送失败:" + e.getMessage());
+				e.printStackTrace();
+			}
 		}
 		return null;
 	}

+ 30 - 9
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java

@@ -6,14 +6,8 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import org.jetbrains.annotations.NotNull;
-import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.entity.FeesDesc;
-import org.springblade.client.entity.GoodsDesc;
-import org.springblade.client.entity.Message;
-import org.springblade.client.feign.ICorpsDescClient;
-import org.springblade.client.feign.IFeesDescClient;
-import org.springblade.client.feign.IGoodsDescClient;
-import org.springblade.client.feign.IMessageClient;
+import org.springblade.client.entity.*;
+import org.springblade.client.feign.*;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -53,6 +47,7 @@ import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -105,6 +100,9 @@ public class PaymentServiceImpl implements IPaymentService {
 
 	private final IMaintenanceClient maintenanceClient;
 
+	private final IWechatClient wechatClient;
+	private final ICorpsAttnClient corpsAttnClient;
+
 
 	@Override
 	public R getWeChatPayment(Order order) {
@@ -470,7 +468,30 @@ public class PaymentServiceImpl implements IPaymentService {
 						if (!paymentApply.isSuccess()) {
 							throw new RuntimeException(paymentApply.getMsg());
 						}
-
+						SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+						String date1 = "";
+						if (ObjectUtils.isNotNull(maintenance.getRepairReportDate())) {
+							date1 = format1.format(maintenance.getRepairReportDate());
+						}
+						StringBuilder openIds = new StringBuilder();
+						List<CorpsAttn> corpsAttnList = corpsAttnClient.getAttn(maintenance.getCorpId());
+						StringBuilder userIds = new StringBuilder();
+						for (CorpsAttn item : corpsAttnList) {
+							if (ObjectUtils.isNotNull(item.getUserId())) {
+								userIds.append(item.getUserId()).append(",");
+							}
+						}
+						List<User> res1 = userClient.selectUserIds(userIds.toString());
+						for (User item : res1) {
+							if (ObjectUtils.isNotNull(item.getOaOpenId())) {
+								openIds.append(item.getOaOpenId()).append(",");
+							}
+						}
+						if (",".equals(openIds.toString())) {
+						} else {
+							wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "结算通知", "设备报修-已支付", date1, maintenance.getCorpName(), maintenance.getDeviceName(),
+								maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+						}
 						wechatMark.setCause("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");
 						wechatMark.setStatus(1);
 					} else {

+ 151 - 21
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/maintenance/service/impl/MaintenanceServiceImpl.java

@@ -18,15 +18,19 @@ package org.springblade.salesPart.maintenance.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.client.entity.CorpsAttn;
 import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.*;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.finance.dto.ApplyDTO;
 import org.springblade.finance.feign.IFinanceClient;
@@ -46,6 +50,7 @@ import org.springblade.salesPart.maintenance.service.IMaintenanceFilesService;
 import org.springblade.salesPart.maintenance.service.IMaintenanceLogService;
 import org.springblade.salesPart.maintenance.service.IMaintenanceService;
 import org.springblade.salesPart.maintenance.vo.MaintenanceVO;
+import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
@@ -105,6 +110,10 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 
 	private final IWechatClient wechatClient;
 
+	private final ISysClient sysClient;
+
+	private final ICorpsAttnClient corpsAttnClient;
+
 	@Override
 	public IPage<MaintenanceVO> selectMaintenancePage(IPage<MaintenanceVO> page, MaintenanceVO maintenance) {
 		return page.setRecords(baseMapper.selectMaintenancePage(page, maintenance));
@@ -149,6 +158,30 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 			maintenance.setStatus(1);
 			maintenance.setDispatchingWorkers("1");
 			baseMapper.insert(maintenance);
+			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+			String date = "";
+			if (ObjectUtils.isNotNull(maintenance.getRepairReportDate())) {
+				date = format.format(maintenance.getRepairReportDate());
+			}
+			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
+			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+				R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()), null, null);
+				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+					StringBuilder openIds = new StringBuilder();
+					for (User datum : userList.getData()) {
+						if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
+							openIds.append(datum.getOaOpenId()).append(",");
+						}
+					}
+					if (",".equals(openIds.toString())) {
+
+					} else {
+						wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "报修通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
+							maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+
+					}
+				}
+			}
 		} else {
 			maintenance.setUpdateTime(new Date());
 			maintenance.setUpdateUserName(AuthUtil.getUserName());
@@ -195,13 +228,6 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenanceLog.setCreateUserName(AuthUtil.getUserName());
 		maintenanceLog.setType("设备报修");
 		maintenanceLogService.save(maintenanceLog);
-		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-		String date = "";
-		if (ObjectUtils.isNotNull(maintenance.getRepairReportDate())) {
-			date = format.format(maintenance.getRepairReportDate());
-		}
-		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "报修通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
 		return R.data(maintenance);
 	}
 
@@ -249,8 +275,32 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenanceLog.setCreateUserName(AuthUtil.getUserName());
 		maintenanceLog.setType("已派工");
 		maintenanceLogService.save(maintenanceLog);
-		//		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "派工通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-//			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+		String date = format.format(new Date());
+		StringBuilder openIds = new StringBuilder();
+		R<User> res = userClient.userInfoById(maintenance.getMaintenanceWorkerId());
+		List<CorpsAttn> corpsAttnList = corpsAttnClient.getAttn(maintenance.getCorpId());
+		StringBuilder userIds = new StringBuilder();
+		for (CorpsAttn item : corpsAttnList) {
+			if (ObjectUtils.isNotNull(item.getUserId())) {
+				userIds.append(item.getUserId()).append(",");
+			}
+		}
+		List<User> res1 = userClient.selectUserIds(userIds.toString());
+		for (User item : res1) {
+			if (ObjectUtils.isNotNull(item.getOaOpenId())) {
+				openIds.append(item.getOaOpenId()).append(",");
+			}
+		}
+		if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+			if (",".equals(openIds.toString())) {
+				openIds = new StringBuilder(res.getData().getOaOpenId());
+			} else {
+				openIds.append(res.getData().getOaOpenId());
+			}
+		}
+		wechatClient.sendMessage(openIds.toString(), "派工通知", "设备报修-派工", date, maintenance.getCorpName(), maintenance.getDeviceName(),
+			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
 		return R.data(maintenance);
 	}
 
@@ -261,6 +311,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		if (maintenance.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
 		}
+		Long maintenanceWorkerId = maintenance.getMaintenanceWorkerId();
 		if (maintenance.getStatus() <= 3) {
 			maintenance.setDispatchingWorkers("1");
 			maintenance.setStatus(1);
@@ -301,8 +352,32 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenanceLog.setCreateUserName(AuthUtil.getUserName());
 		maintenanceLog.setType("已撤销");
 		maintenanceLogService.save(maintenanceLog);
-		//		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "撤销派工通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-//			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+		String date = format.format(new Date());
+		StringBuilder openIds = new StringBuilder();
+		R<User> res = userClient.userInfoById(maintenanceWorkerId);
+		List<CorpsAttn> corpsAttnList = corpsAttnClient.getAttn(maintenance.getCorpId());
+		StringBuilder userIds = new StringBuilder();
+		for (CorpsAttn item : corpsAttnList) {
+			if (ObjectUtils.isNotNull(item.getUserId())) {
+				userIds.append(item.getUserId()).append(",");
+			}
+		}
+		List<User> res1 = userClient.selectUserIds(userIds.toString());
+		for (User item : res1) {
+			if (ObjectUtils.isNotNull(item.getOaOpenId())) {
+				openIds.append(item.getOaOpenId()).append(",");
+			}
+		}
+		if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+			if (",".equals(openIds.toString())) {
+				openIds = new StringBuilder(res.getData().getOaOpenId());
+			} else {
+				openIds.append(res.getData().getOaOpenId());
+			}
+		}
+		wechatClient.sendMessage(openIds.toString(), "派工通知", "设备维修-撤销派工", date, maintenance.getCorpName(), maintenance.getDeviceName(),
+			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
 
 		return R.data(maintenance);
 	}
@@ -347,9 +422,6 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenanceLog.setCreateUserName(AuthUtil.getUserName());
 		maintenanceLog.setType("确认接单");
 		maintenanceLogService.save(maintenanceLog);
-		//		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "接单通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-//			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
-
 		return R.data(maintenance);
 	}
 
@@ -545,10 +617,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenance.setUpdateUserName(AuthUtil.getUserName());
 		baseMapper.updateById(maintenance);
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-		String date = "";
-		if (ObjectUtils.isNotNull(maintenance.getRepairReportDate())) {
-			date = format.format(maintenance.getRepairReportDate());
-		}
+		String date = format.format(new Date());
 		corpsArchivesClient.updateArchives(maintenance.getArchivesId() + "", date, maintenance.getDeviceId() + "");
 		MaintenanceLog maintenanceLog = new MaintenanceLog();
 		maintenanceLog.setSysNo(maintenance.getSysNo());
@@ -558,9 +627,38 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenanceLog.setCreateUserName(AuthUtil.getUserName());
 		maintenanceLog.setType("费用确认");
 		maintenanceLogService.save(maintenanceLog);
-		//		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "待支付通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-//			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
-
+		SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+		String date1 = format1.format(new Date());
+		StringBuilder openIds = new StringBuilder();
+		R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
+		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+			R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()), null, null);
+			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+				for (User datum : userList.getData()) {
+					if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
+						openIds.append(datum.getOaOpenId()).append(",");
+					}
+				}
+			}
+		}
+		List<CorpsAttn> corpsAttnList = corpsAttnClient.getAttn(maintenance.getCorpId());
+		StringBuilder userIds = new StringBuilder();
+		for (CorpsAttn item : corpsAttnList) {
+			if (ObjectUtils.isNotNull(item.getUserId())) {
+				userIds.append(item.getUserId()).append(",");
+			}
+		}
+		List<User> res1 = userClient.selectUserIds(userIds.toString());
+		for (User item : res1) {
+			if (ObjectUtils.isNotNull(item.getOaOpenId())) {
+				openIds.append(item.getOaOpenId()).append(",");
+			}
+		}
+		if (",".equals(openIds.toString())) {
+		} else {
+			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "结算通知", "设备报修-待付款", date1, maintenance.getCorpName(), maintenance.getDeviceName(),
+				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+		}
 		return R.data(maintenance);
 	}
 
@@ -680,6 +778,38 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		maintenanceLog.setCreateUserName(AuthUtil.getUserName());
 		maintenanceLog.setType("撤销确认费用");
 		maintenanceLogService.save(maintenanceLog);
+		SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+		String date1 = format1.format(new Date());
+		StringBuilder openIds = new StringBuilder();
+		R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
+		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+			R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()), null, null);
+			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+				for (User datum : userList.getData()) {
+					if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
+						openIds.append(datum.getOaOpenId()).append(",");
+					}
+				}
+			}
+		}
+		List<CorpsAttn> corpsAttnList = corpsAttnClient.getAttn(maintenance.getCorpId());
+		StringBuilder userIds = new StringBuilder();
+		for (CorpsAttn item : corpsAttnList) {
+			if (ObjectUtils.isNotNull(item.getUserId())) {
+				userIds.append(item.getUserId()).append(",");
+			}
+		}
+		List<User> res1 = userClient.selectUserIds(userIds.toString());
+		for (User item : res1) {
+			if (ObjectUtils.isNotNull(item.getOaOpenId())) {
+				openIds.append(item.getOaOpenId()).append(",");
+			}
+		}
+		if (",".equals(openIds.toString())) {
+		} else {
+			wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "结算通知", "设备报修-费用撤销", date1, maintenance.getCorpName(), maintenance.getDeviceName(),
+				maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+		}
 		return R.data(maintenance);
 	}