|
|
@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.uas.platform.b2b.constant.StringConstant;
|
|
|
import com.uas.platform.b2b.core.util.BoundedExecutor;
|
|
|
import com.uas.platform.b2b.core.util.ContextUtils;
|
|
|
+import com.uas.platform.b2b.core.util.StringUtil;
|
|
|
import com.uas.platform.b2b.dao.CommonDao;
|
|
|
+import com.uas.platform.b2b.dao.CommunalLogDao;
|
|
|
import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckDoneDao;
|
|
|
@@ -12,6 +14,7 @@ import com.uas.platform.b2b.dao.PurchaseApCheckItemDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckTodoDao;
|
|
|
import com.uas.platform.b2b.dao.VendorDao;
|
|
|
import com.uas.platform.b2b.event.PurchaseApCheckReplyReleaseEvent;
|
|
|
+import com.uas.platform.b2b.model.CommunalLog;
|
|
|
import com.uas.platform.b2b.model.DateFilter;
|
|
|
import com.uas.platform.b2b.model.Enterprise;
|
|
|
import com.uas.platform.b2b.model.OrderRedDotAll;
|
|
|
@@ -31,8 +34,10 @@ import com.uas.platform.b2b.service.ErpProdIODetailService;
|
|
|
import com.uas.platform.b2b.service.OrderRedDotService;
|
|
|
import com.uas.platform.b2b.service.PurchaseApCheckService;
|
|
|
import com.uas.platform.b2b.service.UserService;
|
|
|
+import com.uas.platform.b2b.support.CollectionUtil;
|
|
|
import com.uas.platform.b2b.support.DecimalUtils;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
+import com.uas.platform.b2b.task.ApCheckTask;
|
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
@@ -81,6 +86,7 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
private final EnterpriseDao enterpriseDao;
|
|
|
private final UserService userService;
|
|
|
private final VendorDao vendorDao;
|
|
|
+ private final CommunalLogDao communalLogDao;
|
|
|
@Autowired
|
|
|
private ErpProdIODetailService erpProdIODetailService;
|
|
|
|
|
|
@@ -105,7 +111,7 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
public PurchaseApCheckServiceImpl(PurchaseApCheckDao purchaseApCheckDao, PurchaseApCheckTodoDao purchaseApCheckTodoDao,
|
|
|
PurchaseApCheckDoneDao purchaseApCheckDoneDao, PurchaseApCheckItemDao purchaseApCheckItemDao,
|
|
|
CommonDao commonDao, OrderRedDotService redDotService, EnterpriseDao enterpriseDao,
|
|
|
- UserService userService, VendorDao vendorDao) {
|
|
|
+ UserService userService, VendorDao vendorDao, CommunalLogDao communalLogDao) {
|
|
|
this.purchaseApCheckDao = purchaseApCheckDao;
|
|
|
this.redDotService = redDotService;
|
|
|
this.purchaseApCheckTodoDao = purchaseApCheckTodoDao;
|
|
|
@@ -115,6 +121,7 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
this.enterpriseDao = enterpriseDao;
|
|
|
this.userService = userService;
|
|
|
this.vendorDao = vendorDao;
|
|
|
+ this.communalLogDao = communalLogDao;
|
|
|
ExecutorService executorService = Executors.newCachedThreadPool();
|
|
|
executor = new BoundedExecutor(executorService, 1600);
|
|
|
}
|
|
|
@@ -211,11 +218,12 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
System.out.println("生成对账单批量更新来源数据失败: " + e.getMessage());
|
|
|
throw new IllegalOperatorException("保存失败!");
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
}
|
|
|
check.setCheckStatus("已作废");
|
|
|
purchaseApCheckDao.save(check);
|
|
|
+ // 更新对账数据
|
|
|
+ updateTodoApCheckCount(check.getEnUu(), check.getCustUu(), null);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
@@ -838,4 +846,69 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
threadsSignal.await();
|
|
|
return groupCountByCurrency(totalTrades);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过供应UU和客户UU更新对账数据
|
|
|
+ *
|
|
|
+ * @param vendorUU 供应商UU
|
|
|
+ * @param customerUU 客户UU
|
|
|
+ * @param vendorId 供应商客户关系表id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void updateTodoApCheckCount(Long vendorUU, Long customerUU, Long vendorId) {
|
|
|
+ String sql = updateApCheckCountSql(vendorUU, customerUU, vendorId);
|
|
|
+ if (!StringUtils.isEmpty(sql)) {
|
|
|
+ try {
|
|
|
+ commonDao.getJdbcTemplate().update(sql);
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ CommunalLog log = new CommunalLog();
|
|
|
+ log.setTitle("更新客户关系表对账数据--更新失败");
|
|
|
+ log.setMessage("id: " + vendorId);
|
|
|
+ log.setTime(System.currentTimeMillis());
|
|
|
+ communalLogDao.save(log);
|
|
|
+ }
|
|
|
+ CommunalLog log = new CommunalLog();
|
|
|
+ log.setTitle("作废应收对账单供应商关系对账数据");
|
|
|
+ log.setMessage("id: " + vendorId);
|
|
|
+ log.setTime(System.currentTimeMillis());
|
|
|
+ communalLogDao.save(log);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更细对账数据sql语句
|
|
|
+ *
|
|
|
+ * @param vendorUU 供应商UU
|
|
|
+ * @param customerUU 客户UU
|
|
|
+ * @param vendorId 供应商客户关系id
|
|
|
+ * @return sql
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public String updateApCheckCountSql(Long vendorUU, Long customerUU, Long vendorId) {
|
|
|
+ Vendor vendor = null;
|
|
|
+ if (null == vendorId) {
|
|
|
+ List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(customerUU, vendorUU);
|
|
|
+ if (!CollectionUtils.isEmpty(vendors)) {
|
|
|
+ vendor = vendors.get(0);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ vendor = vendorDao.findOne(vendorId);
|
|
|
+ }
|
|
|
+ if (null != vendor) {
|
|
|
+ List<ApCheckAmount> tradeCounts = null;
|
|
|
+ try {
|
|
|
+ tradeCounts = getDueTrade(vendor.getVendEnUU(), vendor.getMyEnUU());
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ String tradeString;
|
|
|
+ if (!CollectionUtil.isEmpty(tradeCounts)) {
|
|
|
+ tradeString = JSON.toJSONString(tradeCounts);
|
|
|
+ } else {
|
|
|
+ tradeString = "";
|
|
|
+ }
|
|
|
+ return String.format(ApCheckTask.UPDATE_COUNT_SQL, tradeString, vendor.getId());
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|