| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453 |
- package cn.com.goldenwater.dcproj.service.impl.mend;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.dao.BisInspPblmPlistDao;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.BisInspLocalConfigParam;
- import cn.com.goldenwater.dcproj.param.BisInspPblmPlistParam;
- import cn.com.goldenwater.dcproj.service.*;
- import cn.com.goldenwater.dcproj.util.CheckUtil;
- import cn.com.goldenwater.target.CheckException;
- import com.workflow.bpm.api.bpmservices.ActionConstant;
- import com.workflow.bpm.api.bpmservices.BpmProcessInstService;
- import com.workflow.bpm.api.bpmservices.BpmTaskService;
- import com.workflow.bpm.api.bpmservices.co.processinstance.ProcessStartCO;
- import com.workflow.bpm.api.bpmservices.co.taskinst.QueryTaskActionCO;
- import com.workflow.common.struct.res.impl.APIResult;
- import org.apache.commons.collections.MapUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Calendar;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @author lhc
- * @date 2020-11-4
- */
- @Service
- @Transactional
- public class BisInspPblmPlistFormServiceImpl implements BisInspPblmPlistFormService {
- @Autowired
- private BisInspPblmPlistService plistService;
- @Autowired
- private DicService dicService;
- @Autowired
- private BpmProcessInstService bpmProcessInstService;
- @Autowired
- private BpmTaskService bpmTaskService;
- @Autowired
- private BisInspBpmOrgService bisInspBpmOrgService;
- @Autowired
- private BisInspPblmPlistDao bisInspPblmPlistDao;
- @Autowired
- private BisInspLocalConfigService bisInspLocalConfigService;
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Override
- public boolean saveFormsAndStartFlow(BisInspPblmPlistFormDTO form, String userId, String orgId, String province) {
- // 获取工作流对应类型,如果没有配置则返回失败
- BisInspBpmOrg bisInspBpmOrg = getBpmCode(province, form.getPblmPlist().getPblmClassify());
- CheckUtil.notNull(bisInspBpmOrg, "发起流程失败,请联系管理员配置流程:13401079738 ");
- BisInspPblmPlist bisInspPblmPlist = plistService.get(form.getPblmPlist().getId());
- CheckUtil.notNull(bisInspPblmPlist, "数据异常!");
- CheckUtil.check(!"1".equals(bisInspPblmPlist.getIsStart()), "工作流已经启动,请勿重复启动!");
- CheckUtil.check(!"1".equals(bisInspPblmPlist.getPblmOut()), "整改问题已销号!");
- form.getPblmPlist().setIsStart("1");
- if (null == form.getPblmPlist().getPblmCrtm()) {
- //当前时间加一个月
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.MONTH, 1);
- form.getPblmPlist().setPblmCrtm(cal.getTime());
- }
- plistService.update(form.getPblmPlist());
- ProcessStartCO processStartCO = new ProcessStartCO();
- processStartCO.setBizKey(form.getPblmPlist().getId());
- processStartCO.setFormUrl("pdcApi/bis/insp/pblm/plist/form/" + form.getPblmPlist().getId());
- processStartCO.setProcessName(getBpmName(form));
- processStartCO.setProcessTypeCode(bisInspBpmOrg.getBpmCode()); // 根据当前用户所属省份和督查类型 取出对应工作流 id
- processStartCO.setTenantId("1");
- processStartCO.setUserId(userId);
- processStartCO.setProvince(province);
- processStartCO.setCompleteFirstTaskFlag(true);
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendVar", "city");
- sendVar.put("sendBus", "1");
- logger.info("------------------------BisInspPblmPlistFormServiceImpl:province:" + province + "------------------------------");
- if (province.equals("370000000000")) {
- if (null == form.getPblmPlist().getProvincial()) {
- sendVar.put("sendLocal", "fzg");
- } else {
- logger.info("------------------------BisInspPblmPlistFormServiceImpl:getProvincial:" + form.getPblmPlist().getProvincial() + "------------------------------");
- //判断是否省属工程
- if (form.getPblmPlist().getProvincial().equals("1")) {
- logger.info("------------------------BisInspPblmPlistFormServiceImpl:getProvincial:province------------------------------");
- //是省属工程,直接转发到省级单位整改
- sendVar.put("sendLocal", "province");
- } else {
- //非直管县
- logger.info("------------------------BisInspPblmPlistFormServiceImpl:getProvincial:fzg------------------------------");
- sendVar.put("sendLocal", "fzg");
- }
- }
- } else {
- logger.info("------------------------BisInspPblmPlistFormServiceImpl:province:<>37-----------------------------");
- if (isLocalAd(form.getPblmPlist().getObjAdCode())) {
- //直管县
- sendVar.put("sendLocal", "zg");
- } else {
- //非直管县
- sendVar.put("sendLocal", "fzg");
- }
- }
- sendVar.put("sendSpc", "spc");// 山东省 --监督处是否专家审核
- processStartCO.setVariables(sendVar);
- //直管县 名称要去掉直管层级,设置参数如果是直管县,设置参数直接走到县反馈,后续继续审核 整改
- APIResult apiResult = bpmProcessInstService.startProcInst(processStartCO, userId, orgId);
- if (apiResult.isRetStatus()) {
- return true;
- } else {
- throw new CheckException("发起流程失败!");
- }
- }
- /**
- * 是否直管县
- *
- * @param objAdCode
- * @return
- */
- public Boolean isLocalAd(String objAdCode) {
- BisInspLocalConfigParam bisInspLocalConfigParam = new BisInspLocalConfigParam();
- bisInspLocalConfigParam.setAdCode(objAdCode);
- List<BisInspLocalConfig> bisInspLocalConfigs = bisInspLocalConfigService.findList(bisInspLocalConfigParam);
- if (bisInspLocalConfigs != null && bisInspLocalConfigs.size() > 0) {
- return true;
- } else {
- return false;
- }
- }
- public String getBpmName(BisInspPblmPlistFormDTO form) {
- String nameString = "督查整改-";
- logger.info("获取工作流名称前:" + form.getPblmPlist().toString());
- if (form.getPblmPlist().getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
- String[] split = form.getPblmPlist().getPblmAdName().split(SplitValue.HENG_SPLIT);
- if (split.length == 3) {
- form.getPblmPlist().setProvince(split[0]);
- form.getPblmPlist().setCity(split[1]);
- form.getPblmPlist().setCounty(split[2]);
- }
- if (split.length == 2) {
- form.getPblmPlist().setProvince(split[0]);
- form.getPblmPlist().setCity(split[1]);
- }
- if (split.length == 1) {
- form.getPblmPlist().setProvince(split[0]);
- form.getPblmPlist().setCity("");
- }
- }
- //获取对象所属行政区代码
- String objAdCode = form.getPblmPlist().getObjAdCode();
- //查询此行政是否是直辖县
- nameString = nameString + form.getPblmPlist().getProvince();
- if (isLocalAd(form.getPblmPlist().getObjAdCode())) {
- if (form.getPblmPlist().getCounty() != null) {
- nameString = nameString + "-" + form.getPblmPlist().getCounty();
- }
- if (null != form.getPblmPlist().getInspPblmDesc()) {
- nameString = nameString + "-" + form.getPblmPlist().getObjName() + ":" + form.getPblmPlist().getInspPblmDesc();
- } else {
- nameString = nameString + "-" + form.getPblmPlist().getObjName();
- }
- } else {
- if (null != form.getPblmPlist().getCity()) {
- nameString = nameString + "-" + form.getPblmPlist().getCity();
- }
- if (null != form.getPblmPlist().getCounty()) {
- nameString = nameString + "-" + form.getPblmPlist().getCounty();
- }
- if (null != form.getPblmPlist().getInspPblmDesc()) {
- nameString = nameString + "-" + form.getPblmPlist().getObjName() + ":" + form.getPblmPlist().getInspPblmDesc();
- } else {
- nameString = nameString + "-" + form.getPblmPlist().getObjName();
- }
- }
- logger.info("获取工作流名称后:" + nameString);
- return nameString;
- }
- @Override
- public void allStartup(BisInspPblmPlistParam bisInspPblmPlistParam, Map<String, String> params) {
- List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.sendOrgGetList(bisInspPblmPlistParam);
- if (list == null || list.size() == 0) {
- return;
- }
- for (BisInspPblmPlist bisInspPblmPlist : list) {
- //
- // 已启动的整改,直接跳过
- if ("1".equals(bisInspPblmPlist.getIsStart())) {
- continue;
- }
- if (bisInspPblmPlist.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
- String[] split = bisInspPblmPlist.getPblmAdName().split(SplitValue.HENG_SPLIT);
- if (split.length == 3) {
- bisInspPblmPlist.setProvince(split[0]);
- bisInspPblmPlist.setCity(split[1]);
- bisInspPblmPlist.setCounty(split[2]);
- }
- if (split.length == 2) {
- bisInspPblmPlist.setProvince(split[0]);
- bisInspPblmPlist.setCity(split[1]);
- }
- if (split.length == 1) {
- bisInspPblmPlist.setProvince(split[0]);
- bisInspPblmPlist.setCity("");
- }
- }
- BisInspPblmPlistFormDTO formDTO = new BisInspPblmPlistFormDTO();
- formDTO.setPblmPlist(bisInspPblmPlist);
- // 发起流程
- saveFormsAndStartFlow(formDTO,
- MapUtils.getString(params, "persId"),
- MapUtils.getString(params, "orgId"),
- MapUtils.getString(params, "province"));
- }
- }
- public BisInspBpmOrg getBpmCode(String province, String ptype) {
- BisInspBpmOrg bisInspBpmOrg = bisInspBpmOrgService.getBpmCodeBypp(province, ptype);
- return bisInspBpmOrg;
- }
- @Override
- public boolean submitForm(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendSpc", "zj");// 山东省 --监督处发专家
- task.setVariables(sendVar);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean backwardForm(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_BACK);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean feedbackForm(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- form.getPblmPlist().setIsRect("1");//是否反馈
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean feedbackCityForm(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendVar", "city");
- task.setVariables(sendVar);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendCountyForm(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendVar", "county");
- task.setVariables(sendVar);
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendProvinceForm(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendLocal", "province");
- task.setVariables(sendVar);
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean complete(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- form.getPblmPlist().setPblmOut("1");//已销号
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- Map<String, Object> sendVar = new HashMap<>();
- sendVar.put("sendSpc", "xh");// 山东省 --监督处直接销号
- task.setVariables(sendVar);
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean holdSave(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- return true;
- }
- @Override
- public BisInspPblmPlist getProblemListInfo(String plistId) {
- return plistService.get(plistId);
- }
- @Override
- public Map<String, BisInspPblmClassify> getPblmClassifyMap(List<String> businessKeys) {
- if (businessKeys == null || businessKeys.size() == 0) {
- return new HashMap<>();
- }
- return bisInspPblmPlistDao.getPblmClassifyMap(businessKeys);
- }
- @Override
- public boolean sendBuild(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "build");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendRunMgr(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "runmgr");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendFloods(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "floods");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendWater(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "water");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendSupervise(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "supervise");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendSouth(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "south");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendLakes(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "lakes");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- @Override
- public boolean sendPermissions(BisInspPblmPlistFormDTO form, String userId, String orgId) {
- plistService.update(form.getPblmPlist());
- QueryTaskActionCO task = form.getQueryTaskActionCO();
- task.setActionType(ActionConstant.ACTION_SUBMIT);
- Map<String, Object> sendBus = new HashMap<>();
- sendBus.put("sendBus", "permissions");
- task.setVariables(sendBus);
- task.setClaimTaskDirectExeFlag(true);
- APIResult apiResult = bpmTaskService.taskAction(task, userId, orgId);
- return apiResult.isRetStatus();
- }
- }
|