diff --git a/src/main/java/com/ccsens/ptccsens/persist/dao/PluginDao.java b/src/main/java/com/ccsens/ptccsens/persist/dao/PluginDao.java index abf0a89..e7bee50 100644 --- a/src/main/java/com/ccsens/ptccsens/persist/dao/PluginDao.java +++ b/src/main/java/com/ccsens/ptccsens/persist/dao/PluginDao.java @@ -21,4 +21,11 @@ public interface PluginDao extends ProTaskPluginMapper { Long getPluginIdByName(@Param("pluginName") String pluginName); void updateParamById(@Param("param") String param, @Param("taskPluginId") Long taskPluginId); + + /** + * 查找任务关联的插件的最大行数 + * @param taskId 任务id + * @return 返回最大的一个行数 + */ + Integer getTaskPluginMaxRow(@Param("taskId")Long taskId); } diff --git a/src/main/java/com/ccsens/ptccsens/service/ProjectFinanceService.java b/src/main/java/com/ccsens/ptccsens/service/ProjectFinanceService.java index 835b3db..b812111 100644 --- a/src/main/java/com/ccsens/ptccsens/service/ProjectFinanceService.java +++ b/src/main/java/com/ccsens/ptccsens/service/ProjectFinanceService.java @@ -17,7 +17,10 @@ import com.ccsens.ptccsens.persist.dao.PluginDao; import com.ccsens.ptccsens.persist.dao.ProTaskDetailDao; import com.ccsens.ptccsens.persist.mapper.PluFinanceAppendBudgetMapper; import com.ccsens.ptccsens.util.BasicsCodeError; +import com.ccsens.ptccsens.util.Constant; import com.ccsens.util.exception.BaseException; +import com.ccsensptos.tallsdk.bean.vo.TallPluginVo; +import com.ccsensptos.tallsdk.util.PluginUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -81,21 +84,22 @@ public class ProjectFinanceService implements IProjectFinanceService{ } //如果任务没有关联财务条插件,则自动关联财务条插件 //TODO 根据插件code查询是否存在, code暂时写死 - Integer num = pluginDao.queryFinancePlugin(param.getTaskDetailId(), "MP-TALL财务条"); + Integer num = pluginDao.queryFinancePlugin(param.getTaskDetailId(), Constant.PLUGIN_FINANCE); if (num < 1) { + taskSaveFinancePlugin(param.getTaskDetailId()); //不存在则关联插件 - ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); - proTaskPlugin.setId(snowflake.nextId()); - proTaskPlugin.setCode("MP-TALL财务条"); - proTaskPlugin.setPlginCol(1); - proTaskPlugin.setPlginRow(1); - proTaskPlugin.setColspan(1); - proTaskPlugin.setRowspan(1); - proTaskPlugin.setTaskDetailId(param.getTaskDetailId()); - //TODO 插件id - proTaskPlugin.setPluginId(123456L); - proTaskPlugin.setCode("MP-TALL财务条"); - pluginDao.insertSelective(proTaskPlugin); +// ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); +// proTaskPlugin.setId(snowflake.nextId()); +// proTaskPlugin.setCode("MP-TALL财务条"); +// proTaskPlugin.setPlginCol(1); +// proTaskPlugin.setPlginRow(1); +// proTaskPlugin.setColspan(1); +// proTaskPlugin.setRowspan(1); +// proTaskPlugin.setTaskDetailId(param.getTaskDetailId()); +// //TODO 插件id +// proTaskPlugin.setPluginId(18L); +// proTaskPlugin.setCode("MP-TALL财务条"); +// pluginDao.insertSelective(proTaskPlugin); } //根据任务财务信息id查找财务表 PluFinance pluFinance = pluFinanceDao.selectByPrimaryKey(param.getTaskFinanceId()); @@ -128,6 +132,30 @@ public class ProjectFinanceService implements IProjectFinanceService{ pluFinanceDao.insertSelective(newPluFinance); } + /** + * 关联财务条插件 + */ + public void taskSaveFinancePlugin(Long taskId){ + TallPluginVo.BusinessPluginInfo pluginByCodeAndName = PluginUtil.getPluginByCodeAndName(Constant.BUSINESS_CODE, Constant.PLUGIN_FINANCE); + if(ObjectUtil.isNotNull(pluginByCodeAndName)){ + //TODO 查找本任务上一个插件的行数,插件摆放位置暂时依次往下排 + Integer row = pluginDao.getTaskPluginMaxRow(taskId); + //添加任务插件关联关系 + ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); + proTaskPlugin.setId(snowflake.nextId()); + proTaskPlugin.setPluginId(pluginByCodeAndName.getPluginId()); + proTaskPlugin.setBusinessPluginId(pluginByCodeAndName.getBusinessPluginId()); + proTaskPlugin.setCode(Constant.PLUGIN_FINANCE); + proTaskPlugin.setPluginInner(pluginByCodeAndName.getInner()); + proTaskPlugin.setPlginCol(1); + proTaskPlugin.setPlginRow((row == null || row == 0) ? 1 : row); + proTaskPlugin.setColspan(1); + proTaskPlugin.setRowspan(1); + proTaskPlugin.setTaskDetailId(taskId); + pluginDao.insertSelective(proTaskPlugin); + } + } + @Override public PageInfo queryNeedCheckByMe(ProjectFinanceDto.QueryNeedCheckByMe param, Long userId) { diff --git a/src/main/java/com/ccsens/ptccsens/util/Constant.java b/src/main/java/com/ccsens/ptccsens/util/Constant.java index e317008..51715f3 100644 --- a/src/main/java/com/ccsens/ptccsens/util/Constant.java +++ b/src/main/java/com/ccsens/ptccsens/util/Constant.java @@ -14,6 +14,8 @@ public class Constant { public static String APP_SECRET = "UzCCJfmKfVueCPw8w7ymbIc9vxZaRih4ndPmH38TnM9Wz54C"; /**服务code*/ public static String BUSINESS_CODE = "PT"; + /**财务条插件名称*/ + public static String PLUGIN_FINANCE = "MP-TALL财务条"; public static Map timeUnit = new HashMap<>(); public static Map timeFormat = new HashMap<>(); diff --git a/src/main/resources/mapper_dao/PluginDao.xml b/src/main/resources/mapper_dao/PluginDao.xml index 73b3577..579f7be 100644 --- a/src/main/resources/mapper_dao/PluginDao.xml +++ b/src/main/resources/mapper_dao/PluginDao.xml @@ -24,6 +24,11 @@ and rec_status = 0 limit 1 + update