diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java index a7ce8a9..d4592c2 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java @@ -14,7 +14,6 @@ import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; - import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/domain/AdjustDetail.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/domain/AdjustDetail.java index fb36eb4..a467c4b 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/domain/AdjustDetail.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/domain/AdjustDetail.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import lombok.Data; @@ -142,21 +143,21 @@ public class AdjustDetail implements Serializable { */ @TableField(value = "fromQty") @ApiModelProperty(value="调整前的数量") - private Integer fromQty; + private BigDecimal fromQty; /** * 调整后的数量 */ @TableField(value = "toQty") @ApiModelProperty(value="调整后的数量 ") - private Integer toQty; + private BigDecimal toQty; /** * 调整变动数量 */ @TableField(value = "gapQty") @ApiModelProperty(value="调整变动数量 ") - private Integer gapQty; + private BigDecimal gapQty; /** * 状态 -0-待调整 1-已调整 2-未批准 3-已批准 diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailService.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailService.java index cd088f4..00b7c60 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailService.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailService.java @@ -1,10 +1,14 @@ package com.huaheng.pc.inventory.adjustDetail.service; -import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.extension.service.IService; import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; -import com.huaheng.pc.inventory.adjustDetail.mapper.AdjustDetailMapper; -@Service -public class AdjustDetailService extends ServiceImpl<AdjustDetailMapper, AdjustDetail> { + + + +public interface AdjustDetailService extends IService<AdjustDetail> { + + } + + diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java new file mode 100644 index 0000000..51de3d6 --- /dev/null +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java @@ -0,0 +1,10 @@ +package com.huaheng.pc.inventory.adjustDetail.service; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; +import com.huaheng.pc.inventory.adjustDetail.mapper.AdjustDetailMapper; +@Service +public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, AdjustDetail> implements AdjustDetailService { + +} diff --git a/src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java b/src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java index 6c8e9c4..451857d 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java @@ -13,8 +13,10 @@ 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.inventory.adjustDetail.service.AdjustDetailService; +import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailServiceImpl; import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; +import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderServiceImpl; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/com/huaheng/pc/inventory/adjustHeader/mapper/AdjustHeaderMapper.java b/src/main/java/com/huaheng/pc/inventory/adjustHeader/mapper/AdjustHeaderMapper.java index 4e8fd0f..886bec6 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustHeader/mapper/AdjustHeaderMapper.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustHeader/mapper/AdjustHeaderMapper.java @@ -4,4 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; public interface AdjustHeaderMapper extends BaseMapper<AdjustHeader> { + + + String getLastCode(); + + + } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderService.java b/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderService.java index 69cc150..3709d1c 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderService.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderService.java @@ -1,10 +1,18 @@ package com.huaheng.pc.inventory.adjustHeader.service; -import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.extension.service.IService; import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; -import com.huaheng.pc.inventory.adjustHeader.mapper.AdjustHeaderMapper; -@Service -public class AdjustHeaderService extends ServiceImpl<AdjustHeaderMapper, AdjustHeader> { +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; + + +public interface AdjustHeaderService extends IService<AdjustHeader> { + + + String createCode(); + + + } + + diff --git a/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java new file mode 100644 index 0000000..cb273b8 --- /dev/null +++ b/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java @@ -0,0 +1,49 @@ +package com.huaheng.pc.inventory.adjustHeader.service; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; +import com.huaheng.pc.inventory.adjustHeader.mapper.AdjustHeaderMapper; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Service +public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, AdjustHeader> implements AdjustHeaderService { + + + @Resource + private AdjustHeaderMapper adjustHeaderMapper; + + + + + + + //生成差异单号 + @Override + public String createCode() { + String code; + Date now = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); + String maxCode = adjustHeaderMapper.getLastCode();; + //如果指定类型的最后的code存在,并且日期一致。那么 code = 单类型 + 年月日 + (排序号 + 1) + if (maxCode != null && maxCode.substring(maxCode.length() - 13, maxCode.length() - 5).equals(df.format(now))) + { + Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length())); + code = "CY" + df.format(now) + String.format("%05d", Count + 1); + } + else + { + code = "CY" + df.format(now) + "00001"; + } + return code; + } + + + + + + +} diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java index fd1b908..e762f6d 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java @@ -14,8 +14,9 @@ import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; -import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailServiceImpl; import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; +import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderServiceImpl; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -23,7 +24,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; -import java.util.Collections; import java.util.List; @@ -57,7 +57,7 @@ public class CycleCountDetailController extends BaseController { @PostMapping("/list") @Log(title = "库存-盘点",operating = "查看盘点明细", action = BusinessType.GRANT) @ResponseBody - public TableDataInfo list(CycleCountDetail cycleCountDetail, String createdBegin, String createdEnd) { + public TableDataInfo list(CycleCountDetail cycleCountDetail, String createdBegin, String createdEnd) throws IllegalAccessException { LambdaQueryWrapper<CycleCountDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); @@ -92,7 +92,7 @@ public class CycleCountDetailController extends BaseController { IPage<CycleCountDetail> iPage = cycleCountDetailService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { - List<CycleCountDetail> list = cycleCountDetailService.list(lambdaQueryWrapper); + List<CycleCountDetail> list = cycleCountDetailService.list(lambdaQueryWrapper); return getDataTable(list); } diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/domain/CycleCountDetail.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/domain/CycleCountDetail.java index d770af4..31ab4bb 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/domain/CycleCountDetail.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/domain/CycleCountDetail.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @ApiModel(value="com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail") @@ -122,21 +123,21 @@ public class CycleCountDetail implements Serializable { */ @TableField(value = "systemQty") @ApiModelProperty(value="系统数量") - private Long systemQty; + private BigDecimal systemQty; /** * 实盘数量 */ @TableField(value = "countedQty") @ApiModelProperty(value="实盘数量") - private Long countedQty; + private BigDecimal countedQty; /** * 差异数量 */ @TableField(value = "gapQty") @ApiModelProperty(value="差异数量") - private Long gapQty; + private BigDecimal gapQty; /** * 失败原因 @@ -562,52 +563,27 @@ public class CycleCountDetail implements Serializable { this.inventorySts = inventorySts; } - /** - * 获取系统数量 - * - * @return systemQty - 系统数量 - */ - public Long getSystemQty() { + public BigDecimal getSystemQty() { return systemQty; } - /** - * 设置系统数量 - * - * @param systemQty 系统数量 - */ - public void setSystemQty(Long systemQty) { + public void setSystemQty(BigDecimal systemQty) { this.systemQty = systemQty; } - /** - * 获取实盘数量 - * - * @return countedQty - 实盘数量 - */ - public Long getCountedQty() { + public BigDecimal getCountedQty() { return countedQty; } - /** - * 设置实盘数量 - * - * @param countedQty 实盘数量 - */ - public void setCountedQty(Long countedQty) { + public void setCountedQty(BigDecimal countedQty) { this.countedQty = countedQty; } - /** - * 获取调整数量 - * - * @return gapQty- 调整数量 - */ - public Long getGapQty() { + public BigDecimal getGapQty() { return gapQty; } - public void setGapQty(Long gapQty) { + public void setGapQty(BigDecimal gapQty) { this.gapQty = gapQty; } diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java index 37fab40..aba817a 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java @@ -1,10 +1,14 @@ package com.huaheng.pc.inventory.cycleCountDetail.service; -import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.huaheng.pc.inventory.cycleCountDetail.mapper.CycleCountDetailMapper; +import com.baomidou.mybatisplus.extension.service.IService; import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; -@Service -public class CycleCountDetailService extends ServiceImpl<CycleCountDetailMapper, CycleCountDetail> { +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; + + +public interface CycleCountDetailService extends IService<CycleCountDetail> { + + } + + diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java new file mode 100644 index 0000000..50ee0e8 --- /dev/null +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java @@ -0,0 +1,15 @@ +package com.huaheng.pc.inventory.cycleCountDetail.service; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.huaheng.pc.inventory.cycleCountDetail.mapper.CycleCountDetailMapper; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; +@Service +public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMapper, CycleCountDetail> implements CycleCountDetailService { + + + + + + +} diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java index 246ac4c..6c65101 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java @@ -4,29 +4,32 @@ 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.inventory.adjustHeader.domain.AdjustHeader; import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; +import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderServiceImpl; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailServiceImpl; import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; -import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; +import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderServiceImpl; import org.apache.shiro.authz.annotation.RequiresPermissions; 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 javax.annotation.Resource; +import java.util.Date; import java.util.List; /** @@ -92,11 +95,114 @@ public class CycleCountHeaderController extends BaseController { } } + /** + * 新增盘点单主 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + /** + * 新增保存盘点单主 + */ + //@RequiresPermissions("inventory:cycleCount:add") + @Log(title = "库存-盘点",operating = "新增盘点主单", action = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(CycleCountHeader cycleCountHeader) + { + cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); + //cycleCountHeader.setCompanyCode(cycleCountHeader.getCompanyCode()); + //cycleCountHeader.setRound(cycleCountHeader.getRound());//盘点轮次 + cycleCountHeader.setCreated(new Date()); + cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName()); + cycleCountHeader.setMasterCode(cycleCountHeaderService.createCode()); + return toAjax(cycleCountHeaderService.save(cycleCountHeader)); + } + /** + * 修改盘点单主 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Integer id, ModelMap mmap) + { + CycleCountHeader cyclecountHeader = cycleCountHeaderService.getById(id); + mmap.put("cyclecountHeader", cyclecountHeader); + return prefix + "/edit"; + } + /** + * 修改保存盘点单主 + */ + //@RequiresPermissions("inventory:cycleCount:edit") + @Log(title = "库存-盘点",operating = "修改盘点主单", action = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(CycleCountHeader cycleCountHeader) + { + cycleCountHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); + cycleCountHeader.setLastUpdated(new Date()); + return toAjax(cycleCountHeaderService.saveOrUpdate(cycleCountHeader)); + } + /** + * 删除盘点单主 + */ + //@RequiresPermissions("inventory:cycleCount:remove") + @Log(title = "库存-盘点",operating = "删除盘点主单", action = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + if (StringUtils.isEmpty(ids)) + return AjaxResult.error("id不能为空"); + for (Integer id : Convert.toIntArray(ids)) + { + AjaxResult result = cycleCountHeaderService.delete(id); + if(result.code!=200){ + return result; + } + } + return AjaxResult.success("删除成功!"); + } + + /** + * + * 生成差异调整单 + * */ + //@RequiresPermissions("inventory:cyclecountHead:addAdjust") + @Log(title = "库存-盘点", operating = "新增盘点差异调整单", action = BusinessType.INSERT) + @PostMapping("/goAdjust") + @ResponseBody + public AjaxResult goAdjust(int id) + { + return (cycleCountHeaderService.insertByAdjust(id)); + } + + + /** + * 盘点单报表打印 + * @return + */ + //@RequiresPermissions("inventory:cycleCount:report") + @GetMapping("/report/{id}") + public String report(@PathVariable("id") Integer id, ModelMap mmap) + { + CycleCountHeader cyclecountHeader = cycleCountHeaderService.getById(id); + mmap.put("cyclecountHeader", cyclecountHeader); + + CycleCountDetail condition = new CycleCountDetail(); + condition.setCycleCountHeadId(id); + condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); + LambdaQueryWrapper lambda = Wrappers.lambdaQuery(condition); + List<CycleCountDetail> details = cycleCountDetailService.list(lambda); + mmap.put("details", details); + + return prefix + "/report"; + } diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/domain/CycleCountHeader.java b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/domain/CycleCountHeader.java index 62d04d1..1270805 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/domain/CycleCountHeader.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/domain/CycleCountHeader.java @@ -59,7 +59,7 @@ public class CycleCountHeader implements Serializable { */ @TableField(value = "countType") @ApiModelProperty(value="盘点类型") - private Integer countType; + private String countType; /** * 盘点状态 @@ -342,21 +342,11 @@ public class CycleCountHeader implements Serializable { this.companyCode = companyCode; } - /** - * 获取盘点类型 - * - * @return countType - 盘点类型 - */ - public Integer getCountType() { + public String getCountType() { return countType; } - /** - * 设置盘点类型 - * - * @param countType 盘点类型 - */ - public void setCountType(Integer countType) { + public void setCountType(String countType) { this.countType = countType; } diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/mapper/CycleCountHeaderMapper.java b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/mapper/CycleCountHeaderMapper.java index eb334c1..e768932 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/mapper/CycleCountHeaderMapper.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/mapper/CycleCountHeaderMapper.java @@ -4,4 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; public interface CycleCountHeaderMapper extends BaseMapper<CycleCountHeader> { + + String getLastCode(); + + + } \ No newline at end of file diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderService.java b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderService.java index 2f5df02..8a0e3ee 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderService.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderService.java @@ -1,12 +1,23 @@ package com.huaheng.pc.inventory.cycleCountHeader.service; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.util.List; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.extension.service.IService; +import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; -import com.huaheng.pc.inventory.cycleCountHeader.mapper.CycleCountHeaderMapper; -@Service -public class CycleCountHeaderService extends ServiceImpl<CycleCountHeaderMapper, CycleCountHeader> { + + +public interface CycleCountHeaderService extends IService<CycleCountHeader> { + + + String createCode(); + //生成调整单 + AjaxResult insertByAdjust(Integer headId); + + AjaxResult delete(Integer id); + + + + } + + diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java new file mode 100644 index 0000000..b5e0949 --- /dev/null +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java @@ -0,0 +1,184 @@ +package com.huaheng.pc.inventory.cycleCountHeader.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.utils.security.ShiroUtils; +import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.config.warehouse.domain.Warehouse; +import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; +import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; +import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; +import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.security.SecureRandomSpi; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.WeakHashMap; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; +import com.huaheng.pc.inventory.cycleCountHeader.mapper.CycleCountHeaderMapper; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMapper, CycleCountHeader> implements CycleCountHeaderService { + + + @Resource + private CycleCountHeaderMapper cycleCountHeaderMapper; + @Resource + private CycleCountDetailService cycleCountDetailService; + @Resource + private AdjustHeaderService adjustHeaderService; + @Resource + private AdjustDetailService adjustDetailService; + + + + + + + + + /** + * 生成盘点单主Code + * @return + */ + @Override + public String createCode() { + String code; + Date now = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); + String maxCode = cycleCountHeaderMapper.getLastCode();; + //如果指定类型的最后的code存在,并且日期一致。那么 code = 单类型 + 年月日 + (排序号 + 1) + if (maxCode != null && maxCode.substring(maxCode.length() - 13, maxCode.length() - 5).equals(df.format(now))) + { + Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5)); + code = "PD" + df.format(now) + String.format("%05d", Count + 1); + } + else + { + code = "PD" + df.format(now) + "00001"; + } + return code; + } + + /** + * 删除单据 + * @param id + * @return + */ + @Override + public AjaxResult delete(Integer id) { + + CycleCountHeader cyclecountHeader = this.getById(id); + if(cyclecountHeader==null){ + return AjaxResult.error("id为"+id.toString()+"的盘点单不存在出,操作中止"); + } + if(cyclecountHeader.getStatusCyc() > 0){ + return AjaxResult.error("盘点单:"+cyclecountHeader.getMasterCode()+"非新建状态,无法删除,操作中止"); + } + //批量删除子单据 + CycleCountDetail temp = new CycleCountDetail(); + temp.setWarehouseCode(ShiroUtils.getWarehouseCode()); + temp.setCycleCountHeadId(cyclecountHeader.getId()); + LambdaQueryWrapper lm = Wrappers.lambdaQuery(temp); + cycleCountDetailService.remove(lm); + cycleCountHeaderMapper.deleteById(id); + return AjaxResult.success("盘点主单和明细删除成功"); + + } + + /** + * 新增盘点差异调整单 + * */ + @Transactional + public AjaxResult insertByAdjust(Integer id) { + + /*获取盘点主单ID生成差异调整单,根据主单ID获取明细条目,再根据明细条目差异数量是否为0生成差异调整详单*/ + //1 根据盘点单ID生成差异调整主单,2 下一步根据盘点主单ID查询盘点明细的条目数据, + //3 for循环明细条目,同时依据差异数据是否为0来决定是否生成差异单,同步写入调整单详细。 + + //查询该条盘点单头 id + CycleCountHeader cyclecountHeader = cycleCountHeaderMapper.selectById(id); + + if(cyclecountHeader.getStatusCyc() >= 35){ + //查询是否已生成差异单 + throw new ServiceException("该条盘点单无法生成调整单,请检查状态!"); + } + + AdjustHeader adjustHeader = new AdjustHeader(); + adjustHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());//仓库 + adjustHeader.setCode(adjustHeaderService.createCode());//生成差异单号 + adjustHeader.setProblemType("盘点调整"); + adjustHeader.setCycleCountCode(cyclecountHeader.getMasterCode()); + adjustHeader.setCompanyCode(cyclecountHeader.getCompanyCode()); + adjustHeader.setCreated(new Date()); + adjustHeader.setCreatedBy(ShiroUtils.getLoginName()); + //adjustHeader.setStatus(10);//新建未上传 + //先创建调整单头 + adjustHeaderService.save(adjustHeader); + + //根据盘点单查询明细并写入调整单 + CycleCountDetail cycleCountDetail = new CycleCountDetail(); + cycleCountDetail.setCycleCountHeadId(id); + cycleCountDetail.setWarehouseCode(cyclecountHeader.getWarehouseCode()); + LambdaQueryWrapper lam = Wrappers.lambdaQuery(cycleCountDetail); + List<CycleCountDetail> cycleCountDetailList = cycleCountDetailService.list(lam); + //找到刚刚生成的调整主单 + //AdjustHeader adjust = adjustHeaderService.getById(adjustHeader.getId()); + //循环明细条目,查找符合条件的数据写入调整单明细 + AdjustDetail adjustDetail = new AdjustDetail(); + for(CycleCountDetail item:cycleCountDetailList){ + //BigDecimal的比较 .compareTo(BigDecimal.ZERO) != 0 + if(item.getGapQty().compareTo(BigDecimal.ZERO) != 0){ + //比较差异数量不为0的就生成差异单 + adjustDetail.setAdjustCode(adjustHeader.getCode()); + adjustDetail.setWarehouseCode(adjustHeader.getWarehouseCode()); + adjustDetail.setCompanyCode(adjustHeader.getCompanyCode()); + adjustDetail.setLocationCode(item.getLocationCode()); + adjustDetail.setContainerCode(item.getContainerCode()); + adjustDetail.setCycleCountCode(cyclecountHeader.getMasterCode()); + adjustDetail.setMaterialCode(item.getMaterialCode()); + adjustDetail.setMaterialName(item.getMaterialName()); + adjustDetail.setMaterialSpec(item.getMaterialSpec()); + adjustDetail.setMaterialUnit(item.getMaterialUnit()); + adjustDetail.setCycleDetailId(item.getId()); + adjustDetail.setProblemType("盘点调整"); + adjustDetail.setToInventorySts(item.getInventorySts());//盘点不涉及属性 + adjustDetail.setFromInventorySts(item.getInventorySts()); + adjustDetail.setFromQty(item.getSystemQty());//调整前数量 + adjustDetail.setToQty(null);//调整后数量 + adjustDetail.setGapQty(item.getGapQty());//调整数量 + adjustDetail.setCreated(new Date()); + adjustDetail.setCreatedBy(ShiroUtils.getLoginName()); + //adjustDetail.setStatus(0);//状态 + + adjustDetailService.save(adjustDetail); + } + + } + + //修改盘点主单状态为已生成差异单 + + cyclecountHeader.setStatusCyc(35); + this.saveOrUpdate(cyclecountHeader); + + return AjaxResult.success("差异调整及明细单生成完毕!"); + } + + + + + + + + +} diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java index 4990101..dd5326b 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java @@ -21,7 +21,10 @@ import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; import com.huaheng.pc.shipment.shippingCombination.domain.ShippingSearch; import com.huaheng.pc.shipment.shippingCombination.service.ShippingCombinationService; +import com.huaheng.pc.task.taskDetail.domain.TaskDetail; +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel; +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -58,6 +61,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont private ShippingCombinationService shippingCombinationService; @Autowired private TaskHeaderService taskHeaderService; + @Autowired + private TaskDetailService taskDetailService; @Override @@ -106,24 +111,26 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont Location location = locationService.getOne(lambdaQueryWrapper); if (location == null) throw new ServiceException("库位 "+ inventoryDetail.getLocationCode() +" 不存在"); - if (location.getStatus().equals("lock")) { - //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发 - LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); - lam.eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) - .eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) - .eq(ShipmentContainerHeader::getTaskCreated,0); - ShipmentContainerHeader shipmentContainerHeader = this.getOne(lam); - if (shipmentContainerHeader == null) { - throw new ServiceException("库位已经锁定不能使用"); - } - } +// if (location.getStatus().equals("lock")) { +// //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发 +// LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); +// lam.eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) +// .eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) +// .eq(ShipmentContainerHeader::getTaskCreated,0); +// ShipmentContainerHeader shipmentContainerHeader = this.getOne(lam); +// if (shipmentContainerHeader == null) { +// throw new ServiceException("库位已经锁定不能使用"); +// } +// } //更新库存分配数 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().add(shipmentCombinationModel.getShipQty())); inventoryDetailService.saveOrUpdate(inventoryDetail); //获取库位,然后锁定 - location.setStatus("lock"); - locationService.saveOrUpdate(location); + if(location.getStatus().equals("empty")) { + location.setStatus("lock"); + locationService.saveOrUpdate(location); + } //更新单据明细的已出库数量 shipmentDetail.setRequestQty(shipmentDetail.getRequestQty().add(shipmentCombinationModel.getShipQty())); int i = shipmentDetail.getShipQty().compareTo(shipmentDetail.getRequestQty()); @@ -166,20 +173,19 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont LambdaQueryWrapper<ShipmentContainerHeader> lambdaQueryWrapper=Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) - .eq(ShipmentContainerHeader::getTaskCreated,1) - .eq(ShipmentContainerHeader::getStatus,10); + .le(ShipmentContainerHeader::getStatus,20); ShipmentContainerHeader shipmentContainerHeader = this.getOne(lambdaQueryWrapper); if(shipmentContainerHeader != null) { - throw new ServiceException("容器"+location.getContainerCode()+"已经生成任务,不能再添加明细;操作中止;"); + return shipmentContainerHeader; } else { - LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); - lam.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) - .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) - .eq(ShipmentContainerHeader::getTaskCreated,0) - .eq(ShipmentContainerHeader::getStatus,0); - shipmentContainerHeader = this.getOne(lam); - if (shipmentContainerHeader == null) { +// LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); +// lam.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) +// .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) +// .eq(ShipmentContainerHeader::getTaskCreated,0) +// .eq(ShipmentContainerHeader::getStatus,0); +// shipmentContainerHeader = this.getOne(lam); +// if (shipmentContainerHeader == null) { shipmentContainerHeader = new ShipmentContainerHeader(); shipmentContainerHeader.setContainerCode(location.getContainerCode()); shipmentContainerHeader.setLocationCode(location.getCode()); @@ -194,9 +200,9 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont // material.setCode(shipmentDetail.getMaterialCode()); // shipmentContainerHeader.setZoneCode(materialService.selectFirstEntity(material).getZoneCode()); this.save(shipmentContainerHeader); + return shipmentContainerHeader; } - } - return shipmentContainerHeader; +// } } /** @@ -246,6 +252,45 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont shipmentContainerDetail.setCreatedBy(ShiroUtils.getLoginName()); shipmentContainerDetailService.save(shipmentContainerDetail); } + + // + if(shipmentContainerHeader.getStatus()<=10){ + LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper=Wrappers.lambdaQuery(); + taskHeaderLambdaQueryWrapper.eq(TaskHeader::getWarehouseCode,shipmentContainerHeader.getWarehouseCode()) + .eq(TaskHeader::getInternalTaskType,200) + .eq(TaskHeader::getAllocationHeadId,shipmentContainerHeader.getId()); + TaskHeader taskHeader=taskHeaderService.getOne(taskHeaderLambdaQueryWrapper); + if(taskHeader==null){ + throw new ServiceException("找不到相应的任务头"); + } + TaskDetail taskDetail = new TaskDetail(); + taskDetail.setTaskId(taskHeader.getId()); + taskDetail.setInternalTaskType(taskHeader.getInternalTaskType()); + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode()); + taskDetail.setCompanyCode(taskHeader.getCompanyCode()); + taskDetail.setTaskType(taskHeader.getTaskType()); + taskDetail.setAllocationId(shipmentContainerDetail.getId()); + taskDetail.setBillCode(shipmentContainerDetail.getShipmentCode()); + taskDetail.setBillDetailId(shipmentContainerDetail.getShipmentDetailId()); + taskDetail.setMaterialCode(shipmentContainerDetail.getMaterialCode()); + taskDetail.setMaterialName(shipmentContainerDetail.getMaterialName()); + taskDetail.setMaterialSpec(shipmentContainerDetail.getMaterialSpec()); + taskDetail.setMaterialUnit(shipmentContainerDetail.getMaterialUnit()); + taskDetail.setFromInventoryId(shipmentContainerDetail.getInventoryId()); + taskDetail.setQty(shipmentContainerDetail.getQty()); + taskDetail.setContainerCode(taskHeader.getContainerCode()); + taskDetail.setFromLocation(taskHeader.getFromLocation()); + taskDetail.setToLocation(taskHeader.getToLocation()); + if(shipmentContainerHeader.getStatus()==10) { + taskDetail.setStatus(0); + }else { + taskDetail.setStatus(10); + } + taskDetail.setTaskType(taskHeader.getTaskType()); + taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + taskDetail.setLastUpdated(null); + taskDetailService.save(taskDetail); + } return shipmentContainerDetail; } diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java b/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java index c65d492..b13e2ea 100644 --- a/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java +++ b/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetail.java @@ -63,7 +63,7 @@ public class TaskDetail implements Serializable { */ @TableField(value = "allocationId") @ApiModelProperty(value="组盘子id") - private String allocationId; + private Integer allocationId; /** * 单据编码 diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java b/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java index 1c676ff..6e94931 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/domain/TaskHeader.java @@ -43,6 +43,13 @@ public class TaskHeader implements Serializable { private Integer taskType; /** + * 入库或出库组盘头ID + */ + @TableField(value = "allocationHeadId") + @ApiModelProperty(value="入库或出库组盘头ID") + private Integer allocationHeadId; + + /** * 内部类型 */ @TableField(value = "internalTaskType") 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 8c7e500..caf80f5 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 @@ -172,12 +172,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea task.setToLocation(""); } } + task.setInternalTaskType(200); + task.setAllocationHeadId(shipmentContainerHeader.getId()); task.setWarehouseCode(shipmentContainerHeader.getWarehouseCode()); task.setCompanyCode(shipmentContainerHeader.getCompanyCode()); - task.setInternalTaskType(null); task.setAssignedUser(ShiroUtils.getLoginName()); task.setConfirmedBy(ShiroUtils.getLoginName()); - task.setStatus(1); + task.setStatus(0); task.setContainerCode(shipmentContainerHeader.getContainerCode()); task.setCreatedBy(ShiroUtils.getLoginName()); task.setCreated(new Date()); @@ -188,9 +189,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea for (ShipmentContainerDetail shipmentContainerDetail : shipmentContainerDetails) { TaskDetail taskDetail = new TaskDetail(); taskDetail.setTaskId(task.getId()); + taskDetail.setInternalTaskType(task.getInternalTaskType()); taskDetail.setWarehouseCode(task.getWarehouseCode()); taskDetail.setCompanyCode(task.getCompanyCode()); taskDetail.setTaskType(task.getTaskType()); + taskDetail.setAllocationId(shipmentContainerDetail.getId()); taskDetail.setBillCode(shipmentContainerDetail.getShipmentCode()); taskDetail.setBillDetailId(shipmentContainerDetail.getShipmentDetailId()); taskDetail.setMaterialCode(shipmentContainerDetail.getMaterialCode()); @@ -202,7 +205,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea taskDetail.setContainerCode(task.getContainerCode()); taskDetail.setFromLocation(task.getFromLocation()); taskDetail.setToLocation(task.getToLocation()); - taskDetail.setStatus(1); + taskDetail.setStatus(0); taskDetail.setTaskType(task.getTaskType()); taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); taskDetail.setLastUpdated(null); diff --git a/src/main/resources/mybatis/inventory/AdjustHeaderMapper.xml b/src/main/resources/mybatis/inventory/AdjustHeaderMapper.xml index 313341b..8da3b74 100644 --- a/src/main/resources/mybatis/inventory/AdjustHeaderMapper.xml +++ b/src/main/resources/mybatis/inventory/AdjustHeaderMapper.xml @@ -25,4 +25,12 @@ id, code, warehouseCode, companyCode, problemType, cycleCountCode, checkCode, referCode, referReason, createdBy, created, version, userDef1, userDef2, userDef3, processStamp </sql> + + <select id="getLastCode" resultType="java.lang.String"> + SELECT code FROM adjust_header ORDER BY id DESC LIMIT 1 + </select> + + + + </mapper> \ No newline at end of file diff --git a/src/main/resources/mybatis/inventory/CycleCountHeaderMapper.xml b/src/main/resources/mybatis/inventory/CycleCountHeaderMapper.xml index 84fe6ef..e25f9f4 100644 --- a/src/main/resources/mybatis/inventory/CycleCountHeaderMapper.xml +++ b/src/main/resources/mybatis/inventory/CycleCountHeaderMapper.xml @@ -9,7 +9,7 @@ <result column="masterCode" jdbcType="VARCHAR" property="masterCode" /> <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" /> <result column="companyCode" jdbcType="VARCHAR" property="companyCode" /> - <result column="countType" jdbcType="INTEGER" property="countType" /> + <result column="countType" jdbcType="VARCHAR" property="countType" /> <result column="statusCyc" jdbcType="INTEGER" property="statusCyc" /> <result column="countAttribute" jdbcType="INTEGER" property="countAttribute" /> <result column="remark" jdbcType="VARCHAR" property="remark" /> @@ -41,4 +41,11 @@ releasedAt, closedBy, closedAt, created, createdBy, lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, verifyBy, sourceCode, uploadTime, uploadStatus </sql> + + <select id="getLastCode" resultType="java.lang.String"> + SELECT masterCode FROM cycle_count_header ORDER BY id DESC LIMIT 1 + </select> + + + </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html b/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html index 39dc3a4..8dea881 100644 --- a/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html +++ b/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html @@ -116,7 +116,7 @@ var prefix = ctx + "inventory/cycleCountDetail"; var prefix_head = ctx + "inventory/cycleCountHeader"; var remove_url= prefix + "/remove"; - var datas = [[${@dict.getType('cyclecountStatus')}]]; + var cyclecountStatus = [[${@dict.getType('cyclecountStatus')}]]; var inventoryStatus=[[${@dict.getType('inventoryStatus')}]]; var created ; @@ -287,9 +287,9 @@ field: 'enableStatus', title: '盘点明细状态', formatter: function(value, row, index) { - return $.table.selectDictLabel(datas, value); + return $.table.selectDictLabel(cyclecountStatus, value); }, - sortable:true + visible: true }, { field: 'processStamp', diff --git a/src/main/resources/templates/inventory/cycleCountHeader/add.html b/src/main/resources/templates/inventory/cycleCountHeader/add.html index f130fc4..d12cf2a 100644 --- a/src/main/resources/templates/inventory/cycleCountHeader/add.html +++ b/src/main/resources/templates/inventory/cycleCountHeader/add.html @@ -4,34 +4,82 @@ <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-cyclecountHeader-add"> + <form class="form-horizontal m" id="form-cycleCountHeader-add"> <div class="form-group"> <label class="col-sm-3 control-label">盘点类型:</label> <div class="col-sm-8"> - <select name="type" id="type" class="form-control m-b" th:with="firstStatus=${@dict.getType('cyclecountType')}"> + <select name="countType" id="countType" class="form-control m-b" th:with="firstStatus=${@dict.getType('cyclecountType')}"> <option th:each="e : ${firstStatus}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option> </select> </div> </div> <div class="form-group"> - <label class="col-sm-3 control-label">货主:</label> - <div class="col-sm-8"> - <select id="company" name="company" class="form-control m-b" th:with="list=${@company.selectCompanyByCurrentUserId()}"> - <option th:each="item : ${list}" th:text="${item['name']}" th:value="${item['id']}" th:attr = " code = ${item['code']}"></option> - </select> - </div> + <label class="col-sm-3 control-label">原始盘点内部号:</label> + <div class="col-sm-8"> + <input id="countOrderId" name="countOrderId" class="form-control" type="text"> + </div> </div> <div class="form-group"> - <label class="col-sm-3 control-label">备注:</label> + <label class="col-sm-3 control-label">盘点轮次:</label> <div class="col-sm-8"> - <input id="userDef1" name="remark" class="form-control" type="text"> + <input id="round" name="round" class="form-control" type="text"> </div> <!--th:checked="true" 状态按钮默认为启用 $("input[name='enable']").is(':checked')--> <!--<div>--> <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">--> <!--</div>--> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">货主:</label> + <div class="col-sm-8"> + <input id="companyCode" name="companyCode" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">总货位数:</label> + <div class="col-sm-8"> + <input id="totalLocs" name="totalLocs" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">总物料数:</label> + <div class="col-sm-8"> + <input id="totalItems" name="totalItems" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">指定区域:</label> + <div class="col-sm-8"> + <input id="zoneCode" name="zoneCode" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">库位条件(模糊):</label> + <div class="col-sm-8"> + <input id="locationFilter" name="locationFilter" class="form-control" type="text"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">源盘点单号:</label> + <div class="col-sm-8"> + <input id="sourceCode" name="sourceCode" class="form-control" type="text"> + </div> + </div> + + <!--<div class="form-group"> + <label class="col-sm-3 control-label">原始盘点内部号:</label> + <div class="col-sm-8"> + <input id="countOrderId" name="remark" class="form-control" type="text"> + </div> + </div>--> + <div class="form-group"> + <label class="col-sm-3 control-label">备注:</label> + <div class="col-sm-8"> + <input id="remark" name="remark" 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> @@ -42,21 +90,32 @@ </div> <div th:include="include::footer"></div> <script type="text/javascript"> - var prefix = ctx + "inventory/cyclecountHeader" - $("#form-cyclecountHeader-add").validate({ + var prefix = ctx + "inventory/cycleCountHeader" + $("#form-cycleCountHeader-add").validate({ rules:{ - // code:{ - // required:true, - // }, - type:{ + companyCode:{ + required:true, + }, + /*countType:{ required:true - } + },*/ + totalLocs:{ + required:false, + digits:true, + min:0 + }, + totalItems:{ + required:false, + digits:true, + min:0 + }, + }, submitHandler: function(form) { - var tableValue = $("#form-cyclecountHeader-add").serialize(); - tableValue = formValueReplace(tableValue, "enable", true); - tableValue = formValueReplace(tableValue, "companyId", $("#company option:selected").val()); - tableValue = formValueReplace(tableValue, "companyCode", $("#company option:selected").attr("code")); + var tableValue = $("#form-cycleCountHeader-add").serialize(); + // tableValue = formValueReplace(tableValue, "enable", true); + // tableValue = formValueReplace(tableValue, "companyId", $("#company option:selected").val()); + // tableValue = formValueReplace(tableValue, "companyCode", $("#company option:selected").attr("code")); $.operate.save(prefix + "/add", tableValue); } }); diff --git a/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html b/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html index 05ced27..6182cb4 100644 --- a/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html +++ b/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html @@ -96,8 +96,8 @@ var prefix = ctx + "inventory/cycleCountHeader"; var datas = [[${@dict.getType('sys_normal_disable')}]]; var types = [[${@dict.getType('cyclecountType')}]]; - var status2 = [[${@dict.getType('cyclecountStatus')}]]; - + var cyclecountStatus = [[${@dict.getType('cyclecountStatus')}]]; + var ifs = [[${@dict.getType('false_and_true')}]]; $(function () { var options = { url: prefix + "/list", @@ -161,19 +161,23 @@ }, { field: 'releasedBy', - title: '释放人' + title: '释放人', + visible: false }, { field: 'releasedAt', - title: '释放时间' + title: '释放时间', + visible: false }, { field: 'closedBy', - title: '关闭人' + title: '关闭人', + visible: false }, { field: 'closedAt', - title: '关闭时间' + title: '关闭时间', + visible: false }, { field: 'countType', @@ -185,25 +189,29 @@ sortable: true }, { - field: 'verifyBy', - title: '审核人' - }, - { field: 'statusCyc', - title: '盘点状态', - align: 'center', - formatter: function (value, row, index) { - return $.table.selectDictLabel(status2, value); + title: '盘点主单状态', + formatter: function(value, row, index) { + return $.table.selectDictLabel(cyclecountStatus, value); }, - sortable: true + visible: true + }, + { + field: 'verifyBy', + title: '审核人' }, { field: 'uploadTime', - title: '上传时间' + title: '上传时间', + visible: false }, { field: 'uploadStatus', - title: '上传状态' + title: '上传状态', + align: 'center', + formatter: function (value, row, index) { + return $.table.selectDictLabel(ifs, value); + } }, { field: 'version', @@ -266,10 +274,9 @@ actions.push('<a class="btn btn-warning btn-xs " href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成差异单</a> '); - actions.push('<a class="btn btn-info btn-xs " href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); + //actions.push('<a class="btn btn-info btn-xs " href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); - //actions.push('<a style="background: #b5bdc0" class="btn btn-default btn-xs " href="#" onclick="detail(\'' + row.code + '\',\'' + row.code + '\')"><i class="fa fa-list-ul"></i>明细</a>'); - return actions.join(''); + return actions.join(''); } }] };