|
|
@@ -6,6 +6,8 @@ import com.uas.platform.b2b.publicapi.service.ApCheckApiService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.sql.Date;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 对账单api
|
|
|
@@ -30,9 +32,202 @@ public class ApCheckApiServiceImpl implements ApCheckApiService {
|
|
|
* @return 对账金额
|
|
|
*/
|
|
|
@Override
|
|
|
- public Double getUserApCheckAccount(Long userUU, Long enUU, Long startTime, Long endTime) {
|
|
|
- StringBuffer stringBuffer = new StringBuffer("select ");
|
|
|
- return null;
|
|
|
+ public Double getUserApCheckAmount(Long userUU, Long enUU, Long startTime, Long endTime) {
|
|
|
+ Date fromDate = new java.sql.Date(startTime);
|
|
|
+ Date endDate = new java.sql.Date(endTime);
|
|
|
+ // 采购验收单
|
|
|
+ Double purchaseAccept = getPurchaseAcceptAmount(userUU, enUU, fromDate, endDate);
|
|
|
+ // 采购退单
|
|
|
+ Double purchaseReturn = getPurchaseReturnAmount(userUU, enUU, fromDate, endDate);
|
|
|
+ // 不良品入库单
|
|
|
+ Double badIn = getBadInAmount(userUU, enUU, fromDate, endDate);
|
|
|
+ // 不良品出库单
|
|
|
+ Double badOut = getBadOutAmount(userUU, enUU, fromDate, endDate);
|
|
|
+ // 委外验收单
|
|
|
+ Double makeAccept = getMakeAcceptAmount(userUU, enUU, fromDate, endDate);
|
|
|
+ // 委外验退单
|
|
|
+ Double makeReturn = getMakeReturnAmount(userUU, enUU, fromDate, endDate);
|
|
|
+ // 总金额
|
|
|
+ Double amount = purchaseAccept + purchaseReturn + badIn + badOut + makeAccept + makeReturn;
|
|
|
+ return amount;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取委外验退单对账金额
|
|
|
+ *
|
|
|
+ * @param userUU 用户UU
|
|
|
+ * @param enUU 企业UU
|
|
|
+ * @param fromDate 开始时间
|
|
|
+ * @param endDate 截止时间
|
|
|
+ * @return 委外验退单对账金额
|
|
|
+ */
|
|
|
+ private Double getMakeReturnAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
|
|
|
+ StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
|
|
|
+ "when 'RMB' then a.amount " +
|
|
|
+ "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
|
|
|
+ "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
+ " end), 0.00) amount from (" +
|
|
|
+ "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
|
|
|
+ "left join purc$apcheck e on c.pai_paid = e.pa_id " +
|
|
|
+ "left join make$returnitem r on c.pai_sourceid = r.mri_id " +
|
|
|
+ "left join make$orders m on r.mri_odid = m.ma_id " +
|
|
|
+ "where c.pai_sourcetable = 'make$returnitem' and m.ma_useruu = " + userUU +
|
|
|
+ " and pa_apdate >= '" + fromDate + "' " +
|
|
|
+ "and pa_apdate <= '" + endDate + "' ");
|
|
|
+ if (null != enUU) {
|
|
|
+ stringBuffer.append("and m.ma_enuu = ").append(enUU);
|
|
|
+ }
|
|
|
+ stringBuffer.append(" group by pa_currency) a");
|
|
|
+ return commonDao.queryForObject(stringBuffer.toString(), Double.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取委外验收单对账金额
|
|
|
+ *
|
|
|
+ * @param userUU 用户UU
|
|
|
+ * @param enUU 企业UU
|
|
|
+ * @param fromDate 开始时间
|
|
|
+ * @param endDate 截止时间
|
|
|
+ * @return 委外验收单对账金额
|
|
|
+ */
|
|
|
+ private Double getMakeAcceptAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
|
|
|
+ StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
|
|
|
+ "when 'RMB' then a.amount " +
|
|
|
+ "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
|
|
|
+ "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
+ " end), 0.00) amount from (" +
|
|
|
+ "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
|
|
|
+ "left join purc$apcheck e on c.pai_paid = e.pa_id " +
|
|
|
+ "left join make$acceptitem i on c.pai_sourceid = i.mai_id " +
|
|
|
+ "left join make$orders m on i.mai_odid = m.ma_id " +
|
|
|
+ "where c.pai_sourcetable = 'make$acceptitem' and m.ma_useruu = " + userUU +
|
|
|
+ " and pa_apdate >= '" + fromDate + "' " +
|
|
|
+ "and pa_apdate <= '" + endDate + "' ");
|
|
|
+ if (null != enUU) {
|
|
|
+ stringBuffer.append("and m.ma_enuu = ").append(enUU);
|
|
|
+ }
|
|
|
+ stringBuffer.append(" group by pa_currency) a");
|
|
|
+ return commonDao.queryForObject(stringBuffer.toString(), Double.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取不良品出库单对账金额
|
|
|
+ *
|
|
|
+ * @param userUU 用户UU
|
|
|
+ * @param enUU 企业UU
|
|
|
+ * @param fromDate 开始时间
|
|
|
+ * @param endDate 截止时间
|
|
|
+ * @return 不良品出库单对账金额
|
|
|
+ */
|
|
|
+ private Double getBadOutAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
|
|
|
+ StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
|
|
|
+ "when 'RMB' then a.amount " +
|
|
|
+ "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
|
|
|
+ "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
+ " end), 0.00) amount from (" +
|
|
|
+ "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
|
|
|
+ "left join purc$apcheck e on c.pai_paid = e.pa_id " +
|
|
|
+ "left join purc$badoutitem b on c.pai_sourceid = b.poi_id " +
|
|
|
+ "left join purc$orderitems i on b.poi_pdid = i.pd_id " +
|
|
|
+ "left join purc$orders o on i.pd_puid = o.pu_id " +
|
|
|
+ "where c.pai_sourcetable = 'purc$badoutitem' and o.pu_useruu = " + userUU +
|
|
|
+ " and pa_apdate >= '" + fromDate + "' " +
|
|
|
+ "and pa_apdate <= '" + endDate + "' ");
|
|
|
+ if (null != enUU) {
|
|
|
+ stringBuffer.append("and o.pu_enuu = ").append(enUU);
|
|
|
+ }
|
|
|
+ stringBuffer.append(" group by pa_currency) a");
|
|
|
+ return commonDao.queryForObject(stringBuffer.toString(), Double.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取不良品入库单对账金额
|
|
|
+ *
|
|
|
+ * @param userUU 用户UU
|
|
|
+ * @param enUU 企业UU
|
|
|
+ * @param fromDate 开始时间
|
|
|
+ * @param endDate 截止时间
|
|
|
+ * @return 不良品入库单对账金额
|
|
|
+ */
|
|
|
+ private Double getBadInAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
|
|
|
+ StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
|
|
|
+ "when 'RMB' then a.amount " +
|
|
|
+ "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
|
|
|
+ "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
+ " end), 0.00) amount from (" +
|
|
|
+ "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
|
|
|
+ "left join purc$apcheck e on c.pai_paid = e.pa_id " +
|
|
|
+ "left join purc$badinitem b on c.pai_sourceid = b.pbi_id " +
|
|
|
+ "left join purc$orderitems i on b.pbi_pdid = i.pd_id " +
|
|
|
+ "left join purc$orders o on i.pd_puid = o.pu_id " +
|
|
|
+ "where c.pai_sourcetable = 'purc$badinitem' and o.pu_useruu = " + userUU +
|
|
|
+ " and pa_apdate >= '" + fromDate + "' " +
|
|
|
+ "and pa_apdate <= '" + endDate + "' ");
|
|
|
+ if (null != enUU) {
|
|
|
+ stringBuffer.append("and o.pu_enuu = ").append(enUU);
|
|
|
+ }
|
|
|
+ stringBuffer.append(" group by pa_currency) a");
|
|
|
+ return commonDao.queryForObject(stringBuffer.toString(), Double.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取采购验退单对账金额
|
|
|
+ *
|
|
|
+ * @param userUU 用户UU
|
|
|
+ * @param enUU 企业UU
|
|
|
+ * @param fromDate 开始时间
|
|
|
+ * @param endDate 截止时间
|
|
|
+ * @return 采购验退单对账金额
|
|
|
+ */
|
|
|
+ private Double getPurchaseReturnAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
|
|
|
+ StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
|
|
|
+ "when 'RMB' then a.amount " +
|
|
|
+ "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
|
|
|
+ "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
+ " end), 0.00) amount from (" +
|
|
|
+ "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
|
|
|
+ "left join purc$apcheck e on c.pai_paid = e.pa_id " +
|
|
|
+ "left join purc$returnitem r on c.pai_sourceid = r.pri_id " +
|
|
|
+ "left join purc$orderitems i on r.pri_pdid = i.pd_id " +
|
|
|
+ "left join purc$orders o on i.pd_puid = o.pu_id " +
|
|
|
+ "where c.pai_sourcetable = 'purc$returnitem' and o.pu_useruu = " + userUU +
|
|
|
+ " and pa_apdate >= '" + fromDate + "' " +
|
|
|
+ "and pa_apdate <= '" + endDate + "' ");
|
|
|
+ if (null != enUU) {
|
|
|
+ stringBuffer.append("and o.pu_enuu = ").append(enUU);
|
|
|
+ }
|
|
|
+ stringBuffer.append(" group by pa_currency) a");
|
|
|
+ return commonDao.queryForObject(stringBuffer.toString(), Double.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取采购验收单对账金额
|
|
|
+ *
|
|
|
+ * @param userUU 用户UU
|
|
|
+ * @param enUU 企业UU
|
|
|
+ * @param fromDate 开始时间
|
|
|
+ * @param endDate 截止时间
|
|
|
+ * @return 采购验收单对账金额
|
|
|
+ */
|
|
|
+ private Double getPurchaseAcceptAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
|
|
|
+ StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
|
|
|
+ "when 'RMB' then a.amount " +
|
|
|
+ "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
|
|
|
+ "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
+ " end), 0.00) amount from (" +
|
|
|
+ " select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
|
|
|
+ " left join purc$apcheck e on c.pai_paid = e.pa_id " +
|
|
|
+ " left join purc$acceptitem a on c.pai_sourceid = a.pai_id " +
|
|
|
+ " left join purc$orderitems i on a.pai_pdid = i.pd_id " +
|
|
|
+ " left join purc$orders o on i.pd_puid = o.pu_id " +
|
|
|
+ " where c.pai_sourcetable = 'purc$acceptitem' and o.pu_useruu = " + userUU +
|
|
|
+ " and pa_apdate >= '" + fromDate + "' " +
|
|
|
+ " and pa_apdate <= '" + endDate + "' ");
|
|
|
+ if (null != enUU) {
|
|
|
+ stringBuffer.append("and o.pu_enuu = ").append(enUU);
|
|
|
+ }
|
|
|
+ stringBuffer.append(" group by pa_currency) a");
|
|
|
+ return commonDao.queryForObject(stringBuffer.toString(), Double.class);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -44,7 +239,7 @@ public class ApCheckApiServiceImpl implements ApCheckApiService {
|
|
|
* @return 对账金额
|
|
|
*/
|
|
|
@Override
|
|
|
- public Double getEnterpriseApCheckAccount(Long enUU, Long startTime, Long endTime) {
|
|
|
+ public Double getEnterpriseApCheckAmount(Long enUU, Long startTime, Long endTime) {
|
|
|
String sql = "select " +
|
|
|
"coalesce(sum(case currency " +
|
|
|
"when 'RMB' then a.amount " +
|
|
|
@@ -52,9 +247,9 @@ public class ApCheckApiServiceImpl implements ApCheckApiService {
|
|
|
" when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
|
|
|
" end), 0.00) amount from (" +
|
|
|
"select sum(pa_checkamount) amount,pa_currency currency from purc$apcheck " +
|
|
|
- "where pa_enuu = " + enUU + " and pa_checkstatus = '已确认' and pa_begindate >= '" + new java.sql.Date(startTime) + "' " +
|
|
|
- "and pa_enddate <= '" + new java.sql.Date(endTime) + "' " +
|
|
|
- "group by pa_enuu,pa_currency) a";
|
|
|
+ "where pa_custuu = " + enUU + " and pa_checkstatus = '已确认' and pa_apdate >= '" + new java.sql.Date(startTime) + "' " +
|
|
|
+ "and pa_apdate <= '" + new java.sql.Date(endTime) + "' " +
|
|
|
+ "group by pa_currency) a";
|
|
|
return commonDao.queryForObject(sql, Double.class);
|
|
|
}
|
|
|
}
|