diff --git a/src/main/java/org/springblade/business/quality/controller/QualityController.java b/src/main/java/org/springblade/business/quality/controller/QualityController.java index f1be1f3..92c418d 100644 --- a/src/main/java/org/springblade/business/quality/controller/QualityController.java +++ b/src/main/java/org/springblade/business/quality/controller/QualityController.java @@ -129,25 +129,8 @@ public class QualityController extends BladeController { @ApiOperationSupport(order = 4) @Operation(summary = "新增", description = "传入quality") public R save(@Valid @RequestBody QualityDTO quality) { - quality.setErpOrderCode("ASC0" + CommonUtil.getSalesOrderCode()); - quality.setHandleStatus("1"); - // 获取图片集合 - List attachList = quality.getAttachList(); - String picIds = ""; - if (CollectionUtils.isNotEmpty(attachList)) { - // 保存图片信息 - attachService.saveBatch(attachList); - // 图片id拼接赋值 - StringBuilder sb = new StringBuilder(); - attachList.forEach(attach -> sb.append(attach.getId()).append(",")); - picIds = !sb.isEmpty() ? sb.substring(0, sb.length() - 1) : ""; - } - quality.setPicIds(picIds); - boolean save = qualityService.save(quality); - if (save) { - // 将售后订单同步给mes - } - return R.status(save); + + return R.status(qualityService.saveAndPush(quality)); } /** diff --git a/src/main/java/org/springblade/business/quality/pojo/dto/QualityRequest.java b/src/main/java/org/springblade/business/quality/pojo/dto/QualityRequest.java new file mode 100644 index 0000000..37ace67 --- /dev/null +++ b/src/main/java/org/springblade/business/quality/pojo/dto/QualityRequest.java @@ -0,0 +1,55 @@ +package org.springblade.business.quality.pojo.dto; + +import lombok.Data; + +/** + * @author panFeng + */ +@Data +public class QualityRequest { + /** + * 接口类型 + * 新增:Add + * 修改:Modify + * 删除:Delete + */ + private String MethodName; + /** + * 客诉编号 + */ + private String ComplaintCode; + /** + * 客户名称 + */ + private String CustomerName; + /** + * 联系方式 + */ + private String ContactInformation; + /** + * 投诉时间 + */ + private String ComplaintTime; + /** + * 客户订单 + */ + private String ProductBarCode; + /** + * 投诉内容 + */ + private String Description; + /** + * 投诉类型 + */ + private String ComplaintType; + + /** + * 备注 + */ + private String Remark; + /** + * 售后图片 + */ + private String PictureUrl; + +} diff --git a/src/main/java/org/springblade/business/quality/service/IQualityService.java b/src/main/java/org/springblade/business/quality/service/IQualityService.java index d1da910..52562f8 100644 --- a/src/main/java/org/springblade/business/quality/service/IQualityService.java +++ b/src/main/java/org/springblade/business/quality/service/IQualityService.java @@ -28,6 +28,7 @@ package org.springblade.business.quality.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.business.quality.excel.QualityExcel; +import org.springblade.business.quality.pojo.dto.QualityDTO; import org.springblade.business.quality.pojo.entity.QualityEntity; import org.springblade.business.quality.pojo.vo.QualityVO; import org.springblade.business.quality.pojo.vo.StatiscsVO; @@ -65,4 +66,9 @@ public interface IQualityService extends BaseService { List countByHandleStatus(); List countByHandleType(); + + /** + * 新增数据 + */ + boolean saveAndPush(QualityDTO quality); } diff --git a/src/main/java/org/springblade/business/quality/service/impl/QualityServiceImpl.java b/src/main/java/org/springblade/business/quality/service/impl/QualityServiceImpl.java index fffb216..6fa3b91 100644 --- a/src/main/java/org/springblade/business/quality/service/impl/QualityServiceImpl.java +++ b/src/main/java/org/springblade/business/quality/service/impl/QualityServiceImpl.java @@ -1,21 +1,40 @@ package org.springblade.business.quality.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.business.quality.excel.QualityExcel; import org.springblade.business.quality.mapper.QualityMapper; +import org.springblade.business.quality.pojo.dto.QualityDTO; +import org.springblade.business.quality.pojo.dto.QualityRequest; import org.springblade.business.quality.pojo.entity.QualityEntity; import org.springblade.business.quality.pojo.vo.QualityVO; import org.springblade.business.quality.pojo.vo.StatiscsVO; import org.springblade.business.quality.service.IQualityService; +import org.springblade.business.salesOrder.pojo.entity.SalesOrderRequest; import org.springblade.common.cache.DictCache; import org.springblade.common.enums.DictEnum; +import org.springblade.common.utils.CommonUtil; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.resource.pojo.entity.Attach; +import org.springblade.modules.resource.service.IAttachService; +import org.springblade.modules.system.pojo.entity.ApiResponse; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.service.IDictService; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; - -import java.util.ArrayList; +import org.springframework.web.client.RestTemplate; +import java.text.SimpleDateFormat; import java.util.Collections; +import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -24,9 +43,15 @@ import java.util.stream.Collectors; * @author litao * @since 2025-07-16 */ +@Slf4j @Service +@AllArgsConstructor public class QualityServiceImpl extends BaseServiceImpl implements IQualityService { + private IAttachService attachService; + + private final IDictService dictService; + @Override public IPage selectQualityPage(IPage page, QualityVO quality) { return page.setRecords(baseMapper.selectQualityPage(page, quality)); @@ -112,4 +137,64 @@ public class QualityServiceImpl extends BaseServiceImpl attachList = quality.getAttachList(); + String picIds = ""; + String picLinks = ""; + if (CollectionUtils.isNotEmpty(attachList)) { + // 保存图片信息 + attachService.saveBatch(attachList); + // 图片id拼接赋值 + StringBuilder sb = new StringBuilder(); + StringBuilder pl = new StringBuilder(); + attachList.forEach(attach -> + { + sb.append(attach.getId()).append(","); + pl.append(attach.getLink()).append(","); + }); + picIds = !sb.isEmpty() ? sb.substring(0, sb.length() - 1) : ""; + picLinks = !pl.isEmpty() ? pl.substring(0, pl.length() - 1) : ""; + } + quality.setPicIds(picIds); + boolean save = this.save(quality); + if (save) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + // 将销售订单同步给mes + String url = "http://118.253.182.64:8001/AfterSalesComplaint/SyncAfterSalesOrder"; + RestTemplate restTemplate = new RestTemplate(); + QualityRequest request = new QualityRequest(); + request.setMethodName("Add"); + request.setComplaintCode(quality.getErpOrderCode()); + request.setCustomerName(quality.getCustomerName()); + request.setContactInformation(quality.getContactPhone()); + request.setComplaintTime(formatter.format(quality.getFeedbackTime() == null ? new Date() : quality.getFeedbackTime())); + request.setProductBarCode(quality.getSoCode()); + request.setDescription(quality.getProblemDescription()); + + // 投诉类型 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Dict::getCode, "problem_type").eq(Dict::getDictKey, quality.getProblemType()); + request.setComplaintType(dictService.getOne(wrapper).getDictValue()); + + request.setRemark(quality.getRemark()); + request.setPictureUrl(picLinks); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity(request, headers); + + ResponseEntity response = restTemplate.postForEntity(url, entity, ApiResponse.class); + log.info("同步销售订单结果:{}", response); + + ApiResponse body = response.getBody(); + save = Objects.requireNonNull(body).isState(); + } + return save; + } + } diff --git a/src/main/java/org/springblade/business/salesOrder/pojo/entity/BodyItem.java b/src/main/java/org/springblade/business/salesOrder/pojo/entity/BodyItem.java new file mode 100644 index 0000000..086d016 --- /dev/null +++ b/src/main/java/org/springblade/business/salesOrder/pojo/entity/BodyItem.java @@ -0,0 +1,13 @@ +package org.springblade.business.salesOrder.pojo.entity; + +import lombok.Data; + +// 商品明细类 +@Data +public class BodyItem { + private String ProductCode; + private Integer Quantity; + private Double UnitPrice; + private Double TotalPrice; + private String Remark; +} diff --git a/src/main/java/org/springblade/business/salesOrder/pojo/entity/Head.java b/src/main/java/org/springblade/business/salesOrder/pojo/entity/Head.java new file mode 100644 index 0000000..b8fe99f --- /dev/null +++ b/src/main/java/org/springblade/business/salesOrder/pojo/entity/Head.java @@ -0,0 +1,22 @@ +package org.springblade.business.salesOrder.pojo.entity; + +import lombok.Data; + +// 头部信息类 +@Data +public class Head { + private String MethodName; + private String ErpOrderCode; + private String OrderTime; + private String SalespersonID; + private String CustomerName; + private String PaymentTerms; + private String DeliveryDate; + private String TransportationMethod; + private String TransportationAddress; + private String Discounts; + private String Remark; + private String PaymentAmount; + private String OrderAmount; + +} diff --git a/src/main/java/org/springblade/business/salesOrder/pojo/entity/OrderRequest.java b/src/main/java/org/springblade/business/salesOrder/pojo/entity/OrderRequest.java new file mode 100644 index 0000000..7568e9f --- /dev/null +++ b/src/main/java/org/springblade/business/salesOrder/pojo/entity/OrderRequest.java @@ -0,0 +1,17 @@ +package org.springblade.business.salesOrder.pojo.entity; + +import lombok.Data; + +import java.util.List; + +// 顶层请求类 +@Data +public class OrderRequest { + private Head head; + private List body; + +} + + + + diff --git a/src/main/java/org/springblade/business/salesOrder/pojo/entity/SalesOrderRequest.java b/src/main/java/org/springblade/business/salesOrder/pojo/entity/SalesOrderRequest.java index 846b568..0182992 100644 --- a/src/main/java/org/springblade/business/salesOrder/pojo/entity/SalesOrderRequest.java +++ b/src/main/java/org/springblade/business/salesOrder/pojo/entity/SalesOrderRequest.java @@ -16,25 +16,25 @@ public class SalesOrderRequest { * 修改:Modify * 删除:Delete */ - private String methodName; + private String MethodName; /** * 订单编号 */ - private String erpOrderCode; + private String ErpOrderCode; /** * 客户编号 */ - private String customerCode; + private String CustomerCode; /** * 交货日期 */ - private String deliveryDate; + private String DeliveryDate; /** * 运输地址 */ - private String transportationAddress; + private String TransportationAddress; /** * 订单详情 */ - private List orderDetail; + private List OrderDetail; } diff --git a/src/main/java/org/springblade/business/salesOrder/service/impl/SalesOrderServiceImpl.java b/src/main/java/org/springblade/business/salesOrder/service/impl/SalesOrderServiceImpl.java index e1847a1..3a9c890 100644 --- a/src/main/java/org/springblade/business/salesOrder/service/impl/SalesOrderServiceImpl.java +++ b/src/main/java/org/springblade/business/salesOrder/service/impl/SalesOrderServiceImpl.java @@ -1,22 +1,20 @@ package org.springblade.business.salesOrder.service.impl; -import com.qiniu.util.Auth; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springblade.business.salesOrder.mapper.SalesOrderMapper; import org.springblade.business.salesOrder.pojo.dto.SalesOrderDTO; -import org.springblade.business.salesOrder.pojo.entity.OrderDetails; -import org.springblade.business.salesOrder.pojo.entity.SalesOrder; -import org.springblade.business.salesOrder.pojo.entity.SalesOrderDetail; -import org.springblade.business.salesOrder.pojo.entity.SalesOrderRequest; +import org.springblade.business.salesOrder.pojo.entity.*; import org.springblade.business.salesOrder.service.ISalesOrderDetailService; import org.springblade.business.salesOrder.service.ISalesOrderService; import org.springblade.common.utils.CommonUtil; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.modules.system.pojo.entity.ApiResponse; -import org.springblade.modules.system.pojo.entity.CustomerRequest; import org.springblade.modules.system.pojo.entity.User; import org.springblade.modules.system.service.IUserService; import org.springframework.http.HttpEntity; @@ -26,9 +24,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; - import java.text.SimpleDateFormat; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -39,6 +35,7 @@ import java.util.Objects; * @author litao * @since 2025-07-16 */ +@Slf4j @Service @AllArgsConstructor public class SalesOrderServiceImpl extends BaseServiceImpl implements ISalesOrderService { @@ -61,32 +58,44 @@ public class SalesOrderServiceImpl extends BaseServiceImpl orderDetailsList = new ArrayList<>(); + + head.setMethodName("Add"); + head.setErpOrderCode(salesOrder.getCode()); + +// String userAccount = AuthUtil.getUserAccount(); +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(User::getAccount, userAccount); +// User one = userService.getOne(wrapper); +// String name = one.getName(); +// head.setCustomerName(name); + head.setCustomerName("测试公司_01"); + + head.setDeliveryDate(formatter.format(salesOrder.getDeliveryDate())); + head.setTransportationAddress(salesOrder.getTransportationAddress()); List detailList = salesOrder.getDetailList(); if (CollectionUtils.isNotEmpty(detailList)) { - List orderDetailsList = new ArrayList<>(); for (SalesOrderDetail salesOrderDetail : detailList) { - OrderDetails orderDetails = new OrderDetails(); + BodyItem orderDetails = new BodyItem(); orderDetails.setProductCode(salesOrderDetail.getCommodityCode()); orderDetails.setQuantity(salesOrderDetail.getCommodityCount()); orderDetailsList.add(orderDetails); } - request.setOrderDetail(orderDetailsList); + orderRequest.setBody(orderDetailsList); } + orderRequest.setHead(head); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); - HttpEntity entity = new HttpEntity<>(request, headers); - + HttpEntity entity = new HttpEntity<>(orderRequest, headers); ResponseEntity response = restTemplate.postForEntity(url, entity, ApiResponse.class); + log.info(String.valueOf(response.getBody())); ApiResponse body = response.getBody(); save = Objects.requireNonNull(body).isState(); diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java index cc30dd4..689ee30 100644 --- a/src/main/java/org/springblade/modules/system/controller/UserController.java +++ b/src/main/java/org/springblade/modules/system/controller/UserController.java @@ -53,6 +53,7 @@ import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.StringPool; import org.springblade.modules.system.excel.UserExcel; import org.springblade.modules.system.excel.UserImporter; +import org.springblade.modules.system.pojo.dto.UserDTO; import org.springblade.modules.system.pojo.entity.User; import org.springblade.modules.system.pojo.vo.UserVO; import org.springblade.modules.system.service.IUserService; @@ -372,12 +373,12 @@ public class UserController { * 用户注册 */ @PostMapping("/register-user") - public R registerUser(@RequestBody User user) { - user.setUserType(1); - user.setCode("CCI0" + CommonUtil.getSalesOrderCode()); - user.setRoleId("1945392838767751170"); - user.setDeptId("1123598813738675201"); - user.setPostId("1123598817738675208"); - return R.status(userService.registerUserApp(user)); + public R registerUser(@RequestBody UserDTO userDTO) { + userDTO.setUserType(1); + userDTO.setCode("CCI0" + CommonUtil.getSalesOrderCode()); + userDTO.setRoleId("1945392838767751170"); + userDTO.setDeptId("1123598813738675201"); + userDTO.setPostId("1123598817738675208"); + return R.status(userService.registerUserApp(userDTO)); } } diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/UserDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/UserDTO.java new file mode 100644 index 0000000..636154a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/UserDTO.java @@ -0,0 +1,74 @@ +package org.springblade.modules.system.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.User; + +/** + * @description: 用户信息 + * @author Zangzhipeng + * @date 2025/9/6 9:02 + * @version 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class UserDTO extends User { + + // 联系人职位 + @JsonProperty("ContactTitle") + private String contactTitle; + + // 公司名称 + @JsonProperty("CompanyName") + private String companyName; + + // 公司地址 + @JsonProperty("City") + private String city; + + // 公司电话 + @JsonProperty("Province") + private String province; + + // 公司邮编 + @JsonProperty("PostalCode") + private String postalCode; + + // 国家 + @JsonProperty("Country") + private String country; + + // 邮箱 + @JsonProperty("EmailAddress") + private String emailAddress; + + // 电话 + @JsonProperty("PhoneCode") + private String phoneCode; + + // 传真 + @JsonProperty("FaxCode") + private String faxCode; + + // 网站 + @JsonProperty("Website") + private String website; + + // 行业 + @JsonProperty("Industry") + private String industry; + + // 账户状态 + @JsonProperty("AccountStatus") + private String accountStatus; + + // 备注 + @JsonProperty("Remark") + private String remark; + + // 客户分级 + @JsonProperty("CustomerGrade") + private String customerGrade; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/CustomerRequest.java b/src/main/java/org/springblade/modules/system/pojo/entity/CustomerRequest.java index 9629fdb..3dddf07 100644 --- a/src/main/java/org/springblade/modules/system/pojo/entity/CustomerRequest.java +++ b/src/main/java/org/springblade/modules/system/pojo/entity/CustomerRequest.java @@ -1,5 +1,6 @@ package org.springblade.modules.system.pojo.entity; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -13,29 +14,85 @@ public class CustomerRequest { * 修改:Modify * 删除:Delete */ - private String methodName; + private String MethodName; /** * 客户名称 */ - private String customerName; + private String CustomerName; /** * 联系人姓名 */ - private String contactName; + private String ContactName; /** * 公司地址 */ - private String companyAddress; + private String CompanyAddress; /** * 手机号码 */ - private String mobileNumber; + private String MobileNumber; /** * 客户账号 */ - private String customerAccount; + private String CustomerAccount; /** * 客户密码 */ - private String customerPassWord; + private String CustomerPassWord; + + // 联系人职位 + @JsonProperty("ContactTitle") + private String ContactTitle; + + // 公司名称 + @JsonProperty("CompanyName") + private String CompanyName; + + // 公司地址 + @JsonProperty("City") + private String City; + + // 公司电话 + @JsonProperty("Province") + private String Province; + + // 公司邮编 + @JsonProperty("PostalCode") + private String PostalCode; + + // 国家 + @JsonProperty("Country") + private String Country; + + // 邮箱 + @JsonProperty("EmailAddress") + private String EmailAddress; + + // 电话 + @JsonProperty("PhoneCode") + private String PhoneCode; + + // 传真 + @JsonProperty("FaxCode") + private String FaxCode; + + // 网站 + @JsonProperty("Website") + private String Website; + + // 行业 + @JsonProperty("Industry") + private String Industry; + + // 账户状态 + @JsonProperty("AccountStatus") + private String AccountStatus; + + // 备注 + @JsonProperty("Remark") + private String Remark; + + // 客户分级 + @JsonProperty("CustomerGrade") + private String CustomerGrade; } diff --git a/src/main/java/org/springblade/modules/system/service/IUserService.java b/src/main/java/org/springblade/modules/system/service/IUserService.java index ad17f0c..3ce3858 100644 --- a/src/main/java/org/springblade/modules/system/service/IUserService.java +++ b/src/main/java/org/springblade/modules/system/service/IUserService.java @@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.support.Query; import org.springblade.modules.auth.provider.UserType; +import org.springblade.modules.system.pojo.dto.UserDTO; import org.springblade.modules.system.pojo.entity.User; import org.springblade.modules.system.pojo.entity.UserInfo; import org.springblade.modules.system.pojo.entity.UserOauth; @@ -299,5 +300,5 @@ public interface IUserService extends BaseService { */ List leaderList(String tenantId, String realName); - boolean registerUserApp(User user); + boolean registerUserApp(UserDTO userDTO); } diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java index 40826d4..8713fb9 100644 --- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java +++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java @@ -52,6 +52,7 @@ import org.springblade.core.tool.utils.*; import org.springblade.modules.auth.provider.UserType; import org.springblade.modules.system.excel.UserExcel; import org.springblade.modules.system.mapper.UserMapper; +import org.springblade.modules.system.pojo.dto.UserDTO; import org.springblade.modules.system.pojo.entity.*; import org.springblade.modules.system.pojo.vo.UserVO; import org.springblade.modules.system.service.IRoleService; @@ -67,10 +68,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.Consumer; import static org.springblade.common.constant.CommonConstant.DEFAULT_PARAM_PASSWORD; import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE; @@ -600,22 +599,41 @@ public class UserServiceImpl extends BaseServiceImpl implement } @Override - public boolean registerUserApp(User user) { - String password = user.getPassword(); - boolean submit = this.submit(user); + public boolean registerUserApp(UserDTO userDTO) { + String password = userDTO.getPassword(); + boolean submit = this.submit(userDTO); + CustomerRequest request = null; + RestTemplate restTemplate = null; + String url = null; if (submit) { // 将用户信息同步给mes - String url = "http://118.253.182.64:8001/CrmCustomer/SyncCustomer"; - RestTemplate restTemplate = new RestTemplate(); - CustomerRequest request = new CustomerRequest(); + url = "http://118.253.182.64:8001/CrmCustomer/SyncCustomer"; + restTemplate = new RestTemplate(); + request = new CustomerRequest(); request.setMethodName("Add"); - request.setCustomerName(user.getName()); - request.setContactName(user.getRealName()); - request.setCompanyAddress(user.getAvatar()); - request.setMobileNumber(user.getPhone()); - request.setCustomerAccount(user.getAccount()); + request.setCustomerName(userDTO.getName()); + request.setContactName(userDTO.getRealName()); + request.setCompanyAddress(userDTO.getAvatar()); + request.setMobileNumber(userDTO.getPhone()); + request.setCustomerAccount(userDTO.getAccount()); request.setCustomerPassWord(password); + // 非必填项判断 + Optional.ofNullable(userDTO.getContactTitle()).ifPresent(request::setContactTitle); + Optional.ofNullable(userDTO.getCompanyName()).ifPresent(request::setCompanyName); + Optional.ofNullable(userDTO.getCity()).ifPresent(request::setCity); + Optional.ofNullable(userDTO.getProvince()).ifPresent(request::setProvince); + Optional.ofNullable(userDTO.getPostalCode()).ifPresent(request::setPostalCode); + Optional.ofNullable(userDTO.getCountry()).ifPresent(request::setCountry); + Optional.ofNullable(userDTO.getEmailAddress()).ifPresent(request::setEmailAddress); + Optional.ofNullable(userDTO.getPhoneCode()).ifPresent(request::setPhoneCode); + Optional.ofNullable(userDTO.getFaxCode()).ifPresent(request::setFaxCode); + Optional.ofNullable(userDTO.getWebsite()).ifPresent(request::setWebsite); + Optional.ofNullable(userDTO.getIndustry()).ifPresent(request::setIndustry); + Optional.ofNullable(userDTO.getAccountStatus()).ifPresent(request::setAccountStatus); + Optional.ofNullable(userDTO.getRemark()).ifPresent(request::setRemark); + Optional.ofNullable(userDTO.getCustomerGrade()).ifPresent(request::setCustomerGrade); + HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON);