package com.huaheng.pc.config.sn.controller; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import com.huaheng.pc.config.sn.domain.PartDomain; import com.huaheng.pc.config.sn.domain.SnPartDetail; import com.huaheng.pc.config.sn.domain.SnPartDomain; import com.huaheng.pc.config.sn.service.SnPartDetailService; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huaheng.common.support.Convert; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.poi.ExcelUtil; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.page.PageDomain; import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.config.sn.domain.Sn; import com.huaheng.pc.config.sn.service.SnService; import io.swagger.annotations.ApiParam; @Controller @RequestMapping("/config/snPart") public class SnPartDetailController extends BaseController { @Resource private SnService snService; @Resource private SnPartDetailService snPartService; private String prefix = "config/sn"; @RequiresPermissions("config:sn:view") @GetMapping("/detailList/{id}") public String snPartDetail(@PathVariable("id")Integer id, ModelMap mmap) { Sn sn= snService.getById(id); mmap.put("sn", sn); mmap.put("snCode", sn.getCode()); return prefix + "/snPartDetail"; } /** * 查询出库类型 */ @RequiresPermissions("config:sn:list") @Log(title = "配置-出库类型",operating = "出库类型列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(@ApiParam(name="sn",value="编码、类型") SnPartDetail snPartDetail, @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { LambdaQueryWrapper<SnPartDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper .eq(StringUtils.isNotEmpty(snPartDetail.getSnId()), SnPartDetail::getSnId, snPartDetail.getSnId()) .eq(StringUtils.isNotEmpty(snPartDetail.getSnCode()), SnPartDetail::getSnCode, snPartDetail.getSnCode()) .like(StringUtils.isNotEmpty(snPartDetail.getPart()), SnPartDetail::getPart, snPartDetail.getPart()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /*使用分页查询*/ Page<SnPartDetail> page = new Page<>(pageNum, pageSize); IPage<SnPartDetail> iPage = snPartService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<SnPartDetail> list = snPartService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增出库类型 */ @GetMapping("/add/{id}") public String add(@PathVariable("id") Integer id, ModelMap mmap) { Sn sn= snService.getById(id); mmap.put("snId", id); mmap.put("snCode", sn.getCode()); return prefix + "/snPartAdd"; } /** * 新增出库类型 */ @RequiresPermissions("config:sn:add") @Log(title = "配置-出库类型",operating = "新增出库类型", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(SnPartDetail snPartDetail) { snPartDetail.setCreatedBy(ShiroUtils.getLoginName()); snPartDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); Sn sn=snService.getSn(snPartDetail.getSnCode()); sn.setSyncIot(0); snService.updateById(sn); return toAjax(snPartService.save(snPartDetail)); } /** * 修改出库类型 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { SnPartDetail sn = snPartService.getById(id); mmap.put("snPartDetail", sn); return prefix + "/edit"; } /** * 修改保存出库类型 */ @RequiresPermissions("config:sn:edit") @Log(title = "配置-出库类型",operating = "修改出库类型", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(SnPartDetail sn) { sn.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(snPartService.updateById(sn)); } /** * 删除出库 */ @RequiresPermissions("config:sn:remove") @Log(title = "配置-出库管理",operating = "修改出库", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { if (StringUtils.isEmpty(ids)) { return AjaxResult.error("id不能为空"); } List<Integer> list = new ArrayList<>(); for (Integer id : Convert.toIntArray(ids)) { SnPartDetail sn = snPartService.getById(id); if (sn != null) { list.add(id); } } return toAjax(snPartService.removeByIds(list)); } /** * sn绑定部件 */ @ApiOperation(value = "sn绑定部件", notes = "sn绑定部件", httpMethod = "POST") @Log(title = "配置-sn绑定部件",operating = "pda-sn绑定部件", action = BusinessType.UPDATE) @PostMapping( "/bindSnPart") @ResponseBody @Transactional public AjaxResult bindSnPart(@RequestBody SnPartDomain snPartDomain){ if (snPartDomain == null || snPartDomain.getSnCode() == null || snPartDomain.getPartList() == null){ return AjaxResult.error("参数错误"); } Sn sn=snService.getSn(snPartDomain.getSnCode()); if(sn==null){ sn=new Sn(); sn.setSyncIot(0); sn.setCode(snPartDomain.getSnCode()); sn.setCreatedBy(ShiroUtils.getLoginName()); sn.setLastUpdatedBy(ShiroUtils.getLoginName()); snService.save(sn); }else{ Sn sn1=new Sn(); sn1.setId(sn.getId()); sn1.setSyncIot(0); snService.updateById(sn1); } List<SnPartDetail> details=new ArrayList<>(); for (PartDomain snPart : snPartDomain.getPartList()) { SnPartDetail snPartDetail = snPartService.getSnPart(snPart.getPart(),snPartDomain.getSnCode()); if (snPartDetail!=null){ continue; } snPartDetail = new SnPartDetail(); snPartDetail.setSnId(sn.getId().toString()); snPartDetail.setSnCode(snPartDomain.getSnCode()); snPartDetail.setPart(snPart.getPart()); snPartDetail.setCreatedBy(ShiroUtils.getLoginName()); snPartDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); details.add(snPartDetail); } if(details.size()>0){ snPartService.saveBatch(details); } return AjaxResult.success("操作成功"); } }