package com.consum.base.controller; 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.query.LWhFormScrappedQry; import com.consum.base.pojo.response.FromTransferTemplateInfoVO; import com.consum.base.pojo.response.LWhFormScrappedExtendVO; import com.consum.base.pojo.response.LWhFormScrappedVO; import com.consum.base.service.LWhFormScrappedServiceImpl; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormScrapped; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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 报废单 * @Author 卢庆阳 * @Date 2023/11/1 */ @Api(value = "报废单", tags = "报废单") @RestController @RequestMapping("/pc/l/wh/form/scrapped") public class LWhFormScrappedController extends BaseController { @Autowired private LWhFormScrappedServiceImpl lWhFormScrappedService; /** * @Description 新增报废单 * @Author 卢庆阳 * @Date 2023/11/1 */ @ApiOperation(value = "新增报废单", notes = "新增报废单") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "报废单信息", dataType = "LWhFormScrappedParam", paramType = "body") }) @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormScrappedParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); int result = this.lWhFormScrappedService.add(param, this.getCurrentUser(), sysInfo); if (result > 0) { return ResponseValue.success(1); } return ResponseValue.error("新增失败!"); } /** * @Description 列表查询 * @Author 卢庆阳 * @Date 2023/11/02 1.查询报废单 2.查询报废单物品 */ @ApiOperation(value = "列表查询", notes = "列表查询") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "查询条件", dataType = "LWhFormScrappedQry", paramType = "query") }) @GetMapping("/list") public ResponseValue queryList(LWhFormScrappedQry param) { FinSysTenantUser sysInfo = getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } PageUtil genericPager = lWhFormScrappedService.queryList(param, sysInfo); List data = genericPager.getDatas(); List result = Lists.newArrayList(); if (!CollectionUtils.isEmpty(data)) { data.forEach(item -> { LWhFormScrappedVO lWhFormScrappedVO = new LWhFormScrappedVO(); BeanUtils.copyProperties(item, lWhFormScrappedVO); List list = Lists.newArrayList(); // 查询型号数量 String sql = "SELECT fsg.id,fsg.BASE_GOODS_TEMPLATE_ID goodsTemplatesId,fsg.GOODS_TEMPLATE_NAME goodsName,sum(counts) count FROM l_wh_form_scrapped fs left join l_wh_form_scrapped_goods fsg on fs.id = fsg.FORM_SCRAPPED_ID " + "where fsg.FORM_SCRAPPED_ID =:id group by fsg.BASE_GOODS_TEMPLATE_ID"; Map paramMap = new HashMap<>(); paramMap.put("id", item.getId()); List> procureModelList = lWhFormScrappedService.select(sql, paramMap, new MapperUtil()); for (Map map : procureModelList) { FromTransferTemplateInfoVO fromTransferTemplateInfoVO = MapUtils.convertMapToObj(map, FromTransferTemplateInfoVO.class); list.add(fromTransferTemplateInfoVO); } lWhFormScrappedVO.setGoodTemplateInfo(list); result.add(lWhFormScrappedVO); }); } genericPager.setDatas(result); return ResponseValue.success(genericPager); } /** * @Description 根据id查询详情 * @Author 卢庆阳 * @Date 2023/11/2 */ @ApiOperation(value = "根据id查询详情", notes = "根据id查询详情") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query") }) @GetMapping("/detail") public ResponseValue getById(Long id) { if (id == null) { return ResponseValue.error("报废单id为空"); } LWhFormScrappedExtendVO scrappedExtend = this.lWhFormScrappedService.getById(id); return ResponseValue.success(scrappedExtend); } /** * 报废明细 * * @param param * @return */ @ApiOperation(value = "报废明细", notes = "报废明细") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "查询条件", dataType = "LWhFormScrappedQry", paramType = "query") }) @GetMapping("/list/detailList") public ResponseValue queryDetailList(LWhFormScrappedQry param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } PageUtil pageUtil = lWhFormScrappedService.queryDetailList(param, sysInfo); return ResponseValue.success(pageUtil); } /** * @Description 导出报废登记单 * @Author 卢庆阳 * @Date 2023/11/2 */ @GetMapping("/export") public ResponseValue export(Long id) { if (id == null) { return ResponseValue.error("报废单id为空"); } //LWhFormScrappedExtendVO scrappedExtend = this.lWhFormScrappedService.export(id, this.getSysInfo()); return ResponseValue.success(null); } }