diff --git a/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java b/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java new file mode 100644 index 0000000..e705de3 --- /dev/null +++ b/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java @@ -0,0 +1,156 @@ +package com.huaheng.pc.check.checkDetail.controller; + +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.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.check.checkDetail.domain.CheckDetail; +import com.huaheng.pc.check.checkDetail.service.CheckDetailService; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.models.auth.In; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * Created by mahuandong Cotter on 2019/9/8. + */ +@Controller +@RequestMapping("/check/checkDetail") +public class CheckDetailController extends BaseController { + + @Resource + private CheckDetailService checkDetailService; + + private String prefix = "check/checkDetail"; + + @RequiresPermissions("check:checkDetail:view") + @GetMapping("/{id}") + public String checkingRegister(@PathVariable("id")Integer id, ModelMap modelMap) { + modelMap.put("id",id); + return prefix + "/checkDetail"; + } + + /** + * 查询质检详情 + */ + @ApiOperation(value="查看质检详情", notes="根据详情表id获取质检详情", httpMethod = "POST") + @RequiresPermissions("check:checkDetail:list") + @Log(title = "质检-质检详情", operating = "查看质检详情", action = BusinessType.GRANT) + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(@ApiParam(name="receiptDetail",value="入库详情")Integer checkHeaderId) { + LambdaQueryWrapper<CheckDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + lambdaQueryWrapper.eq(CheckDetail::getCheckHeaderId, checkHeaderId); + + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ + /*使用分页查询*/ + Page<CheckDetail> page = new Page<>(pageNum, pageSize); + IPage<CheckDetail> iPage = checkDetailService.page(page, lambdaQueryWrapper); + return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + } else { + List<CheckDetail> list = checkDetailService.list(lambdaQueryWrapper); + return getDataTable(list); + } + } + + /** + * 新增质检详情 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增保存质检详情 + */ + @ApiOperation(value="新增质检详情 ", notes="新增质检详情 ", httpMethod = "POST") + @RequiresPermissions("check:checkDetail:add") + @Log(title = "质检-质检详情 ",operating = "新增质检详情 ", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(CheckDetail checkDetail) { + return toAjax(checkDetailService.save(checkDetail)); + } + + /** + * 修改质检详情 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + CheckDetail checkDetail = checkDetailService.getById(id); + mmap.put("checkDetail", checkDetail); + return prefix + "/edit"; + } + + /** + * 修改保存质检详情 + */ + @ApiOperation(value="修改质检详情", notes="修改质检详情", httpMethod = "POST") + @RequiresPermissions("check:checkDetail:edit") + @Log(title = "质检-质检详情 ",operating = "修改质检详情 ", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(CheckDetail checkDetail) { + checkDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(checkDetailService.updateById(checkDetail)); + } + + @ApiOperation(value="删除质检详情", notes="删除质检详情", httpMethod = "POST") + @RequiresPermissions("check:checkDetail:remove") + @Log(title = "质检-质检详情 ",operating = "质检详情删除", action = BusinessType.DELETE) + @PostMapping("remove") + public AjaxResult remove(String ids) { + if (StringUtils.isEmpty(ids)){ + return AjaxResult.error("id不能为空"); + } + + List<Integer> idList = Arrays.asList(Convert.toIntArray(ids)); + return toAjax(checkDetailService.removeByIds(idList)); + } + + /** + * 完成质检 + */ + @GetMapping("complete/{id}") + public String complete(@PathVariable("id") Integer id, ModelMap mmap) { + mmap.put("checkDetailId", id); + return prefix + "/checkComplete"; + } + + /** + * 保存质检完成 + * @param inventorySts 库存状态 + * @param qty 数量 + * @return AjaxResult + */ + @ApiOperation(value="完成质检详情", notes="完成质检详情", httpMethod = "POST") + @RequiresPermissions("check:checkDetail:complete") + @Log(title = "质检-质检详情 ",operating = "质检详情删除", action = BusinessType.DELETE) + @PostMapping("/complete") + public AjaxResult complete(@ApiParam(name="质检明细id",value="id")Integer id, + @ApiParam(name="库存状态",value="inventorySts",example="good,bad")String inventorySts, + @ApiParam(name = "数量",value = "qty",example = "10,20") String qty) { + return checkDetailService.complete(id, inventorySts, qty); + } +} diff --git a/src/main/java/com/huaheng/pc/check/checkDetail/domain/CheckDetail.java b/src/main/java/com/huaheng/pc/check/checkDetail/domain/CheckDetail.java index aafd6bf..51925d2 100644 --- a/src/main/java/com/huaheng/pc/check/checkDetail/domain/CheckDetail.java +++ b/src/main/java/com/huaheng/pc/check/checkDetail/domain/CheckDetail.java @@ -116,8 +116,11 @@ public class CheckDetail implements Serializable { @ApiModelProperty(value="物料规格") private String materialSpec; + /** + * 物料单位 + */ @TableField(value = "materialUnit") - @ApiModelProperty(value="null") + @ApiModelProperty(value="物料单位") private String materialUnit; /** diff --git a/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java b/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java index 3a08afa..b525227 100644 --- a/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java +++ b/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java @@ -1,12 +1,102 @@ package com.huaheng.pc.check.checkDetail.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.huaheng.common.exception.service.ServiceException; +import com.huaheng.common.support.Convert; +import com.huaheng.common.utils.security.ShiroUtils; +import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.check.checkHeader.domain.CheckHeader; +import com.huaheng.pc.check.checkHeader.service.CheckHeaderService; +import com.huaheng.pc.check.checkingRegister.domain.CheckingRegister; +import com.huaheng.pc.check.checkingRegister.service.CheckingRegisterService; +import org.aspectj.weaver.loadtime.Aj; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.check.checkDetail.mapper.CheckDetailMapper; import com.huaheng.pc.check.checkDetail.domain.CheckDetail; +import org.springframework.transaction.annotation.Transactional; + @Service public class CheckDetailService extends ServiceImpl<CheckDetailMapper, CheckDetail> { + @Resource + private CheckingRegisterService checkingRegisterService; + @Resource + private CheckHeaderService checkHeaderService; + + /** + * 质检完成 + * @param id 质检明细id + * @param inventorySts 库存状态 good, + * @param qty 数量 10,20 + * @return AjaxResult + */ + @Transactional + public AjaxResult complete(Integer id, String inventorySts, String qty){ + + //将库存状态、数量字符串转为List + List<String> inventoryStsList = Arrays.asList(Convert.toStrArray(inventorySts)); + List<Integer> qtyList = Arrays.asList(Convert.toIntArray(qty)); + CheckDetail checkDetail = this.getById(id); + + // + int sum = 0; + for (Integer quantity : qtyList) { + sum += quantity; + } + if (checkDetail.getQty() == sum) { + AjaxResult.error("质检登记数量和质检明细系统数量核对错误"); + } + checkDetail.setStatus("20"); + if ( !this.updateById(checkDetail)){ + throw new ServiceException("更新质检明细表错误"); + } + CheckingRegister checkingRegister = new CheckingRegister(); + checkingRegister.setCheckDetailId(checkDetail.getId()); + checkingRegister.setCheckHeaderId(checkDetail.getCheckHeaderId()); + checkingRegister.setWarehouseCode(ShiroUtils.getWarehouseCode()); + checkingRegister.setCheckCode(checkDetail.getCheckCode()); + checkingRegister.setReceiptDetailId(checkDetail.getReceiptDetailId()); + checkingRegister.setReceiptCode(checkDetail.getReceiptCode()); + checkingRegister.setReferCode(checkDetail.getReferCode()); + checkingRegister.setReferLineId(checkDetail.getReferLineId()); + checkingRegister.setReferPlatform(checkDetail.getReferPlatform()); + checkingRegister.setMaterialCode(checkDetail.getMaterialCode()); + checkingRegister.setMaterialName(checkDetail.getMaterialName()); + checkingRegister.setMaterialSpec(checkDetail.getMaterialSpec()); + checkingRegister.setMaterialUnit(checkDetail.getMaterialUnit()); + checkingRegister.setCompanyCode(checkDetail.getCompanyCode()); + checkingRegister.setCheckBy(ShiroUtils.getLoginName()); + checkingRegister.setCheckAt(new Date()); + checkingRegister.setCreatedBy(ShiroUtils.getLoginName()); + checkingRegister.setLastUpdatedBy(ShiroUtils.getLoginName()); + + for (int i = 0; i<inventoryStsList.size(); i++){ + checkingRegister.setInventorySts(inventoryStsList.get(i)); + checkingRegister.setQty(qtyList.get(0)); + if ( !checkingRegisterService.save(checkingRegister)){ + throw new ServiceException("生成质检报告失败"); + } + } + + LambdaQueryWrapper<CheckDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(CheckDetail::getCheckHeaderId, checkDetail.getCheckHeaderId()) + .ne(CheckDetail::getStatus, 20); + List<CheckDetail> checkDetails = this.list(lambdaQueryWrapper); + + //如果改质检单的全部明细都完成质检则更新质检头表状态 + if (checkDetails == null){ + CheckHeader checkHeader = new CheckHeader(); + checkHeader.setId(checkDetail.getCheckHeaderId()); + checkHeader.setStatus("20"); + checkHeaderService.updateById(checkHeader); + } + return AjaxResult.success("质检完成"); + } } diff --git a/src/main/java/com/huaheng/pc/check/checkHeader/controller/CheckHeaderController.java b/src/main/java/com/huaheng/pc/check/checkHeader/controller/CheckHeaderController.java new file mode 100644 index 0000000..322e389 --- /dev/null +++ b/src/main/java/com/huaheng/pc/check/checkHeader/controller/CheckHeaderController.java @@ -0,0 +1,143 @@ +package com.huaheng.pc.check.checkHeader.controller; + +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.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.check.checkHeader.domain.CheckHeader; +import com.huaheng.pc.check.checkHeader.service.CheckHeaderService; +import com.huaheng.pc.check.checkingRegister.domain.CheckingRegister; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * Created by mahuandong Cotter on 2019/9/6. + */ +@Api(tags="质检单") +@Controller +@RequestMapping("/check/checkHeader") +public class CheckHeaderController extends BaseController { + + @Resource + private CheckHeaderService checkHeaderService; + + private String prefix = "check/checkHeader"; + + @RequiresPermissions("check:checkHeader:view") + @GetMapping("{type}") + public String checkingRegister(@PathVariable("type")String type, ModelMap modelMap) { + modelMap.put("type", type); + return prefix + "/checkHeader"; + } + + /** + * 查询质检头 + */ + @RequiresPermissions("check:checkHeader:list") + @Log(title = "质检-质检头表", operating = "查看质检头表", action = BusinessType.GRANT) + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(@ApiParam(name="checkHeader",value="质检头表") CheckHeader checkHeader, + @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, + @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { + LambdaQueryWrapper<CheckHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), CheckHeader::getCreated, createdBegin) + .le(StringUtils.isNotEmpty(createdEnd), CheckHeader::getCreated, createdEnd) + .eq(CheckHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) + .eq(StringUtils.isNotNull(checkHeader.getCode()), CheckHeader::getCode, checkHeader.getCode()) + .eq(StringUtils.isNotEmpty(checkHeader.getReferCode()), CheckHeader::getReferCode, checkHeader.getReferCode()) + .eq(StringUtils.isNotEmpty(checkHeader.getStatus()), CheckHeader::getStatus, checkHeader.getStatus()) + .in(StringUtils.isNotEmpty(checkHeader.getType()), CheckHeader::getType, checkHeader.getType()); + + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ + // 使用分页查询 + Page<CheckHeader> page = new Page<>(pageNum, pageSize); + IPage<CheckHeader> iPage = checkHeaderService.page(page, lambdaQueryWrapper); + return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + } else { + List<CheckHeader> list = checkHeaderService.list(lambdaQueryWrapper); + return getDataTable(list); + } + } + + /** + * 新增质检头表 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增保存质检头 + */ + @ApiOperation(value="新增质检头 ", notes="新增质检头 ", httpMethod = "POST") + @RequiresPermissions("check:checkHeader:add") + @Log(title = "质检-质检头 ",operating = "新增质检头 ", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(CheckHeader checkHeader) { + return toAjax(checkHeaderService.save(checkHeader)); + } + + /** + * 修改质检头表 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + CheckHeader checkHeader = checkHeaderService.getById(id); + mmap.put("checkHeader", checkHeader); + return prefix + "/edit"; + } + + /** + * 修改保存质检表 + */ + @ApiOperation(value="修改质检头", notes="修改质检头", httpMethod = "POST") + @RequiresPermissions("check:checkHeader:edit") + @Log(title = "质检-质检头 ",operating = "修改质检头 ", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(CheckHeader checkHeader) { + checkHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(checkHeaderService.updateById(checkHeader)); + } + + /** + * 删除质检头 + */ + @ApiOperation(value="删除质检头", notes="删除质检头", httpMethod = "POST") + @RequiresPermissions("check:checkHeader:remove") + @Log(title = "质检-质检头 ",operating = "质检头删除", action = BusinessType.DELETE) + @PostMapping("/remove") + @ResponseBody + public AjaxResult remove(@ApiParam(name = "id", value = "质检头表id字符串")String ids){ + if (StringUtils.isNull(ids)){ + return AjaxResult.error("id为空"); + } + return toAjax(checkHeaderService.removeByIds(Arrays.asList(Convert.toIntArray(ids)))); + } +} diff --git a/src/main/java/com/huaheng/pc/check/checkHeader/mapper/CheckHeaderMapper.java b/src/main/java/com/huaheng/pc/check/checkHeader/mapper/CheckHeaderMapper.java index 11c32ad..488e43f 100644 --- a/src/main/java/com/huaheng/pc/check/checkHeader/mapper/CheckHeaderMapper.java +++ b/src/main/java/com/huaheng/pc/check/checkHeader/mapper/CheckHeaderMapper.java @@ -4,4 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.huaheng.pc.check.checkHeader.domain.CheckHeader; public interface CheckHeaderMapper extends BaseMapper<CheckHeader> { + + /** + * 生成质检单编码 + * @return + */ + String createCode(String checkType); } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/check/checkHeader/service/CheckHeaderService.java b/src/main/java/com/huaheng/pc/check/checkHeader/service/CheckHeaderService.java index 2cf279f..30e2182 100644 --- a/src/main/java/com/huaheng/pc/check/checkHeader/service/CheckHeaderService.java +++ b/src/main/java/com/huaheng/pc/check/checkHeader/service/CheckHeaderService.java @@ -2,11 +2,34 @@ package com.huaheng.pc.check.checkHeader.service; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.Date; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.check.checkHeader.domain.CheckHeader; import com.huaheng.pc.check.checkHeader.mapper.CheckHeaderMapper; @Service public class CheckHeaderService extends ServiceImpl<CheckHeaderMapper, CheckHeader> { + @Resource + private CheckHeaderMapper checkHeaderMapper; + + //根据单据类型建单据号 + public String createCode(String checkType) + { + String code = null; + Date now = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); + String maxCode = checkHeaderMapper.createCode(checkType); + if (maxCode != null && maxCode.length() > 13 && maxCode.substring(maxCode.length() - 13, maxCode.length() - 5).equals(df.format(now))) + { + Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length())); + code = checkType + df.format(now) + String.format("%05d", Count + 1); + } + else + { + code = checkType + df.format(now) + "00001"; + } + return code; + } + } diff --git a/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java b/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java new file mode 100644 index 0000000..37aa6d5 --- /dev/null +++ b/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java @@ -0,0 +1,163 @@ +package com.huaheng.pc.check.checkingRegister.controller; + +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.fasterxml.jackson.databind.ser.Serializers; +import com.huaheng.common.support.Convert; +import com.huaheng.common.utils.StringUtils; +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.check.checkingRegister.domain.CheckingRegister; +import com.huaheng.pc.check.checkingRegister.service.CheckingRegisterService; +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * 质检报告 + * Created by mahuandong Cotter on 2019/9/6. + */ +@Api(tags = "质检报告") +@Controller +@RequestMapping("/check/checkingRegister") +public class CheckingRegisterController extends BaseController { + + @Resource + private CheckingRegisterService checkingRegisterService; + + private String prefix = "check/checkingRegister"; + + @RequiresPermissions("check:checkingRegister:view") + @GetMapping() + public String checkingRegister() + { + return prefix + "/checkingRegister"; + } + + /** + * 查询质检报告 + */ + @RequiresPermissions("check:checkingRegister:list") + @Log(title = "质检-质检报告头表", operating = "查看质检报告列表", action = BusinessType.GRANT) + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(@ApiParam(name="receiptDetail",value="质检头表") CheckingRegister checkingRegister, + @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, + @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { + LambdaQueryWrapper<CheckingRegister> lambdaQueryWrapper = Wrappers.lambdaQuery(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), CheckingRegister::getCreated, createdBegin) + .le(StringUtils.isNotEmpty(createdEnd), CheckingRegister::getCreated, createdEnd) + .in(CheckingRegister::getCompanyCode, ShiroUtils.getCompanyCodeList()) + .eq(CheckingRegister::getWarehouseCode, ShiroUtils.getWarehouseCode()) + .eq(StringUtils.isNotNull(checkingRegister.getReceiptDetailId()), + CheckingRegister::getReceiptDetailId, checkingRegister.getReceiptDetailId()) + .eq(StringUtils.isNotEmpty(checkingRegister.getReceiptCode()), + CheckingRegister::getReceiptCode, checkingRegister.getReceiptCode()) + .eq(StringUtils.isNotEmpty(checkingRegister.getReferCode()), + CheckingRegister::getReceiptCode, checkingRegister.getReceiptCode()) + .eq(StringUtils.isNotNull(checkingRegister.getReferLineId()), + CheckingRegister::getReferLineId, checkingRegister.getReferLineId()) + .eq(StringUtils.isNotEmpty(checkingRegister.getReferPlatform()), + CheckingRegister::getReferPlatform, checkingRegister.getReferPlatform()) + .eq(StringUtils.isNotEmpty(checkingRegister.getMaterialCode()), + CheckingRegister::getMaterialCode, checkingRegister.getMaterialCode()) + .eq(StringUtils.isNotEmpty(checkingRegister.getMaterialName()), + CheckingRegister::getMaterialName, checkingRegister.getMaterialName()) + .eq(StringUtils.isNotEmpty(checkingRegister.getInventorySts()), + CheckingRegister::getInventorySts, checkingRegister.getInventorySts()) + .eq(StringUtils.isNotEmpty(checkingRegister.getCheckBy()), + CheckingRegister::getCheckAt, checkingRegister.getCheckAt()) + .orderByDesc(CheckingRegister::getReceiptDetailId); + + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ + // 使用分页查询 + Page<CheckingRegister> page = new Page<>(pageNum, pageSize); + IPage<CheckingRegister> iPage = checkingRegisterService.page(page, lambdaQueryWrapper); + return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + } else { + List<CheckingRegister> list = checkingRegisterService.list(lambdaQueryWrapper); + return getDataTable(list); + } + } + + /** + * 新增质检报告 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增保存质检报告 + */ + @ApiOperation(value="新增质检报告 ", notes="新增质检报告 ", httpMethod = "POST") + @RequiresPermissions("check:checkingRegister:add") + @Log(title = "质检-质检报告 ",operating = "新增质检报告 ", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(CheckingRegister checkingRegister) { + return toAjax(checkingRegisterService.save(checkingRegister)); + } + + /** + * 修改质检报告 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + CheckingRegister checkingRegister = checkingRegisterService.getById(id); + mmap.put("checkingRegister", checkingRegister); + return prefix + "/edit"; + } + + /** + * 修改保存质检报告 + */ + @ApiOperation(value="修改质检报告", notes="修改质检报告", httpMethod = "POST") + @RequiresPermissions("check:checkingRegister:edit") + @Log(title = "质检-质检报告 ",operating = "修改质检报告 ", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(CheckingRegister checkingRegister) { + checkingRegister.setCheckBy(ShiroUtils.getLoginName()); + checkingRegister.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(checkingRegisterService.updateById(checkingRegister)); + } + + /** + * 删除质检报告 + */ + @ApiOperation(value="删除质检报告", notes="删除质检报告", httpMethod = "POST") + @RequiresPermissions("check:checkingRegister:remove") + @Log(title = "质检-质检报告 ",operating = "质检报告删除", action = BusinessType.UPDATE) + @PostMapping("/remove") + @ResponseBody + public AjaxResult remove(@ApiParam(name = "id", value = "质检头表id字符串")String ids){ + if (StringUtils.isNull(ids)){ + return AjaxResult.error("id为空"); + } + return toAjax(checkingRegisterService.removeByIds(Arrays.asList(Convert.toIntArray(ids)))); + } + +} \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java index 33b10b5..b9c8e25 100644 --- a/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java +++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java @@ -114,7 +114,7 @@ public class ShipmentPreferenceController extends BaseController { */ @ApiOperation(value="修改出库首选项", notes="修改出库首选项", httpMethod = "POST") @RequiresPermissions("config:shipmentPreference:edit") - @Log(title = "通用-出库首选项", operating = "修改出库首选项", action = BusinessType.UPDATE) + @Log(title = "配置-出库首选项", operating = "修改出库首选项", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave( @@ -128,7 +128,7 @@ public class ShipmentPreferenceController extends BaseController { */ @ApiOperation(value="删除出库首选项", notes="根据id批量删除入库首选项,参数示例1,2,3", httpMethod = "POST") @RequiresPermissions("config:shipmentPreference:remove") - @Log(title = "通用-出库首选项", operating = "删除出库首选项", action = BusinessType.DELETE) + @Log(title = "配置-出库首选项", operating = "删除出库首选项", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { diff --git a/src/main/java/com/huaheng/pc/shipment/wave/controller/WaveController.java b/src/main/java/com/huaheng/pc/config/wave/controller/WaveController.java index b5b2a49..c554e69 100644 --- a/src/main/java/com/huaheng/pc/shipment/wave/controller/WaveController.java +++ b/src/main/java/com/huaheng/pc/config/wave/controller/WaveController.java @@ -1,29 +1,32 @@ -package com.huaheng.pc.shipment.wave.controller; +package com.huaheng.pc.config.wave.controller; 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.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.shipment.wave.domain.Wave; -import com.huaheng.pc.shipment.wave.service.WaveService; +import com.huaheng.pc.config.wave.domain.Wave; +import com.huaheng.pc.config.wave.service.WaveService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -50,7 +53,7 @@ public class WaveController extends BaseController { } /** - * 查询订单分析结果 + * 查询波次 */ @RequiresPermissions("shipment:wave:list") @Log(title = "出库-波次", operating="查看波次", action = BusinessType.GRANT) @@ -63,14 +66,14 @@ public class WaveController extends BaseController { Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),Wave::getCreated, createdBegin) + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), Wave::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), Wave::getCreated, createdEnd) .eq(Wave::getWarehouseCode, ShiroUtils.getWarehouseCode()) .eq(StringUtils.isNotEmpty(wave.getWaveMode() - ),Wave::getWaveMode,wave.getWaveMode()) - .eq(wave.getStatus()!=null,Wave::getStatus,wave.getStatus()) + ), Wave::getWaveMode,wave.getWaveMode()) + .eq(wave.getStatus()!=null, Wave::getStatus,wave.getStatus()) .like(StringUtils.isNotEmpty(wave.getWaveName() - ),Wave::getWaveName,wave.getWaveName()); + ), Wave::getWaveName,wave.getWaveName()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /** @@ -85,5 +88,66 @@ public class WaveController extends BaseController { } } + /** + * 新增波次 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增波次 + */ + @RequiresPermissions("config:wave:add") + @Log(title = "配置-波次", operating = "新增波次", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(Wave wave){ + wave.setWarehouseCode(ShiroUtils.getWarehouseCode()); + wave.setCreatedBy(ShiroUtils.getLoginName()); + wave.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveService.save(wave)); + } + + /** + * 修改波次 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + mmap.put("wave", waveService.getById(id)); + return prefix + "/edit"; + } + + /** + * 修改波次 + */ + @RequiresPermissions("config:wave:edit") + @Log(title = "通用-波次", operating = "修改波次", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(Wave wave) { + wave.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveService.updateById(wave)); + } + + /** + * 删除波次 + */ + @RequiresPermissions("config:wave: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)) { + list.add(id); + } + return toAjax(waveService.removeByIds(list)); + } + } diff --git a/src/main/java/com/huaheng/pc/shipment/wave/domain/Wave.java b/src/main/java/com/huaheng/pc/config/wave/domain/Wave.java index 718b813..6f8dea0 100644 --- a/src/main/java/com/huaheng/pc/shipment/wave/domain/Wave.java +++ b/src/main/java/com/huaheng/pc/config/wave/domain/Wave.java @@ -1,4 +1,4 @@ -package com.huaheng.pc.shipment.wave.domain; +package com.huaheng.pc.config.wave.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; @ApiModel(value="com.huaheng.pc.shipment.wave.domain.Wave") @Data diff --git a/src/main/java/com/huaheng/pc/shipment/wave/mapper/WaveMapper.java b/src/main/java/com/huaheng/pc/config/wave/mapper/WaveMapper.java index 72d3ffa..679ba35 100644 --- a/src/main/java/com/huaheng/pc/shipment/wave/mapper/WaveMapper.java +++ b/src/main/java/com/huaheng/pc/config/wave/mapper/WaveMapper.java @@ -1,7 +1,7 @@ -package com.huaheng.pc.shipment.wave.mapper; +package com.huaheng.pc.config.wave.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.huaheng.pc.shipment.wave.domain.Wave; +import com.huaheng.pc.config.wave.domain.Wave; public interface WaveMapper extends BaseMapper<Wave> { } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java b/src/main/java/com/huaheng/pc/config/wave/service/WaveService.java index 989b74e..904d9cd 100644 --- a/src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java +++ b/src/main/java/com/huaheng/pc/config/wave/service/WaveService.java @@ -1,11 +1,10 @@ -package com.huaheng.pc.shipment.wave.service; +package com.huaheng.pc.config.wave.service; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.huaheng.pc.shipment.wave.mapper.WaveMapper; -import com.huaheng.pc.shipment.wave.domain.Wave; +import com.huaheng.pc.config.wave.domain.Wave; +import com.huaheng.pc.config.wave.mapper.WaveMapper; +import org.springframework.stereotype.Service; + @Service public class WaveService extends ServiceImpl<WaveMapper, Wave> { diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/controller/WaveFlowDetailController.java b/src/main/java/com/huaheng/pc/config/waveFlowDetail/controller/WaveFlowDetailController.java index 7785a02..3f4a79d 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/controller/WaveFlowDetailController.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowDetail/controller/WaveFlowDetailController.java @@ -1,29 +1,30 @@ -package com.huaheng.pc.shipment.waveFlowDetail.controller; +package com.huaheng.pc.config.waveFlowDetail.controller; 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.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.shipment.waveFlowDetail.domain.WaveFlowDetail; -import com.huaheng.pc.shipment.waveFlowDetail.service.WaveFlowDetailService; +import com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail; +import com.huaheng.pc.config.waveFlowDetail.service.WaveFlowDetailService; import io.swagger.annotations.Api; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -50,7 +51,7 @@ public class WaveFlowDetailController extends BaseController { } /** - * 查询订单分析结果 + * 查询波次流明细 */ @RequiresPermissions("shipment:waveFlowDetail:list") @Log(title = "出库-波次流明细", operating="查看波次流明细", action = BusinessType.GRANT) @@ -63,7 +64,7 @@ public class WaveFlowDetailController extends BaseController { Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveFlowDetail::getCreated, createdBegin) + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveFlowDetail::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), WaveFlowDetail::getCreated, createdEnd) .eq(WaveFlowDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); @@ -80,5 +81,65 @@ public class WaveFlowDetailController extends BaseController { } } + /** + * 新增波次流明细 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增波次流明细 + */ + @RequiresPermissions("config:wave:add") + @Log(title = "配置-波次流明细", operating = "新增波次流明细", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(WaveFlowDetail waveFlowDetail){ + waveFlowDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); + waveFlowDetail.setCreatedBy(ShiroUtils.getLoginName()); + waveFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveFlowDetailService.save(waveFlowDetail)); + } + + /** + * 修改波次流明细 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + mmap.put("wave", waveFlowDetailService.getById(id)); + return prefix + "/edit"; + } + + /** + * 修改波次流明细 + */ + @RequiresPermissions("config:wave:edit") + @Log(title = "通用-波次流明细", operating = "修改波次流明细", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(WaveFlowDetail waveFlowDetail) { + waveFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveFlowDetailService.updateById(waveFlowDetail)); + } + + /** + * 删除波次流明细 + */ + @RequiresPermissions("config:wave: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)) { + list.add(id); + } + return toAjax(waveFlowDetailService.removeByIds(list)); + } } diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/domain/WaveFlowDetail.java b/src/main/java/com/huaheng/pc/config/waveFlowDetail/domain/WaveFlowDetail.java index 9d16257..f04a929 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/domain/WaveFlowDetail.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowDetail/domain/WaveFlowDetail.java @@ -1,4 +1,4 @@ -package com.huaheng.pc.shipment.waveFlowDetail.domain; +package com.huaheng.pc.config.waveFlowDetail.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; @ApiModel(value="com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail") @Data diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/mapper/WaveFlowDetailMapper.java b/src/main/java/com/huaheng/pc/config/waveFlowDetail/mapper/WaveFlowDetailMapper.java index bba1ac4..9a28317 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/mapper/WaveFlowDetailMapper.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowDetail/mapper/WaveFlowDetailMapper.java @@ -1,7 +1,7 @@ -package com.huaheng.pc.shipment.waveFlowDetail.mapper; +package com.huaheng.pc.config.waveFlowDetail.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail; +import com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail; public interface WaveFlowDetailMapper extends BaseMapper<WaveFlowDetail> { } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/service/WaveFlowDetailService.java b/src/main/java/com/huaheng/pc/config/waveFlowDetail/service/WaveFlowDetailService.java index 2bed049..c71c2c0 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/service/WaveFlowDetailService.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowDetail/service/WaveFlowDetailService.java @@ -1,11 +1,10 @@ -package com.huaheng.pc.shipment.waveFlowDetail.service; +package com.huaheng.pc.config.waveFlowDetail.service; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail; -import com.huaheng.pc.shipment.waveFlowDetail.mapper.WaveFlowDetailMapper; +import com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail; +import com.huaheng.pc.config.waveFlowDetail.mapper.WaveFlowDetailMapper; +import org.springframework.stereotype.Service; + @Service public class WaveFlowDetailService extends ServiceImpl<WaveFlowDetailMapper, WaveFlowDetail> { diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/controller/WaveFlowHeaderController.java b/src/main/java/com/huaheng/pc/config/waveFlowHeader/controller/WaveFlowHeaderController.java index 8384d9f..9f64d8d 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/controller/WaveFlowHeaderController.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowHeader/controller/WaveFlowHeaderController.java @@ -1,29 +1,30 @@ -package com.huaheng.pc.shipment.waveFlowHeader.controller; +package com.huaheng.pc.config.waveFlowHeader.controller; 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.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.shipment.waveFlowHeader.domain.WaveFlowHeader; -import com.huaheng.pc.shipment.waveFlowHeader.service.WaveFlowHeaderService; +import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader; +import com.huaheng.pc.config.waveFlowHeader.service.WaveFlowHeaderService; import io.swagger.annotations.Api; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -50,7 +51,7 @@ public class WaveFlowHeaderController extends BaseController { } /** - * 查询订单分析结果 + * 查询波次流头表 */ @RequiresPermissions("shipment:waveFlowHeader:list") @Log(title = "出库-波次流头表", operating="查看波次流头表", action = BusinessType.GRANT) @@ -63,11 +64,11 @@ public class WaveFlowHeaderController extends BaseController { Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveFlowHeader::getCreated, createdBegin) + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveFlowHeader::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), WaveFlowHeader::getCreated, createdEnd) .eq(WaveFlowHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) .eq(StringUtils.isNotEmpty(waveFlowHeader.getCode() - ),WaveFlowHeader::getCode,waveFlowHeader.getCode()); + ), WaveFlowHeader::getCode,waveFlowHeader.getCode()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /** @@ -83,4 +84,66 @@ public class WaveFlowHeaderController extends BaseController { } + /** + * 新增波次流头表 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增波次流头表 + */ + @RequiresPermissions("config:waveFlowHeader:add") + @Log(title = "配置-波次流头表", operating = "新增波次流头表", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(WaveFlowHeader waveFlowHeader){ + waveFlowHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); + waveFlowHeader.setCreatedBy(ShiroUtils.getLoginName()); + waveFlowHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveFlowHeaderService.save(waveFlowHeader)); + } + + /** + * 修改波次流头表 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + mmap.put("waveFlowHeader", waveFlowHeaderService.getById(id)); + return prefix + "/edit"; + } + + /** + * 修改波次流头表 + */ + @RequiresPermissions("config:waveFlowHeader:edit") + @Log(title = "通用-波次流头表", operating = "修改波次流头表", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(WaveFlowHeader waveFlowHeader) { + waveFlowHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveFlowHeaderService.updateById(waveFlowHeader)); + } + + /** + * 删除波次流头表 + */ + @RequiresPermissions("config:waveFlowHeader: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)) { + list.add(id); + } + return toAjax(waveFlowHeaderService.removeByIds(list)); + } + + } diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/domain/WaveFlowHeader.java b/src/main/java/com/huaheng/pc/config/waveFlowHeader/domain/WaveFlowHeader.java index 5bfc476..36a68e1 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/domain/WaveFlowHeader.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowHeader/domain/WaveFlowHeader.java @@ -1,4 +1,4 @@ -package com.huaheng.pc.shipment.waveFlowHeader.domain; +package com.huaheng.pc.config.waveFlowHeader.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; @ApiModel(value="com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader") @Data diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/mapper/WaveFlowHeaderMapper.java b/src/main/java/com/huaheng/pc/config/waveFlowHeader/mapper/WaveFlowHeaderMapper.java index c31afeb..cbeecec 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/mapper/WaveFlowHeaderMapper.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowHeader/mapper/WaveFlowHeaderMapper.java @@ -1,7 +1,7 @@ -package com.huaheng.pc.shipment.waveFlowHeader.mapper; +package com.huaheng.pc.config.waveFlowHeader.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader; +import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader; public interface WaveFlowHeaderMapper extends BaseMapper<WaveFlowHeader> { } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/service/WaveFlowHeaderService.java b/src/main/java/com/huaheng/pc/config/waveFlowHeader/service/WaveFlowHeaderService.java index d073586..04a2919 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/service/WaveFlowHeaderService.java +++ b/src/main/java/com/huaheng/pc/config/waveFlowHeader/service/WaveFlowHeaderService.java @@ -1,11 +1,10 @@ -package com.huaheng.pc.shipment.waveFlowHeader.service; +package com.huaheng.pc.config.waveFlowHeader.service; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.huaheng.pc.shipment.waveFlowHeader.mapper.WaveFlowHeaderMapper; -import com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader; +import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader; +import com.huaheng.pc.config.waveFlowHeader.mapper.WaveFlowHeaderMapper; +import org.springframework.stereotype.Service; + @Service public class WaveFlowHeaderService extends ServiceImpl<WaveFlowHeaderMapper, WaveFlowHeader> { diff --git a/src/main/java/com/huaheng/pc/shipment/waveMaster/controller/WaveMasterController.java b/src/main/java/com/huaheng/pc/config/waveMaster/controller/WaveMasterController.java index ca38a65..c1eaa88 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveMaster/controller/WaveMasterController.java +++ b/src/main/java/com/huaheng/pc/config/waveMaster/controller/WaveMasterController.java @@ -1,30 +1,30 @@ -package com.huaheng.pc.shipment.waveMaster.controller; +package com.huaheng.pc.config.waveMaster.controller; 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.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.shipment.wave.domain.Wave; -import com.huaheng.pc.shipment.waveMaster.domain.WaveMaster; -import com.huaheng.pc.shipment.waveMaster.service.WaveMasterService; +import com.huaheng.pc.config.waveMaster.domain.WaveMaster; +import com.huaheng.pc.config.waveMaster.service.WaveMasterService; import io.swagger.annotations.Api; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -51,7 +51,7 @@ public class WaveMasterController extends BaseController { } /** - * 查询订单分析结果 + * 查询波次主表 */ @RequiresPermissions("shipment:waveMaster:list") @Log(title = "出库-波次主表", operating="查看波次主表", action = BusinessType.GRANT) @@ -64,13 +64,13 @@ public class WaveMasterController extends BaseController { Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveMaster::getCreated, createdBegin) + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveMaster::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), WaveMaster::getCreated, createdEnd) .eq(WaveMaster::getWarehouseCode, ShiroUtils.getWarehouseCode()) .eq(StringUtils.isNotEmpty(waveMaster.getCode() - ),WaveMaster::getCode,waveMaster.getCode()) + ), WaveMaster::getCode,waveMaster.getCode()) .like(StringUtils.isNotEmpty(waveMaster.getShipmentFilterCode() - ),WaveMaster::getShipmentFilterCode,waveMaster.getShipmentFilterCode()); + ), WaveMaster::getShipmentFilterCode,waveMaster.getShipmentFilterCode()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /** @@ -86,4 +86,67 @@ public class WaveMasterController extends BaseController { } + /** + * 新增波次主表 + */ + @GetMapping("/add") + public String add() { + return prefix + "/add"; + } + + /** + * 新增波次主表 + */ + @RequiresPermissions("config:waveMaster:add") + @Log(title = "配置-波次主表", operating = "新增波次主表", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(WaveMaster waveMaster){ + waveMaster.setWarehouseCode(ShiroUtils.getWarehouseCode()); + waveMaster.setCreatedBy(ShiroUtils.getLoginName()); + waveMaster.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveMasterService.save(waveMaster)); + } + + /** + * 修改波次 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) { + mmap.put("waveMaster", waveMasterService.getById(id)); + return prefix + "/edit"; + } + + /** + * 修改波次 + */ + @RequiresPermissions("config:waveMaster:edit") + @Log(title = "通用-波次主表", operating = "修改波次主表", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(WaveMaster waveMaster) { + waveMaster.setLastUpdatedBy(ShiroUtils.getLoginName()); + return toAjax(waveMasterService.updateById(waveMaster)); + } + + /** + * 删除波次 + */ + @RequiresPermissions("config:waveMaster: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)) { + list.add(id); + } + return toAjax(waveMasterService.removeByIds(list)); + } + + + } diff --git a/src/main/java/com/huaheng/pc/shipment/waveMaster/domain/WaveMaster.java b/src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java index a44fe78..1fd6dc4 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveMaster/domain/WaveMaster.java +++ b/src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java @@ -1,4 +1,4 @@ -package com.huaheng.pc.shipment.waveMaster.domain; +package com.huaheng.pc.config.waveMaster.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; @ApiModel(value="com.huaheng.pc.shipment.waveMaster.domain.WaveMaster") @Data diff --git a/src/main/java/com/huaheng/pc/shipment/waveMaster/mapper/WaveMasterMapper.java b/src/main/java/com/huaheng/pc/config/waveMaster/mapper/WaveMasterMapper.java index eda0820..d789f23 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveMaster/mapper/WaveMasterMapper.java +++ b/src/main/java/com/huaheng/pc/config/waveMaster/mapper/WaveMasterMapper.java @@ -1,7 +1,7 @@ -package com.huaheng.pc.shipment.waveMaster.mapper; +package com.huaheng.pc.config.waveMaster.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.huaheng.pc.shipment.waveMaster.domain.WaveMaster; +import com.huaheng.pc.config.waveMaster.domain.WaveMaster; public interface WaveMasterMapper extends BaseMapper<WaveMaster> { } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/shipment/waveMaster/service/WaveMasterService.java b/src/main/java/com/huaheng/pc/config/waveMaster/service/WaveMasterService.java index 230c9d5..ee2ad9b 100644 --- a/src/main/java/com/huaheng/pc/shipment/waveMaster/service/WaveMasterService.java +++ b/src/main/java/com/huaheng/pc/config/waveMaster/service/WaveMasterService.java @@ -1,11 +1,10 @@ -package com.huaheng.pc.shipment.waveMaster.service; +package com.huaheng.pc.config.waveMaster.service; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.huaheng.pc.shipment.waveMaster.mapper.WaveMasterMapper; -import com.huaheng.pc.shipment.waveMaster.domain.WaveMaster; +import com.huaheng.pc.config.waveMaster.domain.WaveMaster; +import com.huaheng.pc.config.waveMaster.mapper.WaveMasterMapper; +import org.springframework.stereotype.Service; + @Service public class WaveMasterService extends ServiceImpl<WaveMasterMapper, WaveMaster> { diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java index 51bf1de..9782ef9 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java @@ -4,6 +4,7 @@ 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.security.ShiroUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; @@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.lang.reflect.InvocationTargetException; import java.util.List; /** @@ -106,7 +108,20 @@ public class InventoryDetailController extends BaseController return AjaxResult.error("库存明细ID不能为空"); } Integer id = Integer.valueOf(ids); - return inventoryDetailService.detailcreateCheckOutTask(id); + inventoryDetailService.detailcreateCheckOutTask(id); + return AjaxResult.success("库存明细出库查看任务下发成功!"); + } + + + /**在库质检*/ + //@RequiresPermissions("inventory:inventoryHeader:detailCheckTask") + @PostMapping("/detailCheckTask") + @ResponseBody + public AjaxResult detailCheckTask(String ids) throws InvocationTargetException, IllegalAccessException { + if(StringUtils.isEmpty(ids)){ + return AjaxResult.error("库存明细ID不能为空"); + } + return inventoryDetailService.detailCheckTask(Convert.toIntArray(ids)); } diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java index 9d8f509..99736d4 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java @@ -5,15 +5,19 @@ import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; +import java.lang.reflect.InvocationTargetException; import java.util.List; public interface InventoryDetailService extends IService<InventoryDetail> { - AjaxResult detailcreateCheckOutTask (Integer id); + void detailcreateCheckOutTask (Integer id); List<InventoryDetail> selectBysql(String sql, ShipmentDetail shipmentDetail); + + AjaxResult detailCheckTask (Integer[] ids) throws InvocationTargetException, IllegalAccessException; + } diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java index 24b68ef..385bd16 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java @@ -6,22 +6,36 @@ import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.check.checkDetail.domain.CheckDetail; +import com.huaheng.pc.check.checkDetail.service.CheckDetailService; +import com.huaheng.pc.check.checkHeader.domain.CheckHeader; +import com.huaheng.pc.check.checkHeader.service.CheckHeaderService; import com.huaheng.pc.config.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; +import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; +import com.huaheng.pc.system.dict.domain.DictData; +import com.huaheng.pc.system.dict.service.DictDataServiceImpl; +import com.huaheng.pc.system.dict.service.IDictDataService; import com.huaheng.pc.task.taskDetail.domain.TaskDetail; import com.huaheng.pc.task.taskDetail.service.TaskDetailService; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; +import org.apache.commons.beanutils.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.inventory.inventoryDetail.mapper.InventoryDetailMapper; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.lang.reflect.InvocationTargetException; +import java.text.SimpleDateFormat; +import java.util.*; @Service public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMapper, InventoryDetail> implements InventoryDetailService { @@ -36,6 +50,16 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe private InventoryDetailMapper inventoryDetailMapper; @Resource private LocationService locationService; + @Autowired + private InventoryHeaderService inventoryHeaderService; + @Autowired + private ReceiptDetailService receiptDetailService; + @Autowired + private CheckHeaderService checkHeaderService; + @Autowired + private CheckDetailService checkDetailService; + @Autowired + private IDictDataService dictDataService; @@ -43,7 +67,7 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe * 库存明细出库查看 * */ @Override - public AjaxResult detailcreateCheckOutTask(Integer id) { + public void detailcreateCheckOutTask(Integer id) { /*传入库存明细ID,通过该ID找到明细条码确定库位容器,再生成任务*/ InventoryDetail inventoryDetail = inventoryDetailMapper.selectById(id); @@ -66,10 +90,10 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe TaskHeader taskHeader = new TaskHeader(); taskHeader.setWarehouseCode(inventoryDetail.getWarehouseCode()); taskHeader.setCompanyCode(inventoryDetail.getCompanyCode()); - taskHeader.setInternalTaskType(900); + taskHeader.setInternalTaskType(200); taskHeader.setTaskType(900); taskHeader.setContainerCode(inventoryDetail.getContainerCode()); - taskHeader.setStatus(1); + taskHeader.setStatus(0); taskHeader.setFromLocation(inventoryDetail.getLocationCode()); taskHeader.setToLocation(inventoryDetail.getLocationCode()); taskHeader.setCreated(new Date()); @@ -100,7 +124,6 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe throw new ServiceException("出库查看任务明细生成失败!"); } - return AjaxResult.success("库存明细出库查看任务下发成功!"); } @Override @@ -112,6 +135,103 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe return inventoryDetailMapper.selectBysql(sql); } + //在库质检,把入库主单和子单明细加入到质检单主从中 + @Override + @Transactional + public AjaxResult detailCheckTask(Integer[] ids) throws InvocationTargetException, IllegalAccessException { + HashSet<String> codeSet=new HashSet(); + Integer size=0; + for(Integer id : ids){ + //查找库存明细,是否为同一个入库单入库的 + InventoryDetail inventoryDetail=this.getById(id); + if(inventoryDetail==null){ + throw new ServiceException("查不到库存明细"); + } + if(StringUtils.isEmpty(inventoryDetail.getReceiptCode())){ + throw new ServiceException("查不到库存的入库源头"); + } + + //查找未质检的 + if(inventoryDetail.getQcCheck().equals("2")) { + codeSet.add(inventoryDetail.getReceiptCode()); + } + } + + List<InventoryDetail> inventoryDetails=new ArrayList<>(); + for(String code : codeSet){ + //对库存分类,已入库单划分 + for(Integer id : ids){ + InventoryDetail inventoryDetail=this.getById(id); + if(inventoryDetail.getReceiptCode().equals(code) && inventoryDetail.getQcCheck().equals("2")){ + inventoryDetails.add(inventoryDetail); + } + } + LambdaQueryWrapper<InventoryDetail> lam=Wrappers.lambdaQuery(); + lam.eq(InventoryDetail::getReceiptCode,code) + .eq(InventoryDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); + List<InventoryDetail> inventoryDetailList=this.list(lam); + + CheckHeader checkHeader = new CheckHeader(); + //判断入库单明细与该单已选中质检的库存明细比较,得出质检单的类型 + if(inventoryDetailList.size()>inventoryDetails.size()){ + checkHeader.setType("300"); + }else { + checkHeader.setType("200"); + } + + //生成质检单号code + DictData dictData=new DictData(); + dictData.setWarehouseCode(ShiroUtils.getWarehouseCode()); + dictData.setDictType("checkType"); + dictData.setRemark(checkHeader.getType()); + dictData=dictDataService.selectModel(dictData); + String checkCode=checkHeaderService.createCode(dictData.getDictValue()); + + //质检主表插入数据 + checkHeader.setCode(checkCode); + checkHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); + checkHeader.setReferCode(code); + checkHeader.setEnable(1); + checkHeader.setStatus("0"); + checkHeader.setCreatedBy(ShiroUtils.getLoginName()); + Boolean flag=checkHeaderService.save(checkHeader); + if(flag == false){ + throw new ServiceException("质检主表插入失败"); + } + + List<CheckDetail> checkDetails=new ArrayList<>(); + CheckDetail checkDetail=new CheckDetail(); + //质检明细插入数据 + for(InventoryDetail item : inventoryDetails){ + BeanUtils.copyProperties(checkDetail,item); + checkDetail.setCheckHeaderId(checkHeader.getId()); + checkDetail.setCheckCode(checkCode); + checkDetail.setInventoryDetailId(item.getId()); + checkDetail.setStatus("0"); + checkDetail.setCreatedBy(ShiroUtils.getLoginName()); + checkDetail.setCreated(new Date()); + checkDetail.setLastUpdatedBy(null); + checkDetail.setLastUpdated(new Date()); + checkDetails.add(checkDetail); + detailcreateCheckOutTask(item.getId()); + item.setQcCheck("1"); + } + flag=checkDetailService.saveBatch(checkDetails); + if(flag == false){ + throw new ServiceException("质检子表插入失败"); + } + if(this.updateBatchById(inventoryDetails) == false){ + throw new ServiceException("库存修改状态失败"); + } + } + size=ids.length-inventoryDetails.size(); + if(size == ids.length){ + return AjaxResult.success("所有库存已质检!或无需质检"); + }else { + return AjaxResult.success("在库质检任务下发成功!有" + size + "条库存明细已质检。"); + } + } + } diff --git a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java index f6bdc1d..eaa2e5b 100644 --- a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java +++ b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java @@ -269,8 +269,8 @@ public class ReceiptContainerHeader implements Serializable { * * @return id - ID */ - public Integer getId() { - return id; + public Integer getId() { + return this.id; } /** diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java index 8abf70e..0994951 100644 --- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java +++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java @@ -29,8 +29,6 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei @Resource private ReceiptTypeService receiptTypeService; @Resource - private StatusFlowDetailService statusFlowDetailService; - @Resource private ReceiptDetailService receiptDetailService; public AjaxResult saveReceiptHeader(ReceiptHeader receiptHeader){ diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java index ea9ae4e..fa04ccf 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java @@ -119,5 +119,21 @@ public class TaskHeaderController extends BaseController { } + /** + * 删除立库任务 + */ + @RequiresPermissions("task:taskHeader:remove") + @Log(title = "任务-任务管理", operating = "删除立库任务", action = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + if (StringUtils.isEmpty(ids)) + return AjaxResult.error("taskId不能为空"); + AjaxResult ajaxResult = taskHeaderService.cancelTask(Convert.toIntArray(ids)); + return ajaxResult; + } + + } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java index efd5185..298fc69 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java @@ -35,5 +35,7 @@ public interface TaskHeaderService extends IService<TaskHeader>{ Integer UncompleteCount(String containerCode); + AjaxResult cancelTask(Integer[] taskIds) ; + } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java index caf80f5..d6d6b4c 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java @@ -12,6 +12,7 @@ import com.huaheng.pc.config.container.domain.Container; import com.huaheng.pc.config.container.service.ContainerService; import com.huaheng.pc.config.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; @@ -88,7 +89,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea private ShipmentDetailService shipmentDetailService; - @Resource private ReceiptContainerHeaderService receiptContainerHeaderService; @Resource @@ -96,9 +96,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea - - - /** * 查询容器有无任务 */ @@ -107,6 +104,64 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return taskHeaderMapper.UncompleteCount(ContainerCode, ShiroUtils.getWarehouseCode()); } + + /** + * 取消任务 + * */ + + @Override + public AjaxResult cancelTask(Integer[] taskIds) { + for(int taskId : taskIds){ + TaskHeader taskHeader = taskHeaderService.getById(taskId); + if(taskHeader==null){ + return AjaxResult.error("任务"+taskId+"未找到,操作中止"); + } + if(taskHeader.getStatus() > 9){ + return AjaxResult.error("存在任务"+taskHeader.getId()+"已下发或执行,操作中止"); + } + //删除子任务 + LambdaQueryWrapper<TaskDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(TaskDetail::getTaskId,taskHeader.getId()); + taskDetailService.remove(lambdaQueryWrapper); + //删除主任务 + taskHeaderService.removeById(taskHeader.getId()); + // 更改库位状态(整盘入库任务除外) + if(taskHeader.getInternalTaskType() == 100 ) + { + ReceiptContainerHeader record =new ReceiptContainerHeader(); + record.setStatus((short)0); + record.setId(taskHeader.getAllocationHeadId()); + receiptContainerHeaderService.updateById(record); + } + //根据任务类型来更新货箱状态 + //修改关联的货箱状态 + if(taskHeader.getInternalTaskType() == 200) { + ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader(); + shipmentContainerHeader.setId(taskHeader.getAllocationHeadId()); + shipmentContainerHeader.setStatus(0); + shipmentContainerHeaderService.updateById(shipmentContainerHeader); + } +// if(taskHeader.getInternalTaskType() == 700) { +// CycleCountHeader cycleCountHeader = new CycleCountHeader(); +// cycleCountHeader.setId(task.getAllocationHeadId()); +// cycleCountHeader.setLastUpdated(new Date()); +// cycleCountHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); +// cyclecountDetailService.updateByModel(cyclecountDetail); +// } + if(taskHeader.getInternalTaskType()==100||taskHeader.getInternalTaskType()==200){ + if(taskHeader.getToLocation()!=null){ + //更新托盘、库位状态 + locationService.updateStatus(taskHeader.getToLocation(), "empty"); + } + } +// if(task.getType()==900){ +// //出库查看任务没有关联的货箱,不做处理 +// } + } + + return AjaxResult.success("取消任务成功!"); + } + /** * 生成出库任务 * @@ -215,7 +270,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea ShipmentContainerHeader record = new ShipmentContainerHeader(); record.setId(shipmentContainerHeaderId); record.setStatus(10); - record.setStatus(task.getTaskType());//实际出库类型 shipmentContainerHeaderService.saveOrUpdate(record); return AjaxResult.success(task.getId()); @@ -238,39 +292,64 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止"); } //修改任务头表 + task.setId(taskId); task.setStatus(10); task.setStartPickDateTime(new Date()); //生成时间 task.setLastUpdated(new Date()); task.setLastUpdatedBy(ShiroUtils.getLoginName()); - LambdaUpdateWrapper<TaskHeader> HeaderUpdateWrapper = Wrappers.lambdaUpdate(); - HeaderUpdateWrapper.eq(TaskHeader::getId, taskId); - if (!taskHeaderService.update(task, HeaderUpdateWrapper)) - throw new ServiceException("更新任务头失败"); + taskHeaderService.saveOrUpdate(task); //修改任务明细状态 TaskDetail record = new TaskDetail(); record.setStatus(10); record.setLastUpdated(new Date()); record.setLastUpdatedBy(ShiroUtils.getLoginName()); + record.setProcessStamp("100"); + taskDetailService.updateById(record); LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); lambdaUpdateWrapper.eq(TaskDetail::getTaskId, task.getId()); if (!taskDetailService.update(record, lambdaUpdateWrapper)){ throw new ServiceException("更新任务明细失败"); } - //修改入库明细 - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId())); - if (!receiptDetailService.updateById(receiptDetail)){ - throw new ServiceException("更新状态失败"); - } - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); - //修改组盘表状态为20 - ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); - receiptContainerDetail.setStatus(20); - receiptContainerDetail.setLastUpdated(new Date()); - receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); - receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId()); - if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) - throw new ServiceException("更新组盘状态失败"); +// //修改入库明细 +// if (task.getInternalTaskType()==100){ +// ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId())); +// if (!receiptDetailService.updateById(receiptDetail)){ +// throw new ServiceException("更新状态失败"); +// } +// receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); +// +// //修改组盘表状态为20 +// ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); +// receiptContainerDetail.setStatus(20); +// receiptContainerDetail.setLastUpdated(new Date()); +// receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); +// LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); +// receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId()); +// if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) +// throw new ServiceException("更新组盘状态失败"); +// } +// +// //修改出库单状态 +// if (task.getInternalTaskType()==200){ +// LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); +// taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId()); +// List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper); +// +// for (TaskDetail taskDeatails: taskDetailList) { +// LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); +// shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId()); +// +// ShipmentHeader shipmentHeader =new ShipmentHeader(); +// shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId()); +// shipmentHeader.setFirstStatus(100); +// shipmentHeader.setLastStatus(100); +// shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); +// shipmentHeader.setLastUpdated(new Date()); +// shipmentHeaderService.updateById(shipmentHeader); +// } +// } + + } return AjaxResult.success("下发任务成功", task); } @@ -483,7 +562,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } //修改组盘表状态为20 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); - receiptContainerDetail.setStatus(20); + receiptContainerDetail.setStatus(30); receiptContainerDetail.setProcessStamp("0"); receiptContainerDetail.setLastUpdated(new Date()); receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); @@ -491,12 +570,37 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(map.get("receiptId"))); if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) throw new ServiceException("更新组盘状态失败"); - //修改入库明细 - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId")))); - if (!receiptDetailService.updateById(receiptDetail)){ - throw new ServiceException("更新状态失败"); + + if (task.getInternalTaskType()==100){ + //修改入库明细 + ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId")))); + if (!receiptDetailService.updateById(receiptDetail)){ + throw new ServiceException("更新状态失败"); + } + receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); } - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); + + //修改出库单明细 + if (task.getInternalTaskType()==200){ + LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId()); + List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper); + + for (TaskDetail taskDeatails: taskDetailList) { + LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId()); + + ShipmentHeader shipmentHeader =new ShipmentHeader(); + shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId()); + shipmentHeader.setFirstStatus(100); + shipmentHeader.setLastStatus(100); + shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); + shipmentHeader.setLastUpdated(new Date()); + shipmentHeaderService.updateById(shipmentHeader); + } + } + + } } @@ -1015,15 +1119,20 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new ServiceException("任务明细对应的库存ID【" + taskDetail.getToInventoryId().toString() + "】不存在!"); } BigDecimal orignalQty = inventoryDetail.getQty(); - //扣减库存 + //减扣库存单 + InventoryHeader inventoryHeader = inventoryHeaderService.getById(inventoryDetail.getInventoryHeaderId()); + inventoryHeader.setTotalQty(inventoryDetail.getQty().subtract(taskDetail.getQty()).intValue()); + //扣减库存明细 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty())); inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty())); if(inventoryDetail.getQty().compareTo(new BigDecimal("0"))==0 && inventoryDetail.getTaskQty().compareTo(new BigDecimal("0"))==0){ //如果库存没有了,就删除这个库存 inventoryDetailService.removeById(inventoryDetail.getId()); + inventoryHeaderService.removeById(inventoryHeader.getId()); }else { //否则更新这个库存 inventoryDetailService.updateById(inventoryDetail); + inventoryHeaderService.updateById(inventoryHeader); } //设置子任务状态为已执行 taskDetail.setStatus(100); @@ -1092,11 +1201,25 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea containerService.update(containerLambdaUpdateWrapper); } } -// //设置出库货箱状态为拣货任务完成 -// shipmentContainerHeaderService.resetStatusShipmentContainer(task.getAllocationHeadId(),(short)20); - // 最后更新单据状态 - shipmentHeadIds.stream().distinct().forEach(t->shipmentHeaderService.updateShipmentStatus(t)); - + //设置出库货箱状态为拣货任务完成 + ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); + receiptContainerDetail.setStatus(30); + receiptContainerDetail.setLastUpdated(new Date()); + receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); + receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getId,task.getAllocationHeadId()); + if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){ + throw new ServiceException("更新组盘明细状态失败"); + } + //设置出库货箱表头状态为拣货任务完成 + ReceiptContainerHeader ContainerHeader = new ReceiptContainerHeader(); + ContainerHeader.setStatus((short)30); + ContainerHeader.setLastUpdated(new Date()); + ContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); + LambdaUpdateWrapper<ReceiptContainerHeader> receiptContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); + receiptContainerHeaderLambdaUpdateWrapper.eq(ReceiptContainerHeader::getId,task.getAllocationHeadId()); + if (! receiptContainerHeaderService.update(ContainerHeader, receiptContainerHeaderLambdaUpdateWrapper)) + throw new ServiceException("更新组盘头状态失败"); } diff --git a/src/main/resources/mybatis/check/CheckHeaderMapper.xml b/src/main/resources/mybatis/check/CheckHeaderMapper.xml index 8c466f3..e6d53ed 100644 --- a/src/main/resources/mybatis/check/CheckHeaderMapper.xml +++ b/src/main/resources/mybatis/check/CheckHeaderMapper.xml @@ -34,4 +34,9 @@ closedAt, created, createdBy, lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp </sql> + + <select id="createCode" resultType="java.lang.String"> + SELECT code FROM check_header WHERE substring(code,1,2) = #{checkType,jdbcType=VARCHAR} ORDER BY id DESC LIMIT 1 + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/WaveFlowDetailMapper.xml b/src/main/resources/mybatis/config/WaveFlowDetailMapper.xml index 37b59c4..91d07b0 100644 --- a/src/main/resources/mybatis/shipment/WaveFlowDetailMapper.xml +++ b/src/main/resources/mybatis/config/WaveFlowDetailMapper.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.huaheng.pc.shipment.waveFlowDetail.mapper.WaveFlowDetailMapper"> - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail"> +<mapper namespace="com.huaheng.pc.config.waveFlowDetail.mapper.WaveFlowDetailMapper"> + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail"> <!--@mbg.generated--> <id column="id" jdbcType="INTEGER" property="id" /> <result column="headerId" jdbcType="INTEGER" property="headerId" /> @@ -23,16 +23,12 @@ <result column="userDef2" jdbcType="VARCHAR" property="userDef2" /> <result column="userDef3" jdbcType="VARCHAR" property="userDef3" /> <result column="userDef4" jdbcType="VARCHAR" property="userDef4" /> - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" /> - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" /> - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" /> - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" /> <result column="processStamp" jdbcType="VARCHAR" property="processStamp" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> id, headerId, waveFlowCode, warehouseCode, `sequence`, waveStepCode, waveStepName, value1, value2, value3, value4, created, createdBy, lastUpdated, lastUpdatedBy, version, - userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp + userDef1, userDef2, userDef3, userDef4, processStamp </sql> </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/WaveFlowHeaderMapper.xml b/src/main/resources/mybatis/config/WaveFlowHeaderMapper.xml index e131b4d..626cb71 100644 --- a/src/main/resources/mybatis/shipment/WaveFlowHeaderMapper.xml +++ b/src/main/resources/mybatis/config/WaveFlowHeaderMapper.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.huaheng.pc.shipment.waveFlowHeader.mapper.WaveFlowHeaderMapper"> - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader"> +<mapper namespace="com.huaheng.pc.config.waveFlowHeader.mapper.WaveFlowHeaderMapper"> + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader"> <!--@mbg.generated--> <id column="id" jdbcType="INTEGER" property="id" /> <result column="code" jdbcType="VARCHAR" property="code" /> @@ -15,15 +15,11 @@ <result column="userDef2" jdbcType="VARCHAR" property="userDef2" /> <result column="userDef3" jdbcType="VARCHAR" property="userDef3" /> <result column="userDef4" jdbcType="VARCHAR" property="userDef4" /> - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" /> - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" /> - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" /> - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" /> <result column="processStamp" jdbcType="VARCHAR" property="processStamp" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> id, code, warehouseCode, created, createdBy, lastUpdated, lastUpdatedBy, version, - userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp + userDef1, userDef2, userDef3, userDef4, processStamp </sql> </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/WaveMapper.xml b/src/main/resources/mybatis/config/WaveMapper.xml index 6831b49..23fa520 100644 --- a/src/main/resources/mybatis/shipment/WaveMapper.xml +++ b/src/main/resources/mybatis/config/WaveMapper.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.huaheng.pc.shipment.wave.mapper.WaveMapper"> - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.wave.domain.Wave"> +<mapper namespace="com.huaheng.pc.config.wave.mapper.WaveMapper"> + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.wave.domain.Wave"> <!--@mbg.generated--> <id column="id" jdbcType="INTEGER" property="id" /> <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" /> <result column="waveName" jdbcType="VARCHAR" property="waveName" /> <result column="masterCode" jdbcType="VARCHAR" property="masterCode" /> - <result column="enable" jdbcType="INTEGER" property="enable" /> + <result column="status" jdbcType="INTEGER" property="status" /> <result column="currentWaveStep" jdbcType="VARCHAR" property="currentWaveStep" /> <result column="lastWaveStep" jdbcType="VARCHAR" property="lastWaveStep" /> <result column="totalShipments" jdbcType="INTEGER" property="totalShipments" /> @@ -32,10 +32,6 @@ <result column="userDef2" jdbcType="VARCHAR" property="userDef2" /> <result column="userDef3" jdbcType="VARCHAR" property="userDef3" /> <result column="userDef4" jdbcType="VARCHAR" property="userDef4" /> - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" /> - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" /> - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" /> - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" /> <result column="processStamp" jdbcType="VARCHAR" property="processStamp" /> <result column="closed" jdbcType="INTEGER" property="closed" /> <result column="closedBy" jdbcType="VARCHAR" property="closedBy" /> @@ -44,10 +40,10 @@ </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> - id, warehouseCode, waveName, masterCode, `enable`, currentWaveStep, lastWaveStep, + id, warehouseCode, waveName, masterCode, `status`, currentWaveStep, lastWaveStep, totalShipments, totalLines, totalQty, startedAt, completedAt, waveMode, errorMessage, locked, replenishmentReqd, messageId, runBy, releasedBy, releasedAt, created, createdBy, - lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, userDef4, userDef5, - userDef6, userDef7, userDef8, processStamp, closed, closedBy, closedAt, released + lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, userDef4, processStamp, + closed, closedBy, closedAt, released </sql> </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/shipment/WaveMasterMapper.xml b/src/main/resources/mybatis/config/WaveMasterMapper.xml index 61294f4..c275431 100644 --- a/src/main/resources/mybatis/shipment/WaveMasterMapper.xml +++ b/src/main/resources/mybatis/config/WaveMasterMapper.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.huaheng.pc.shipment.waveMaster.mapper.WaveMasterMapper"> - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.waveMaster.domain.WaveMaster"> +<mapper namespace="com.huaheng.pc.config.waveMaster.mapper.WaveMasterMapper"> + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.waveMaster.domain.WaveMaster"> <!--@mbg.generated--> <id column="id" jdbcType="INTEGER" property="id" /> <result column="code" jdbcType="VARCHAR" property="code" /> @@ -33,10 +33,6 @@ <result column="userDef2" jdbcType="VARCHAR" property="userDef2" /> <result column="userDef3" jdbcType="VARCHAR" property="userDef3" /> <result column="userDef4" jdbcType="VARCHAR" property="userDef4" /> - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" /> - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" /> - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" /> - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" /> <result column="processStamp" jdbcType="VARCHAR" property="processStamp" /> </resultMap> <sql id="Base_Column_List"> diff --git a/src/main/resources/mybatis/system/DictDataMapper.xml b/src/main/resources/mybatis/system/DictDataMapper.xml index 8ccc6e4..5f6a411 100644 --- a/src/main/resources/mybatis/system/DictDataMapper.xml +++ b/src/main/resources/mybatis/system/DictDataMapper.xml @@ -181,7 +181,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" </insert> <select id="selectModel" resultType="com.huaheng.pc.system.dict.domain.DictData"> - select * from sys_dict_data where warehouseCode=#{warehouseCode} and dictType=#{dictType} and dictValue=#{dictValue} limit 1 + select * from sys_dict_data + <where> + <if test="warehouseCode != null"> + AND warehouseCode = #{warehouseCode} + </if> + <if test="headerId != null"> + AND headerId = #{headerId} + </if> + <if test="dictValue != null"> + AND dictValue = #{dictValue} + </if> + <if test="dictLabel != null"> + AND dictLabel = #{dictLabel} + </if> + <if test="dictType != null"> + AND dictType = #{dictType} + </if> + <if test="remark != null"> + AND remark = #{remark} + </if> + </where> + limit 1 </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/check/checkDetail/checkComplete.html b/src/main/resources/templates/check/checkDetail/checkComplete.html new file mode 100644 index 0000000..32e50f2 --- /dev/null +++ b/src/main/resources/templates/check/checkDetail/checkComplete.html @@ -0,0 +1,90 @@ +<!DOCTYPE HTML> +<html lang="zh" xmlns:th="http://www.thymeleaf.org"> +<meta charset="utf-8"> +<head th:include="include :: header"></head> +<body class="white-bg"> +<div class="wrapper wrapper-content animated fadeInRight ibox-content"> + <form class="form-horizontal m" id="form-checkComplete-add"> + <div class="form-group"> + <label class="col-sm-3 control-label">库存状态:</label> + <div class="col-sm-8"> + <select class="form-control" id="inventorySts0" name="inventorySts0" th:with="statusList=${@dict.getType('inventoryStatus')}"> + <option value="">请选择</option> + <option th:each="status : ${statusList}" th:text="${status['dictLabel']}" th:value="${status['dictValue']}"></option> + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">数量:</label> + <div class="col-sm-8"> + <input name="qty0" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">库存状态:</label> + <div class="col-sm-8"> + <select class="form-control" id="inventorySts1" name="inventorySts1" th:with="statusList=${@dict.getType('inventoryStatus')}"> + <option value="">请选择</option> + <option th:each="status : ${statusList}" th:text="${status['dictLabel']}" th:value="${status['dictValue']}"></option> + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">数量:</label> + <div class="col-sm-8"> + <input name="qty1" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">库存状态:</label> + <div class="col-sm-8"> + <select class="form-control" id="inventorySts2" name="inventorySts2" th:with="statusList=${@dict.getType('inventoryStatus')}"> + <option value="">请选择</option> + <option th:each="status : ${statusList}" th:text="${status['dictLabel']}" th:value="${status['dictValue']}"></option> + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">数量:</label> + <div class="col-sm-8"> + <input name="qty2" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <div class="form-control-static col-sm-offset-9"> + <button type="submit" class="btn btn-primary">提交</button> + <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button> + </div> + </div> + </form> +</div> +<div th:include="include::footer"></div> +<script type="text/javascript"> + var prefix = ctx + "check/checkDetail"; + $("#form-checkComplete-add").validate({ + submitHandler: function() { + var tableValue; + var inventorySts; + var qty; + if ( $("#inventorySts0 option:selected").val() == ""){ + inventorySts = $("#inventorySts0 option:selected").val() + } + if ( $("#inventorySts1 option:selected").val() == ""){ + inventorySts = ","+$("#inventorySts1 option:selected").val() + } + if ( $("#inventorySts2 option:selected").val() == ""){ + inventorySts = ","+$("#inventorySts2 option:selected").val() + } + if ( $("input[name='qty"+i+"']").val() == ""){ + qty = $("input[name='qty"+i+"']").val()+"," + } + + tableValue = formValueReplace(tableValue, "id", [[${checkDetailId}]]); + tableValue = formValueReplace(tableValue, "inventorySts", inventorySts); + tableValue = formValueReplace(tableValue, "qty", qty); + $.operate.save(prefix + "/complete", $('#form-checkComplete-add').serialize()); + } + }); +</script> +</body> +</html> diff --git a/src/main/resources/templates/check/checkDetail/checkDetail.html b/src/main/resources/templates/check/checkDetail/checkDetail.html new file mode 100644 index 0000000..e996624 --- /dev/null +++ b/src/main/resources/templates/check/checkDetail/checkDetail.html @@ -0,0 +1,179 @@ +<!DOCTYPE HTML> +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> +<meta charset="utf-8"> +<head th:include="include :: header"></head> +<body class="gray-bg"> +<div class="container-div"> + <div class="row"> + <div class="btn-group hidden-xs" id="toolbar" role="group"> + <!--<a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="receipt:receiptContainer:add">--> + <!--<i class="fa fa-plus"></i> 新增--> + <!--</a>--> + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptContainer:remove"> + <i class="fa fa-trash-o"></i> 删除 + </a> + </div> + + <div class="col-sm-12 select-info"> + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> + </div> + </div> +</div> +<div th:include="include :: footer"></div> +<script th:inline="javascript"> + var editFlag = [[${@permission.hasPermi('check:checkDetail:edit')}]]; + var removeFlag = [[${@permission.hasPermi('check:checkDetail:remove')}]]; + var checkDetailStatus = [[${@dict.getType('checkDetailStatus')}]]; + var prefix = ctx + "check/checkDetail"; + var inventorySts = [[${@dict.getType('inventoryStatus')}]]; + + $(function() { + var options = { + url: prefix + "/list", + createUrl: prefix + "/add", + updateUrl: prefix + "/edit/{id}", + removeUrl: prefix + "/remove", + queryParams: queryParams, + modalName: "质检明细", + sortName: "id", + sortOrder: "desc", + search: false, + columns: [{ + checkbox: true + }, + { + field : 'id', + title : 'id' + }, + { + field : 'checkHeaderId', + title : '质检头id' + }, + { + field : 'warehouseCode', + title : '仓库编码', + visible : false + }, + { + field : 'checkCode', + title : '质检单编码' + }, + { + field : 'inventoryDetailId', + title : '库存明细标识' + }, + { + field : 'locationCode', + title : '库位编码' + }, + { + field : 'containerCode', + title : '容器编码' + }, + { + field : 'receiptDetailId', + title : '入库单明细标识' + }, + { + field : 'receiptCode', + title : '入库单号' + }, + { + field : 'referCode', + title : '关联单号' + }, + { + field : 'referLineId', + title : '关联行号' + }, + { + field : 'referPlatform', + title : '关联平台' + }, + { + field : 'materialCode', + title : '物料编码' + }, + { + field : 'materialName', + title : '物料名称' + }, + { + field : 'materialSpec', + title : '物料规格' + }, + { + field : 'materialUnit', + title : '物料单位' + }, + { + field : 'companyCode', + title : '货主代码' + }, + { + field : 'inventorySts', + title : '库存状态', + align: 'center', + formatter: function (value, row, index) { + return $.table.selectDictLabel(inventorySts, value); + } + }, + { + field : 'status', + title : '状态', + align: 'center', + formatter: function (value, row, index) { + return $.table.selectDictLabel(checkDetailStatus, value); + } + }, + { + field : 'qty', + title : '系统数量' + }, + { + field : 'checkBy', + title : '质检人' + }, + { + field : 'checkAt', + title : '质检时间' + }, + { + field : 'created', + title : '创建时间' + }, + { + field : 'createdBy', + title : '创建用户' + }, + { + title: '操作', + align: 'center', + formatter: function(value, row, index) { + var actions = []; + actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); + if (row.status == 10) { + actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-edit"></i>质检完成</a> '); + } + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>'); + return actions.join(''); + } + }] + }; + $.table.init(options); + }); + + + function complete(id) { + var url = prefix+"/complete/"+id; + $.modal.open("完成质检", url); + } + + function queryParams(params) { + return { + checkHeaderId : [[${id}]] + }; + } +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/resources/templates/check/checkHeader/checkHeader.html b/src/main/resources/templates/check/checkHeader/checkHeader.html new file mode 100644 index 0000000..10e3de2 --- /dev/null +++ b/src/main/resources/templates/check/checkHeader/checkHeader.html @@ -0,0 +1,223 @@ +<!DOCTYPE HTML> +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> +<meta charset="utf-8"> +<head th:include="include :: header"></head> +<body class="gray-bg"> + +<div class="container-div"> + <div class="row"> + <div class="col-sm-12 select-info"> + <ul id="myTab" class="nav nav-tabs"> + <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li> + <li><a href="#tabDetail" data-toggle="tab">明细</a></li> + </ul> + <div id="myTabContent" class="tab-content"> + <div class="tab-pane fade in active" id="tabHeader"> + <div class="col-sm-12 select-info"> + <form id="receiptHeader-form"> + <div class="select-list"> + <ul> + <li> + 编码:<input type="text" name="code"/> + </li> + <li> + 入库单编码:<input type="text" name="referCode"> + </li> + <li>状态: + <select name="lastStatus"> + <option value="">所有</option> + <option value="0">新建</option> + </select> + </li> + <li class="time"> + <label>创建时间: </label> + <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[createdBegin]"/> + <span>-</span> + <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[createdEnd]"/> + </li> + <li> + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> + </li> + </ul> + </div> + </form> + </div> + <div class="btn-group hidden-xs" id="toolbar" role="group"> + <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" + shiro:hasPermission="receipt:receiptHeader:add"> + <i class="fa fa-plus"></i> 新增 + </a> + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" + shiro:hasPermission="receipt:receiptHeader:remove"> + <i class="fa fa-trash-o"></i> 删除 + </a> + </div> + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> + </div> + + <div class="tab-pane fade" id="tabDetail"> + <table id="bootstrap-table1" data-mobile-responsive="true" + class="table table-bordered table-hover"></table> + </div> + </div> + </div> + </div> +</div> +<div th:include="include :: footer"></div> +<script th:inline="javascript"> + var prefix = ctx + "check/checkHeader"; + var prefix1 = ctx + "check/checkDetail"; + var editFlag = [[${@permission.hasPermi('check:checkHeader:edit')}]]; + var removeFlag = [[${@permission.hasPermi('check:checkHeader:remove')}]]; + var receiptTypes = [[${@receiptTypeService.getType()}]]; + var checkHeaderStatus = [[${@dict.getType('checkHeaderStatus')}]]; + var printFlag = [[${@permission.hasPermi('check:checkHeader:report')}]]; + var addFlag= [[${@permission.hasPermi('check:checkHeader:add')}]]; + var datas = [[${@dict.getType('sys_normal_disable')}]]; + var type = [[${@dict.getType('checkType')}]]; + + $(function() { + var options = { + url: prefix + "/list", + createUrl: prefix + "/add", + updateUrl: prefix + "/edit/{id}", + removeUrl: prefix + "/remove", + modalName: "流程", + search: false, + sortName: "id", + sortOrder: "desc", + queryParams: queryParams, + columns: [{ + checkbox: true + }, + { + field : 'id', + title : '入库单id' + }, + { + field : 'code', + title : '编码' + }, + { + field : 'type', + title : '质检类型', + align: 'center', + formatter: function(value, row, index) { + return $.table.selectDictLabel(type, value); + } + }, + { + field : 'referCode', + title : '关联单号' + }, + { + field : 'referPlatform', + title : '关联平台' + }, + { + field : 'enable', + title : '是否有效', + align: 'center', + formatter: function(value, row, index) { + return $.table.selectDictLabel(datas, value); + } + }, + { + field : 'status', + title : '状态', + align: 'center', + formatter: function (value, row, index) { + return $.table.selectDictLabel(checkHeaderStatus, value); + } + }, + { + field : 'closedBy', + title : '关闭人' + }, + { + field : 'closedAt', + title : '关闭日期' + }, + { + field : 'created', + title : '创建时间', + sortable:true, + visible:false + }, + { + field : 'createdBy', + title : '创建用户', + visible:false + }, + { + field : 'lastUpdated', + title : '最后修改时间', + sortable:true, + visible:false + }, + { + field : 'lastUpdatedBy', + title : '更新用户', + visible:false + }, + { + field : 'userDef1', + title : '自定义字段1', + visible: false + }, + { + field : 'userDef2', + title : '自定义字段2', + visible: false + }, + { + field : 'userDef3', + title : '自定义字段3' , + visible: false + }, + { + title: '操作', + align: 'center', + formatter: function(value, row, index) { + var actions = []; + if (row.status == 0){ + actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + printFlag + '" href="#" onclick="verify(\'' + row.id + '\')"><i class="fa fa-print"></i>审核</a> '); + } + actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + printFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-print"></i>完成</a> '); + actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> '); + // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>'); + return actions.join(''); + } + }] + }; + $.table.init(options); + }); + + function detail(id, code) { + var url = prefix1+"/" + id; + createtable(url); + } + + function createtable(url) { + $("#tabDetail").children().remove(); + $("#myTab li").removeClass("active"); + var height = $(document).height()-100 + 'px'; + var str = '<iframe class="huaheng_iframe" name="iframe" width="100%" height="' + height + '" src="' + url + '" frameborder="0" data-id="' + url + '" seamless></iframe>'; + $("#tabDetail").append(str); + $(".tab-pane").removeClass("in active"); + $("#myTab li:eq(1)").addClass("active"); + $("#tabDetail").addClass("in active"); + } + + function verify(id) { + + } + + function queryParams(params) { + return { + type:[[${type}]] + }; + } +</script> +</body> +</html> \ No newline at end of file diff --git a/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html b/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html index 6bcf112..8b59b6a 100644 --- a/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html +++ b/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html @@ -86,6 +86,10 @@ shiro:hasPermission="inventory:inventory:seeOut"> <i class="fa fa-eye"></i> 出库查看 </a> + <a class="btn btn-outline btn-primary btn-rounded" onclick="check()" + > + <i class="fa fa-eye"></i> 在库质检 + </a> </div> <div class="col-sm-12 select-info"> <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> @@ -338,6 +342,20 @@ localSubmit(url, "post", "json", data); } + //在库质检 + function check() { + var rows = $("#bootstrap-table").bootstrapTable('getSelections'); + if (rows.length == 0) { + $.modal.alertWarning("请至少选择一条记录"); + return; + } + var url = prefix + "/detailCheckTask"; + var data = { + "ids": rows[0].id + }; + localSubmit(url, "post", "json", data); + } + function localSubmit(url, type, dataType, data) { $.modal.loading("正在处理中,请稍后..."); var config = {