Browse Source

开户管理-开户信息--开户信息:新增公司税号、电子邮箱两个字段;
收费管理-支付管理--添加“应用密钥”字段,必填;

zhoujiangyuan 4 years ago
parent
commit
55935dd145

+ 3 - 2
smart-city-platform/src/main/java/com/bz/smart_city/controller/pay/archives/PayBaseCustomerandmeterrelaController.java

@@ -100,14 +100,15 @@ public class PayBaseCustomerandmeterrelaController {
     @PostMapping("/saveCustomer")
     @ApiOperation(value = "计费系统-确认开户")
     public AjaxMessage saveCustomer(@ApiParam(value = "保存开户信息",required = true) @RequestBody(required = true) @Validated PaySaveCustomerDto paySaveCustomerDto){
-
+/*
         int result = payBaseCustomerandmeterrelaService.saveCustomer(
             paySaveCustomerDto.getAccountname(),paySaveCustomerDto.getAccountnumber(),
             paySaveCustomerDto.getMetercode(),paySaveCustomerDto.getWaterPropertyId(),
             paySaveCustomerDto.getCalculateway(),paySaveCustomerDto.getIdtype(),paySaveCustomerDto.getIdcardno(),
             paySaveCustomerDto.getTelephone(),paySaveCustomerDto.getOfficeId(),
             paySaveCustomerDto.getHousetype(),paySaveCustomerDto.getCustomergroup(),
-            paySaveCustomerDto.getFixedamount());
+            paySaveCustomerDto.getFixedamount()); */
+        int result = payBaseCustomerandmeterrelaService.saveCustomer(paySaveCustomerDto);
         if(result >0 ){
             return new AjaxMessage<>(ResultStatus.OK, result);
         }else{

+ 5 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dto/pay/PayCustomerDto.java

@@ -63,4 +63,9 @@ public class PayCustomerDto {
     public String customergroupName;
     @ApiModelProperty(value = "用水性质Id", position = 21)
     public BigInteger waterPropertyId;
+
+    @ApiModelProperty(value = "公司税号",position = 22)
+    public String vatno;
+    @ApiModelProperty(value = "邮箱",position = 23)
+    public String email;
 }

+ 5 - 2
smart-city-platform/src/main/java/com/bz/smart_city/dto/pay/PaySaveCustomerDto.java

@@ -39,7 +39,10 @@ public class PaySaveCustomerDto extends PayBaseCustomerandmeterrela {
     private Integer housetype;
     @ApiModelProperty(value = "开户分组", position = 10)
     private Integer customergroup;
-    @ApiModelProperty(value = "固定量", position = 10)
+    @ApiModelProperty(value = "固定量", position = 11)
     public BigDecimal fixedamount;
-
+    @ApiModelProperty(value = "邮箱", position = 12)
+    private String email;
+    @ApiModelProperty(value = "公司税号", position = 13)
+    private String vatno;
 }

+ 6 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/importfile/AsyncTaskImportService.java

@@ -953,6 +953,8 @@ public class AsyncTaskImportService {
                             Cell idtypeCell = row.getCell(9);//证件类型
                             Cell idcardnoCell = row.getCell(10);//证件号码
                             Cell housetypeCell = row.getCell(11);//住房类型
+                            Cell vatnoCell = row.getCell(12);//公司税号
+                            Cell emailCell = row.getCell(13);//邮箱
                             //Cell c_remark = row.getCell(11);//备注
 
 
@@ -1003,6 +1005,8 @@ public class AsyncTaskImportService {
                             String idtype = idtypeCell.getStringCellValue().trim();
                             String idcardno = idcardnoCell.getStringCellValue().trim();
                             String telephone = telephoneCell.getStringCellValue().trim();
+                            String vatno = vatnoCell.getStringCellValue().trim();
+                            String email = emailCell.getStringCellValue().trim();
                             PayBaseCustomerandmeterrela customer =  new PayBaseCustomerandmeterrela();//实例化开户实体
                             //根据客户编码寻找客户id
                             PayBaseAccount accounts = payBaseCustomerandmeterrelaMapper.getAccountId(loginUser.getSiteId(),loginUser.getCustomerId(),accountnumber);
@@ -1063,6 +1067,7 @@ public class AsyncTaskImportService {
                                 continue;
                             }
                             Integer value = 0;
+                            customer.setVatno(vatno);
                             //判断客户是否销户后在开户
                             PayBaseCustomerandmeterrela baseCustomer = payBaseCustomerandmeterrelaMapper.queryCancelInfo(loginUser.getSiteId(),loginUser.getCustomerId(),accountnumber,metercode);
                             if(baseCustomer != null && baseCustomer.getBusinessstate() != 1){
@@ -1175,6 +1180,7 @@ public class AsyncTaskImportService {
                             saveAccount.setCustomerId(BigInteger.valueOf(loginUser.getCustomerId()));
                             saveAccount.setUpdateBy(BigInteger.valueOf(loginUser.getId()));
                             saveAccount.setUpdateDate(LocalDateTime.now());
+                            saveAccount.setEmail(email);
                             payBaseAccountService.update(saveAccount);
 
                             //修改预存账户名称

+ 2 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/pay/archives/PayBaseCustomerandmeterrelaService.java

@@ -45,6 +45,8 @@ public interface PayBaseCustomerandmeterrelaService {
     public int saveCustomer(String accountname,String accountnumber,String metercode,BigInteger waterPropertyId,Integer calculateway,Integer idtype,
                             String idcardno,String telephone,BigInteger officeId,Integer housetype,Integer customergroup,BigDecimal fixedamount);
 
+    int saveCustomer(PaySaveCustomerDto paySaveCustomerDto);
+
     public  Pagination<PayCustomerDto>getAll (String condition, BigInteger waterPropertyId, Integer businessstate, Integer calculateway, String sortColumn, String sortOrder, int pageNum, int pageSize);
 
 

+ 120 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/pay/archives/impl/PayBaseCustomerandmeterrelaServiceImpl.java

@@ -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);
 
             //编辑开户修改其它地方客户名称

BIN
smart-city-platform/src/main/resources/excel/batchOpenAccountTemplate.xlsx


+ 2 - 0
smart-city-platform/src/main/resources/mapper/PayBaseCustomerandmeterrelaMapper.xml

@@ -248,6 +248,8 @@
         account.address as "address",
         customer.opendate as "opendate",
         customer.office_id as "officeId",
+        account.email,
+        customer.vatno,
         customer.businessstate as "businessstate",
         (select label from pay_sys_dict where type = '开户状态' and value = customer.businessstate and site_id = #{siteId} and customer_id =#{customerId}) as "businessName",
         customer.calculateway as "calculateway",

+ 1 - 0
smart-city-platform/src/main/resources/mapper/pay/PayPayAgentbranchMapper.xml

@@ -90,6 +90,7 @@
         pa1.name,
         pa1.mchid,
         pa1.paykey paykey,
+        pa1.appsecret,
         pa1.appid,
         scu.`name` as updateName,
         pa1.update_date as updateDate,