consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -8,7 +8,11 @@ import com.consum.base.service.BaseGoodsTemplateServiceImpl; import com.consum.base.service.BaseWarehouseServiceImpl; import com.consum.base.service.LWhGoodsService; import com.consum.model.po.*; import com.consum.model.po.BaseGoodsModels; import com.consum.model.po.BaseGoodsTemplate; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.SDictData; import com.consum.model.vo.BaseGoodsTemplateVo; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; @@ -16,14 +20,18 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Description 物品模板 @@ -183,7 +191,7 @@ @GetMapping("/query/goodsTemplate") public ResponseValue queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId) { List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, categoryId,null,null); List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, categoryId, null, null); if (list == null) { return ResponseValue.error("查询失败!"); } @@ -193,7 +201,7 @@ @ApiOperation(value = "查询机构下默认仓库下的分类模板信息", notes = "查询机构下默认仓库下的分类模板信息") @ApiImplicitParams({ @ApiImplicitParam(name = "agencyId", value = "父级机构id", required = true, dataType = "Long", paramType = "query"), @ApiImplicitParam(name = "agencyId", value = "父级机构id", required = true, dataType = "java.lang.Long", paramType = "query"), @ApiImplicitParam(name = "categoryId", value = "分类id", required = true, dataType = "Long", paramType = "query") }) @GetMapping("/query/warehouse/goods") @@ -209,12 +217,13 @@ } map.put("warehouseId", baseWarehouseList.get(0).getId()); String sql = "SELECT DISTINCT bgt.id,bgt.GOODS_NAME FROM l_wh_goods g LEFT JOIN base_goods_template bgt ON g.BASE_GOODS_TEMPLATE_ID = bgt.id " + "WHERE WAREHOUSE_TYPE = 0 " + "AND WAREHOUSE_ID = :warehouseId " + "AND CATEGORY_ID = :categoryId " // 1:集采,2:自退货 + "AND BUY_TYPE =1"; String sql = "SELECT DISTINCT bgt.id,bgt.GOODS_NAME, CLASSIFICATION type FROM l_wh_goods g LEFT JOIN base_goods_template bgt ON g.BASE_GOODS_TEMPLATE_ID = bgt.id " + "WHERE WAREHOUSE_TYPE = 0 " + "AND WAREHOUSE_ID = :warehouseId " + "AND CATEGORY_ID = :categoryId " // 1:集采,2:自采 + "AND BUY_TYPE =1"; List<GoodsTemplateVO> resultList = Lists.newArrayList(); List<Map<String, Object>> goodsTemplateList = lWhGoodsService.select(sql, map, new MapperUtil()); consum-base/src/main/java/com/consum/base/controller/FinSysTenantDepartmentController.java
@@ -3,7 +3,6 @@ import com.consum.base.BaseController; import com.consum.base.pojo.FinSysTenantDepartmentParam; import com.consum.base.service.FinSysTenantDepartmentServiceImpl; import com.consum.base.service.FinSysTenantServiceImpl; import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; import com.walker.db.page.GenericPager; @@ -34,8 +33,6 @@ @Autowired private FinSysTenantDepartmentServiceImpl departmentService; @Autowired private FinSysTenantServiceImpl finSysTenantService; /** * @Description 新增 consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -64,7 +64,7 @@ */ @ApiOperation(value = "新增出库单", notes = "新增出库单") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "出库单实体", required = true, dataType = "LWhFormOutputInsertParam", paramType = "body") @ApiImplicitParam(name = "param", value = "出库单实体", dataType = "lWhFormOutputParam", dataTypeClass = LWhFormOutputParam.class, paramType = "body") }) @PostMapping("/add") public ResponseValue add() { @@ -180,7 +180,6 @@ return ResponseValue.success("查询成功!", lWhFormOutputExtendVO); } @ApiOperation(value = "查询出库单详情明细", notes = "查询出库单详情明细") consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
@@ -1,10 +1,13 @@ package com.consum.base.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.consum.base.BaseController; 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.LWhFormScrappedParam; import com.consum.base.pojo.excel.ScrappedInfoExport; import com.consum.base.pojo.query.LWhFormScrappedQry; import com.consum.base.pojo.response.FromTransferTemplateInfoVO; import com.consum.base.pojo.response.LWhFormScrappedExtendVO; @@ -18,10 +21,16 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -51,7 +60,7 @@ */ @ApiOperation(value = "新增报废单", notes = "新增报废单") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "报废单信息", dataType = "LWhFormScrappedParam", paramType = "body") @ApiImplicitParam(name = "param") }) @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormScrappedParam param) { @@ -149,12 +158,24 @@ * @Date 2023/11/2 */ @GetMapping("/export") public ResponseValue export(Long id) { public ResponseValue export(Long id, HttpServletRequest request, HttpServletResponse response) { if (id == null) { return ResponseValue.error("报废单id为空"); } //LWhFormScrappedExtendVO scrappedExtend = this.lWhFormScrappedService.export(id, this.getSysInfo()); return ResponseValue.success(null); try { OutputStream outputStream = response.getOutputStream(); List<Map<String, Object>> export = lWhFormScrappedService.export(id); ExportParams exportParams = new ExportParams("报废单登记", "报废单登记"); Workbook sheets = ExcelExportUtil.exportExcel(exportParams, ScrappedInfoExport.class, export); // 设置响应头 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("报废单登记.xlsx", "utf-8")); sheets.write(outputStream); sheets.close(); } catch (IOException e) { throw new RuntimeException(e); } return ResponseValue.success(); } consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -5,11 +5,11 @@ import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.LWhFormTransferParam; import com.consum.base.pojo.ProcureModelInfoDto; import com.consum.base.pojo.UseRecordDto; import com.consum.base.pojo.UseRecordSkuDto; import com.consum.base.pojo.query.TransferQry; import com.consum.base.pojo.request.LWhFormTransferParam; import com.consum.base.pojo.response.FormTransferVO; import com.consum.base.pojo.response.FromTransferTemplateInfoVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; @@ -146,42 +146,6 @@ formTransferVO.setFromTransferTemplateInfoList(templateInfoList); result.add(formTransferVO); /*// 查询型号数量 LWhProcureModel lWhProcureModel = new LWhProcureModel(); Integer businessType = item.getBusinessType(); // TODO 调拨=0 分发=1 退回=2 switch (businessType) { case 0: lWhProcureModel.setBusinessType(2); break; case 1: lWhProcureModel.setBusinessType(4); break; } lWhProcureModel.setBusinessId(item.getId()); List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel); List<LWhProcureModelVo> lWhProcureModelVoList = new ArrayList<>(); if (!CollectionUtils.isEmpty(models)) { models.forEach(model -> { LWhProcureModelVo lWhProcureModelVo = new LWhProcureModelVo(); BeanUtils.copyProperties(model, lWhProcureModelVo); Long baseGoodsModelsId = model.getBaseGoodsModelsId(); Long businessId = model.getBusinessId(); Long id = model.getId(); LWhProcureModelUser lWhFormTransferUser = new LWhProcureModelUser(); lWhFormTransferUser.setTransBusinessId(businessId); lWhFormTransferUser.setWhProcureModelId(id); lWhFormTransferUser.setBaseGoodsModelsId(baseGoodsModelsId); List<LWhProcureModelUser> procureModelUserList = lWhProcureModelUserService.select(lWhFormTransferUser); lWhProcureModelVo.setProcureModelUsersList(procureModelUserList); lWhProcureModelVoList.add(lWhProcureModelVo); }); } formTransferExtend.setModels(lWhProcureModelVoList); newDatas.add(formTransferExtend);*/ }); } try { @@ -327,12 +291,11 @@ return ResponseValue.success(transferInfoDetailsVoGenericPager); } /** * 部门物品使用记录 * * @param procureModelInfoDto * @return */ @ApiOperation(value = "使用人修改", notes = "使用人修改") @ApiImplicitParams({ @ApiImplicitParam(name = "procureModelInfoDto", value = "使用信息", required = true) }) @PostMapping("/useInfo/update") public ResponseValue infoUpdate(@RequestBody List<ProcureModelInfoDto> procureModelInfoDto) { @@ -385,6 +348,10 @@ * @param transferOrderId * @return */ @ApiOperation(value = "部门物品使用人记录", notes = "部门物品使用人记录") @ApiImplicitParams({ @ApiImplicitParam(name = "transferOrderId", value = "调拨单id", required = true) }) @GetMapping("/use/record") public ResponseValue useRecord(Long transferOrderId) { @@ -394,6 +361,8 @@ } LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord(); lWhProcureModelUserRecord.setTransBusinessId(transferOrderId); String sql = "select * from l_wh_procure_model_user_record pmur inner join l_wh_procure_model_user pmu on pmur.TRANS_BUSINESS_ID = pmu. " + transferOrderId; List<LWhProcureModelUserRecord> modelUserRecords = lWhProcureModelUserRecordService.select(lWhProcureModelUserRecord); List<UseRecordDto> result = Lists.newArrayList(); @@ -402,10 +371,10 @@ UseRecordDto useRecordDto = new UseRecordDto(); useRecordDto.setId(id); useRecordDto.setUpdateUserName(item.getOperatorName()); useRecordDto.setUpdateTime(DateUtils.toShowDate(item.getDealTime())); useRecordDto.setUpdateTime(item.getDealTime()); LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setWhProcureModelId(id); lWhProcureModelUser.setProcureModelUserRecordId(id); List<LWhProcureModelUser> procureModelUserList = lWhProcureModelUserService.select(lWhProcureModelUser); List<UseRecordSkuDto> recordSkuDtoList = Lists.newArrayList(); consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java
@@ -11,7 +11,7 @@ * @Author 卢庆阳 * @Date 2023/10/27 */ @ApiModel(value = "LWhFormOutputInsertParam") @ApiModel @Data public class LWhFormOutputParam extends ParamRequest { consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java
@@ -1,34 +1,41 @@ package com.consum.base.pojo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.Data; @Data @ApiModel(value = "LWhFormScrappedParam") @ApiModel(value = "新增报废单信息") public class LWhFormScrappedParam { /** * 机构id */ @ApiModelProperty(value = "机构id") private Long agencyId; /** * 仓库编号 */ @ApiModelProperty(value = "仓库编号") private Long warehouseId; /** * 操作人 */ @ApiModelProperty(value = "操作人") private Long operatorId; /** * 报废时间 */ @ApiModelProperty(value = "报废时间") private Long dealTime; /** * 附件 */ @ApiModelProperty(value = "附件") private String uploadFiles; @ApiModelProperty(value = "报废商品信息") private List<LWhFormScrappedGoodsInfoParam> scrappedGoodsInfo; consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferGoodsInfoParam.java
@@ -19,14 +19,14 @@ private Long id; //分类编号 private Long baseCategoryId; //类别 private String type; //物品模版编号 private Long baseGoodsTemplateId; //物品模版名字 private String goodsTemplateName; //供应商 private String supplier; private String goodsTemplateName; private Integer sort; @ApiModelProperty(value = "单据类型 1 采购2 调拨 3出库4部门分发") private Integer procureModelBusinessType; consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelUserParam.java
@@ -1,5 +1,6 @@ package com.consum.base.pojo; import io.swagger.annotations.ApiModel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -7,12 +8,13 @@ /** * @author asus * @version 1.0 * @description: TODO * @description: 物品分发使用人信息 * @date 2023/11/6 9:28 */ @Data @AllArgsConstructor @NoArgsConstructor @ApiModel(value = "物品分发使用人信息") public class LWhProcureModelUserParam { /** consum-base/src/main/java/com/consum/base/pojo/LWhTransferModelParam.java
@@ -19,6 +19,8 @@ // //规格型号编号 @ApiModelProperty(value = "规格型号编号") private Long baseGoodsModelsId; @ApiModelProperty(value = "规格型号名字") private String baseGoodsModelsName; //价格 @ApiModelProperty(value = "价格") private Long price; @@ -31,6 +33,8 @@ // 计量单位 @ApiModelProperty(value = "计量单位") private String baseUnit; @ApiModelProperty(value = "剩余数量") private Integer num; @ApiModelProperty(value = "用户规格型号") private List<LWhProcureModelUserParam> procureModelUserList; consum-base/src/main/java/com/consum/base/pojo/UseRecordDto.java
@@ -17,7 +17,7 @@ // 修改人 private String updateUserName; // 修改时间 private String updateTime; private Long updateTime; // 规格型号 private List<UseRecordSkuDto> recordSkuDtoList; consum-base/src/main/java/com/consum/base/pojo/excel/ScrappedInfoExport.java
New file @@ -0,0 +1,39 @@ package com.consum.base.pojo.excel; import cn.afterturn.easypoi.excel.annotation.ExcelEntity; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.NoArgsConstructor; /** * @author asus * @version 1.0 * @description: 报废单导出信息 * @date 2023/11/23 10:10 */ @NoArgsConstructor @Data public class ScrappedInfoExport { @JsonProperty("departmentName") @ExcelEntity(name = "部门") private String departmentName; @JsonProperty("dealTime") private Long dealTime; @JsonProperty("scrappedName") private String scrappedName; @JsonProperty("businessFormCode") private String businessFormCode; @JsonProperty("counts") private Integer counts; @JsonProperty("baseGoodsModelsName") private String baseGoodsModelsName; @JsonProperty("beiz") private Object beiz; @JsonProperty("operatorName") private String operatorName; @JsonProperty("agencyName") private String agencyName; @JsonProperty("goodsTemplateName") private String goodsTemplateName; } consum-base/src/main/java/com/consum/base/pojo/query/TransferQry.java
@@ -83,6 +83,9 @@ @ApiModelProperty(value = "页大小") private Integer pageSize; @ApiModelProperty(value = "查询类型") private Integer qryType; // /** // * 入库仓库编号 // */ consum-base/src/main/java/com/consum/base/pojo/request/LWhFormTransferParam.java
File was renamed from consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferParam.java @@ -1,5 +1,6 @@ package com.consum.base.pojo; package com.consum.base.pojo.request; import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; @@ -12,7 +13,7 @@ * @Author 卢庆阳 * @Date 2023/10/30 */ @ApiModel(value = "单据新增信息") @ApiModel(value = "调拨单据新增信息") @Data @AllArgsConstructor @NoArgsConstructor @@ -45,6 +46,12 @@ */ @ApiModelProperty(value = "单据类型。0仓库调拨;1部门分发;2部门物品回退") private Integer transferBusinessType; @ApiModelProperty(value = "部门id") private Integer departmentId; @ApiModelProperty(value = "领取人名字") private String operatorName; /** * 调拨单型号 */ consum-base/src/main/java/com/consum/base/pojo/response/DepartGoodsUseInfo.java
New file @@ -0,0 +1,22 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import lombok.Data; /** * @author asus * @version 1.0 * @description: 部门物品使用人信息 * @date 2023/11/23 15:30 */ @Data @ApiModel public class DepartGoodsUseInfo { private Long id; private String name; private Integer num; private Long tel; } consum-base/src/main/java/com/consum/base/pojo/response/FormTransferGoodsVO.java
@@ -25,6 +25,9 @@ private String goodsName; //分类类型 private String type; private List<GoodsModelVO> models; } consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
@@ -1,11 +1,12 @@ package com.consum.base.pojo.response; import java.util.List; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @description: 物品型号信息 * @date 2023/11/11 17:10 */ @Data @@ -23,5 +24,6 @@ private String scrappedName; private List<DepartGoodsUseInfo> useInfo; } consum-base/src/main/java/com/consum/base/pojo/response/GoodsTemplateVO.java
@@ -15,5 +15,6 @@ private Long id; private String goodsName; private String type; } consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java
@@ -1,6 +1,7 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.Data; @@ -11,67 +12,99 @@ * @date 2023/11/15 18:02 */ @Data @ApiModel(value = "LWHFromTransferExtendVO") @ApiModel(value = "调拨单扩展详细信息") public class LWHFromTransferExtendVO { // 主键 private Long id; // 属性列表 @ApiModelProperty(value = "出入库id") private Long inWarehouseFormId; @ApiModelProperty(value = "入库流水id") private Long inWarehouseFlowId; @ApiModelProperty(value = "出库流水id") private Long outWarehouseFlowId; @ApiModelProperty(value = "出库单id") private Long outWarehouseFormId; @ApiModelProperty(value = "业务类型0仓库调拨;1部门分发;2部门物品回退") private Integer businessType; @ApiModelProperty(value = "业务单号") private String businessFormCode; @ApiModelProperty(value = "入库单类型0机构1部门") private Integer inWarehouseType; @ApiModelProperty(value = "入库仓库id") private Long inWarehouseId; @ApiModelProperty(value = "入库仓库名称") private String inWarehouseName; @ApiModelProperty(value = "出库单类型0机构1部门") private Integer outWarehouseType; @ApiModelProperty(value = "出库仓库id") private Long outWarehouseId; @ApiModelProperty(value = "出库仓库名称") private String outWarehouseName; @ApiModelProperty(value = "入库机构id") private Long inAgencyId; @ApiModelProperty(value = "入库机构名称") private String inAgencyName; @ApiModelProperty(value = "出库机构id") private Long outAgencyId; @ApiModelProperty(value = "出库机构名称") private String outAgencyName; @ApiModelProperty(value = "操作人id") private Long operatorId; @ApiModelProperty(value = "操作人名称") private String operatorName; @ApiModelProperty(value = "创建时间") private Long createTime; @ApiModelProperty(value = "0=待出库;1=待接收;2=已入库库:4=已撤销") private Integer states; @ApiModelProperty(value = "入库操作人id") private Long inOperatorId; @ApiModelProperty(value = "入库操作人名称") private String inOperatorName; @ApiModelProperty(value = "入库时间") private Long inTime; @ApiModelProperty(value = "出库操作人id") private Long outOperatorId; @ApiModelProperty(value = "出库操作人名称") private String outOperatorName; @ApiModelProperty(value = "出库时间") private Long outputTime; @ApiModelProperty(value = "手续") private String procureDoc; @ApiModelProperty(value = "部门名称") private String departmentName; @ApiModelProperty(value = "电话") private String tel; private List<FormTransferGoodsVO> formTransferGoods; } consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
@@ -67,10 +67,9 @@ private static String QUERY_LIST = "SELECT fs.* FROM l_wh_form_scrapped fs left join l_wh_form_scrapped_goods fsg on fs.id = fsg.FORM_SCRAPPED_ID WHERE 1 = 1 "; private static final String QUERY_BF_DETAIL_LIST = "select fs.id,fs.BUSINESS_FORM_CODE,fsg.GOODS_TEMPLATE_NAME,fsg.BASE_GOODS_MODELS_NAME,fsg.COUNTS," + "fs.AGENCY_NAME,OPERATOR_NAME,DEAL_TIME from l_wh_form_scrapped fs " + "inner join l_wh_form_scrapped_goods fsg on fs.ID = fsg.FORM_SCRAPPED_ID where 1=1 "; private static final String QUERY_BF_DETAIL_LIST = "select fs.id,fs.BUSINESS_FORM_CODE,fsg.GOODS_TEMPLATE_NAME,fsg.BASE_GOODS_MODELS_NAME,fsg.COUNTS," + "fs.AGENCY_NAME,OPERATOR_NAME,DEAL_TIME from l_wh_form_scrapped fs " + "inner join l_wh_form_scrapped_goods fsg on fs.ID = fsg.FORM_SCRAPPED_ID where 1=1 "; /** * 新增 @@ -78,10 +77,9 @@ * @param param * @param currentUser 当前登录用户 * @param sysInfo 当前登录用户 * @return * @return 1.新增报废单 2.新增报废单物品 */ //1.新增报废单 //2.新增报废单物品 public int add(LWhFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { //1.新增报废单记录 LWhFormScrapped lWhFormScrapped = new LWhFormScrapped(); @@ -336,6 +334,18 @@ return pageUtil; } public List<Map<String, Object>> export(Long id) { String sql = "SELECT BUSINESS_FORM_CODE, fs.DEAL_TIME, OPERATOR_NAME, AGENCY_NAME, GOODS_TEMPLATE_NAME, BASE_GOODS_MODELS_NAME, DEPARTMENT_NAME, COUNTS, SCRAPPED_NAME, BEIZ " + "FROM l_wh_form_scrapped_goods fsg LEFT JOIN l_wh_form_scrapped fs ON fs.id = fsg.FORM_SCRAPPED_ID WHERE " + "fs.ID = :id and STATES = 1"; Map<String, Object> param = new HashMap<>(); param.put("id", id); List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); return select; } /** * @Description 导出报废登记单 * @Author 卢庆阳 consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -3,14 +3,14 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.utils.IdUtil; 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.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.LWhFormTransferParam; import com.consum.base.pojo.LWhProcureModelUserParam; import com.consum.base.pojo.LWhTransferModelParam; import com.consum.base.pojo.query.TransferQry; import com.consum.base.pojo.request.LWhFormTransferParam; import com.consum.base.pojo.response.DepartGoodsUseInfo; import com.consum.base.pojo.response.FormTransferGoodsVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; @@ -23,6 +23,7 @@ import com.consum.model.po.LWhGoodsRecord; import com.consum.model.po.LWhProcureModel; import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.LWhProcureModelUserRecord; import com.consum.model.vo.LWhFormOutputVo; import com.consum.model.vo.LWhGoodsRecordVo; import com.iplatform.model.po.S_user_core; @@ -69,8 +70,13 @@ private BaseGoodsModelsServiceImpl baseGoodsModelsService; @Autowired private LWhProcureModelUserServiceImpl lWhProcureModelUserService; @Autowired private LWhProcureModelUserRecordServiceImpl lWhProcureModelUserRecordService; private static String QUERY_FORM_TRANSFER_LIST = "SELECT * FROM l_wh_form_transfer WHERE 1 = 1"; private static String QUERY_FORM_TRANSFER_LIST = "SELECT ft.* FROM l_wh_form_transfer ft " + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; /** @@ -91,19 +97,33 @@ lWhFormTransfer.setBusinessType(businessType); lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Transfer)); Long warehouseId = param.getInWarehouseId(); lWhFormTransfer.setInWarehouseId(warehouseId); //入库仓库为当前用户的默认仓库 String tenantId = sysInfo.getTenantId(); BaseWarehouse warehouse = baseWarehouseService.getDefaultWarehouseByAgencyId(Long.valueOf(tenantId)); if (warehouse == null) { log.error("仓库不存在"); throw new Exception("仓库不存在"); // 调拨类型单据 if (businessType == 0) { //入库仓库为当前用户的默认仓库 String tenantId = sysInfo.getTenantId(); String tenantName = sysInfo.getTenantName(); BaseWarehouse warehouse = baseWarehouseService.getDefaultWarehouseByAgencyId(Long.valueOf(tenantId)); if (warehouse == null) { log.error("仓库不存在"); throw new Exception("仓库不存在"); } lWhFormTransfer.setInWarehouseId(warehouse.getId()); lWhFormTransfer.setInWarehouseName(warehouse.getWarehouseName()); lWhFormTransfer.setInAgencyId(Long.valueOf(tenantId)); lWhFormTransfer.setInAgencyName(tenantName); } lWhFormTransfer.setInWarehouseId(warehouse.getId()); lWhFormTransfer.setInWarehouseName(warehouse.getWarehouseName()); lWhFormTransfer.setInAgencyId(Long.valueOf(tenantId)); lWhFormTransfer.setInAgencyName(sysInfo.getTenantName()); //当业务类型为部门分发时 添加部门分发记录和使用人 if (businessType == 1) { //部门分发类型 出库仓库类型0机构1部门 // TODO 出库业务类型 联系电话 lWhFormTransfer.setOutWarehouseType(1); //lWhFormTransfer.setOutOperatorId(); lWhFormTransfer.setOutOperatorName(param.getOperatorName()); lWhFormTransfer.setOutputTime(param.getCreateTime()); } //根据机构id查询调拨机构 FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(param.getOutAgencyId())); if (finSysTenant == null) { @@ -119,12 +139,6 @@ lWhFormTransfer.setStates(0); lWhFormTransfer.setProcureDoc(param.getProcureDoc()); //3.当业务类型为部门分发时 添加部门分发记录和使用人 if (businessType == 1) { //部门分发类型 出库仓库类型0机构1部门 // TODO 出库业务类型 联系电话 lWhFormTransfer.setOutWarehouseType(1); } int flag1 = this.insert(lWhFormTransfer); if (flag1 == 0) { log.error("新增调拨单失败"); @@ -138,44 +152,48 @@ for (LWhTransferModelParam model : transferGoodsInfo.getModels()) { LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setId(IdUtil.generateId()); // 物品型号业务类型 // 挑拨业务类型转换到物品类型 // 物品类型 1 采购2 调拨 3出库4部门分发 switch (businessType) { case 0: lWhProcureModel.setBusinessType(2); break; case 1: lWhProcureModel.setBusinessType(4); break; default: lWhProcureModel.setBusinessType(null); Long baseGoodsModelsId = model.getBaseGoodsModelsId(); if (businessType == 0) { lWhProcureModel.setBusinessType(2); //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null); lWhProcureModel.setWorehouseCount(goodsNum); } lWhProcureModel.setBusinessId(lWhFormTransferId); lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); lWhProcureModel.setCounts(model.getCounts()); lWhProcureModel.setBusinessId(lWhFormTransferId); lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId); //根据型号id查询型号 BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.get(new BaseGoodsModels(model.getBaseGoodsModelsId())); BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.get(new BaseGoodsModels(baseGoodsModelsId)); if (baseGoodsModels != null) { lWhProcureModel.setBaseGoodsModelsName(baseGoodsModels.getModelName()); } //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, model.getBaseGoodsModelsId(), 1, null); lWhProcureModel.setWorehouseCount(goodsNum); lWhProcureModel.setSupplier(transferGoodsInfo.getSupplier()); //3.当业务类型为部门分发时 添加部门分发记录和使用人 // 单据类型 1 采购2 调拨 3出库4部门分发 //TODO 部门分发类型 //部门分发类型 if (businessType == 1) { lWhProcureModel.setBusinessType(4); LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord(); lWhProcureModelUserRecord.setId(IdUtil.generateId()); lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId); lWhProcureModelUserRecord.setOperatorId(sysInfo.getId()); lWhProcureModelUserRecord.setOperatorName(sysInfo.getUserName()); lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord); List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList(); for (LWhProcureModelUserParam lWhProcureModelUserParam : model.getProcureModelUserList()) { LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setId(IdUtil.generateId()); lWhProcureModelUser.setTransBusinessId(lWhFormTransferId); lWhProcureModelUser.setWhProcureModelId(lWhProcureModel.getId()); lWhProcureModelUser.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); lWhProcureModelUser.setBaseGoodsModelsId(baseGoodsModelsId); lWhProcureModelUser.setNowUserName(lWhProcureModelUserParam.getNowUserName()); lWhProcureModelUser.setNowUserPhone(lWhProcureModelUserParam.getNowUserPhone()); lWhProcureModelUser.setGoodsNum(lWhProcureModelUserParam.getGoodsNum()); lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); procureModelUserList.add(lWhProcureModelUser); } int procureInsertNum = lWhProcureModelUserService.insert(procureModelUserList); @@ -184,6 +202,7 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } } modelList.add(lWhProcureModel); @@ -214,10 +233,13 @@ sql.append(" and BUSINESS_FORM_CODE = :businessFormCode "); paramts.put("businessFormCode", param.getBusinessFormCode()); } if (param.getQryType() != null) { sql.append("and ft.BUSINESS_TYPE = :businessType "); paramts.put("businessType", param.getQryType()); } //物品名称 if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append( " AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=2 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)"); sql.append("AND bgt.GOODS_NAME LIKE :goodsTemplateName "); paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } //调拨机构 @@ -242,11 +264,11 @@ } //申请时间 if (param.getCreateTimeStart() != null) { sql.append(" and CREATE_TIME >=:createTimeStart "); sql.append(" and ft.CREATE_TIME >=:createTimeStart "); paramts.put("createTimeStart", param.getCreateTimeStart() * 1000000); } if (param.getCreateTimeEnd() != null) { sql.append(" and CREATE_TIME <:createTimeEnd "); sql.append(" and ft.CREATE_TIME <:createTimeEnd "); paramts.put("createTimeEnd", param.getCreateTimeEnd() * 1000000 + 240000); } //接收时间 @@ -259,7 +281,7 @@ paramts.put("inTimeEnd", param.getEndTime() * 1000000 + 240000); } sql.append(" ORDER BY CREATE_TIME DESC"); sql.append(" ORDER BY ft.CREATE_TIME DESC"); GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormTransfer()); return genericPager; @@ -278,10 +300,9 @@ BeanUtils.copyProperties(lWhFormTransfer, result); } String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME " String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; Map<String, Object> paramMap = new HashMap<>(); paramMap.put("id", result.getId()); List<Map<String, Object>> procureModelList = lWhFormOutputService.select(sql, paramMap, new MapperUtil()); @@ -293,36 +314,44 @@ List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount " + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id"; + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id"; List<Map<String, Object>> modelList = lWhFormOutputService.select(sql2, paramMap, new MapperUtil()); modelList.forEach(item -> { GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); Integer businessType = result.getBusinessType(); String type = procureTemplateInfoVO.getType(); //部门分发需要查询使用信息 if (businessType == 1 && "A".equals(type)) { Long procureModelId = goodsModelVO.getId(); LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setWhProcureModelId(procureModelId); List<LWhProcureModelUser> procureModelUserList = this.lWhProcureModelUserService.select(lWhProcureModelUser); if (!CollectionUtils.isEmpty(procureModelUserList)) { List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList(); procureModelUserList.forEach(useInfo -> { Integer goodsNum = useInfo.getGoodsNum(); Long nowUserPhone = useInfo.getNowUserPhone(); String nowUserName = useInfo.getNowUserName(); DepartGoodsUseInfo departGoodsUseInfo = new DepartGoodsUseInfo(); departGoodsUseInfo.setName(nowUserName); departGoodsUseInfo.setNum(goodsNum); departGoodsUseInfo.setTel(nowUserPhone); departGoodsUseInfoList.add(departGoodsUseInfo); }); goodsModelVO.setUseInfo(departGoodsUseInfoList); } // TODO 部门名称 // result.setDepartmentName(); } goodsModelVOList.add(goodsModelVO); }); procureTemplateInfoVO.setModels(goodsModelVOList); formTransferGoods.add(procureTemplateInfoVO); } result.setFormTransferGoods(formTransferGoods); /*//2.查询物品型号 //List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); List<LWhProcureModel> models = this.lWhProcureModelService.getModelByForm(null, id); if (!CollectionUtils.isEmpty(models)) { List<LWhProcureModelVo> lWhProcureModelVoList = Lists.newArrayList(); for (LWhProcureModel model : models) { LWhProcureModelVo lWhProcureModelVo = new LWhProcureModelVo(); BeanUtils.copyProperties(model, lWhProcureModelVo); LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setWhProcureModelId(model.getId()); List<LWhProcureModelUser> select = lWhProcureModelUserService.select(lWhProcureModelUser); lWhProcureModelVo.setProcureModelUsersList(select); lWhProcureModelVoList.add(lWhProcureModelVo); } vo.setModels(lWhProcureModelVoList); }*/ return result; } @@ -380,15 +409,12 @@ HashMap<String, Object> paramts = new HashMap<>(); StringBuilder sql = new StringBuilder( "SELECT\n" + "\tft.id,\n" + "\tft.BUSINESS_FORM_CODE businessCode,\n" + "\tbgt.GOODS_NAME goodsName,\n" + "\tbgt.CLASSIFICATION goodsType,\n" + "\tbgm.id goodsModelId,\n" + "\tbgm.MODEL_NAME goodsModelName,\n" + "\tpm.COUNTS goodsCount,\n" + "\tfst.`name` tennatName,\n" + "\tfstd.NAME departmentName,\n" + "\tft.OPERATOR_ID distributor,\n" + "\tft.CREATE_TIME TIME \n" + "FROM\n" + "\tl_wh_form_transfer ft\n" + "\tLEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" + "\tLEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = pm.BASE_GOODS_MODELS_ID\n" + "\tLEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID\n" + "\tLEFT JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID\n" + "\tLEFT JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID \n" + "\tLEFT JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where 1=1 "); "SELECT ft.id,ft.BUSINESS_FORM_CODE,bgt.GOODS_NAME,bgt.CLASSIFICATION type,bgm.id goodsModelId,bgm.MODEL_NAME goodsModelName,pm.COUNTS goodsCount,fst.`name` tenantName," + "fstd.NAME departmentName,ft.OPERATOR_ID,ft.CREATE_TIME FROM l_wh_form_transfer ft " + "inner JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID " + "inner JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "inner JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "inner JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID " + "inner JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID " + "inner JOIN fin_sys_tenant fst ON fst.id = fstd.TENANT_ID where ft.BUSINESS_TYPE =1 "); //单号 if (StringUtils.isNotEmpty(transferQry.getBusinessFormCode())) { sql.append("AND BUSINESS_FORM_CODE like :businessFormCode "); @@ -416,18 +442,18 @@ paramts.put("OPERATOR_NAME", transferQry.getOperatorName()); } //申请时间 if (transferQry.getCreateTimeStart() != null) { if (transferQry.getStartTime() != null) { sql.append("AND ft.CREATE_TIME >=:createTimeStart "); paramts.put("createTimeStart", transferQry.getCreateTimeStart() * 1000000); paramts.put("createTimeStart", transferQry.getStartTime() * 1000000); } if (transferQry.getCreateTimeEnd() != null) { if (transferQry.getEndTime() != null) { sql.append("AND ft.CREATE_TIME <:createTimeEnd "); paramts.put("createTimeEnd", transferQry.getCreateTimeEnd() * 1000000 + 240000); paramts.put("createTimeEnd", transferQry.getEndTime() * 1000000 + 240000); } sql.append("ORDER BY ft.CREATE_TIME DESC"); GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, transferQry.getPageNum(), transferQry.getPageSize(), new MapRowMapper()); new MapperUtil()); return mapGenericPager; } @@ -436,23 +462,13 @@ public GenericPager<Map<String, Object>> queryFormTransferDetailList(TransferQry param) { HashMap<String, Object> params = new HashMap<>(); StringBuilder sql = new StringBuilder("SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " bgt.GOODS_NAME,\n" + " bgt.CLASSIFICATION,\n" + " pm.BASE_GOODS_MODELS_NAME,\n" + " pm.COUNTS,\n" + " ft.IN_AGENCY_NAME,\n" + " ft.OPERATOR_NAME,\n" + " ft.CREATE_TIME,\n" + " ft.IN_TIME,\n" + " ft.OUT_AGENCY_NAME,\n" + " ft.OUT_OPERATOR_NAME,\n" + " ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" + " LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n" + " LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 "); StringBuilder sql = new StringBuilder( "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " bgt.GOODS_NAME,\n" + " bgt.CLASSIFICATION,\n" + " pm.BASE_GOODS_MODELS_NAME,\n" + " pm.COUNTS,\n" + " ft.IN_AGENCY_NAME,\n" + " ft.OPERATOR_NAME,\n" + " ft.CREATE_TIME,\n" + " ft.IN_TIME,\n" + " ft.OUT_AGENCY_NAME,\n" + " ft.OUT_OPERATOR_NAME,\n" + " ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" + " LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n" + " LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 "); if (StringUtils.isNotEmpty(param.getBusinessFormCode())) { sql.append("AND ft.BUSINESS_FORM_CODE = :businessFormCode "); params.put("businessFormCode", param.getBusinessFormCode()); @@ -502,21 +518,15 @@ public List<Map<String, Object>> queryDepartmentTransferOrder() { String sql = "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " gr.GOODS_TEMPLATE_NAME,\n" + " gr.BASE_GOODS_TEMPLATE_ID goodsTemplateId,\n" + " ft.CREATE_TIME\n" + "\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n" + " left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n" + " LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n" + " left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID where ft.BUSINESS_TYPE = 1 GROUP BY gr.BASE_GOODS_TEMPLATE_ID \n"; String sql = "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " gr.GOODS_TEMPLATE_NAME,\n" + " gr.BASE_GOODS_TEMPLATE_ID goodsTemplateId,\n" + " ft.CREATE_TIME\n" + "\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n" + " left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n" + " LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n" + " left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID where ft.BUSINESS_TYPE = 1 GROUP BY gr.BASE_GOODS_TEMPLATE_ID \n"; HashMap<String, Object> param = new HashMap<>(); List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); select.forEach(item -> { }); return select;