Showing
15 changed files
with
679 additions
and
96 deletions
| @@ -232,6 +232,12 @@ public class CustomerServiceImpl extends BaseMpServiceImpl<CustomerMapper, Custo | @@ -232,6 +232,12 @@ public class CustomerServiceImpl extends BaseMpServiceImpl<CustomerMapper, Custo | ||
| 232 | OpLogUtil.setExtra(vo); | 232 | OpLogUtil.setExtra(vo); |
| 233 | } | 233 | } |
| 234 | 234 | ||
| 235 | + @Override | ||
| 236 | + public Customer getByName(String name) { | ||
| 237 | + | ||
| 238 | + return getBaseMapper().getByName(name); | ||
| 239 | + } | ||
| 240 | + | ||
| 235 | @CacheEvict(value = Customer.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") | 241 | @CacheEvict(value = Customer.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") |
| 236 | @Override | 242 | @Override |
| 237 | public void cleanCacheByKey(Serializable key) { | 243 | public void cleanCacheByKey(Serializable key) { |
| @@ -40,4 +40,12 @@ public interface CustomerMapper extends BaseMapper<Customer> { | @@ -40,4 +40,12 @@ public interface CustomerMapper extends BaseMapper<Customer> { | ||
| 40 | * @return | 40 | * @return |
| 41 | */ | 41 | */ |
| 42 | List<Customer> selector(@Param("vo") QueryCustomerSelectorVo vo); | 42 | List<Customer> selector(@Param("vo") QueryCustomerSelectorVo vo); |
| 43 | + | ||
| 44 | + /** | ||
| 45 | + * 根据名称查询 | ||
| 46 | + * | ||
| 47 | + * @param name | ||
| 48 | + * @return Customer | ||
| 49 | + */ | ||
| 50 | + Customer getByName(@Param("name") String name); | ||
| 43 | } | 51 | } |
xingyun-basedata/src/main/java/com/lframework/xingyun/basedata/service/customer/CustomerService.java
| @@ -69,4 +69,11 @@ public interface CustomerService extends BaseMpService<Customer> { | @@ -69,4 +69,11 @@ public interface CustomerService extends BaseMpService<Customer> { | ||
| 69 | * @param vo | 69 | * @param vo |
| 70 | */ | 70 | */ |
| 71 | void update(UpdateCustomerVo vo); | 71 | void update(UpdateCustomerVo vo); |
| 72 | + | ||
| 73 | + /** | ||
| 74 | + * 根据名称查询 | ||
| 75 | + * | ||
| 76 | + * @param name | ||
| 77 | + */ | ||
| 78 | + Customer getByName(String name); | ||
| 72 | } | 79 | } |
| @@ -74,6 +74,18 @@ | @@ -74,6 +74,18 @@ | ||
| 74 | ORDER BY code | 74 | ORDER BY code |
| 75 | </select> | 75 | </select> |
| 76 | 76 | ||
| 77 | + <select id="getByName" resultMap="CustomerDto"> | ||
| 78 | + SELECT DISTINCT | ||
| 79 | + c.id, | ||
| 80 | + c.name | ||
| 81 | + FROM base_data_customer AS c | ||
| 82 | + <where> | ||
| 83 | + <if test="name != null and name != ''"> | ||
| 84 | + AND name = #{name} | ||
| 85 | + </if> | ||
| 86 | + </where> | ||
| 87 | + </select> | ||
| 88 | + | ||
| 77 | <select id="selector" resultMap="CustomerDto"> | 89 | <select id="selector" resultMap="CustomerDto"> |
| 78 | <include refid="CustomerDto_sql"/> | 90 | <include refid="CustomerDto_sql"/> |
| 79 | <where> | 91 | <where> |
| 1 | package com.lframework.xingyun.sc.bo.customer.credit; | 1 | package com.lframework.xingyun.sc.bo.customer.credit; |
| 2 | 2 | ||
| 3 | import com.fasterxml.jackson.annotation.JsonFormat; | 3 | import com.fasterxml.jackson.annotation.JsonFormat; |
| 4 | -import com.lframework.xingyun.basedata.entity.Customer; | 4 | +import com.lframework.starter.web.core.dto.BaseDto; |
| 5 | import com.lframework.xingyun.sc.entity.CorePersonnel; | 5 | import com.lframework.xingyun.sc.entity.CorePersonnel; |
| 6 | import com.lframework.xingyun.sc.entity.CustomerCredit; | 6 | import com.lframework.xingyun.sc.entity.CustomerCredit; |
| 7 | import java.math.BigDecimal; | 7 | import java.math.BigDecimal; |
| @@ -24,7 +24,7 @@ import lombok.Data; | @@ -24,7 +24,7 @@ import lombok.Data; | ||
| 24 | * | 24 | * |
| 25 | */ | 25 | */ |
| 26 | @Data | 26 | @Data |
| 27 | -public class GetCustomerCreditBo extends BaseBo<CustomerCredit> { | 27 | +public class GetCustomerCreditBo extends BaseBo<CustomerCredit> implements BaseDto { |
| 28 | 28 | ||
| 29 | /** | 29 | /** |
| 30 | * ID | 30 | * ID |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/customer/CustomerCreditController.java
| 1 | package com.lframework.xingyun.sc.controller.customer; | 1 | package com.lframework.xingyun.sc.controller.customer; |
| 2 | 2 | ||
| 3 | import com.lframework.starter.common.utils.StringUtil; | 3 | import com.lframework.starter.common.utils.StringUtil; |
| 4 | +import com.lframework.starter.mq.core.utils.ExportTaskUtil; | ||
| 4 | import com.lframework.starter.web.core.annotations.security.HasPermission; | 5 | import com.lframework.starter.web.core.annotations.security.HasPermission; |
| 5 | import com.lframework.starter.web.core.controller.DefaultBaseController; | 6 | import com.lframework.starter.web.core.controller.DefaultBaseController; |
| 6 | import com.lframework.starter.web.core.utils.ExcelUtil; | 7 | import com.lframework.starter.web.core.utils.ExcelUtil; |
| @@ -16,6 +17,8 @@ import com.lframework.starter.web.core.components.resp.PageResult; | @@ -16,6 +17,8 @@ import com.lframework.starter.web.core.components.resp.PageResult; | ||
| 16 | import com.lframework.starter.web.core.components.resp.InvokeResult; | 17 | import com.lframework.starter.web.core.components.resp.InvokeResult; |
| 17 | import javax.annotation.Resource; | 18 | import javax.annotation.Resource; |
| 18 | import javax.validation.constraints.NotBlank; | 19 | import javax.validation.constraints.NotBlank; |
| 20 | +import com.lframework.xingyun.sc.enums.ExportType; | ||
| 21 | +import com.lframework.xingyun.sc.excel.customerCredit.CustomerCreditExportTaskWorker; | ||
| 19 | import com.lframework.xingyun.sc.excel.customerCredit.CustomerCreditImportListener; | 22 | import com.lframework.xingyun.sc.excel.customerCredit.CustomerCreditImportListener; |
| 20 | import com.lframework.xingyun.sc.excel.customerCredit.CustomerCreditImportModel; | 23 | import com.lframework.xingyun.sc.excel.customerCredit.CustomerCreditImportModel; |
| 21 | import com.lframework.xingyun.sc.service.customer.CorePersonnelService; | 24 | import com.lframework.xingyun.sc.service.customer.CorePersonnelService; |
| @@ -132,6 +135,21 @@ public class CustomerCreditController extends DefaultBaseController { | @@ -132,6 +135,21 @@ public class CustomerCreditController extends DefaultBaseController { | ||
| 132 | } | 135 | } |
| 133 | 136 | ||
| 134 | /** | 137 | /** |
| 138 | + * 取消 | ||
| 139 | + */ | ||
| 140 | + @ApiOperation("取消") | ||
| 141 | + @HasPermission({"customer-credit-manage:customer-credit-plan:modify"}) | ||
| 142 | + @GetMapping("/cancel") | ||
| 143 | + public InvokeResult<Void> cancel(@NotBlank(message = "id不能为空!") String id) { | ||
| 144 | + | ||
| 145 | + customerCreditService.cancel(id); | ||
| 146 | + | ||
| 147 | + customerCreditService.cleanCacheByKey(id); | ||
| 148 | + | ||
| 149 | + return InvokeResultBuilder.success(); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + /** | ||
| 135 | * 根据ID删除 | 153 | * 根据ID删除 |
| 136 | */ | 154 | */ |
| 137 | @ApiOperation("根据ID删除") | 155 | @ApiOperation("根据ID删除") |
| @@ -208,6 +226,19 @@ public class CustomerCreditController extends DefaultBaseController { | @@ -208,6 +226,19 @@ public class CustomerCreditController extends DefaultBaseController { | ||
| 208 | return InvokeResultBuilder.success(); | 226 | return InvokeResultBuilder.success(); |
| 209 | } | 227 | } |
| 210 | 228 | ||
| 229 | + /** | ||
| 230 | + * 导出 | ||
| 231 | + */ | ||
| 232 | + @ApiOperation("导出") | ||
| 233 | + @HasPermission({"customer-dev-manage:customer-dev-plan:export"}) | ||
| 234 | + @PostMapping("/export") | ||
| 235 | + public InvokeResult<Void> export(@Valid QueryCustomerCreditVo vo) { | ||
| 236 | + vo.setExportType(ExportType.CUSTOMER_CREDIT.getCode()); | ||
| 237 | + ExportTaskUtil.exportTask("客户资信信息", CustomerCreditExportTaskWorker.class, vo); | ||
| 238 | + return InvokeResultBuilder.success(); | ||
| 239 | + } | ||
| 240 | + | ||
| 241 | + | ||
| 211 | 242 | ||
| 212 | /** | 243 | /** |
| 213 | * 封装客户资信数据 | 244 | * 封装客户资信数据 |
| 1 | +package com.lframework.xingyun.sc.excel.customerCredit; | ||
| 2 | + | ||
| 3 | +import com.alibaba.excel.annotation.ExcelProperty; | ||
| 4 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 5 | +import com.lframework.starter.common.constants.StringPool; | ||
| 6 | +import com.lframework.starter.web.core.bo.BaseBo; | ||
| 7 | +import com.lframework.starter.web.core.components.excel.ExcelModel; | ||
| 8 | +import com.lframework.xingyun.sc.bo.customer.credit.GetCustomerCreditBo; | ||
| 9 | +import com.lframework.xingyun.sc.entity.CorePersonnel; | ||
| 10 | +import lombok.Data; | ||
| 11 | + | ||
| 12 | +import java.math.BigDecimal; | ||
| 13 | +import java.time.LocalDate; | ||
| 14 | +import java.time.LocalDateTime; | ||
| 15 | +import java.util.List; | ||
| 16 | + | ||
| 17 | + | ||
| 18 | +@Data | ||
| 19 | +public class CustomerCreditExportModel extends BaseBo<GetCustomerCreditBo> implements ExcelModel { | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * 编号 | ||
| 23 | + */ | ||
| 24 | + @ExcelProperty("编号") | ||
| 25 | + private String serialNumber; | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * 区域 | ||
| 29 | + */ | ||
| 30 | + @ExcelProperty("区域") | ||
| 31 | + private String region; | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * 登记日期 | ||
| 35 | + */ | ||
| 36 | + @ExcelProperty("登记日期") | ||
| 37 | + @JsonFormat(pattern = StringPool.DATE_PATTERN) | ||
| 38 | + private LocalDate registerDate; | ||
| 39 | + | ||
| 40 | + /** | ||
| 41 | + * 客户简称 | ||
| 42 | + */ | ||
| 43 | + @ExcelProperty("客户简称") | ||
| 44 | + private String customerShortName; | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 企业类型:经销商(distributor)、终端(terminal) | ||
| 48 | + */ | ||
| 49 | + @ExcelProperty("企业类型") | ||
| 50 | + private String enterpriseType; | ||
| 51 | + | ||
| 52 | + /** | ||
| 53 | + * 单位名称(非持久化字段) | ||
| 54 | + */ | ||
| 55 | + @ExcelProperty("单位名称") | ||
| 56 | + private String companyName; | ||
| 57 | + | ||
| 58 | + /** | ||
| 59 | + * 企业性质 | ||
| 60 | + */ | ||
| 61 | + @ExcelProperty("企业性质") | ||
| 62 | + private String companyNature; | ||
| 63 | + | ||
| 64 | + /** | ||
| 65 | + * 单位地址 | ||
| 66 | + */ | ||
| 67 | + @ExcelProperty("单位地址") | ||
| 68 | + private String companyAddress; | ||
| 69 | + | ||
| 70 | + /** | ||
| 71 | + * 注册资本(单位:万元) | ||
| 72 | + */ | ||
| 73 | + @ExcelProperty("注册资本") | ||
| 74 | + private BigDecimal registeredCapital; | ||
| 75 | + | ||
| 76 | + /** | ||
| 77 | + * 账号 | ||
| 78 | + */ | ||
| 79 | + @ExcelProperty("账号") | ||
| 80 | + private String bankAccount; | ||
| 81 | + | ||
| 82 | + /** | ||
| 83 | + * 开户行 | ||
| 84 | + */ | ||
| 85 | + @ExcelProperty("开户行") | ||
| 86 | + private String bankName; | ||
| 87 | + | ||
| 88 | + /** | ||
| 89 | + * 税号 | ||
| 90 | + */ | ||
| 91 | + @ExcelProperty("税号") | ||
| 92 | + private String taxNumber; | ||
| 93 | + | ||
| 94 | + /** | ||
| 95 | + * 注册时间 | ||
| 96 | + */ | ||
| 97 | + @ExcelProperty("注册时间") | ||
| 98 | + @JsonFormat(pattern = StringPool.DATE_PATTERN) | ||
| 99 | + private LocalDate registrationTime; | ||
| 100 | + | ||
| 101 | + /** | ||
| 102 | + * 经营年限(年) | ||
| 103 | + */ | ||
| 104 | + @ExcelProperty("经营年限") | ||
| 105 | + private String businessYears; | ||
| 106 | + | ||
| 107 | + /** | ||
| 108 | + * 经营范围 | ||
| 109 | + */ | ||
| 110 | + @ExcelProperty("经营范围") | ||
| 111 | + private String businessScope; | ||
| 112 | + | ||
| 113 | + /** | ||
| 114 | + * 经营场地属性 | ||
| 115 | + */ | ||
| 116 | + @ExcelProperty("经营场地属性") | ||
| 117 | + private String businessProperty; | ||
| 118 | + | ||
| 119 | + /** | ||
| 120 | + * 占地面积(平方米) | ||
| 121 | + */ | ||
| 122 | + @ExcelProperty("占地面积") | ||
| 123 | + private String landArea; | ||
| 124 | + | ||
| 125 | + /** | ||
| 126 | + * 仓储条件 | ||
| 127 | + */ | ||
| 128 | + @ExcelProperty("仓储条件") | ||
| 129 | + private String storageConditions; | ||
| 130 | + | ||
| 131 | + /** | ||
| 132 | + * 员工人数 | ||
| 133 | + */ | ||
| 134 | + @ExcelProperty("员工人数") | ||
| 135 | + private Integer employeeCount; | ||
| 136 | + | ||
| 137 | + /** | ||
| 138 | + * 设备属性 | ||
| 139 | + */ | ||
| 140 | + @ExcelProperty("设备属性") | ||
| 141 | + private String equipmentAttributes; | ||
| 142 | + | ||
| 143 | + /** | ||
| 144 | + * 资产评估 | ||
| 145 | + */ | ||
| 146 | + @ExcelProperty("资产评估") | ||
| 147 | + private String assetEvaluation; | ||
| 148 | + | ||
| 149 | + /** | ||
| 150 | + * 上年度销售额(万元) | ||
| 151 | + */ | ||
| 152 | + @ExcelProperty("上年度销售额") | ||
| 153 | + private String lastYearSales; | ||
| 154 | + | ||
| 155 | + /** | ||
| 156 | + * 月均销量(万元) | ||
| 157 | + */ | ||
| 158 | + @ExcelProperty("月均销量") | ||
| 159 | + private String monthlyAvgSales; | ||
| 160 | + | ||
| 161 | + /** | ||
| 162 | + * 销项发票所开品名与计量单位 | ||
| 163 | + */ | ||
| 164 | + @ExcelProperty("销项发票所开品名与计量单位") | ||
| 165 | + private String invoiceItemUnit; | ||
| 166 | + | ||
| 167 | + /** | ||
| 168 | + * 认证证书 | ||
| 169 | + */ | ||
| 170 | + @ExcelProperty("认证证书") | ||
| 171 | + private String certificationCertificate; | ||
| 172 | + | ||
| 173 | + /** | ||
| 174 | + * 我司售于产品与经营范围是否匹配 | ||
| 175 | + */ | ||
| 176 | + @ExcelProperty("我司售于产品与经营范围是否匹配") | ||
| 177 | + private String productMatch; | ||
| 178 | + | ||
| 179 | + /** | ||
| 180 | + * 主要客户 | ||
| 181 | + */ | ||
| 182 | + @ExcelProperty("主要客户") | ||
| 183 | + private String majorCustomers; | ||
| 184 | + | ||
| 185 | + /** | ||
| 186 | + * 主营项目 | ||
| 187 | + */ | ||
| 188 | + @ExcelProperty("主营项目") | ||
| 189 | + private String mainProjects; | ||
| 190 | + | ||
| 191 | + /** | ||
| 192 | + * 从事行业 | ||
| 193 | + */ | ||
| 194 | + @ExcelProperty("从事行业") | ||
| 195 | + private String industryInvolved; | ||
| 196 | + | ||
| 197 | + /** | ||
| 198 | + * 在该行业中的经验 | ||
| 199 | + */ | ||
| 200 | + @ExcelProperty("在该行业中的经验") | ||
| 201 | + private String industryExperience; | ||
| 202 | + | ||
| 203 | + /** | ||
| 204 | + * 是否与其他企业有经济纠纷 违规信息 拖欠员工薪资等 | ||
| 205 | + */ | ||
| 206 | + @ExcelProperty("是否与其他企业有经济纠纷 违规信息 拖欠员工薪资等") | ||
| 207 | + private String hasDispute; | ||
| 208 | + | ||
| 209 | + /** | ||
| 210 | + * 与我司合作时间 | ||
| 211 | + */ | ||
| 212 | + @ExcelProperty("与我司合作时间") | ||
| 213 | + private String cooperationStartDate; | ||
| 214 | + | ||
| 215 | + /** | ||
| 216 | + * 月均操作量 | ||
| 217 | + */ | ||
| 218 | + @ExcelProperty("月均操作量") | ||
| 219 | + private String monthlyAvgVolume; | ||
| 220 | + | ||
| 221 | + /** | ||
| 222 | + * 是否口头协议操作 | ||
| 223 | + */ | ||
| 224 | + @ExcelProperty("是否口头协议操作") | ||
| 225 | + private String isVerbalAgreement; | ||
| 226 | + | ||
| 227 | + /** | ||
| 228 | + * 是否签订其他协议(列举) | ||
| 229 | + */ | ||
| 230 | + @ExcelProperty("是否签订其他协议(列举)") | ||
| 231 | + private String otherAgreements; | ||
| 232 | + | ||
| 233 | + /** | ||
| 234 | + * 与我司操作是否签订长年合同 | ||
| 235 | + */ | ||
| 236 | + @ExcelProperty("与我司操作是否签订长年合同") | ||
| 237 | + private String hasLongTermContract; | ||
| 238 | + | ||
| 239 | + /** | ||
| 240 | + * 合同类型 | ||
| 241 | + */ | ||
| 242 | + @ExcelProperty("合同类型") | ||
| 243 | + private String contractType; | ||
| 244 | + | ||
| 245 | + /** | ||
| 246 | + * 是否有过中断及中断原因 | ||
| 247 | + */ | ||
| 248 | + @ExcelProperty("是否有过中断及中断原因") | ||
| 249 | + private String hasInterruption; | ||
| 250 | + | ||
| 251 | + /** | ||
| 252 | + * 结算期限 | ||
| 253 | + */ | ||
| 254 | + @ExcelProperty("结算期限") | ||
| 255 | + private String settlementPeriod; | ||
| 256 | + | ||
| 257 | + /** | ||
| 258 | + * 加工操作方案 | ||
| 259 | + */ | ||
| 260 | + @ExcelProperty("加工操作方案") | ||
| 261 | + private String materialSupplyPlan; | ||
| 262 | + | ||
| 263 | + /** | ||
| 264 | + * 建议客户分类:AAA、AA、A、BBB、BB、B、C、D | ||
| 265 | + */ | ||
| 266 | + @ExcelProperty("建议客户分类") | ||
| 267 | + private String suggestedCategory; | ||
| 268 | + | ||
| 269 | + /** | ||
| 270 | + * 授信额度(万元) | ||
| 271 | + */ | ||
| 272 | + @ExcelProperty("授信额度") | ||
| 273 | + private String creditLimit; | ||
| 274 | + | ||
| 275 | + /** | ||
| 276 | + * 调查人名称(非持久化字段) | ||
| 277 | + */ | ||
| 278 | + @ExcelProperty("调查人") | ||
| 279 | + private String investigatorName; | ||
| 280 | + | ||
| 281 | + /** | ||
| 282 | + * 主管审核名称(非持久化字段) | ||
| 283 | + */ | ||
| 284 | + @ExcelProperty("主管审核") | ||
| 285 | + private String supervisorReviewName; | ||
| 286 | + | ||
| 287 | + /** | ||
| 288 | + * 年度总销量(万元) | ||
| 289 | + */ | ||
| 290 | + @ExcelProperty("年度总销量") | ||
| 291 | + private String annualTotalSales; | ||
| 292 | + | ||
| 293 | + /** | ||
| 294 | + * 主要行业 | ||
| 295 | + */ | ||
| 296 | + @ExcelProperty("主要行业") | ||
| 297 | + private String mainIndustry; | ||
| 298 | + | ||
| 299 | + /** | ||
| 300 | + * 年度款料概况 | ||
| 301 | + */ | ||
| 302 | + @ExcelProperty("年度款料概况") | ||
| 303 | + private String annualMaterialOverview; | ||
| 304 | + | ||
| 305 | + /** | ||
| 306 | + * 结算期限 | ||
| 307 | + */ | ||
| 308 | + @ExcelProperty("结算期限") | ||
| 309 | + private String companySettlementPeriod; | ||
| 310 | + | ||
| 311 | + /** | ||
| 312 | + * 授信额度(万元) | ||
| 313 | + */ | ||
| 314 | + @ExcelProperty("授信额度") | ||
| 315 | + private String companyCreditLimit; | ||
| 316 | + | ||
| 317 | + /** | ||
| 318 | + * 加工操作方案 | ||
| 319 | + */ | ||
| 320 | + @ExcelProperty("加工操作方案") | ||
| 321 | + private String companyMaterialSupplyPlan; | ||
| 322 | + | ||
| 323 | + /** | ||
| 324 | + * 客户分类:AAA、AA、A、BBB、BB、B、C、D | ||
| 325 | + */ | ||
| 326 | + @ExcelProperty("客户分类") | ||
| 327 | + private String companySuggestedCategory; | ||
| 328 | + | ||
| 329 | + /** | ||
| 330 | + * 审核状态 | ||
| 331 | + */ | ||
| 332 | + @ExcelProperty("审核状态") | ||
| 333 | + private String status; | ||
| 334 | + | ||
| 335 | + /** | ||
| 336 | + * 工商信息文件名 | ||
| 337 | + */ | ||
| 338 | + @ExcelProperty(value = "工商信息文件名") | ||
| 339 | + private String businessFileName; | ||
| 340 | + | ||
| 341 | + /** | ||
| 342 | + * 股东信息文件名 | ||
| 343 | + */ | ||
| 344 | + @ExcelProperty(value = "股东信息文件名") | ||
| 345 | + private String shareholderFileName; | ||
| 346 | + | ||
| 347 | + /** | ||
| 348 | + * 核心人员 | ||
| 349 | + */ | ||
| 350 | + @ExcelProperty("核心人员") | ||
| 351 | + private List<CorePersonnel> corePersonnelList; | ||
| 352 | + | ||
| 353 | + | ||
| 354 | + public CustomerCreditExportModel() { | ||
| 355 | + | ||
| 356 | + } | ||
| 357 | + | ||
| 358 | + public CustomerCreditExportModel(GetCustomerCreditBo dto) { | ||
| 359 | + super(dto); | ||
| 360 | + } | ||
| 361 | + | ||
| 362 | + @Override | ||
| 363 | + public BaseBo<GetCustomerCreditBo> convert(GetCustomerCreditBo dto) { | ||
| 364 | + return super.convert(dto); | ||
| 365 | + } | ||
| 366 | + | ||
| 367 | + @Override | ||
| 368 | + protected void afterInit(GetCustomerCreditBo dto) { | ||
| 369 | + if (dto.getEnterpriseType() != null) { | ||
| 370 | + switch (dto.getEnterpriseType()) { | ||
| 371 | + case "DEALER": | ||
| 372 | + this.enterpriseType = "经销商"; | ||
| 373 | + break; | ||
| 374 | + case "TERMINAL": | ||
| 375 | + this.enterpriseType = "终端"; | ||
| 376 | + break; | ||
| 377 | + default: | ||
| 378 | + break; | ||
| 379 | + } | ||
| 380 | + } | ||
| 381 | + } | ||
| 382 | +} |
| 1 | +package com.lframework.xingyun.sc.excel.customerCredit; | ||
| 2 | + | ||
| 3 | +import com.lframework.starter.common.utils.CollectionUtil; | ||
| 4 | +import com.lframework.starter.mq.core.components.export.ExportTaskWorker; | ||
| 5 | +import com.lframework.starter.web.core.components.resp.PageResult; | ||
| 6 | +import com.lframework.starter.web.core.utils.ApplicationUtil; | ||
| 7 | +import com.lframework.starter.web.core.utils.JsonUtil; | ||
| 8 | +import com.lframework.starter.web.core.utils.PageResultUtil; | ||
| 9 | +import com.lframework.xingyun.sc.bo.customer.credit.GetCustomerCreditBo; | ||
| 10 | +import com.lframework.xingyun.sc.entity.CustomerCredit; | ||
| 11 | +import com.lframework.xingyun.sc.service.customer.CustomerCreditService; | ||
| 12 | +import com.lframework.xingyun.sc.vo.customer.credit.QueryCustomerCreditVo; | ||
| 13 | +import java.util.List; | ||
| 14 | + | ||
| 15 | +public class CustomerCreditExportTaskWorker implements | ||
| 16 | + ExportTaskWorker<QueryCustomerCreditVo, GetCustomerCreditBo, CustomerCreditExportModel> { | ||
| 17 | + | ||
| 18 | + | ||
| 19 | + @Override | ||
| 20 | + public QueryCustomerCreditVo parseParams(String json) { | ||
| 21 | + return JsonUtil.parseObject(json, QueryCustomerCreditVo.class); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + @Override | ||
| 25 | + public PageResult<GetCustomerCreditBo> getDataList(int pageIndex, int pageSize, QueryCustomerCreditVo params) { | ||
| 26 | + CustomerCreditService customerCreditService = ApplicationUtil.getBean(CustomerCreditService.class); | ||
| 27 | + PageResult<CustomerCredit> pageResult = customerCreditService.query(pageIndex, pageSize, params); | ||
| 28 | + List<CustomerCredit> dataList = pageResult.getDatas(); | ||
| 29 | + List<GetCustomerCreditBo> results = null; | ||
| 30 | + if (!CollectionUtil.isEmpty(dataList)) { | ||
| 31 | + results = this.packCustomerCreditData(dataList); | ||
| 32 | + } | ||
| 33 | + return PageResultUtil.rebuild(pageResult, results); | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + @Override | ||
| 37 | + public CustomerCreditExportModel exportData(GetCustomerCreditBo data) { | ||
| 38 | + return new CustomerCreditExportModel(data); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + @Override | ||
| 42 | + public Class<CustomerCreditExportModel> getModelClass() { | ||
| 43 | + return CustomerCreditExportModel.class; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * 封装客户开发数据 | ||
| 49 | + * | ||
| 50 | + * @param dataList 数据集 | ||
| 51 | + * @return List<GetCustomerCreditBo> | ||
| 52 | + */ | ||
| 53 | + private List<GetCustomerCreditBo> packCustomerCreditData(List<CustomerCredit> dataList) { | ||
| 54 | + // todo fys 处理关联数据 | ||
| 55 | + return null; | ||
| 56 | + } | ||
| 57 | +} |
| @@ -5,16 +5,12 @@ import com.lframework.starter.common.exceptions.impl.DefaultClientException; | @@ -5,16 +5,12 @@ import com.lframework.starter.common.exceptions.impl.DefaultClientException; | ||
| 5 | import com.lframework.starter.common.utils.StringUtil; | 5 | import com.lframework.starter.common.utils.StringUtil; |
| 6 | import com.lframework.starter.web.core.components.excel.ExcelImportListener; | 6 | import com.lframework.starter.web.core.components.excel.ExcelImportListener; |
| 7 | import com.lframework.starter.web.core.utils.ApplicationUtil; | 7 | import com.lframework.starter.web.core.utils.ApplicationUtil; |
| 8 | -import com.lframework.xingyun.sc.entity.CorePersonnel; | 8 | +import com.lframework.xingyun.basedata.entity.Customer; |
| 9 | +import com.lframework.xingyun.basedata.service.customer.CustomerService; | ||
| 9 | import com.lframework.xingyun.sc.entity.CustomerCredit; | 10 | import com.lframework.xingyun.sc.entity.CustomerCredit; |
| 10 | -import com.lframework.xingyun.sc.service.customer.CorePersonnelService; | ||
| 11 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; | 11 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 12 | -import com.lframework.xingyun.sc.vo.customer.credit.QueryCorePersonnelVo; | ||
| 13 | -import com.lframework.xingyun.sc.vo.customer.credit.QueryCustomerCreditVo; | ||
| 14 | -import com.lframework.xingyun.sc.vo.customer.credit.UpdateCorePersonnelVo; | ||
| 15 | -import com.lframework.xingyun.sc.vo.customer.credit.UpdateCustomerCreditVo; | 12 | +import com.lframework.xingyun.sc.vo.customer.credit.*; |
| 16 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 17 | -import org.springframework.beans.BeanUtils; | ||
| 18 | import org.apache.commons.collections.CollectionUtils; | 14 | import org.apache.commons.collections.CollectionUtils; |
| 19 | 15 | ||
| 20 | import java.util.ArrayList; | 16 | import java.util.ArrayList; |
| @@ -29,6 +25,7 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | @@ -29,6 +25,7 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | ||
| 29 | 25 | ||
| 30 | @Override | 26 | @Override |
| 31 | protected void doInvoke(CustomerCreditImportModel data, AnalysisContext context) { | 27 | protected void doInvoke(CustomerCreditImportModel data, AnalysisContext context) { |
| 28 | + CustomerService customerService = ApplicationUtil.getBean(CustomerService.class); | ||
| 32 | List<String> validValues = Arrays.asList("AAA", "AA", "A", "BBB", "BB", "B", "C", "D"); | 29 | List<String> validValues = Arrays.asList("AAA", "AA", "A", "BBB", "BB", "B", "C", "D"); |
| 33 | if (StringUtil.isBlank(data.getCode())) { | 30 | if (StringUtil.isBlank(data.getCode())) { |
| 34 | throw new DefaultClientException( | 31 | throw new DefaultClientException( |
| @@ -39,103 +36,77 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | @@ -39,103 +36,77 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | ||
| 39 | "第" + context.readRowHolder().getRowIndex() + "行“编号”与第" + (checkList.indexOf(data.getCode()) + 1) + "行重复"); | 36 | "第" + context.readRowHolder().getRowIndex() + "行“编号”与第" + (checkList.indexOf(data.getCode()) + 1) + "行重复"); |
| 40 | } | 37 | } |
| 41 | checkList.add(data.getCode()); | 38 | checkList.add(data.getCode()); |
| 39 | + if (StringUtil.isBlank(data.getName())) { | ||
| 40 | + throw new DefaultClientException( | ||
| 41 | + "第" + context.readRowHolder().getRowIndex() + "行“客户名称”不能为空"); | ||
| 42 | + } else { | ||
| 43 | + Customer customer = customerService.getByName(data.getName()); | ||
| 44 | + if (customer == null) { | ||
| 45 | + throw new DefaultClientException( | ||
| 46 | + "第" + context.readRowHolder().getRowIndex() + "行“客户不存在”不能为空"); | ||
| 47 | + } else { | ||
| 48 | + data.setCompanyId(customer.getId()); | ||
| 49 | + } | ||
| 50 | + } | ||
| 51 | + if (StringUtil.isBlank(data.getCompanySuggestedCategory())) { | ||
| 52 | + throw new DefaultClientException( | ||
| 53 | + "第" + context.readRowHolder().getRowIndex() + "行“客户分类”不能为空"); | ||
| 54 | + } | ||
| 55 | + if (StringUtil.isNotEmpty(data.getCompanySuggestedCategory()) && !validValues.contains(data.getCompanySuggestedCategory())) { | ||
| 56 | + throw new DefaultClientException( | ||
| 57 | + "第" + context.readRowHolder().getRowIndex() + "行“客户分类”只能为:AAA、AA、A、BBB、BB、B、C、D"); | ||
| 58 | + } | ||
| 59 | + if (StringUtil.isBlank(data.getCompanyCreditLimit())) { | ||
| 60 | + throw new DefaultClientException( | ||
| 61 | + "第" + context.readRowHolder().getRowIndex() + "行“授信额度”不能为空"); | ||
| 62 | + } | ||
| 63 | + if (StringUtil.isBlank(data.getCompanyMaterialSupplyPlan())) { | ||
| 64 | + throw new DefaultClientException( | ||
| 65 | + "第" + context.readRowHolder().getRowIndex() + "行“加工操作方案”不能为空"); | ||
| 66 | + } | ||
| 67 | + if (StringUtil.isBlank(data.getCompanySettlementPeriod())) { | ||
| 68 | + throw new DefaultClientException( | ||
| 69 | + "第" + context.readRowHolder().getRowIndex() + "行“结算期限”不能为空"); | ||
| 70 | + } | ||
| 42 | QueryCustomerCreditVo vo = new QueryCustomerCreditVo(); | 71 | QueryCustomerCreditVo vo = new QueryCustomerCreditVo(); |
| 43 | vo.setSerialNumber(data.getCode()); | 72 | vo.setSerialNumber(data.getCode()); |
| 44 | CustomerCreditService customerCreditService = ApplicationUtil.getBean(CustomerCreditService.class); | 73 | CustomerCreditService customerCreditService = ApplicationUtil.getBean(CustomerCreditService.class); |
| 45 | List<CustomerCredit> query = customerCreditService.query(vo); | 74 | List<CustomerCredit> query = customerCreditService.query(vo); |
| 46 | - if (CollectionUtils.isEmpty(query)) { | 75 | + if (CollectionUtils.isNotEmpty(query)) { |
| 47 | throw new DefaultClientException( | 76 | throw new DefaultClientException( |
| 48 | - "第" + context.readRowHolder().getRowIndex() + "行“编号”不存在"); | 77 | + "第" + context.readRowHolder().getRowIndex() + "行“编号”系统中已存在"); |
| 49 | } | 78 | } |
| 50 | 79 | ||
| 51 | - if (StringUtil.isNotEmpty(data.getCompanySuggestedCategory()) && !validValues.contains(data.getCompanySuggestedCategory())) { | ||
| 52 | - throw new DefaultClientException( | ||
| 53 | - "第" + context.readRowHolder().getRowIndex() + "行“客户分类”只能为:AAA、AA、A、BBB、BB、B、C、D"); | ||
| 54 | - } | ||
| 55 | } | 80 | } |
| 56 | 81 | ||
| 57 | @Override | 82 | @Override |
| 58 | protected void afterAllAnalysed(AnalysisContext context) { | 83 | protected void afterAllAnalysed(AnalysisContext context) { |
| 59 | - CorePersonnelService corePersonnelService = ApplicationUtil.getBean(CorePersonnelService.class); | ||
| 60 | CustomerCreditService customerCreditService = ApplicationUtil.getBean(CustomerCreditService.class); | 84 | CustomerCreditService customerCreditService = ApplicationUtil.getBean(CustomerCreditService.class); |
| 61 | List<CustomerCreditImportModel> datas = this.getDatas(); | 85 | List<CustomerCreditImportModel> datas = this.getDatas(); |
| 62 | for (int i = 0; i < datas.size(); i++) { | 86 | for (int i = 0; i < datas.size(); i++) { |
| 63 | CustomerCreditImportModel data = datas.get(i); | 87 | CustomerCreditImportModel data = datas.get(i); |
| 64 | - QueryCustomerCreditVo vo = new QueryCustomerCreditVo(); | ||
| 65 | - vo.setSerialNumber(data.getCode()); | ||
| 66 | - List<CustomerCredit> query = customerCreditService.query(vo); | ||
| 67 | - if (CollectionUtils.isNotEmpty(query)) { | ||
| 68 | - CustomerCredit customerCredit = query.get(0); | ||
| 69 | 88 | ||
| 70 | - UpdateCustomerCreditVo updateCustomerCreditVo = new UpdateCustomerCreditVo(); | ||
| 71 | -// updateCustomerCreditVo.setId(customerCredit.getId()); | 89 | + CreateCustomerCreditVo createCustomerCreditVo = new CreateCustomerCreditVo(); |
| 90 | + //审核状态 | ||
| 91 | + createCustomerCreditVo.setStatus("PASS"); | ||
| 92 | + //编号 | ||
| 93 | + createCustomerCreditVo.setSerialNumber(data.getCode()); | ||
| 94 | + //客户id | ||
| 95 | + createCustomerCreditVo.setCompanyId(data.getCompanyId()); | ||
| 96 | + //客户分类 | ||
| 97 | + createCustomerCreditVo.setCompanySuggestedCategory(data.getCompanySuggestedCategory()); | ||
| 98 | + //授信额度 | ||
| 99 | + createCustomerCreditVo.setCompanyCreditLimit(data.getCompanyCreditLimit()); | ||
| 100 | + //加工操作方案 | ||
| 101 | + createCustomerCreditVo.setCompanyMaterialSupplyPlan(data.getCompanyMaterialSupplyPlan()); | ||
| 102 | + //结算期限 | ||
| 103 | + createCustomerCreditVo.setCompanySettlementPeriod(data.getCompanySettlementPeriod()); | ||
| 104 | + //导入标识 | ||
| 105 | + createCustomerCreditVo.setImportType("IMPORT"); | ||
| 72 | 106 | ||
| 73 | - BeanUtils.copyProperties(customerCredit, updateCustomerCreditVo); | ||
| 74 | - //客户分类 | ||
| 75 | - if (StringUtil.isNotEmpty(data.getCompanySuggestedCategory())) { | ||
| 76 | - updateCustomerCreditVo.setCompanySuggestedCategory(data.getCompanySuggestedCategory()); | ||
| 77 | - } | ||
| 78 | - //授信额度 | ||
| 79 | - if (StringUtil.isNotEmpty(data.getCompanyCreditLimit())) { | ||
| 80 | - updateCustomerCreditVo.setCompanyCreditLimit(data.getCompanyCreditLimit()); | ||
| 81 | - } | ||
| 82 | - //加工操作方案 | ||
| 83 | - if (StringUtil.isNotEmpty(data.getCompanyMaterialSupplyPlan())) { | ||
| 84 | - updateCustomerCreditVo.setCompanyMaterialSupplyPlan(data.getCompanyMaterialSupplyPlan()); | ||
| 85 | - } | ||
| 86 | - //结算期限 | ||
| 87 | - if (StringUtil.isNotEmpty(data.getCompanySettlementPeriod())) { | ||
| 88 | - updateCustomerCreditVo.setCompanySettlementPeriod(data.getCompanySettlementPeriod()); | ||
| 89 | - } | ||
| 90 | - //核心人员(不填更新的时候会被删除) | ||
| 91 | - QueryCorePersonnelVo queryCorePersonnelVo = new QueryCorePersonnelVo(); | ||
| 92 | - queryCorePersonnelVo.setCreditId(customerCredit.getId()); | ||
| 93 | - List<CorePersonnel> corePersonnelList = corePersonnelService.query(queryCorePersonnelVo); | ||
| 94 | - if (CollectionUtils.isNotEmpty(corePersonnelList)) { | ||
| 95 | - List<UpdateCorePersonnelVo> results = new ArrayList<>(); | ||
| 96 | - for (CorePersonnel corePersonnel : corePersonnelList) { | ||
| 97 | - UpdateCorePersonnelVo personnelVo = new UpdateCorePersonnelVo(); | ||
| 98 | - personnelVo.setId(corePersonnel.getId()); | ||
| 99 | - personnelVo.setCreditId(corePersonnel.getCreditId()); | ||
| 100 | - if (!StringUtil.isBlank(corePersonnel.getPersonId())) { | ||
| 101 | - personnelVo.setPersonId(corePersonnel.getPersonId()); | ||
| 102 | - } | ||
| 103 | - if (!StringUtil.isBlank(corePersonnel.getName())) { | ||
| 104 | - personnelVo.setName(corePersonnel.getName()); | ||
| 105 | - } | ||
| 106 | - if (!StringUtil.isBlank(corePersonnel.getSex())) { | ||
| 107 | - personnelVo.setSex(corePersonnel.getSex()); | ||
| 108 | - } | ||
| 109 | - if (!StringUtil.isBlank(corePersonnel.getNativePlace())) { | ||
| 110 | - personnelVo.setNativePlace(corePersonnel.getNativePlace()); | ||
| 111 | - } | ||
| 112 | - if (!StringUtil.isBlank(corePersonnel.getAge())) { | ||
| 113 | - personnelVo.setAge(corePersonnel.getAge()); | ||
| 114 | - } | ||
| 115 | - if (!StringUtil.isBlank(corePersonnel.getPosition())) { | ||
| 116 | - personnelVo.setPosition(corePersonnel.getPosition()); | ||
| 117 | - } | ||
| 118 | - if (!StringUtil.isBlank(corePersonnel.getMobile())) { | ||
| 119 | - personnelVo.setMobile(corePersonnel.getMobile()); | ||
| 120 | - } | ||
| 121 | - if (!StringUtil.isBlank(corePersonnel.getPhone())) { | ||
| 122 | - personnelVo.setPhone(corePersonnel.getPhone()); | ||
| 123 | - } | ||
| 124 | - if (!StringUtil.isBlank(corePersonnel.getEmail())) { | ||
| 125 | - personnelVo.setEmail(corePersonnel.getEmail()); | ||
| 126 | - } | ||
| 127 | - if (!StringUtil.isBlank(corePersonnel.getAddress())) { | ||
| 128 | - personnelVo.setAddress(corePersonnel.getAddress()); | ||
| 129 | - } | ||
| 130 | - results.add(personnelVo); | ||
| 131 | - } | ||
| 132 | - updateCustomerCreditVo.setCorePersonnelList(results); | ||
| 133 | - } | ||
| 134 | - customerCreditService.update(updateCustomerCreditVo); | ||
| 135 | - customerCreditService.cleanCacheByKey(customerCredit.getId()); | 107 | + customerCreditService.create(createCustomerCreditVo); |
| 136 | 108 | ||
| 137 | - this.setSuccessProcess(i); | ||
| 138 | - } | 109 | + this.setSuccessProcess(i); |
| 139 | } | 110 | } |
| 140 | } | 111 | } |
| 141 | 112 |
| @@ -16,6 +16,12 @@ public class CustomerCreditImportModel implements ExcelModel { | @@ -16,6 +16,12 @@ public class CustomerCreditImportModel implements ExcelModel { | ||
| 16 | private String id; | 16 | private String id; |
| 17 | 17 | ||
| 18 | /** | 18 | /** |
| 19 | + * companyId | ||
| 20 | + */ | ||
| 21 | + @ExcelIgnore | ||
| 22 | + private String companyId; | ||
| 23 | + | ||
| 24 | + /** | ||
| 19 | * 编号 | 25 | * 编号 |
| 20 | */ | 26 | */ |
| 21 | @ExcelRequired | 27 | @ExcelRequired |
| @@ -23,26 +29,37 @@ public class CustomerCreditImportModel implements ExcelModel { | @@ -23,26 +29,37 @@ public class CustomerCreditImportModel implements ExcelModel { | ||
| 23 | private String code; | 29 | private String code; |
| 24 | 30 | ||
| 25 | /** | 31 | /** |
| 32 | + * 客户名称 | ||
| 33 | + */ | ||
| 34 | + @ExcelRequired | ||
| 35 | + @ExcelProperty("客户名称") | ||
| 36 | + private String name; | ||
| 37 | + | ||
| 38 | + /** | ||
| 26 | * 客户分类 | 39 | * 客户分类 |
| 27 | */ | 40 | */ |
| 41 | + @ExcelRequired | ||
| 28 | @ExcelProperty("客户分类") | 42 | @ExcelProperty("客户分类") |
| 29 | private String companySuggestedCategory; | 43 | private String companySuggestedCategory; |
| 30 | 44 | ||
| 31 | /** | 45 | /** |
| 32 | * 授信额度 | 46 | * 授信额度 |
| 33 | */ | 47 | */ |
| 48 | + @ExcelRequired | ||
| 34 | @ExcelProperty("授信额度") | 49 | @ExcelProperty("授信额度") |
| 35 | private String companyCreditLimit; | 50 | private String companyCreditLimit; |
| 36 | 51 | ||
| 37 | /** | 52 | /** |
| 38 | * 加工操作方案 | 53 | * 加工操作方案 |
| 39 | */ | 54 | */ |
| 55 | + @ExcelRequired | ||
| 40 | @ExcelProperty("加工操作方案") | 56 | @ExcelProperty("加工操作方案") |
| 41 | private String companyMaterialSupplyPlan; | 57 | private String companyMaterialSupplyPlan; |
| 42 | 58 | ||
| 43 | /** | 59 | /** |
| 44 | * 结算期限 | 60 | * 结算期限 |
| 45 | */ | 61 | */ |
| 62 | + @ExcelRequired | ||
| 46 | @ExcelProperty("结算期限") | 63 | @ExcelProperty("结算期限") |
| 47 | private String companySettlementPeriod; | 64 | private String companySettlementPeriod; |
| 48 | 65 |
| @@ -32,6 +32,7 @@ import com.lframework.xingyun.sc.service.customer.CustomerCreditHistoryService; | @@ -32,6 +32,7 @@ import com.lframework.xingyun.sc.service.customer.CustomerCreditHistoryService; | ||
| 32 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; | 32 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 33 | import com.lframework.xingyun.sc.vo.customer.credit.*; | 33 | import com.lframework.xingyun.sc.vo.customer.credit.*; |
| 34 | import org.apache.commons.collections.CollectionUtils; | 34 | import org.apache.commons.collections.CollectionUtils; |
| 35 | +import org.apache.commons.lang3.StringUtils; | ||
| 35 | import org.springframework.cache.annotation.CacheEvict; | 36 | import org.springframework.cache.annotation.CacheEvict; |
| 36 | import org.springframework.cache.annotation.Cacheable; | 37 | import org.springframework.cache.annotation.Cacheable; |
| 37 | import org.springframework.stereotype.Service; | 38 | import org.springframework.stereotype.Service; |
| @@ -111,8 +112,12 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -111,8 +112,12 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 111 | if (!StringUtil.isBlank(vo.getCustomerShortName())) { | 112 | if (!StringUtil.isBlank(vo.getCustomerShortName())) { |
| 112 | data.setCustomerShortName(vo.getCustomerShortName()); | 113 | data.setCustomerShortName(vo.getCustomerShortName()); |
| 113 | } | 114 | } |
| 114 | - data.setEnterpriseType(vo.getEnterpriseType()); | ||
| 115 | - data.setCompanyId(vo.getCompanyId()); | 115 | + if (!StringUtil.isBlank(vo.getEnterpriseType())) { |
| 116 | + data.setEnterpriseType(vo.getEnterpriseType()); | ||
| 117 | + } | ||
| 118 | + if (!StringUtil.isBlank(vo.getCompanyId())) { | ||
| 119 | + data.setCompanyId(vo.getCompanyId()); | ||
| 120 | + } | ||
| 116 | if (!StringUtil.isBlank(vo.getCompanyNature())) { | 121 | if (!StringUtil.isBlank(vo.getCompanyNature())) { |
| 117 | data.setCompanyNature(vo.getCompanyNature()); | 122 | data.setCompanyNature(vo.getCompanyNature()); |
| 118 | } | 123 | } |
| @@ -215,7 +220,9 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -215,7 +220,9 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 215 | if (!StringUtil.isBlank(vo.getMaterialSupplyPlan())) { | 220 | if (!StringUtil.isBlank(vo.getMaterialSupplyPlan())) { |
| 216 | data.setMaterialSupplyPlan(vo.getMaterialSupplyPlan()); | 221 | data.setMaterialSupplyPlan(vo.getMaterialSupplyPlan()); |
| 217 | } | 222 | } |
| 218 | - data.setSuggestedCategory(vo.getSuggestedCategory()); | 223 | + if (!StringUtil.isBlank(vo.getSuggestedCategory())) { |
| 224 | + data.setSuggestedCategory(vo.getSuggestedCategory()); | ||
| 225 | + } | ||
| 219 | if (!StringUtil.isBlank(vo.getCreditLimit())) { | 226 | if (!StringUtil.isBlank(vo.getCreditLimit())) { |
| 220 | data.setCreditLimit(vo.getCreditLimit()); | 227 | data.setCreditLimit(vo.getCreditLimit()); |
| 221 | } | 228 | } |
| @@ -243,7 +250,9 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -243,7 +250,9 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 243 | if (!StringUtil.isBlank(vo.getCompanyMaterialSupplyPlan())) { | 250 | if (!StringUtil.isBlank(vo.getCompanyMaterialSupplyPlan())) { |
| 244 | data.setCompanyMaterialSupplyPlan(vo.getCompanyMaterialSupplyPlan()); | 251 | data.setCompanyMaterialSupplyPlan(vo.getCompanyMaterialSupplyPlan()); |
| 245 | } | 252 | } |
| 246 | - data.setCompanySuggestedCategory(vo.getCompanySuggestedCategory()); | 253 | + if (!StringUtil.isBlank(vo.getCompanySuggestedCategory())) { |
| 254 | + data.setCompanySuggestedCategory(vo.getCompanySuggestedCategory()); | ||
| 255 | + } | ||
| 247 | data.setStatus(vo.getStatus()); | 256 | data.setStatus(vo.getStatus()); |
| 248 | 257 | ||
| 249 | getBaseMapper().insert(data); | 258 | getBaseMapper().insert(data); |
| @@ -259,8 +268,11 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -259,8 +268,11 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 259 | } | 268 | } |
| 260 | } | 269 | } |
| 261 | 270 | ||
| 262 | - // 开启审核 | ||
| 263 | - flowInstanceWrapperService.startInstance(BPM_FLAG, data.getId(), BPM_FLAG, data); | 271 | + //导入不走审核流 |
| 272 | + if (!"IMPORT".equals(vo.getImportType())) { | ||
| 273 | + // 开启审核 | ||
| 274 | + flowInstanceWrapperService.startInstance(BPM_FLAG, data.getId(), BPM_FLAG, data); | ||
| 275 | + } | ||
| 264 | 276 | ||
| 265 | return data.getId(); | 277 | return data.getId(); |
| 266 | } | 278 | } |
| @@ -628,6 +640,32 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -628,6 +640,32 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 628 | flowInstanceWrapperService.startInstance(BPM_FLAG, data.getId(), BPM_FLAG, vo); | 640 | flowInstanceWrapperService.startInstance(BPM_FLAG, data.getId(), BPM_FLAG, vo); |
| 629 | } | 641 | } |
| 630 | 642 | ||
| 643 | + @OpLog(type = OtherOpLogType.class, name = "更新状态,ID:{}", params = {"#id"}) | ||
| 644 | + @Transactional(rollbackFor = Exception.class) | ||
| 645 | + @Override | ||
| 646 | + public void updateStatus(String id, String status) { | ||
| 647 | + if (StringUtils.isBlank(id) || StringUtils.isBlank(status)) { | ||
| 648 | + return; | ||
| 649 | + } | ||
| 650 | + LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) | ||
| 651 | + .set(CustomerCredit::getStatus, status) | ||
| 652 | + .eq(CustomerCredit::getId, id); | ||
| 653 | + getBaseMapper().update(updateWrapper); | ||
| 654 | + } | ||
| 655 | + | ||
| 656 | + @OpLog(type = OtherOpLogType.class, name = "取消,ID:{}", params = {"#id"}) | ||
| 657 | + @Transactional(rollbackFor = Exception.class) | ||
| 658 | + @Override | ||
| 659 | + public void cancel(String id) { | ||
| 660 | + if (StringUtils.isBlank(id)) { | ||
| 661 | + return; | ||
| 662 | + } | ||
| 663 | + LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) | ||
| 664 | + .set(CustomerCredit::getStatus, "CANCEL") | ||
| 665 | + .eq(CustomerCredit::getId, id); | ||
| 666 | + getBaseMapper().update(updateWrapper); | ||
| 667 | + } | ||
| 668 | + | ||
| 631 | @OpLog(type = OtherOpLogType.class, name = "删除客户资信表,ID:{}", params = {"#id"}) | 669 | @OpLog(type = OtherOpLogType.class, name = "删除客户资信表,ID:{}", params = {"#id"}) |
| 632 | @Transactional(rollbackFor = Exception.class) | 670 | @Transactional(rollbackFor = Exception.class) |
| 633 | @Override | 671 | @Override |
| @@ -2,6 +2,7 @@ package com.lframework.xingyun.sc.listeners.flow; | @@ -2,6 +2,7 @@ package com.lframework.xingyun.sc.listeners.flow; | ||
| 2 | 2 | ||
| 3 | import com.lframework.starter.bpm.enums.FlowInstanceStatus; | 3 | import com.lframework.starter.bpm.enums.FlowInstanceStatus; |
| 4 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; | 4 | import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; |
| 5 | +import com.lframework.xingyun.sc.service.customer.CustomerCreditService; | ||
| 5 | import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService; | 6 | import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService; |
| 6 | import lombok.extern.slf4j.Slf4j; | 7 | import lombok.extern.slf4j.Slf4j; |
| 7 | import org.apache.commons.collections4.MapUtils; | 8 | import org.apache.commons.collections4.MapUtils; |
| @@ -20,6 +21,8 @@ public class NodeFinishListener implements Listener { | @@ -20,6 +21,8 @@ public class NodeFinishListener implements Listener { | ||
| 20 | 21 | ||
| 21 | @Resource | 22 | @Resource |
| 22 | private CustomerDevelopPlanService customerDevelopPlanService; | 23 | private CustomerDevelopPlanService customerDevelopPlanService; |
| 24 | + @Resource | ||
| 25 | + private CustomerCreditService customerCreditService; | ||
| 23 | 26 | ||
| 24 | 27 | ||
| 25 | /** | 28 | /** |
| @@ -44,6 +47,9 @@ public class NodeFinishListener implements Listener { | @@ -44,6 +47,9 @@ public class NodeFinishListener implements Listener { | ||
| 44 | case "CUSTOMER_DEVELOP": | 47 | case "CUSTOMER_DEVELOP": |
| 45 | handleCustomerDevelopData(flowStatus, businessId); | 48 | handleCustomerDevelopData(flowStatus, businessId); |
| 46 | break; | 49 | break; |
| 50 | + case "CUSTOMER_CREDIT": | ||
| 51 | + handleCustomerCreditData(flowStatus, businessId); | ||
| 52 | + break; | ||
| 47 | default: | 53 | default: |
| 48 | break; | 54 | break; |
| 49 | } | 55 | } |
| @@ -54,7 +60,7 @@ public class NodeFinishListener implements Listener { | @@ -54,7 +60,7 @@ public class NodeFinishListener implements Listener { | ||
| 54 | /** | 60 | /** |
| 55 | * 客户开发业务数据处理 | 61 | * 客户开发业务数据处理 |
| 56 | * | 62 | * |
| 57 | - * @param businessId 业务ID | 63 | + * @param businessId 业务ID |
| 58 | */ | 64 | */ |
| 59 | private void handleCustomerDevelopData(String flowStatus, String businessId) { | 65 | private void handleCustomerDevelopData(String flowStatus, String businessId) { |
| 60 | if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus)) { | 66 | if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus)) { |
| @@ -63,4 +69,17 @@ public class NodeFinishListener implements Listener { | @@ -63,4 +69,17 @@ public class NodeFinishListener implements Listener { | ||
| 63 | customerDevelopPlanService.updateStatus(businessId, CustomerDevelopStatus.REFUSE); | 69 | customerDevelopPlanService.updateStatus(businessId, CustomerDevelopStatus.REFUSE); |
| 64 | } | 70 | } |
| 65 | } | 71 | } |
| 66 | -} | ||
| 72 | + | ||
| 73 | + /** | ||
| 74 | + * 客户资信业务数据处理 | ||
| 75 | + * | ||
| 76 | + * @param businessId 业务ID | ||
| 77 | + */ | ||
| 78 | + private void handleCustomerCreditData(String flowStatus, String businessId) { | ||
| 79 | + if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus)) { | ||
| 80 | + customerCreditService.updateStatus(businessId, "PASS"); | ||
| 81 | + } else if (FlowInstanceStatus.REVOKE.getCode().equals(flowStatus)) { | ||
| 82 | + customerCreditService.updateStatus(businessId, "REFUSE"); | ||
| 83 | + } | ||
| 84 | + } | ||
| 85 | +} |
| @@ -48,6 +48,21 @@ public interface CustomerCreditService extends BaseMpService<CustomerCredit> { | @@ -48,6 +48,21 @@ public interface CustomerCreditService extends BaseMpService<CustomerCredit> { | ||
| 48 | */ | 48 | */ |
| 49 | void update(UpdateCustomerCreditVo vo); | 49 | void update(UpdateCustomerCreditVo vo); |
| 50 | 50 | ||
| 51 | + | ||
| 52 | + /** | ||
| 53 | + * 更新状态 | ||
| 54 | + * @param id | ||
| 55 | + * @param status | ||
| 56 | + */ | ||
| 57 | + void updateStatus(String id, String status); | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * 取消 | ||
| 61 | + * | ||
| 62 | + * @param id | ||
| 63 | + */ | ||
| 64 | + void cancel(String id); | ||
| 65 | + | ||
| 51 | /** | 66 | /** |
| 52 | * 根据ID删除 | 67 | * 根据ID删除 |
| 53 | * @param id | 68 | * @param id |
| @@ -391,4 +391,10 @@ public class CreateCustomerCreditVo implements BaseVo, Serializable { | @@ -391,4 +391,10 @@ public class CreateCustomerCreditVo implements BaseVo, Serializable { | ||
| 391 | @ApiModelProperty("核心人员") | 391 | @ApiModelProperty("核心人员") |
| 392 | private List<CreateCorePersonnelVo> corePersonnelList; | 392 | private List<CreateCorePersonnelVo> corePersonnelList; |
| 393 | 393 | ||
| 394 | + /** | ||
| 395 | + * 是否为导入(IMPORT) | ||
| 396 | + */ | ||
| 397 | + @ApiModelProperty("是否为导入") | ||
| 398 | + private String importType; | ||
| 399 | + | ||
| 394 | } | 400 | } |
| @@ -7,6 +7,7 @@ import com.lframework.starter.web.core.vo.BaseVo; | @@ -7,6 +7,7 @@ import com.lframework.starter.web.core.vo.BaseVo; | ||
| 7 | import com.lframework.starter.web.core.components.validation.TypeMismatch; | 7 | import com.lframework.starter.web.core.components.validation.TypeMismatch; |
| 8 | import io.swagger.annotations.ApiModelProperty; | 8 | import io.swagger.annotations.ApiModelProperty; |
| 9 | import java.io.Serializable; | 9 | import java.io.Serializable; |
| 10 | +import java.util.List; | ||
| 10 | 11 | ||
| 11 | @Data | 12 | @Data |
| 12 | public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializable { | 13 | public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializable { |
| @@ -14,6 +15,13 @@ public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializabl | @@ -14,6 +15,13 @@ public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializabl | ||
| 14 | private static final long serialVersionUID = 1L; | 15 | private static final long serialVersionUID = 1L; |
| 15 | 16 | ||
| 16 | /** | 17 | /** |
| 18 | + * ID集合 | ||
| 19 | + */ | ||
| 20 | + @ApiModelProperty("ID集合") | ||
| 21 | + private List<String> ids; | ||
| 22 | + | ||
| 23 | + | ||
| 24 | + /** | ||
| 17 | * 登记开始日期 | 25 | * 登记开始日期 |
| 18 | */ | 26 | */ |
| 19 | @ApiModelProperty("登记开始日期") | 27 | @ApiModelProperty("登记开始日期") |
| @@ -49,4 +57,10 @@ public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializabl | @@ -49,4 +57,10 @@ public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializabl | ||
| 49 | @ApiModelProperty("资信编号") | 57 | @ApiModelProperty("资信编号") |
| 50 | private String serialNumber; | 58 | private String serialNumber; |
| 51 | 59 | ||
| 60 | + /** | ||
| 61 | + * 导出类型 | ||
| 62 | + */ | ||
| 63 | + @ApiModelProperty("导出类型") | ||
| 64 | + private String exportType; | ||
| 65 | + | ||
| 52 | } | 66 | } |