diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/config/LeaseBillConfigProvider.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/config/LeaseBillConfigProvider.java new file mode 100644 index 0000000..9d2a914 --- /dev/null +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/config/LeaseBillConfigProvider.java @@ -0,0 +1,19 @@ +package com.seeyon.apps.src_leasebill.config; + +import com.seeyon.apps.common.config.ICstConfigApi; +import com.seeyon.apps.common.plugin.vo.ConfigVo; +import com.seeyon.apps.src_leasebill.constant.LeaseBillConstant; +import com.seeyon.ctp.common.AppContext; + +import static com.seeyon.apps.src_leasebill.constant.LeaseBillConstant.getPluginId; + +public class LeaseBillConfigProvider { + + protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi"); + + public String getBizConfigByKey(LeaseBillConstant key) { + ConfigVo config = cstConfigApi.getConfig(getPluginId()); + return config.getParamVal(key.name()); + } + +} diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/constant/LeaseBillConstant.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/constant/LeaseBillConstant.java index 36a11a2..722ba46 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/constant/LeaseBillConstant.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/constant/LeaseBillConstant.java @@ -4,6 +4,9 @@ public enum LeaseBillConstant { plugin("src_leasebill","插件ID"), + annualPaymentTypeOneMapName("年方案一","年缴费方式一取值映射名称"), + annualPaymentTypeTwoMapName("年方案二","年缴费方式二取值映射名称"), + assistiveFormNo("ZJZDMX","账单生成辅助表表单编码"), loginName("shenxian","辅助表创建人"); // u8cUrl("http://ip:port", "U8C地址"), diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/controller/LeaseBillController.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/controller/LeaseBillController.java index 409d69b..ca9eea4 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/controller/LeaseBillController.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/controller/LeaseBillController.java @@ -2,8 +2,10 @@ package com.seeyon.apps.src_leasebill.controller; import cn.hutool.log.Log; import com.alibaba.fastjson.JSONObject; +import com.seeyon.aicloud.common.JsonUtils; import com.seeyon.apps.common.config.ICstConfigApi; import com.seeyon.apps.common.plugin.vo.ConfigVo; +import com.seeyon.apps.src_leasebill.config.LeaseBillConfigProvider; import com.seeyon.apps.src_leasebill.constant.LeaseBillConstant; import com.seeyon.apps.src_leasebill.dao.ILeaseBillDao; import com.seeyon.apps.src_leasebill.util.DateUtil; @@ -30,6 +32,7 @@ import java.util.*; public class LeaseBillController extends BaseController { private static Log log = Log.get(LeaseBillController.class); + private LeaseBillConfigProvider configProvider = (LeaseBillConfigProvider) AppContext.getBean("leaseBillConfigProvider"); protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi"); private FormFactory formFactory; @@ -57,7 +60,7 @@ public class LeaseBillController extends BaseController { } public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception { - log.info("进入ajax方法"); + log.info("进入生成账单ajax方法"); ConfigVo configVo = getYdctLeaseBillConfig(); DateUtil dateUtil = new DateUtil(); LeaseBillUtil leaseBillUtil = new LeaseBillUtil(); @@ -120,6 +123,7 @@ public class LeaseBillController extends BaseController { Calendar startTime = Calendar.getInstance(); startTime.setTime(startDate); // 判断合同开始时间是否为月底 + log.info("入参: " + jsonObject.toString()); boolean isMaxDay = false; int currentDay = startTime.get(Calendar.DAY_OF_MONTH); int maxDay = startTime.getActualMaximum(Calendar.DAY_OF_MONTH); @@ -148,18 +152,27 @@ public class LeaseBillController extends BaseController { render(response, JSONUtil.toJSONString(res)); return null; }else{ - if(njiaofeifs.equals("正常年度")){ + if(njiaofeifs.equals(configProvider.getBizConfigByKey(LeaseBillConstant.annualPaymentTypeOneMapName))){ // 采用方式一/正常年度 + System.out.println("开始生成账单数据"); + log.info("正常年度-生成账单数据"); rents = leaseBillUtil.getLeaseBillYers1(startTime,endTime,isMaxDay,jfzqNum,jsonObject,jifeifs); - }else if(njiaofeifs.equals("非正常年度")){ + }else if(njiaofeifs.equals(configProvider.getBizConfigByKey(LeaseBillConstant.annualPaymentTypeTwoMapName))){ // 采用方式二/非正常年度 + System.out.println("开始生成账单数据"); + log.info("非正常年度-生成账单数据"); rents = leaseBillUtil.getLeaseBillYers2(startTime,endTime,isMaxDay,jfzqNum,jsonObject,jifeifs); } } }else{ // 根据标准方法生成 + System.out.println("开始生成账单数据"); + log.info("开始用标准方法生成账单数据"); rents = leaseBillUtil.getLeaseBill(startTime,endTime,isMaxDay,jfzqNum,jsonObject,jifeifs); } + if(rents.size() == 0){ + log.info("要生成账单的数据为空"); + } log.info("创建档案"); List subordinateFormExports = formExportUtil.setSubordinateFormValue(rents); Map billMap = new HashMap(); @@ -167,8 +180,8 @@ public class LeaseBillController extends BaseController { List valueExports = formExportUtil.setFormValue(billMap); formExport.setSubordinateForms(subordinateFormExports); formExport.setValues(valueExports); - String loginName = configVo.getParamVal(LeaseBillConstant.loginName.name()); - getFormFactory().importBusinessFormData(loginName, "ZJZDMX", + String loginName = configProvider.getBizConfigByKey(LeaseBillConstant.loginName); + getFormFactory().importBusinessFormData(loginName, configProvider.getBizConfigByKey(LeaseBillConstant.assistiveFormNo), formExport, new String[] {}); res.put("success", true); res.put("name", AppContext.currentUserLoginName()); diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/dao/impl/LeaseBillDaoImpl.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/dao/impl/LeaseBillDaoImpl.java index a344768..cf55557 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/dao/impl/LeaseBillDaoImpl.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/dao/impl/LeaseBillDaoImpl.java @@ -1,84 +1,56 @@ package com.seeyon.apps.src_leasebill.dao.impl; +import com.seeyon.apps.src_leasebill.config.LeaseBillConfigProvider; +import com.seeyon.apps.src_leasebill.constant.LeaseBillConstant; import com.seeyon.apps.src_leasebill.dao.ILeaseBillDao; +import com.seeyon.ctp.common.AppContext; import com.seeyon.ctp.common.exceptions.BusinessException; -import com.seeyon.ctp.util.JDBCAgent; +import com.seeyon.utils.form.FormColumn; +import com.seeyon.utils.form.FormTableExecutor; +import com.seeyon.utils.form.FormWhereCondition; +import com.seeyon.utils.form.TableContext; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -import java.util.Map; + public class LeaseBillDaoImpl implements ILeaseBillDao { -//本地 -// private String leaseBillByCode = "SELECT id FROM formmain_0231 WHERE field0004 = ? "; -// private String deleteBillById = "delete from formmain_0231 where id=?"; -// private String deleteBillsByBillId = "delete from formson_0232 where formmain_id=?"; -// 正式 - private String leaseBillByCode = "SELECT id FROM formmain_0031 WHERE field0004 = ? "; - private String deleteBillById = "delete from formmain_0031 where id=?"; - private String deleteBillsByBillId = "delete from formson_0032 where formmain_id=?"; + private LeaseBillConfigProvider configProvider = (LeaseBillConfigProvider) AppContext.getBean("leaseBillConfigProvider"); + + private String getFormNo(){ + return configProvider.getBizConfigByKey(LeaseBillConstant.assistiveFormNo); + } @Override public List leaseBillByCode(String code) throws BusinessException, SQLException { List lists = new ArrayList(); - JDBCAgent agent = new JDBCAgent(); - try { - StringBuilder sql = new StringBuilder(leaseBillByCode); -// StringBuilder sql = new StringBuilder("SELECT id FROM formmain_0536 WHERE field0013 = ? "); - List p = new ArrayList(); - p.add(code); - agent.execute(sql.toString(), p); - List list = agent.resultSetToList(); - if (list != null && list.size() > 0) { - for(int i = 0 ; i < list.size() ; i++) { - Map map = list.get(i); - Object object = map.get("id"); - lists.add(object.toString()); - } - } - }finally { - if (agent != null) { - agent.close(); - } + TableContext tableContext = FormTableExecutor.master(getFormNo()); + List conditions = new ArrayList(); + conditions.add(FormWhereCondition.build().display("账单编号").value(code)); + List queryColumns = new ArrayList(); + queryColumns.add("ID"); + List formColumns = FormTableExecutor.query(tableContext, queryColumns, conditions, false); + for (FormColumn formColumn : formColumns) { + lists.add(formColumn.getId()); } return lists; } @Override public int deleteBillById(String id) throws BusinessException, SQLException { - int i = 0 ; - JDBCAgent agent = new JDBCAgent(); - try { - StringBuilder sql = new StringBuilder(deleteBillById); -// StringBuilder sql = new StringBuilder("delete from formmain_0536 where id=?"); - List p = new ArrayList(); - p.add(id); - i=agent.execute(sql.toString(), p); - }finally { - if (agent != null) { - agent.close(); - } - } - return i; + TableContext tableContext = FormTableExecutor.master(getFormNo()); + List conditions = new ArrayList<>(); + conditions.add(FormWhereCondition.build().display("ID").value(id)); + return FormTableExecutor.delete(tableContext, conditions); } @Override public int deleteBillsByBillId(String formmainId) throws BusinessException, SQLException { - int i = 0 ; - JDBCAgent agent = new JDBCAgent(); - try { - StringBuilder sql = new StringBuilder(deleteBillsByBillId); -// StringBuilder sql = new StringBuilder("delete from formson_0538 where formmain_id=?"); - List p = new ArrayList(); - p.add(formmainId); - i=agent.execute(sql.toString(), p); - }finally { - if (agent != null) { - agent.close(); - } - } - return i; + TableContext sub = FormTableExecutor.sub(getFormNo(), "明细表1"); + List conditions = new ArrayList<>(); + conditions.add(FormWhereCondition.build().display("formmain_id").value(formmainId)); + return FormTableExecutor.delete(sub,conditions); } } diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/util/LeaseBillUtil.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/util/LeaseBillUtil.java index eeceda4..d155a26 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/util/LeaseBillUtil.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_leasebill/util/LeaseBillUtil.java @@ -22,6 +22,7 @@ public class LeaseBillUtil { public List> getLeaseBill(Calendar startTime, Calendar endTime, boolean isMaxDay, int jfzqNum, JSONObject jsonObject,String jifeifs){ List> rents = new ArrayList<>(); + System.out.println("生成账单的参数: " + startTime + ","+ endTime+"," + isMaxDay+"," + jfzqNum +","+ jsonObject.toString() +","+ jifeifs); DateUtil dateUtil = new DateUtil(); // 两个日期相差多少月 int monthNum = dateUtil.betweenMonthByTwoCalendar(startTime,endTime); @@ -129,6 +130,7 @@ public class LeaseBillUtil { */ public List> getLeaseBillYers1(Calendar startTime, Calendar endTime, boolean isMaxDay, int jfzqNum, JSONObject jsonObject,String jifeifs){ + System.out.println("生成账单的参数: " + startTime + ","+ endTime+"," + isMaxDay+"," + jfzqNum +","+ jsonObject.toString() +","+ jifeifs); List> rents = new ArrayList<>(); DateUtil dateUtil = new DateUtil(); // 两个日期相差多少月 @@ -206,6 +208,7 @@ public class LeaseBillUtil { */ public List> getLeaseBillYers2(Calendar startTime, Calendar endTime, boolean isMaxDay, int jfzqNum, JSONObject jsonObject,String jifeifs){ + System.out.println("生成账单的参数: " + startTime + ","+ endTime+"," + isMaxDay+"," + jfzqNum +","+ jsonObject.toString() +","+ jifeifs); List> rents = new ArrayList<>(); DateUtil dateUtil = new DateUtil(); // 两个日期相差多少年 diff --git a/v5/apps-customize/src/main/webapp/WEB-INF/cfgHome/plugin/src_leasebill/spring/spring-fieldCtrl.xml b/v5/apps-customize/src/main/webapp/WEB-INF/cfgHome/plugin/src_leasebill/spring/spring-fieldCtrl.xml index 73fecec..bf9e8ac 100644 --- a/v5/apps-customize/src/main/webapp/WEB-INF/cfgHome/plugin/src_leasebill/spring/spring-fieldCtrl.xml +++ b/v5/apps-customize/src/main/webapp/WEB-INF/cfgHome/plugin/src_leasebill/spring/spring-fieldCtrl.xml @@ -2,4 +2,5 @@ + \ No newline at end of file diff --git a/v5/apps-customize/src/test/Test.java b/v5/apps-customize/src/test/Test.java new file mode 100644 index 0000000..a85554d --- /dev/null +++ b/v5/apps-customize/src/test/Test.java @@ -0,0 +1,7 @@ +import com.seeyon.apps.src_leasebill.LeaseBillPluginApi; + +public class Test { + public static void main(String[] args) { + new LeaseBillPluginApi(); + } +}