fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PledgeReminders.java
@@ -26,10 +26,10 @@ private String foodVarietyName; //粮食单价 private Double foodPrice; private Double foodPrice=0.0; //实际库存 private Double storageReal; private Double storageReal=0.0; } fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
@@ -18,9 +18,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @Description 警告信息定时统计:还款提醒 @@ -67,7 +67,9 @@ double backMoney = 0.0; for (PledgeContract pledgeContract : contractList) { log.info("-----开始处理质押合同:{}-----", pledgeContract.getName()); List<PledgeReminders> remindersList = new ArrayList<>(); // List<PledgeReminders> remindersList = new ArrayList<>(); Map<String,PledgeReminders> remindersMap = new java.util.HashMap<>(); //计算待还款金额 @@ -115,23 +117,39 @@ } sumMoney += depot.getStorageReal() * foodPrice.getPrice(); PledgeReminders reminders = new PledgeReminders(); reminders.setDepotId(depot.getId()); reminders.setDepotName(depot.getName()); reminders.setFoodVariety(depot.getFoodVariety()); reminders.setFoodVarietyName(depot.getFoodVarietyName()); reminders.setFoodPrice(foodPrice.getPrice()); reminders.setStorageReal(depot.getStorageReal()); remindersList.add(reminders); //按品种+单价生成key,来作为唯一标识,统计粮食品种的库存量以及粮食品种信息 String key=depot.getFoodVariety()+foodPrice.getPrice(); PledgeReminders pledgeReminders = remindersMap.get(key); if (null == pledgeReminders) { pledgeReminders = new PledgeReminders(); pledgeReminders.setFoodVariety(depot.getFoodVariety()); pledgeReminders.setFoodVarietyName(depot.getFoodVarietyName()); pledgeReminders.setFoodPrice(foodPrice.getPrice()); pledgeReminders.setStorageReal(pledgeReminders.getStorageReal()+depot.getStorageReal()); }else{ pledgeReminders.setStorageReal(pledgeReminders.getStorageReal()+depot.getStorageReal()); } remindersMap.put(key,pledgeReminders); // PledgeReminders reminders = new PledgeReminders(); // reminders.setDepotId(depot.getId()); // reminders.setDepotName(depot.getName()); // reminders.setFoodVariety(depot.getFoodVariety()); // reminders.setFoodVarietyName(depot.getFoodVarietyName()); // reminders.setFoodPrice(foodPrice.getPrice()); // reminders.setStorageReal(depot.getStorageReal()); // remindersList.add(reminders); log.info("-----当前合同={}下仓库={}:对应的实际储量={},对应粮食单价={}-----", pledgeContract.getName(), depot.getName(), depot.getStorageReal(), foodPrice.getPrice()); } per = sumMoney / backMoney; if (per < 1.1) { if (per > 1.1) { //货可以抵贷款 log.error("-----当前合同={}下质押仓库={}库存未到待还款的110%,sumMoney={},backMoney={},不生成还款提醒工单-----", pledgeContract.getName(), pledgeContract.getDepotNames(), sumMoney, backMoney); continue; } //货不足以抵贷款 ,提醒企业补钱 //执行流程 conf = workService.getConfByDeptId(pledgeContract.getPledgeDept(), WorkBizType.TYPE_50); @@ -141,7 +159,7 @@ continue; } BaseResp resp = workService.startByBackMoney(pledgeContract, conf,remindersList); BaseResp resp = workService.startByBackMoney(pledgeContract, conf,remindersMap); log.info("---------当前合同={}启动还款提醒工单流程------{}", pledgeContract.getName(), resp); } } fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
@@ -21,7 +21,7 @@ import javax.annotation.Resource; import java.text.DecimalFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * @Desc: 工单业务接口 @@ -180,26 +180,33 @@ * @param data 出入库工单数据 * @return 响应结果 */ public BaseResp startByBackMoney(PledgeContract data, WorkOrderConf conf, List<PledgeReminders> remindersList) { public BaseResp startByBackMoney(PledgeContract data, WorkOrderConf conf, Map<String,PledgeReminders> remindersMap) { if (null == conf) conf = confService.getByDeptId(data.getPledgeDept(), WorkBizType.TYPE_10); if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("流程未启用"); // Double sumMoneyNum = 0.0; DecimalFormat df = new DecimalFormat("0.00"); double backMoney = data.getContractAmount() - data.getRepaidAmount(); //创建工单 StringBuilder description = new StringBuilder("当前合同<" + data.getName() + ">下"); if (!remindersList.isEmpty()) { Double sumMoneyNum = 0.0; DecimalFormat df = new DecimalFormat("0.00"); StringBuilder description = new StringBuilder("合同<" + data.getName() + ">贷款余额:"+df.format(backMoney)+"元,"); if (!remindersMap.isEmpty()){ for (PledgeReminders reminders : remindersList) { description.append(",仓库<").append(reminders.getDepotName()).append(">,质押物<").append(reminders.getFoodVarietyName()).append(">库存量为").append(df.format(reminders.getStorageReal())).append("kg,单价").append(reminders.getFoodPrice()).append("元,"); sumMoneyNum += reminders.getStorageReal() * reminders.getFoodPrice(); for (PledgeReminders reminders : remindersMap.values()) { description.append("当前<").append(reminders.getFoodVarietyName()) .append(">单价:").append(reminders.getFoodPrice()).append("元/KG,") .append("剩余<").append(reminders.getFoodVarietyName()) .append(">库存:").append(df.format(reminders.getStorageReal())).append("KG,"); // sumMoneyNum += reminders.getStorageReal() * reminders.getFoodPrice(); } description.append("库存量总金额为").append(df.format(sumMoneyNum)).append("元,达到合同待还款金额的110%,请提醒企业进款还款"); } else { description.append("质押仓库<").append(data.getDepotNames()).append(">库存量金额高于待还款金额,需要进行还款"); description.append("押品价值≤贷款余额的110%,请尽快提醒企业还款!"); }else{ description.append("质押仓库<").append(data.getDepotNames()).append(">押品价值≤贷款余额的110%,请尽快提醒企业还款!"); } WorkOrder work = new WorkOrder(); work.setId(ContextUtil.generateOrderId("WARN")); work.setBizType(WorkBizType.TYPE_50.getCode()); fzzy-igdss-web/src/main/java/com/fzzy/group/GroupController.java
@@ -164,7 +164,7 @@ view.put("depotList", depotList); //统计信息 GroupGisData groupGisData = groupManager.getGisData(); GroupGisData groupGisData = groupManager.getGisDataByCompanyId(); view.put("gisData", groupGisData); return prefix + "/gis_modeling"; fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
@@ -587,6 +587,70 @@ return groupGisData; } public GroupGisData getGisDataByCompanyId() { GroupGisData groupGisData = new GroupGisData(); //查询伊犁下属区县 //区县 List<DicArea> dicAreaList = dicAreaService.listData("654000", null, null); //统计区县下库区数 LinkedHashMap<String, Integer> valuePieChart = new LinkedHashMap<>(); LinkedHashMap<String, String> namePieChart = new LinkedHashMap<>(); if (null != dicAreaList && !dicAreaList.isEmpty()) { for (DicArea dicArea : dicAreaList) { valuePieChart.put(dicArea.getCode(), 0); namePieChart.put(dicArea.getCode(), dicArea.getName()); } } List<Dept> deptList = deptService.getDeptByUserType(null); if (null != deptList && !deptList.isEmpty()) { //库区总数 groupGisData.setDeptNum(deptList.size()); for (Dept dept : deptList) { if (StringUtils.isBlank(dept.getXzqhdm()) || null == valuePieChart.get(dept.getXzqhdm())) { if (null == valuePieChart.get("999999")) { valuePieChart.put("999999", 0); namePieChart.put("999999", "其他区县"); } dept.setXzqhdm("999999"); } valuePieChart.put(dept.getXzqhdm(), valuePieChart.get(dept.getXzqhdm()) + 1); } } if (groupGisData.getDeptNum() > 0) { for (String mapKey : valuePieChart.keySet()) { groupGisData.getDeptList().add(new ChartPie(valuePieChart.get(mapKey) + "", namePieChart.get(mapKey), new DecimalFormat("0.0").format((double) valuePieChart.get(mapKey) / groupGisData.getDeptNum() * 100))); } } //统计重量 List<Depot> depotList = depotService.getCacheDepotList(ContextUtil.getCompanyId()); if (null != depotList && !depotList.isEmpty()) { for (Depot depot : depotList) { if (null == depot.getStorageReal()) { depot.setStorageReal(0.0); } groupGisData.setSum(groupGisData.getSum() + depot.getStorageReal()); if (StringUtils.isNotBlank(depot.getPledgeBank())) { groupGisData.setBankSum(groupGisData.getBankSum() + depot.getStorageReal()); } else { groupGisData.setNormalSum(groupGisData.getNormalSum() + depot.getStorageReal()); } } } if (groupGisData.getSum() > 0) { groupGisData.setSumPer(new DecimalFormat("0.00").format(groupGisData.getSum() / groupGisData.getSum() * 100L)); groupGisData.setBankSumPer(new DecimalFormat("0.00").format(groupGisData.getBankSum() / groupGisData.getSum() * 100L)); groupGisData.setNormalSumPer(new DecimalFormat("0.00").format(groupGisData.getNormalSum() / groupGisData.getSum() * 100L)); } return groupGisData; } /** * 大屏首页-抓拍跟踪信息 *