| | |
| | | package com.consum.base.service; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import org.apache.commons.compress.utils.Lists; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.consum.base.core.WhBusinessEnum; |
| | | import com.consum.base.core.utils.*; |
| | | import com.consum.base.core.type.MixType; |
| | | import com.consum.base.core.utils.CurrencyUtil; |
| | | import com.consum.base.core.utils.MapRowMapper; |
| | | import com.consum.base.core.utils.MapUtils; |
| | | import com.consum.base.core.utils.MapperUtil; |
| | | import com.consum.base.core.utils.PageUtil; |
| | | import com.consum.base.pojo.LWarehouseFlowParam; |
| | | import com.consum.base.pojo.query.LWhFormOutputQry; |
| | | import com.consum.base.pojo.response.OutAndInDetailVO; |
| | | import com.walker.db.page.GenericPager; |
| | | import com.walker.infrastructure.utils.StringUtils; |
| | | import com.walker.jdbc.service.BaseServiceImpl; |
| | | import org.apache.commons.compress.utils.Lists; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @ClassName LWarehouseFlowService |
| | |
| | | * @param param |
| | | * @return |
| | | */ |
| | | private String QUERY_DEPT_TAIZHANG_LIST_QUERY = "SELECT CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4 OR flow.BUSINESS_TYPE=6) THEN tTrans.OPERATOR_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.AGENCY_NAME WHEN flow.BUSINESS_TYPE=7 THEN tInventory.AGENCY_NAME END AGENCY_NAME,ware.NAME as dept_name,record.GOODS_TEMPLATE_NAME,record.BASE_GOODS_MODELS_NAME,record.THIS_TYPE,flow.BUSINESS_TYPE,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUSINESS_FORM_CODE WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4 OR flow.BUSINESS_TYPE=6) THEN tTrans.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=7 THEN tInventory.BUSINESS_FORM_CODE END BUSINESS_FORM_CODe,record.THIS_COUNT,record.INITIAL_COUNT,record.END_COUNT,flow.DEAL_TIME,CASE WHEN flow.BUSINESS_TYPE=2 AND tTrans.STATES=1 THEN record.THIS_COUNT ELSE 0 END zai_Tu_Count FROM (SELECT*FROM fin_sys_tenant_department WHERE 1=1 "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_QUERY = "SELECT CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.OUT_AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=0 THEN tScrapped.AGENCY_NAME WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=1 THEN tDepScrapped.AGENCY_NAME WHEN flow.BUSINESS_TYPE=6 AND flow.WAREHOUSE_TYPE=1 THEN tBack.AGENCY_NAME WHEN flow.BUSINESS_TYPE=7 THEN tInventory.AGENCY_NAME END AGENCY_NAME,ware.NAME AS dept_name,record.GOODS_TEMPLATE_NAME,record.BASE_GOODS_MODELS_NAME,record.THIS_TYPE,flow.BUSINESS_TYPE,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUSINESS_FORM_CODE WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=0 THEN tScrapped.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=1 THEN tDepScrapped.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=6 AND flow.WAREHOUSE_TYPE=1 THEN tBack.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=7 THEN tInventory.BUSINESS_FORM_CODE END BUSINESS_FORM_CODe,record.THIS_COUNT,record.INITIAL_COUNT,record.END_COUNT,flow.DEAL_TIME,CASE WHEN flow.BUSINESS_TYPE=2 AND tTrans.STATES=1 THEN record.THIS_COUNT ELSE 0 END zai_Tu_Count FROM (SELECT*FROM fin_sys_tenant_department WHERE 1=1 "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_RECORD = ")ware LEFT JOIN L_WAREHOUSE_FLOW flow ON ware.id=flow.WAREHOUSE_ID AND flow.WAREHOUSE_TYPE=1 LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_END = " WHERE record.id IS NOT NULL"; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_CAIGOU = " LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_DIAOBO = " LEFT JOIN L_WH_FORM_TRANSFER tTrans ON (flow.BUSINESS_TYPE=2 or flow.BUSINESS_TYPE=4 or flow.BUSINESS_TYPE=6) AND tTrans.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_DIAOBO = " LEFT JOIN L_WH_FORM_TRANSFER tTrans ON (flow.BUSINESS_TYPE=2 or flow.BUSINESS_TYPE=4) AND tTrans.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_CHUKU = " LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_PANDIAN = " LEFT JOIN L_WH_FORM_INVENTORY tInventory ON flow.BUSINESS_TYPE=7 AND tInventory.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_BAOFEI = " LEFT JOIN L_WH_FORM_SCRAPPED tScrapped ON flow.BUSINESS_TYPE=5 AND tScrapped.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_BAOFEI = " LEFT JOIN L_WH_FORM_SCRAPPED tScrapped ON flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=0 AND tScrapped.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_DEP_BAOFEI = " LEFT JOIN DEP_FORM_SCRAPPED tDepScrapped ON flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=1 AND tDepScrapped.id=flow.BUSINESS_FORM_ID "; |
| | | private String QUERY_DEPT_TAIZHANG_LIST_DEP_TUIHUI = " LEFT JOIN USING_FORM_BACK tBack ON flow.BUSINESS_TYPE=6 AND tBack.id=flow.BUSINESS_FORM_ID "; |
| | | |
| | | public GenericPager<Map<String, Object>> queryDeptTaiZhangList(LWarehouseFlowParam param) { |
| | | StringBuilder sqlQuery = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_QUERY); |
| | |
| | | StringBuilder sqlChuKu = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_CHUKU); |
| | | StringBuilder sqlBaoFei = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_BAOFEI); |
| | | StringBuilder sqlPanDian = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_PANDIAN); |
| | | StringBuilder sqlDepBaoFei = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_DEP_BAOFEI); |
| | | StringBuilder sqlDepTuiHui = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_DEP_TUIHUI); |
| | | StringBuilder sqlEnd = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_END); |
| | | |
| | | HashMap<String, Object> paramts = new HashMap<>(); |
| | |
| | | paramts.put("chuKuBusinessFormCode", businessFormCode); |
| | | sqlBaoFei.append(" and tScrapped.BUSINESS_FORM_CODE = :baoFeiBusinessFormCode"); |
| | | paramts.put("baoFeiBusinessFormCode", businessFormCode); |
| | | sqlDepBaoFei.append(" and tDepScrapped.BUSINESS_FORM_CODE = :deptBaoFeiBusinessFormCode"); |
| | | paramts.put("deptBaoFeiBusinessFormCode", businessFormCode); |
| | | sqlDepTuiHui.append(" and tBack.BUSINESS_FORM_CODE = :deptBackBusinessFormCode"); |
| | | paramts.put("deptBackBusinessFormCode", businessFormCode); |
| | | sqlPanDian.append(" and tInventory.BUSINESS_FORM_CODE = :panDianBusinessFormCode"); |
| | | paramts.put("panDianBusinessFormCode", businessFormCode); |
| | | |
| | | sqlEnd.append(" and case when flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE" + |
| | | " WHEN ( flow.BUSINESS_TYPE = 2 OR flow.BUSINESS_TYPE = 4) THEN tTrans.BUSINESS_FORM_CODE" + |
| | | " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE" + |
| | | " WHEN flow.BUSINESS_TYPE = 5 THEN tScrapped.BUSINESS_FORM_CODE" + |
| | | " WHEN flow.BUSINESS_TYPE = 5 AND flow.WAREHOUSE_TYPE = 0 THEN tScrapped.BUSINESS_FORM_CODE" + |
| | | " WHEN flow.BUSINESS_TYPE = 5 AND flow.WAREHOUSE_TYPE = 1 THEN tDepScrapped.BUSINESS_FORM_CODE" + |
| | | " WHEN flow.BUSINESS_TYPE = 6 THEN tBack.BUSINESS_FORM_CODE" + |
| | | " WHEN flow.BUSINESS_TYPE = 7 THEN tInventory.BUSINESS_FORM_CODE end =:whereBusinessFormCode"); |
| | | paramts.put("whereBusinessFormCode", businessFormCode); |
| | |
| | | .append(sqlChuKu) |
| | | .append(sqlBaoFei) |
| | | .append(sqlPanDian) |
| | | |
| | | .append(sqlDepBaoFei) |
| | | .append(sqlDepTuiHui) |
| | | .append(sqlEnd); |
| | | |
| | | return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); |
| | |
| | | + "flow.DEAL_TIME,\n" |
| | | + "flow.OPERATOR_NAME,\n" |
| | | + "record.TOTAL_PRICE\n" |
| | | + "FROM L_WAREHOUSE_FLOW flow\n" |
| | | + "FROM ( SELECT * FROM BASE_WAREHOUSE WHERE 1= 1 AND AGENCY_ID =:tenantId ) bw " |
| | | + "LEFT JOIN L_WAREHOUSE_FLOW flow ON bw.id = flow.WAREHOUSE_ID AND flow.WAREHOUSE_TYPE = 0\n" |
| | | + "LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID\n" |
| | | + "LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID\n" |
| | | + "LEFT JOIN L_WH_FORM_TRANSFER tTrans ON (flow.BUSINESS_TYPE=2 or flow.BUSINESS_TYPE=4) AND tTrans.id=flow.BUSINESS_FORM_ID\n" |
| | |
| | | + "LEFT JOIN L_WH_FORM_INVENTORY tInventory ON flow.BUSINESS_TYPE=7 AND tInventory.id=flow.BUSINESS_FORM_ID\n" |
| | | + "LEFT JOIN L_WH_FORM_SCRAPPED tScrapped ON flow.BUSINESS_TYPE=5 AND tScrapped.id=flow.BUSINESS_FORM_ID\n" |
| | | + "LEFT JOIN USING_FORM_BACK tBack ON flow.BUSINESS_TYPE=6 AND tBack.id=flow.BUSINESS_FORM_ID\n" |
| | | + "LEFT JOIN base_warehouse bw ON flow.WAREHOUSE_ID = bw.id\n" |
| | | //+ "LEFT JOIN base_warehouse bw ON flow.WAREHOUSE_ID = bw.id\n" |
| | | + "LEFT JOIN fin_sys_tenant fst ON fst.id = bw.AGENCY_ID\n" |
| | | + "WHERE record.id IS NOT NULL "); |
| | | |
| | | HashMap<String, Object> paramts = new HashMap<>(); |
| | | //机构 |
| | | if (param.getAgencyId() != null) { |
| | | paramts.put("tenantId", param.getAgencyId()); |
| | | } |
| | | //机构 |
| | | if (param.getAgencyId() != null) { |
| | | sql.append("AND fst.id like :agencyId "); |
| | |
| | | Integer businessType = outAndInDetailVO.getBusinessType(); |
| | | String mixType = MixType.getMixType(businessType + "" + thisType); |
| | | outAndInDetailVO.setMixType(mixType); |
| | | outAndInDetailVO.setTotalPrice(CurrencyUtil.convertFenToYuan(outAndInDetailVO.getTotalPrice())); |
| | | result.add(outAndInDetailVO); |
| | | }); |
| | | pageUtil.setDatas(result); |