|
|
@@ -0,0 +1,182 @@
|
|
|
+package com.wx.blink.backend.handler;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
|
|
|
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerDO;
|
|
|
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerSeniorDO;
|
|
|
+import com.wx.blink.backend.domain.dto.MBlinkCustomerSeniorVO;
|
|
|
+import com.wx.blink.backend.domain.dto.lBlinkCustomerEditVO;
|
|
|
+import com.wx.blink.backend.objectmapper.BlinkCustomerMapper;
|
|
|
+import com.wx.blink.backend.objectmapper.BlinkCustomerSeniorMapper;
|
|
|
+import com.wx.blink.backend.service.IBlinkCustomerSeniorService;
|
|
|
+import com.wx.blink.backend.service.IBlinkCustomerService;
|
|
|
+import com.wx.blink.base.common.domain.ResponseDTO;
|
|
|
+import com.wx.blink.base.common.util.BlinkSpringUtil;
|
|
|
+import com.wx.blink.base.module.support.datatracer.constant.DataTracerTypeEnum;
|
|
|
+import com.wx.blink.base.module.support.datatracer.service.DataTracerService;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 客户信息变更事件-业务动作
|
|
|
+ */
|
|
|
+public class CustomerEditProcessSubmitEventHandler implements CustomizeProcessEventHandler {
|
|
|
+ private BlinkCustomerMapper customerMapper;
|
|
|
+ private IBlinkCustomerService customerService;
|
|
|
+ private BlinkCustomerSeniorMapper customerSeniorMapper;
|
|
|
+ private IBlinkCustomerSeniorService seniorService;
|
|
|
+ private DataTracerService dataTracerService;
|
|
|
+
|
|
|
+ public CustomerEditProcessSubmitEventHandler() {
|
|
|
+ this.customerMapper = BlinkSpringUtil.getBean(BlinkCustomerMapper.class);
|
|
|
+ this.customerService = BlinkSpringUtil.getBean(IBlinkCustomerService.class);
|
|
|
+ this.customerSeniorMapper = BlinkSpringUtil.getBean(BlinkCustomerSeniorMapper.class);
|
|
|
+ this.seniorService = BlinkSpringUtil.getBean(IBlinkCustomerSeniorService.class);
|
|
|
+ this.dataTracerService = BlinkSpringUtil.getBean(DataTracerService.class);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 状态
|
|
|
+ * 0:保存未提交
|
|
|
+ * 1:驳回到发起人
|
|
|
+ * 2:运行中
|
|
|
+ * 3:流程异常
|
|
|
+ * 4:完成
|
|
|
+ * 5:取消
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<String> process(StInstanceEvent event) {
|
|
|
+ int state = event.getState();
|
|
|
+ //获取表单数据
|
|
|
+ lBlinkCustomerEditVO editVo = JSONObject.parseObject(event.getMainFormData().toJSONString(), lBlinkCustomerEditVO.class);
|
|
|
+
|
|
|
+
|
|
|
+ //处理省市区
|
|
|
+ Map<String, String> customerSsq = getProvinceCityDistrict(editVo.getCustomerSsq());
|
|
|
+ editVo.setProvince(customerSsq.get("Province"));
|
|
|
+ editVo.setCity(customerSsq.get("City"));
|
|
|
+ editVo.setDistrict(customerSsq.get("District"));
|
|
|
+ Map<String, String> workSsq = getProvinceCityDistrict(editVo.getWorkSsq());
|
|
|
+ editVo.setWorkProvince(workSsq.get("Province"));
|
|
|
+ editVo.setWorkCity(workSsq.get("City"));
|
|
|
+ editVo.setWorkDistrict(workSsq.get("District"));
|
|
|
+ //生成DO
|
|
|
+ BlinkCustomerDO customerDO = editVoToCustomerDO(editVo);
|
|
|
+ //获取原客户信息做对比
|
|
|
+ BlinkCustomerDO oldCustomerDO = customerService.getById(editVo.getCusid());
|
|
|
+ BlinkCustomerDO compareNew = getCompareCustomerDO(customerDO);
|
|
|
+ BlinkCustomerDO compareOld = getCompareCustomerDO(oldCustomerDO);
|
|
|
+
|
|
|
+ customerDO.setUpdateTime(editVo.getCreateTime());
|
|
|
+ customerDO.setUpdateUserId(editVo.getCreateBy());
|
|
|
+ customerService.supportsCustomerUpdate(customerDO, null,false);
|
|
|
+ dataTracerService.update(customerDO.getId(), DataTracerTypeEnum.CUSTOMER,compareOld,compareNew,editVo.getCreateBy());
|
|
|
+ return ResponseDTO.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ public Map<String, String> getProvinceCityDistrict(String ssq) {
|
|
|
+ Map<String, String> provinceCityDistrict = new HashMap<>();
|
|
|
+ provinceCityDistrict.put("Province", "");
|
|
|
+ provinceCityDistrict.put("City", "");
|
|
|
+ provinceCityDistrict.put("District", "");
|
|
|
+ if (ssq != null) {
|
|
|
+ String[] strs = ssq.replace("[", "").replace("]", "").split(",");
|
|
|
+ for (int i = 0; i < strs.length; i++) {
|
|
|
+ if (i == 0) provinceCityDistrict.put("Province", strs[i]);
|
|
|
+ if (i == 1) provinceCityDistrict.put("City", strs[i]);
|
|
|
+ if (i == 2) provinceCityDistrict.put("District", strs[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return provinceCityDistrict;
|
|
|
+ }
|
|
|
+ private BlinkCustomerDO editVoToCustomerDO(lBlinkCustomerEditVO editVo){
|
|
|
+ if ( editVo == null ) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ BlinkCustomerDO blinkCustomerDO = new BlinkCustomerDO();
|
|
|
+
|
|
|
+ blinkCustomerDO.setCustomerCode( editVo.getCustomerCode() );
|
|
|
+ blinkCustomerDO.setCustomerName( editVo.getCustomerName() );
|
|
|
+ blinkCustomerDO.setRegionType( editVo.getRegionType() );
|
|
|
+ blinkCustomerDO.setCustomerAttribute( editVo.getCustomerAttribute() );
|
|
|
+ blinkCustomerDO.setCustomerSource( editVo.getCustomerSource() );
|
|
|
+ blinkCustomerDO.setActivityId( editVo.getActivityId() );
|
|
|
+ blinkCustomerDO.setIntroduction( editVo.getIntroduction() );
|
|
|
+ blinkCustomerDO.setSocialCode( editVo.getSocialCode() );
|
|
|
+ blinkCustomerDO.setLegalPerson( editVo.getLegalPerson() );
|
|
|
+ blinkCustomerDO.setSurvivalStatus( editVo.getSurvivalStatus() );
|
|
|
+ blinkCustomerDO.setCountryRegion( editVo.getCountryRegion() );
|
|
|
+ blinkCustomerDO.setProvince( editVo.getProvince() );
|
|
|
+ blinkCustomerDO.setProvinceName( editVo.getProvinceName() );
|
|
|
+ blinkCustomerDO.setCity( editVo.getCity() );
|
|
|
+ blinkCustomerDO.setCityName( editVo.getCityName() );
|
|
|
+ blinkCustomerDO.setDistrict( editVo.getDistrict() );
|
|
|
+ blinkCustomerDO.setDistrictName( editVo.getDistrictName() );
|
|
|
+ blinkCustomerDO.setAddress( editVo.getAddress() );
|
|
|
+ blinkCustomerDO.setCustomerManager( editVo.getCustomerManager() );
|
|
|
+ blinkCustomerDO.setCustomerManagerMobile( editVo.getCustomerManagerMobile() );
|
|
|
+ blinkCustomerDO.setCompanyRegisterCapital( editVo.getCompanyRegisterCapital() );
|
|
|
+ blinkCustomerDO.setCompanyRegisterDate( editVo.getCompanyRegisterDate() );
|
|
|
+ blinkCustomerDO.setOfficialWebsite( editVo.getOfficialWebsite() );
|
|
|
+ blinkCustomerDO.setCustomerDescription( editVo.getCustomerDescription() );
|
|
|
+ blinkCustomerDO.setCustomerNature( editVo.getCustomerNature() );
|
|
|
+ blinkCustomerDO.setWorkCountryRegion( editVo.getWorkCountryRegion() );
|
|
|
+ blinkCustomerDO.setWorkProvince( editVo.getWorkProvince() );
|
|
|
+ blinkCustomerDO.setWorkProvinceName( editVo.getWorkProvinceName() );
|
|
|
+ blinkCustomerDO.setWorkCity( editVo.getWorkCity() );
|
|
|
+ blinkCustomerDO.setWorkCityName( editVo.getWorkCityName() );
|
|
|
+ blinkCustomerDO.setWorkDistrict( editVo.getWorkDistrict() );
|
|
|
+ blinkCustomerDO.setWorkDistrictName( editVo.getWorkDistrictName() );
|
|
|
+ blinkCustomerDO.setWorkAddress( editVo.getWorkAddress() );
|
|
|
+ blinkCustomerDO.setId( editVo.getCusid() );
|
|
|
+
|
|
|
+ return blinkCustomerDO;
|
|
|
+ }
|
|
|
+ private BlinkCustomerDO getCompareCustomerDO(BlinkCustomerDO customerDO){
|
|
|
+ if ( customerDO == null ) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ BlinkCustomerDO blinkCustomerDO = new BlinkCustomerDO();
|
|
|
+
|
|
|
+ blinkCustomerDO.setCustomerCode( customerDO.getCustomerCode() );
|
|
|
+ blinkCustomerDO.setCustomerName( customerDO.getCustomerName() );
|
|
|
+ blinkCustomerDO.setRegionType( customerDO.getRegionType() );
|
|
|
+ blinkCustomerDO.setCustomerAttribute( customerDO.getCustomerAttribute() );
|
|
|
+ blinkCustomerDO.setCustomerSource( customerDO.getCustomerSource() );
|
|
|
+ blinkCustomerDO.setActivityId( customerDO.getActivityId() );
|
|
|
+ blinkCustomerDO.setIntroduction( customerDO.getIntroduction() );
|
|
|
+ blinkCustomerDO.setSocialCode( customerDO.getSocialCode() );
|
|
|
+ blinkCustomerDO.setLegalPerson( customerDO.getLegalPerson() );
|
|
|
+ blinkCustomerDO.setSurvivalStatus( customerDO.getSurvivalStatus() );
|
|
|
+ blinkCustomerDO.setCountryRegion( customerDO.getCountryRegion() );
|
|
|
+ blinkCustomerDO.setProvince( customerDO.getProvince() );
|
|
|
+ blinkCustomerDO.setProvinceName( customerDO.getProvinceName() );
|
|
|
+ blinkCustomerDO.setCity( customerDO.getCity() );
|
|
|
+ blinkCustomerDO.setCityName( customerDO.getCityName() );
|
|
|
+ blinkCustomerDO.setDistrict( customerDO.getDistrict() );
|
|
|
+ blinkCustomerDO.setDistrictName( customerDO.getDistrictName() );
|
|
|
+ blinkCustomerDO.setAddress( customerDO.getAddress() );
|
|
|
+ blinkCustomerDO.setCustomerManager( customerDO.getCustomerManager() );
|
|
|
+ blinkCustomerDO.setCustomerManagerMobile( customerDO.getCustomerManagerMobile() );
|
|
|
+ blinkCustomerDO.setCompanyRegisterCapital( customerDO.getCompanyRegisterCapital() );
|
|
|
+ blinkCustomerDO.setCompanyRegisterDate( customerDO.getCompanyRegisterDate() );
|
|
|
+ blinkCustomerDO.setOfficialWebsite( customerDO.getOfficialWebsite() );
|
|
|
+ blinkCustomerDO.setCustomerDescription( customerDO.getCustomerDescription() );
|
|
|
+ blinkCustomerDO.setCustomerNature( customerDO.getCustomerNature() );
|
|
|
+ blinkCustomerDO.setWorkCountryRegion( customerDO.getWorkCountryRegion() );
|
|
|
+ blinkCustomerDO.setWorkProvince( customerDO.getWorkProvince() );
|
|
|
+ blinkCustomerDO.setWorkProvinceName( customerDO.getWorkProvinceName() );
|
|
|
+ blinkCustomerDO.setWorkCity( customerDO.getWorkCity() );
|
|
|
+ blinkCustomerDO.setWorkCityName( customerDO.getWorkCityName() );
|
|
|
+ blinkCustomerDO.setWorkDistrict( customerDO.getWorkDistrict() );
|
|
|
+ blinkCustomerDO.setWorkDistrictName( customerDO.getWorkDistrictName() );
|
|
|
+ blinkCustomerDO.setWorkAddress( customerDO.getWorkAddress() );
|
|
|
+ blinkCustomerDO.setId( customerDO.getId() );
|
|
|
+
|
|
|
+ return blinkCustomerDO;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|