|
@@ -318,6 +318,124 @@ public class PayBaseCustomerandmeterrelaServiceImpl implements PayBaseCustomeran
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+ public int saveCustomer(PaySaveCustomerDto paySaveCustomerDto)
|
|
|
+ {
|
|
|
+ LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ PayBaseCustomerandmeterrela customer = new PayBaseCustomerandmeterrela();//实例化开户实体
|
|
|
+ //根据客户编码寻找客户id
|
|
|
+ PayBaseAccount accounts = payBaseCustomerandmeterrelaMapper.getAccountId(loginUser.getSiteId(),loginUser.getCustomerId(),paySaveCustomerDto.accountnumber);
|
|
|
+ //根据水表电子号寻找水表id
|
|
|
+ PayBaseCustomerandmeterrela device = payBaseCustomerandmeterrelaMapper.getDeviceId(loginUser.getSiteId(),loginUser.getCustomerId(),paySaveCustomerDto.metercode);
|
|
|
+
|
|
|
+ if(accounts == null){
|
|
|
+ throw new ServiceException(ResultStatus.PAY_ADD_CUSTOMER_GETACCOUNT);
|
|
|
+ }
|
|
|
+ if(device == null){
|
|
|
+ throw new ServiceException(ResultStatus.PAY_ADD_CUSTOMER_GETDEVICE);
|
|
|
+ }
|
|
|
+
|
|
|
+ //计算可用水量
|
|
|
+ if(paySaveCustomerDto.waterPropertyId != null){
|
|
|
+ Boolean flag = this.UpdateAccountInfo(paySaveCustomerDto.waterPropertyId,accounts.getId(),null,loginUser.getSiteId(),loginUser.getCustomerId());
|
|
|
+ /*if (!flag){
|
|
|
+ throw new ServiceException(ResultStatus.PAY_ADD_CUSTOMER_UPDATEAMOUNT);
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断是否为销户重新开户
|
|
|
+ PayBaseCustomerandmeterrela baseCustomer = payBaseCustomerandmeterrelaMapper.queryCancelInfo(loginUser.getSiteId(),loginUser.getCustomerId(),paySaveCustomerDto.accountnumber,paySaveCustomerDto.metercode);
|
|
|
+ List<PayBaseCustomerandmeterrela> customerList = newArrayList();
|
|
|
+ if(baseCustomer != null && baseCustomer.getBusinessstate() != 1){
|
|
|
+ //修改开户信息开户状态为已开户
|
|
|
+ customer.setId(baseCustomer.getId());
|
|
|
+ customer.setAccountId(accounts.getId());
|
|
|
+ customer.setAccountnumber(paySaveCustomerDto.accountnumber);
|
|
|
+ customer.setAccountname(paySaveCustomerDto.accountname);
|
|
|
+ customer.setBusinessstate(1);//1已开户 2 销户 3未开户
|
|
|
+ customer.setCalculateway(paySaveCustomerDto.getCalculateway());//结算方式
|
|
|
+ customer.setWatermeterId(device.getId());
|
|
|
+ customer.setMetercode(paySaveCustomerDto.getMetercode());
|
|
|
+ customer.setOfficeId(paySaveCustomerDto.getOfficeId());
|
|
|
+ customer.setUpdateBy(loginUser.getId());
|
|
|
+ customer.setUpdateDate(LocalDateTime.now());
|
|
|
+ customer.setHousetype(paySaveCustomerDto.getHousetype());//住房类型
|
|
|
+ customer.setCustomergroup(paySaveCustomerDto.getCustomergroup());//开户分组
|
|
|
+ customer.setFixedamount(paySaveCustomerDto.fixedamount);//固定量
|
|
|
+ customer.setOpendate(LocalDateTime.now());
|
|
|
+ customer.setWaterPropertyId(paySaveCustomerDto.waterPropertyId);
|
|
|
+ customer.setVatno(paySaveCustomerDto.getVatno()); //公司税号
|
|
|
+ payBaseCustomerandmeterrelaMapper.update(customer);
|
|
|
+
|
|
|
+ //重修开户修改其它地方客户名称
|
|
|
+ this.updateAccountnameInfo(paySaveCustomerDto.accountname,accounts.getId());
|
|
|
+ }else{
|
|
|
+ //添加开户信息
|
|
|
+ customer.setAccountId(accounts.getId());
|
|
|
+ customer.setAccountnumber(paySaveCustomerDto.accountnumber);
|
|
|
+ customer.setAccountname(paySaveCustomerDto.accountname);
|
|
|
+ customer.setBusinessstate(1);//1已开户 2 销户 3未开户
|
|
|
+ customer.setCalculateway(paySaveCustomerDto.calculateway);//结算方式
|
|
|
+ customer.setWatermeterId(device.getId());
|
|
|
+ customer.setMetercode(paySaveCustomerDto.metercode);
|
|
|
+ customer.setOfficeId(paySaveCustomerDto.officeId);
|
|
|
+ customer.setUpdateBy(loginUser.getId());
|
|
|
+ customer.setUpdateDate(LocalDateTime.now());
|
|
|
+ customer.setCreateBy(loginUser.getId());
|
|
|
+ customer.setCreateDate(LocalDateTime.now());
|
|
|
+ customer.setDelFlag("0");
|
|
|
+ customer.setRemarks("");
|
|
|
+ customer.setSiteId(BigInteger.valueOf(loginUser.getSiteId()));
|
|
|
+ customer.setCustomerId(BigInteger.valueOf(loginUser.getCustomerId()));
|
|
|
+ customer.setHousetype(paySaveCustomerDto.getHousetype());//住房类型
|
|
|
+ customer.setCustomergroup(paySaveCustomerDto.getCustomergroup());//开户分组
|
|
|
+ customer.setFixedamount(paySaveCustomerDto.fixedamount);//固定量
|
|
|
+ customer.setOpendate(LocalDateTime.now());
|
|
|
+ customer.setWaterPropertyId(paySaveCustomerDto.waterPropertyId);
|
|
|
+ customer.setVatno(paySaveCustomerDto.getVatno()); //公司税号
|
|
|
+ customerList.add(customer);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //修改客户信息
|
|
|
+ PayBaseAccount saveAccount = payBaseAccountMapper.get(accounts.getId());
|
|
|
+ saveAccount.setName(paySaveCustomerDto.accountname);
|
|
|
+ saveAccount.setState(1);
|
|
|
+ saveAccount.setIdtype(paySaveCustomerDto.getIdtype());
|
|
|
+ saveAccount.setIdcardno(paySaveCustomerDto.getIdcardno());
|
|
|
+ saveAccount.setTelephone(paySaveCustomerDto.telephone);
|
|
|
+ saveAccount.setMobilephone(paySaveCustomerDto.telephone);
|
|
|
+ saveAccount.setId(accounts.getId());
|
|
|
+ saveAccount.setSiteId(new BigInteger(String.valueOf(loginUser.getSiteId())));
|
|
|
+ saveAccount.setCustomerId(new BigInteger(String.valueOf(loginUser.getCustomerId())));
|
|
|
+ saveAccount.setUpdateBy(new BigInteger(String.valueOf(loginUser.getId())));
|
|
|
+ saveAccount.setUpdateDate(LocalDateTime.now());
|
|
|
+ saveAccount.setEmail(paySaveCustomerDto.getEmail()); //邮箱
|
|
|
+ payBaseAccountService.edit(saveAccount);
|
|
|
+
|
|
|
+ //修改预存账户名称
|
|
|
+ PayRechargeaccountDto rechargeaccountDto = new PayRechargeaccountDto();
|
|
|
+ rechargeaccountDto.setAccountId(accounts.getId());
|
|
|
+ rechargeaccountDto.setOfficeId(paySaveCustomerDto.getOfficeId());
|
|
|
+ rechargeaccountDto.setBusinessstate(1);
|
|
|
+ rechargeaccountDto.setAccountname(paySaveCustomerDto.accountname);
|
|
|
+ rechargeaccountDto.setSiteId(new BigInteger(String.valueOf(loginUser.getSiteId())));
|
|
|
+ rechargeaccountDto.setCustomerId(new BigInteger(String.valueOf(loginUser.getCustomerId())));
|
|
|
+ payRechargeaccountMapper.update(rechargeaccountDto);
|
|
|
+
|
|
|
+ //修改水表安装信息为已开户
|
|
|
+ payBaseCustomerandmeterrelaMapper.updateMeterInstallOpen(2,loginUser.getUpdateBy(),LocalDateTime.now(),device.getId());
|
|
|
+ if (customerList.size() > 0) {
|
|
|
+ int reslut = payBaseCustomerandmeterrelaMapper.insertList(customerList);
|
|
|
+
|
|
|
+ if(reslut <=0){
|
|
|
+ throw new ServiceException(ResultStatus.PAY_ADD_CUSTOMER_ERR);
|
|
|
+ }else{
|
|
|
+ return reslut;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
public void updateAccountnameInfo(String accountname,BigInteger id){
|
|
|
try{
|
|
|
//修改实收名称
|
|
@@ -548,6 +666,7 @@ public class PayBaseCustomerandmeterrelaServiceImpl implements PayBaseCustomeran
|
|
|
saveAccount.setCustomerId(new BigInteger(String.valueOf(loginUser.getCustomerId())));
|
|
|
saveAccount.setUpdateBy(new BigInteger(String.valueOf(loginUser.getId())));
|
|
|
saveAccount.setUpdateDate(LocalDateTime.now());
|
|
|
+ saveAccount.setEmail(payBaseCustomerandmeterrela.getEmail()); //邮箱
|
|
|
payBaseAccountService.edit(saveAccount);
|
|
|
|
|
|
//修改预存账户名称
|
|
@@ -577,6 +696,7 @@ public class PayBaseCustomerandmeterrelaServiceImpl implements PayBaseCustomeran
|
|
|
customer.setUpdateBy(loginUser.getId());
|
|
|
customer.setUpdateDate(LocalDateTime.now());
|
|
|
customer.setId(payBaseCustomerandmeterrela.getId());
|
|
|
+ customer.setVatno(payBaseCustomerandmeterrela.getVatno());
|
|
|
payBaseCustomerandmeterrelaMapper.update(customer);
|
|
|
|
|
|
//编辑开户修改其它地方客户名称
|