diff --git a/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java b/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java new file mode 100644 index 0000000..90aafdc --- /dev/null +++ b/src/main/java/com/huaheng/api/general/controller/BasicDataApi.java @@ -0,0 +1,123 @@ +package com.huaheng.api.general.controller; + +import com.huaheng.api.general.service.BasicDataApiService; +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.pc.config.customer.domain.Customer; +import com.huaheng.pc.config.material.domain.Material; +import com.huaheng.pc.config.supplier.domain.Supplier; +import com.huaheng.pc.config.warehouse.domain.Warehouse; +import com.huaheng.pc.system.dept.domain.Dept; +import com.huaheng.pc.system.dict.domain.DictData; +import com.huaheng.pc.system.user.domain.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/basicData") +@Api(tags = {"basicData"}, description = "基础数据接口") +public class BasicDataApi extends BaseController { + + @Autowired + private BasicDataApiService basicDataApiService; + + /** + * 同步物料 + */ + @Log(title = "物料添加", action = BusinessType.INSERT) + @PostMapping("/material") + @ApiOperation("物料添加公共接口") + @ResponseBody + public AjaxResult MaterialApi(@RequestBody Material material) + { + AjaxResult ajaxResult = basicDataApiService.material(material); + return ajaxResult; + } + + /** + * 同步字典 + */ + @Log(title = "字典添加", action = BusinessType.INSERT) + @PostMapping("/dictData") + @ApiOperation("字典添加公共接口") + @ResponseBody + public AjaxResult UnitlApi(@RequestBody DictData dictData) + { + AjaxResult ajaxResult = basicDataApiService.dict(dictData); + return ajaxResult; + } + + + + /** + * 同步仓库和货主 + */ + @Log(title = "仓库添加", action = BusinessType.INSERT) + @PostMapping("/warehouse") + @ApiOperation("仓库添加公共接口") + @ResponseBody + public AjaxResult WarehouseApi(@RequestBody Warehouse warehouse) + { + AjaxResult ajaxResult = basicDataApiService.warehouse(warehouse); + return ajaxResult; + } + + /** + * 同步客户档案 + */ + @Log(title = "客户档案添加", action = BusinessType.INSERT) + @PostMapping("/customer") + @ApiOperation("客户档案添加公共接口") + @ResponseBody + public AjaxResult CustomerApi(@RequestBody Customer customer) + { + AjaxResult ajaxResult = basicDataApiService.customer(customer); + return ajaxResult; + } + + /** + * 同步部门档案 + */ + @Log(title = "部门档案添加", action = BusinessType.INSERT) + @PostMapping("/dept") + @ApiOperation("部门档案添加公共接口") + @ResponseBody + public AjaxResult DeptApi(@RequestBody Dept dept) + { + AjaxResult ajaxResult = basicDataApiService.dept(dept); + return ajaxResult; + } + + /** + * 同步人员档案 + */ + @Log(title = "人员档案添加", action = BusinessType.INSERT) + @PostMapping("/user") + @ApiOperation("人员档案添加公共接口") + @ResponseBody + public AjaxResult UserApi(@RequestBody User user) + { + AjaxResult ajaxResult = basicDataApiService.user(user); + return ajaxResult; + } + + /** + * 同步供应商档案 + */ + @Log(title = "供应商档案添加", action = BusinessType.INSERT) + @PostMapping("/supplier") + @ApiOperation("供应商档案添加公共接口") + @ResponseBody + public AjaxResult SupplierApi(@RequestBody Supplier supplier){ + AjaxResult ajaxResult = basicDataApiService.supplier(supplier); + return ajaxResult; + } + + + + +} diff --git a/src/main/java/com/huaheng/api/general/controller/LoginApi.java b/src/main/java/com/huaheng/api/general/controller/LoginApi.java new file mode 100644 index 0000000..38dba14 --- /dev/null +++ b/src/main/java/com/huaheng/api/general/controller/LoginApi.java @@ -0,0 +1,54 @@ +package com.huaheng.api.general.controller; + +import com.alibaba.fastjson.JSONException; +import com.huaheng.common.utils.DataUtils; +import com.huaheng.framework.web.controller.BaseController; +import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.system.user.service.IUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + + +@RestController +@RequestMapping("/api") +@Api(tags = {"Login"}, description = "登陆接口") +public class LoginApi extends BaseController { + + @Autowired + private IUserService userService; + + @PostMapping("/login") + @ApiOperation("登陆接口") + public AjaxResult login(@RequestBody @ApiParam(value="登陆的Map集合") Map<String, String> param) + { + if (param.get("username") == null) + throw new JSONException("username(用户名)不能为空"); + if (param.get("password") == null) + throw new JSONException("password(密码)不能为空"); + if (param.get("warehouseCode") == null) + throw new JSONException("warehouseCode(仓库编码)不能为空"); + String username = param.get("username"); + String password = param.get("password"); + String warehouseCode = param.get("warehouseCode"); + AjaxResult ajaxResult = userService.login(username, password, warehouseCode, false); + return ajaxResult; + } + + + @PostMapping("/heartbeat") + @ApiOperation("心跳接口,用于延长cookie有效期") + public AjaxResult heartbeat() + { + return AjaxResult.success("success"); + } + + +} diff --git a/src/main/java/com/huaheng/api/general/service/BasicDataApiService.java b/src/main/java/com/huaheng/api/general/service/BasicDataApiService.java new file mode 100644 index 0000000..16920ea --- /dev/null +++ b/src/main/java/com/huaheng/api/general/service/BasicDataApiService.java @@ -0,0 +1,510 @@ +package com.huaheng.api.general.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.StringUtils; +import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.config.company.domain.Company; +import com.huaheng.pc.config.company.service.CompanyService; +import com.huaheng.pc.config.customer.domain.Customer; +import com.huaheng.pc.config.customer.service.CustomerServiceImpl; +import com.huaheng.pc.config.material.domain.Material; +import com.huaheng.pc.config.material.service.MaterialService; +import com.huaheng.pc.config.supplier.domain.Supplier; +import com.huaheng.pc.config.supplier.service.SupplierService; +import com.huaheng.pc.config.warehouse.domain.Warehouse; +import com.huaheng.pc.config.warehouse.service.WarehouseService; +import com.huaheng.pc.system.dept.domain.Dept; +import com.huaheng.pc.system.dept.service.IDeptService; +import com.huaheng.pc.system.dict.domain.DictData; +import com.huaheng.pc.system.dict.domain.DictType; +import com.huaheng.pc.system.dict.mapper.DictDataMapper; +import com.huaheng.pc.system.dict.mapper.DictTypeMapper; +import com.huaheng.pc.system.dict.service.IDictDataService; +import com.huaheng.pc.system.dict.service.IDictTypeService; +import com.huaheng.pc.system.user.domain.User; +import com.huaheng.pc.system.user.service.IUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Component +@Transactional +public class BasicDataApiService { + @Autowired + IDictTypeService dictTypeService; + @Autowired + IDictDataService dictDataService; + @Autowired + MaterialService materialService; + + @Resource + private DictTypeMapper dictTypeMapper; + @Resource + private DictDataMapper dictDataMapper; + + @Autowired + IUserService iUserService; + + @Autowired + IDeptService iDeptService; + + @Autowired + CustomerServiceImpl iCustomerService; + + @Autowired + WarehouseService iWarehouseService; + + @Autowired + SupplierService iSupplierService; + + @Autowired + CompanyService companyService; + + //检查仓库 + public Warehouse checkWarehouse(String code) { + LambdaQueryWrapper<Warehouse> warehouseLam = Wrappers.lambdaQuery(); + warehouseLam.eq(Warehouse::getCode, code); + Warehouse warehouse = iWarehouseService.getOne(warehouseLam); + if (warehouse == null) { + throw new ServiceException("数据出现问题,系统没有该仓库"); + } + return warehouse; + } + + /** + * 字典通用接口 + * 1、判断必填字段是否为空 + * 2、仓库是否正确 + * 3、检查字典头表,如果没有就添加 + * 4、增新一条字典明细表的记录 + * @param dictData + * @return + */ + public AjaxResult dict(DictData dictData) { + //1、判断必填字段是否为空 + if(StringUtils.isEmpty(dictData.getWarehouseCode())){ + return AjaxResult.error("没有仓库编码"); + } + if(StringUtils.isEmpty(dictData.getDictLabel())){ + return AjaxResult.error("没有字典标签"); + } + if(StringUtils.isEmpty(dictData.getDictType())){ + return AjaxResult.error("没有字典类型"); + } + if(StringUtils.isEmpty(dictData.getDictValue())){ + return AjaxResult.error("没有字典键值"); + } + + //2、仓库是否正确 + int result = 0; + this.checkWarehouse(dictData.getWarehouseCode()); + + //3、检查字典头表,如果没有就添加 + DictData condition = new DictData(); + try { + condition.setDictType(dictData.getDictType()); + condition.setWarehouseCode(dictData.getWarehouseCode()); + condition.setDictValue(dictData.getDictValue()); + condition.setEnable(true); + List<DictData> dictDatas = dictDataService.selectDictDataList(dictData); + if (dictDatas.size() < 1) { + //找出字典头表的id + DictType dictType = new DictType(); + dictType.setWarehouseCode(dictData.getWarehouseCode()); + dictType.setDictType(dictData.getDictType()); + List<DictType> dictList = dictTypeService.selectDictTypeList(dictType); + if (dictList.size() < 1) { + dictType.setWarehouseId(dictData.getWarehouseId()); + dictType.setCreateBy(dictData.getCreateBy()); + dictType.setCreateTime(dictData.getCreateTime()); + if(StringUtils.isEmpty(dictType.getCreateBy())) { + result = dictTypeService.insertDictType(dictType); + }else { + result=dictTypeMapper.insertDictType(dictType); + } + dictList.add(dictType); + if (result < 1) { + throw new ServiceException("新增字典类型失败!"); + } + } + //4、增新一条字典明细表的记录 + dictData.setHeaderId(dictList.get(0).getId()); + if(StringUtils.isEmpty(dictData.getCreateBy())) { + result = dictDataService.insertDictData(dictData); + }else { + result=dictDataMapper.insertDictData(dictData); + } + if (result < 1) { + throw new ServiceException("新增字典数据失败!"); + } + } + }catch (Exception e){ + throw new ServiceException("字典数据有误!!"); + } + return AjaxResult.success("新增字典成功"); + } + + /** + * 检查是否存在物料,如果存在就修改,不存在就新增 + * 1、判断必填字段是否为空 + * 2、检查仓库和货主 + * 3、查看此物料在系统是否存在 + * @param material + * @return + */ + @Transactional + public AjaxResult material(Material material) { + + //1、判断必填字段是否为空 + if(StringUtils.isEmpty(material.getCode())){ + return AjaxResult.error("物料编码不能为空!!"); + } + if(StringUtils.isEmpty(material.getWarehouseCode())){ + return AjaxResult.error("仓库编码不能为空!!"); + } + if(StringUtils.isEmpty(material.getCompanyCode())){ + return AjaxResult.error("货主编码不能为空!!"); + } + if(StringUtils.isEmpty(material.getType())){ + return AjaxResult.error("物料类型不能为空!!"); + } + if(StringUtils.isEmpty(material.getName())){ + return AjaxResult.error("物料名称不能为空!!"); + } + if(StringUtils.isEmpty(material.getSpec())){ + return AjaxResult.error("物料规格不能为空!!"); + } + if(StringUtils.isEmpty(material.getUnit())){ + return AjaxResult.error("物料单位不能为空!!"); + } + + //2、检查仓库和货主 + this.checkWarehouse(material.getWarehouseCode()); + LambdaQueryWrapper<Company> companyLam = Wrappers.lambdaQuery(); + companyLam.eq(Company::getCode,material.getCompanyCode()); + Company company=companyService.getOne(companyLam); + if(company==null){ + return AjaxResult.error("没有该货主!!"); + } + + Boolean flag = false; + try { + //3、查看此物料在系统是否存在 + LambdaQueryWrapper<Material> materialLam = Wrappers.lambdaQuery(); + materialLam.eq(Material::getCode,material.getCode()) + .eq(Material::getWarehouseCode,material.getWarehouseCode()); + Material entity = materialService.getOne(materialLam); + if (entity == null) { + flag = materialService.save(material); + if (flag == false) { + throw new ServiceException("新增物料失败!"); + } + } else { +// return AjaxResult.error("已有该物料,无法进行修改!!"); + material.setId(entity.getId()); + flag = materialService.updateById(material); + if (flag == false) { + throw new ServiceException("更新物料失败!"); + }else { + return AjaxResult.success("更新物流成功!"); + } + } + }catch (Exception e){ + throw new ServiceException("物料数据问题"); + } + return AjaxResult.success("新增物料成功"); + } + + + + /** + * 人员档案通用接口 + * 1、判断必填字段是否为空 + * 2、判断系统中是否有该用户,如果有则更新,如果没有则新增 + *新增: (1)、默认密码为123456 + * (2)默认为普通用户 + * (3)默认为长沙仓库 + * @param user + * @return + */ + public AjaxResult user(User user){ + //1、判断必填字段是否为空 + int result = 0; + User user1 = new User(); + if(user.getLoginName()==null || user.getLoginName()=="") { + return AjaxResult.error("没有人员编码!!"); + } + if (user.getUserName()==null || user.getUserName()==""){ + return AjaxResult.error("没有人员名称!!"); + } + if(user.getDeptId()==null){ + return AjaxResult.error("没有部门ID!!"); + } + if(iDeptService.selectDeptById(user.getDeptId())==null){ + return AjaxResult.error("系统没有此部门!!"); + } + try { + user1.setLoginName(user.getLoginName()); + //2、判断系统中是否有该用户,如果有则更新,如果没有则新增 + if (iUserService.selectmen(user.getLoginName()) == null) { + //(1)默认密码为123456 + if(user.getPassword()==null) { + user.setPassword("123456"); + } + //(2)默认为普通用户 + if(StringUtils.isEmpty(user.getRoleIds())) { + List<Integer> roleIds=new ArrayList<>(); + roleIds.add(2); + user.setRoleIds(roleIds); + } + //(3)默认为长沙仓库 + if(StringUtils.isEmpty(user.getCompanyIdList())) { + List<Integer> companyIdList = new ArrayList<>(); + companyIdList.add(2); + user.setCompanyIdList(companyIdList); + } + result = iUserService.insertUser(user); + if (result < 1) { + throw new ServiceException("新增人员档案失败!"); + } else { + return AjaxResult.success("新增人员档案成功!"); + } + } else { + return AjaxResult.error("已有该人员档案,无法进行修改!"); +// result = iUserService.updateUser(user); +// if (result < 1) { +// throw new ServiceException("更新人员档案失败!"); +// } else { +// return AjaxResult.success("更新人员档案成功!"); +// } + } + }catch (Exception e){ + throw new ServiceException("数据问题。。。"); + } + } + + + + /** + * 部门档案通用接口 + * 1、判断必填字段是否为空 + * 2、部门编码长度应是双数 + * + * @param dept + * @return + */ + @Transactional + public AjaxResult dept(Dept dept) { + + //1、判断必填字段是否为空 + int result = 0; + String code = dept.getCode(); + if (code == null || code == "") { + return AjaxResult.error("部门编码不能为空!!"); + } + try { + Dept rs = iDeptService.selectDepts(code); + + //2、部门编码长度应是双数 + if (rs == null) { + int x = code.length() % 2; + if (x != 0) { + return AjaxResult.error("部门编码长度应是双数"); + } else { + int y = code.length() / 2; + if (y >= 1) { + String scode = code.substring(0, 2); + if (iDeptService.selectDepts(scode) == null) { + dept.setCode(scode); + dept.setParentId(100); + dept.setAncestors("0,100"); + dept.setOrderNum("1"); + result = iDeptService.insertDept(dept); + if (result < 1) { + throw new ServiceException("新增部门档案失败!"); + } + } + } + for (int z = 1; z <=y; z++) { + + //找到上级部门 + String sqcode = code.substring(0, 2 * (z - 1)); + Dept sdept = iDeptService.selectDepts(sqcode); + String sscode = code.substring(0, 2 * z); + if (iDeptService.selectDepts(sscode) == null) { + dept.setCode(sscode); + dept.setParentId(sdept.getId()); + dept.setAncestors(sdept.getAncestors() + "," + sdept.getId()); + dept.setOrderNum(String.valueOf(z)); + result = iDeptService.insertDept(dept); + if (result < 1) { + throw new ServiceException("新增部门档案失败!"); + } + } + } + } + return AjaxResult.success("新增部门成功"); + } else { + dept.setId(rs.getId()); + int num = iDeptService.updatesDept(dept); + if (num < 1) { + throw new ServiceException("部门修改失败"); + } else { + return AjaxResult.success("部门修改成功"); + } + } + } catch (Exception e) { + throw new ServiceException("数据问题。。。"); + } + } + + /** + * 客户档案通用接口 + * 1、判断必填字段是否为空 + * 2、检查仓库 + * 3、查看此客户在系统是否存在 + * @param customer + * @return + */ + public AjaxResult customer(Customer customer){ + Boolean flag = true; + //1、判断必填字段是否为空 + if(customer.getCode()==null||customer.getCode()=="") { + return AjaxResult.error("客户代码不能为空!!"); + } + if(StringUtils.isEmpty(customer.getWarehouseCode())){ + return AjaxResult.error("没有仓库编码"); + } + if(StringUtils.isEmpty(customer.getName())){ + return AjaxResult.error("没有客户名称"); + } + if(StringUtils.isEmpty(customer.getCompanyCode())){ + return AjaxResult.error("没有货主编码"); + } + try { + //2、检查仓库 + this.checkWarehouse(customer.getWarehouseCode()); + + //3、查看此客户在系统是否存在 + LambdaQueryWrapper<Customer> customerLam = Wrappers.lambdaQuery(); + customerLam.eq(Customer::getCode,customer.getCode()) + .eq(Customer::getWarehouseCode,customer.getWarehouseCode()); + Customer ctr = iCustomerService.getOne(customerLam); + + //不存在添加 + if ( ctr == null) { + flag = iCustomerService.save(customer); + if (flag == false) { + throw new ServiceException("新增客户档案失败!"); + } else { + return AjaxResult.success("新增客户档案成功!"); + } + } else { + return AjaxResult.error("已有该客户,无法进行修改!!"); +// customer.setId(rs.getId()); +// result = iCustomerService.updateByModel(customer); +// if (result < 1) { +// throw new ServiceException("更新客户档案失败!"); +// } else { +// return AjaxResult.success("更新客户档案成功!"); +// } + } + }catch (Exception e){ + throw new ServiceException("数据问题。。。"); + } + } + + /** + * 仓库档案通用接口 + * 1、判断必填字段是否为空 + * 2、判断系统中是否有该仓库,若有则更新,若无则新增 + * @param warehouse + * @return + */ + public AjaxResult warehouse(Warehouse warehouse){ + if(warehouse.getCode()==null||warehouse.getCode()=="") { + return AjaxResult.error("仓库编码不能为空!!"); + } + if(warehouse.getName()==null||warehouse.getName()=="") { + return AjaxResult.error("仓库名称不能为空!!"); + } + try { + LambdaQueryWrapper<Warehouse> warehouseLam = Wrappers.lambdaQuery(); + warehouseLam.eq(Warehouse::getCode,warehouse.getCode()); + Warehouse whs = iWarehouseService.getOne(warehouseLam); + + //2、判断系统中是否有该仓库,若有则更新,若无则新增 + if (whs == null) { + Boolean flag = iWarehouseService.save(warehouse); + if (flag == false) { + throw new ServiceException("新增仓库档案失败!"); + } else { + return AjaxResult.success("新增仓库档案成功!"); + } + } else { + return AjaxResult.error("已有该仓库,无法进行修改!"); +// warehouse.setId(rs.getId()); +// result = iWarehouseService.updateByModel(warehouse); +// if (result < 1) { +// throw new ServiceException("更新仓库档案失败!"); +// } else { +// return AjaxResult.success("更新仓库档案成功!"); +// } + } + }catch (Exception e){ + throw new ServiceException("仓库数据问题。。。"); + } + } + + /** + * 供应商档案通用接口 + * 1、判断必填字段是否为空 + * 2、检查仓库 + * 3、查看此供应商在系统是否存在 + * @param supplier + * @return + */ + public AjaxResult supplier(Supplier supplier){ + + //1、判断必填字段是否为空 + if(StringUtils.isEmpty(supplier.getCode())){ + return AjaxResult.error("没有供应商代码"); + } + if(StringUtils.isEmpty(supplier.getName())){ + return AjaxResult.error("没有供应商名称"); + } + if(StringUtils.isEmpty(supplier.getWarehouseCode())){ + return AjaxResult.error("没有仓库编码"); + } + + //2、检查仓库 + this.checkWarehouse(supplier.getCode()); + + //3、查看此供应商在系统是否存在 + try { + LambdaQueryWrapper<Supplier> supplierLam = Wrappers.lambdaQuery(); + supplierLam.eq(Supplier::getCode,supplier.getCode()) + .eq(Supplier::getWarehouseCode,supplier.getWarehouseCode()); + Supplier spl=iSupplierService.getOne(supplierLam); + + if (spl== null) { + Boolean flag = iSupplierService.save(supplier); + if (flag == false) { + throw new ServiceException("新增供应商失败!"); + } else { + return AjaxResult.success("新增供应商成功!"); + } + } else { + return AjaxResult.error("已有该供应商,无法修改!!"); + } + }catch (Exception e){ + throw new ServiceException("供应商数据问题。。。"); + } + } +} 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 index d41fe04..9191b17 100644 --- a/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java +++ b/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java @@ -131,8 +131,7 @@ public class CheckDetailController extends BaseController { /** * 保存质检完成 - * @param inventorySts 库存状态 - * @param qty 数量 + * @param id * @return AjaxResult */ @ApiOperation(value="完成质检详情", notes="完成质检详情", httpMethod = "POST") diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java index a950e13..293c66a 100644 --- a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java +++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java @@ -10,6 +10,6 @@ public interface ShipmentPreferenceService extends IService<ShipmentPreference>{ //查看出库此操作是否符合出库首选项的出库流程 - List<ShipmentHeader> checkShipmentProcess(String ids, Integer code); + List<ShipmentHeader> checkShipmentProcess(String ids, Integer status,String code); } diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java index 2071bff..cda6380 100644 --- a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java +++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java @@ -45,11 +45,11 @@ public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenc * 4、判断单据是否按出库流程操作 * * @param ids 出库单id - * @param code 状态流 + * @param status 状态流 * @return */ @Override - public List<ShipmentHeader> checkShipmentProcess(String ids, Integer code) { + public List<ShipmentHeader> checkShipmentProcess(String ids, Integer status,String code) { LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper=Wrappers.lambdaQuery(); configValueLambdaQueryWrapper.eq(ConfigValue::getModuleType,"shipment") @@ -80,21 +80,33 @@ public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenc LambdaQueryWrapper<StatusFlowDetail> statusFlowDetailLamb = Wrappers.lambdaQuery(); statusFlowDetailLamb.eq(StatusFlowDetail::getHeaderId,statusFlowHeader.getId()) .eq(StatusFlowDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()) - .eq(StatusFlowDetail::getFlowCode,code.toString()); + .eq(StatusFlowDetail::getFlowCode,status.toString()); StatusFlowDetail statusFlowDetail = statusFlowDetailService.getOne(statusFlowDetailLamb); List<ShipmentHeader> shipmentHeaderList = new ArrayList<>(); - if(statusFlowDetail != null && statusFlowDetail.getNessary() == 1){ - for (Integer id : Convert.toIntArray(ids)) - { - //判断单据是否按出库流程操作 - ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); - if(shipmentHeader == null || shipmentHeader.getFirstStatus()<code){ + if(statusFlowDetail != null && statusFlowDetail.getNessary() == 1) { + if (StringUtils.isNotEmpty(ids)) { + for (Integer id : Convert.toIntArray(ids)) { + //判断单据是否按出库流程操作 + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); + if (shipmentHeader == null || shipmentHeader.getFirstStatus() < status) { + throw new ServiceException("单据状态不对,此操作不符合出库流程,请按照出库流程出库"); + } + shipmentHeaderList.add(shipmentHeader); + } + } + else { + LambdaQueryWrapper<ShipmentHeader> lam = Wrappers.lambdaQuery(); + lam.eq(ShipmentHeader::getCode,code) + .eq(ShipmentHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()); + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(lam); + if (shipmentHeader == null || shipmentHeader.getFirstStatus() < status) { throw new ServiceException("单据状态不对,此操作不符合出库流程,请按照出库流程出库"); } shipmentHeaderList.add(shipmentHeader); } } + return shipmentHeaderList; } } 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 86c7cf7..b5c33b9 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 @@ -111,7 +111,7 @@ public class adjustDetailController extends BaseController { @GetMapping("/add") public String add(String adjustCode, ModelMap m) { - if( adjustCode== null){ + if( adjustCode == null){ throw new SecurityException("调整单头编码不能为空!"); } m.put("adjustCode",adjustCode); @@ -127,16 +127,21 @@ public class adjustDetailController extends BaseController { @ResponseBody public AjaxResult addSave(AdjustDetail adjustDetail) { - //查询货主 + if(adjustDetail.getAdjustCode() == null){ + return AjaxResult.error("调整主单编码不能为空,请先选中主单再新增明细!"); + } + //查询主单及加入仓库和货主,盘点,质检单编码 AdjustHeader adjustHeader = new AdjustHeader(); adjustHeader.setCode(adjustDetail.getAdjustCode()); LambdaQueryWrapper<AdjustHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(adjustHeader); AdjustHeader ah = adjustHeaderMapper.selectOne(lambdaQueryWrapper); if(ah == null){ - throw new SecurityException("没有对应的主单据!"); + return AjaxResult.error("没有对应的主单据!"); } adjustDetail.setWarehouseCode(ah.getWarehouseCode()); adjustDetail.setCompanyCode(ah.getCompanyCode()); + adjustDetail.setCycleCountCode(ah.getCycleCountCode()); + adjustDetail.setCheckCode(ah.getCheckCode()); return adjustDetailService.addDetails(adjustDetail); } @@ -152,7 +157,7 @@ public class adjustDetailController extends BaseController { public AjaxResult editAdjustSave(String ids) { if(ids == null){ - throw new SecurityException("ID不能为空!"); + return AjaxResult.error("ID不能为空!"); } Integer[] integers = Convert.toIntArray(ids); for (Integer id : integers) @@ -178,13 +183,15 @@ public class adjustDetailController extends BaseController { public AjaxResult adjustAgree (String ids){ if(ids == null){ - throw new SecurityException("ID不能为空!"); + return AjaxResult.error("ID不能为空!"); } Integer[] integers = Convert.toIntArray(ids); for (Integer id : integers){ AdjustDetail adjustDetailEdit = adjustDetailService.getById(id); + if(StringUtils.isNotEmpty(adjustDetailEdit.getAgreeBy())){ + return AjaxResult.error("明细已审批,请勿重复审批!"); + } adjustDetailService.adjustAgree(adjustDetailEdit); - } return AjaxResult.success("审批已下发!"); } 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 index 7a1e006..efefe05 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java @@ -5,11 +5,16 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.config.container.service.ContainerService; import com.huaheng.pc.config.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; +import com.huaheng.pc.config.material.domain.Material; +import com.huaheng.pc.config.material.service.MaterialService; 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 com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; @@ -36,8 +41,13 @@ import java.util.WeakHashMap; public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, AdjustDetail> implements AdjustDetailService { + + @Resource + private CycleCountDetailService cycleCountDetailService; + @Resource + private MaterialService materialService; @Resource - private AdjustHeaderService adjustHeaderService; + private CheckDetailService checkDetailService; @Resource private InventoryHeaderService inventoryHeaderService; @Resource @@ -62,11 +72,49 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj @Transactional @Override public AjaxResult addDetails(AdjustDetail adjustDetail) { + //数据直接插入表里 + //查询主单据 + //检查库存 + if((adjustDetail.getInventoryDetailId()) != null){ + InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); + if(inventoryDetail == null){ + return AjaxResult.error("没有该条库存明细"); + } + } + //检查盘点单 + if(StringUtils.isNotEmpty(adjustDetail.getCycleCountCode())){ + CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(adjustDetail.getCheckDetailId()); + if(cycleCountDetail == null || !cycleCountDetail.getCycleCountHeadCode().equals(adjustDetail.getCycleCountCode())){ + return AjaxResult.error("盘点单错误,请核对盘点单据!"); + } + } + //检查质检单 + if(StringUtils.isNotEmpty(adjustDetail.getCheckCode())){ + CheckDetail checkDetail = checkDetailService.getById(adjustDetail.getCheckDetailId()); + if(checkDetail == null || !checkDetail.getCheckCode().equals(adjustDetail.getCheckCode())){ + return AjaxResult.error("质检单错误,请核对质检单据!"); + } + } + //检查物料 + Material material = materialService.findAllByCode(adjustDetail.getMaterialCode()); + if(material != null){ + if(!material.getName().equals(adjustDetail.getMaterialName())){ + return AjaxResult.error("物料名称错误!"); + } + }else{ + return AjaxResult.error("物料编码错误!"); + } + adjustDetail.setMaterialUnit(material.getUnit()); + adjustDetail.setMaterialSpec(material.getSpec()); + adjustDetail.setCreated(new Date()); + adjustDetail.setCreatedBy(ShiroUtils.getLoginName()); + adjustDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + adjustDetail.setLastUpdated(new Date()); - + this.saveOrUpdate(adjustDetail); return AjaxResult.success("新增调整明细成功!"); } @@ -113,19 +161,19 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj //调整单中不带库存明细时不查询 if(adjustDetail.getInventoryDetailId() != null) { inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); - //验证该条库存是不是正在使用,通过库位是否锁定来判断 if (!adjustDetail.getLocationCode().equals(inventoryDetail.getLocationCode()) || !adjustDetail.getContainerCode().equals(inventoryDetail.getContainerCode())) { - throw new SecurityException("调整单和所调整库存的库位容器不符,前检查数据"); + return AjaxResult.error("调整单和所调整库存的库位容器不符,前检查数据"); } - Location location = new Location(); + //验证该条库存是不是正在使用,验证库存明细 + /*Location location = new Location(); location.setCode(inventoryDetail.getLocationCode()); location.setWarehouseCode(inventoryDetail.getWarehouseCode()); LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(location); location = locationService.getOne(lambdaQueryWrapper); if (!location.getStatus().equals("empty")) { - throw new SecurityException(inventoryDetail.getId() + "库存非空闲,请等待其他任务完成再进行调整!"); - } + return AjaxResult.error (inventoryDetail.getId() + "库存非空闲,请等待其他任务完成再进行调整!"); + }*/ //判断调整哪一个属性值 /*以下方法有待验证讨论,BigDecimal传入null,如何避免传入0?*/ @@ -138,19 +186,19 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj //调整数量 updateAdjustDetailNumber(adjustDetail, inventoryDetail); } - if (StringUtils.isNotEmpty(adjustDetail.getFromInventorySts()) && StringUtils.isNotEmpty(adjustDetail.getToInventorySts())) { + if (!adjustDetail.getFromInventorySts().equals(adjustDetail.getToInventorySts())) { //调整库存状态 updateAdjustDetailState(adjustDetail, inventoryDetail); } + }else{ + String fromQtyString = adjustDetail.getFromQty().toString(); //调整前库存数量 + if(StringUtils.isNotEmpty(fromQtyString)){ + //调整插入库存 + updateAdjustDetailInsert(adjustDetail); + } } - String fromQtyString = adjustDetail.getFromQty().toString(); //调整前库存数量 - if(StringUtils.isNotEmpty(fromQtyString)){ - //调整插入库存 - updateAdjustDetailInsert(adjustDetail); - } - //修改调整单明细状态 - adjustDetail.setStatus(1); + adjustDetail.setStatus(3); adjustDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); adjustDetail.setLastUpdated(new Date()); this.saveOrUpdate(adjustDetail); @@ -263,7 +311,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); inventoryTransaction.setMaterialUnit(inventoryDetail.getMaterialUnit()); - inventoryTransaction.setTaskQty(null);//数量不变 + inventoryTransaction.setTaskQty(BigDecimal.ZERO);//数量不变 inventoryTransaction.setInventorySts(adjustDetail.getFromInventorySts());//状态 inventoryTransaction.setReferCode(inventoryDetail.getReferCode()); inventoryTransaction.setReferDetailId(inventoryDetail.getReferDetailId()); @@ -296,7 +344,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj inventoryTransaction2.setMaterialName(inventoryDetail.getMaterialName()); inventoryTransaction2.setMaterialSpec(inventoryDetail.getMaterialSpec()); inventoryTransaction2.setMaterialUnit(inventoryDetail.getMaterialUnit()); - inventoryTransaction2.setTaskQty(null);//数量不变 + inventoryTransaction2.setTaskQty(BigDecimal.ZERO);//数量不变 inventoryTransaction2.setInventorySts(inventoryDetail.getInventorySts());//状态 inventoryTransaction2.setReferCode(inventoryDetail.getReferCode()); inventoryTransaction2.setReferDetailId(inventoryDetail.getReferDetailId()); @@ -390,7 +438,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj inventoryDetail.setLastUpdated(new Date()); inventoryDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); inventoryDetail.setReceiptCode(""); - inventoryDetail.setReceiptDetailId(null); + inventoryDetail.setReceiptDetailId(0); inventoryDetailService.saveOrUpdate(inventoryDetail); //写入库存交易 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 451857d..e22e29b 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 @@ -4,26 +4,30 @@ 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.adjustDetail.domain.AdjustDetail; 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 com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; +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; @Controller @@ -37,7 +41,6 @@ public class adjustHeaderController extends BaseController { private AdjustDetailService adjustDetailService; - private String prefix = "inventory/adjustHeader"; @@ -86,9 +89,69 @@ public class adjustHeaderController extends BaseController { } } + /** + * 新增调整单主页面 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + /** + * 新增保存调整单主 + */ + //@RequiresPermissions("inventory:cycleCount:add") + @Log(title = "库存-调整",operating = "新增调整主单", action = BusinessType.INSERT) + @PostMapping("/addsave") + @ResponseBody + public AjaxResult addSave(AdjustHeader adjustHeader) + { + adjustHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); + return AjaxResult.success(adjustHeaderService.addSave(adjustHeader)); + } + /** + * 删除调整单主 + */ + //@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 = adjustHeaderService.delete(id); + if(result.code!=200){ + return result; + } + } + return AjaxResult.success("删除成功!"); + } + /** + * 调整单打印 + * @return + */ + //@RequiresPermissions("inventory:cyclecountAdjust:report") + @GetMapping("/report/{id}") + public String report(@PathVariable("id") Integer id, ModelMap mmap) + { + AdjustHeader adjustHeader = adjustHeaderService.getById(id); + mmap.put("adjustHeader", adjustHeader); + //明细 + AdjustDetail adjustDetail = new AdjustDetail(); + adjustDetail.setAdjustCode(adjustHeader.getCode()); + adjustDetail.setWarehouseCode(adjustHeader.getWarehouseCode()); + adjustDetail.setCompanyCode(adjustHeader.getCompanyCode()); + LambdaQueryWrapper<AdjustDetail> adjustDetailLambdaQueryWrapper = Wrappers.lambdaQuery(adjustDetail); + List<AdjustDetail> adjustDetails = adjustDetailService.list(adjustDetailLambdaQueryWrapper); + mmap.put("adjustDetails", adjustDetails); + return prefix + "/report"; + } 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 3709d1c..4c4635c 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,6 +1,7 @@ package com.huaheng.pc.inventory.adjustHeader.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; @@ -10,8 +11,9 @@ public interface AdjustHeaderService extends IService<AdjustHeader> { String createCode(); + AjaxResult delete(Integer id); - + AjaxResult addSave(AdjustHeader adjustHeader); } 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 index 9e75c9e..9e1a1b6 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java @@ -1,9 +1,14 @@ package com.huaheng.pc.inventory.adjustHeader.service; +import com.huaheng.common.utils.StringUtils; +import com.huaheng.common.utils.security.ShiroUtils; +import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; 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 org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -21,6 +26,7 @@ public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, Adj + //生成差异单号 @Override public String createCode() { @@ -41,9 +47,56 @@ public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, Adj return code; } + /** + * 删除 + * 空缺 + * @param id + * @return + */ + @Override + public AjaxResult delete(Integer id) { + AdjustHeader adjustHeader = this.getById(id); + if(adjustHeader == null){ + return AjaxResult.error("id为"+id.toString()+"的调整单不存在出,操作中止"); + } + //批量删除子单据 + AdjustDetail temp = new AdjustDetail(); + temp.setAdjustCode(adjustHeader.getCode()); + + return AjaxResult.success("删除成功"); + } + /** + * 保存新增调整头 + * @param adjustHeader + * @return + */ + @Transactional + @Override + public AjaxResult addSave(AdjustHeader adjustHeader) { + //校验调整类型 + //盘点调整,质检调整需要和盘点和质检单据确认。 + switch (adjustHeader.getProblemType()){ + case "checkAdjust": //质检调整 + if(StringUtils.isEmpty(adjustHeader.getCheckCode())){ + throw new SecurityException("选择单据类型为质检调整时,质检单编码不能为空!"); + } + break; + case "adjust": //盘点调整 + if(StringUtils.isEmpty(adjustHeader.getCycleCountCode())){ + throw new SecurityException("选择单据类型为盘点调整时,盘点单编码不能为空!"); + } + break; + } + + adjustHeader.setCreated(new Date()); + adjustHeader.setCreatedBy(ShiroUtils.getLoginName()); + adjustHeader.setCode(this.createCode()); + this.save(adjustHeader); + return AjaxResult.success("新增调整头成功!"); + } } 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 7f66033..a8fce46 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 @@ -58,9 +58,10 @@ public class CycleCountDetailController extends BaseController { - private String prefix = "inventory/cycleCountDetail"; + + @RequiresPermissions("inventory:cyclecountDetail:view") @GetMapping() public String cyclecountHeader() { @@ -70,7 +71,7 @@ public class CycleCountDetailController extends BaseController { /** * 查询盘点单主列表 */ - //@RequiresPermissions("inventory:cycleCount:list") + @RequiresPermissions("inventory:cycleCountDetail:list") @PostMapping("/list") @Log(title = "库存-盘点",operating = "查看盘点明细", action = BusinessType.GRANT) @ResponseBody @@ -143,7 +144,7 @@ public class CycleCountDetailController extends BaseController { /** * 新增保存盘点明细 */ - //@RequiresPermissions("inventory:cyclecountDetail:add") + @RequiresPermissions("inventory:cyclecountDetail:add") @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody @@ -155,7 +156,7 @@ public class CycleCountDetailController extends BaseController { /** * 删除盘点明细 */ - //@RequiresPermissions("inventory:cyclecountDetail:remove") + @RequiresPermissions("inventory:cyclecountDetail:remove") @Log(title = "库存-盘点", operating = "删除盘点明细", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody @@ -194,7 +195,7 @@ public class CycleCountDetailController extends BaseController { } /**生成全部盘点任务*/ - //@RequiresPermissions("inventory:cyclecountDetail:createTask") + @RequiresPermissions("inventory:cyclecountDetail:createTask") @PostMapping("/createCycleCountTaskByHeadId") @ResponseBody public AjaxResult createCycleCountTaskByHeadId(String cycleCountHeadCode){ @@ -205,7 +206,7 @@ public class CycleCountDetailController extends BaseController { } /**生成单条盘点任务*/ - //@RequiresPermissions("inventory:cyclecountDetail:createTask") + @RequiresPermissions("inventory:cyclecountDetail:createTask") @PostMapping("/createCycleCoutTaskByDetailId") @ResponseBody public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId){ @@ -221,7 +222,7 @@ public class CycleCountDetailController extends BaseController { * @param qty * @return */ - //@RequiresPermissions("inventory:cyclecountDetail:confirm") + @RequiresPermissions("inventory:cyclecountDetail:confirm") @PostMapping("/confirmGapQty") @ResponseBody public AjaxResult confirmGapQty(Integer detailId, BigDecimal qty){ @@ -233,7 +234,7 @@ public class CycleCountDetailController extends BaseController { * @param cycleCountHeadCode * @return */ - //@RequiresPermissions("inventory:cyclecountDetail:cyclecountRepeat") + @RequiresPermissions("inventory:cyclecountDetail:cyclecountRepeat") @PostMapping("/createCyclecountWithGapQty") @ResponseBody public AjaxResult createCyclecountWithGapQty(String cycleCountHeadCode){ 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 31e041d..31e746f 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 @@ -44,15 +44,12 @@ public class CycleCountHeaderController extends BaseController { private CycleCountHeaderService cycleCountHeaderService; @Resource private CycleCountDetailService cycleCountDetailService; - @Resource - private AdjustHeaderService adjustHeaderService; - private String prefix = "inventory/cycleCountHeader"; - //@RequiresPermissions("inventory:cycleCount:view") + @RequiresPermissions("inventory:cycleCountHeader:view") @GetMapping() public String cyclecountHeader() { @@ -62,7 +59,7 @@ public class CycleCountHeaderController extends BaseController { /** * 查询盘点单主列表 */ - //@RequiresPermissions("inventory:cycleCount:list") + @RequiresPermissions("inventory:cycleCountHeader:list") @PostMapping("/list") @Log(title = "库存-盘点",operating = "查看盘点主单", action = BusinessType.GRANT) @ResponseBody @@ -95,6 +92,9 @@ public class CycleCountHeaderController extends BaseController { } } + + + /** * 新增盘点单主 */ @@ -107,7 +107,7 @@ public class CycleCountHeaderController extends BaseController { /** * 新增保存盘点单主 */ - //@RequiresPermissions("inventory:cycleCount:add") + @RequiresPermissions("inventory:cycleCountHeader:add") @Log(title = "库存-盘点",operating = "新增盘点主单", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody @@ -137,7 +137,7 @@ public class CycleCountHeaderController extends BaseController { /** * 修改保存盘点单主 */ - //@RequiresPermissions("inventory:cycleCount:edit") + @RequiresPermissions("inventory:cycleCountHeader:edit") @Log(title = "库存-盘点",operating = "修改盘点主单", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody @@ -151,7 +151,7 @@ public class CycleCountHeaderController extends BaseController { /** * 删除盘点单主 */ - //@RequiresPermissions("inventory:cycleCount:remove") + @RequiresPermissions("inventory:cycleCountHeader:remove") @Log(title = "库存-盘点",operating = "删除盘点主单", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody @@ -173,7 +173,7 @@ public class CycleCountHeaderController extends BaseController { * * 生成调整单 * */ - //@RequiresPermissions("inventory:cyclecountHead:addAdjust") + @RequiresPermissions("inventory:cyclecountHead:addAdjust") @Log(title = "库存-盘点", operating = "新增盘点差异调整单", action = BusinessType.INSERT) @PostMapping("/goAdjust") @ResponseBody @@ -187,7 +187,7 @@ public class CycleCountHeaderController extends BaseController { * 盘点单报表打印 * @return */ - //@RequiresPermissions("inventory:cycleCount:report") + @RequiresPermissions("inventory:cycleCountHeader:report") @GetMapping("/report/{id}") public String report(@PathVariable("id") Integer id, ModelMap mmap) { 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 44213d6..7228398 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 @@ -18,6 +18,7 @@ import com.huaheng.pc.config.material.service.MaterialServiceImpl; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; +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; @@ -160,9 +161,8 @@ public class InventoryDetailController extends BaseController return AjaxResult.success("库存明细出库查看任务下发成功!"); } - /**在库质检*/ - //@RequiresPermissions("inventory:inventoryHeader:detailCheckTask") + @RequiresPermissions("inventory:inventoryDetail:detailCheckTask") @PostMapping("/detailCheckTask") @ResponseBody public AjaxResult detailCheckTask(String ids) throws InvocationTargetException, IllegalAccessException { diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java b/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java index 571ceb1..d05234a 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java @@ -95,7 +95,7 @@ public class InventoryHeaderController extends BaseController } /**移库*/ - //@RequiresPermissions("inventory:inventoryHeader:transfer") + @RequiresPermissions("inventory:inventoryHeader:transfer") @PostMapping("/transfer") @ResponseBody public AjaxResult transfer(String sourceLocation, String destinationLocation){ @@ -106,7 +106,7 @@ public class InventoryHeaderController extends BaseController } /**出库查看*/ - //@RequiresPermissions("inventory:inventoryHeader:seeOut") + @RequiresPermissions("inventory:inventoryHeader:seeOut") @PostMapping("/createCheckOutTask") @ResponseBody public AjaxResult createCheckOutTask(String[] ids){ @@ -130,7 +130,7 @@ public class InventoryHeaderController extends BaseController * @param destinationLocation * @return */ - //@RequiresPermissions("task:task:emptyIn") + @RequiresPermissions("inventory:inventoryHeader:emptyIn") @PostMapping("/emptyIn") @Log(title = "任务-任务管理", operating = "生成空托盘入库任务", action = BusinessType.INSERT) @ResponseBody @@ -155,7 +155,7 @@ public class InventoryHeaderController extends BaseController * @param sourceLocation * @return */ - //@RequiresPermissions("task:task:emptyOut") + @RequiresPermissions("inventory:inventoryHeader:emptyOut") @PostMapping("/emptyOut") @Log(title = "任务-任务管理", operating = "生成空托盘出库任务", action = BusinessType.INSERT) @ResponseBody @@ -180,7 +180,7 @@ public class InventoryHeaderController extends BaseController * @param location * @return */ - //@RequiresPermissions("task:task:emptyInOut") + @RequiresPermissions("inventory:inventoryHeader:emptyCheckOut") @PostMapping("/emptyCheckOut") @Log(title = "任务-任务管理", operating = "生成空托盘出库查看任务", action = BusinessType.INSERT) @ResponseBody diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java b/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java index 08cb6dd..02cf7c2 100644 --- a/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java +++ b/src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java @@ -18,6 +18,7 @@ import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService; 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.*; @@ -43,7 +44,7 @@ public class InventoryTransactionController extends BaseController{ private String prefix = "inventory/inventoryTransaction"; - //@RequiresPermissions("inventory:inventoryTransaction:view") + @RequiresPermissions("inventory:inventoryTransaction:view") @GetMapping() public String inventoryTransaction() { @@ -53,7 +54,7 @@ public class InventoryTransactionController extends BaseController{ /** * 查询库存交易列表 */ - //@RequiresPermissions("inventory:inventoryTransaction:inventoryTransactionList") + @RequiresPermissions("inventory:inventoryTransaction:inventoryTransactionList") @Log(title = "库存-库存交易",operating = "查看库存交易列表", action = BusinessType.GRANT) @PostMapping("/inventoryTransactionList") @ResponseBody @@ -95,15 +96,16 @@ public class InventoryTransactionController extends BaseController{ } } - //@RequiresPermissions("receipt:bill:report") + @RequiresPermissions("inventory:inventoryTransaction:view:report") @Log(title = "库存-库存交易明细", operating = "库存交易明细报表打印", action = BusinessType.OTHER) @GetMapping("/report/{ids}") public String report(@PathVariable("ids") Integer[] ids, ModelMap mmap) { - List<InventoryTransaction> list=new ArrayList<InventoryTransaction>(); + List<InventoryTransaction> list = new ArrayList<>(); for(Integer id:ids){ - if(id!=null) { - //list.add(inventoryTransaction); + if(id != null) { + InventoryTransaction inventoryTransaction = inventoryTransactionService.getById(id); + list.add(inventoryTransaction); } mmap.put("inventoryTransaction", list); } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java index 50c2f5c..6f4abc2 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java @@ -68,7 +68,6 @@ public class ShipmentContainerHeaderController extends BaseController .ge(StringUtils.isNotEmpty(createdBegin),ShipmentContainerHeader::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), ShipmentContainerHeader::getCreated, createdEnd) .in(ShipmentContainerHeader::getCompanyCode,ShiroUtils.getCompanyCodeList()) - .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getShipmentCode()), ShipmentContainerHeader::getShipmentCode, shipmentContainerHeader.getShipmentCode()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getContainerCode()), ShipmentContainerHeader::getContainerCode, shipmentContainerHeader.getContainerCode()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getLocationCode()), ShipmentContainerHeader::getLocationCode, shipmentContainerHeader.getLocationCode()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getCreatedBy()), ShipmentContainerHeader::getCreatedBy, shipmentContainerHeader.getCreatedBy()) diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java index 9507dfc..cfac054 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/domain/ShipmentContainerHeader.java @@ -99,12 +99,6 @@ public class ShipmentContainerHeader implements Serializable { private BigDecimal height; - /** - * 出库单内部号 - */ - @TableField(value = "shipmentId") - @ApiModelProperty(value="出库单内部号") - private Integer shipmentId; /** * 货主编码 @@ -141,12 +135,6 @@ public class ShipmentContainerHeader implements Serializable { @ApiModelProperty(value="序号") private Integer groupIndex; - /** - * 波次号 - */ - @TableField(value = "waveId") - @ApiModelProperty(value="波次号") - private Integer waveId; /** @@ -156,12 +144,7 @@ public class ShipmentContainerHeader implements Serializable { @ApiModelProperty(value="任务已创建?") private Integer taskCreated; - /** - * 出库单号 - */ - @TableField(value = "shipmentCode") - @ApiModelProperty(value="出库单号") - private String shipmentCode; + /** * 周转箱号 @@ -316,8 +299,6 @@ public class ShipmentContainerHeader implements Serializable { public static final String COL_HEIGHT = "height"; - public static final String COL_SHIPMENTID = "shipmentId"; - public static final String COL_COMPANYCODE = "companyCode"; public static final String COL_TOTALQTY = "totalQty"; @@ -328,12 +309,8 @@ public class ShipmentContainerHeader implements Serializable { public static final String COL_GROUPINDEX = "groupIndex"; - public static final String COL_WAVEID = "waveId"; - public static final String COL_TASKCREATED = "taskCreated"; - public static final String COL_SHIPMENTCODE = "shipmentCode"; - public static final String COL_TRANSCONTAINERCODE = "transContainerCode"; public static final String COL_OQCBENCH = "oqcBench"; @@ -568,24 +545,6 @@ public class ShipmentContainerHeader implements Serializable { /** - * 获取出库单内部号 - * - * @return shipmentId - 出库单内部号 - */ - public Integer getShipmentId() { - return shipmentId; - } - - /** - * 设置出库单内部号 - * - * @param shipmentId 出库单内部号 - */ - public void setShipmentId(Integer shipmentId) { - this.shipmentId = shipmentId; - } - - /** * 获取货主编码 * * @return companyCode - 货主编码 @@ -665,23 +624,6 @@ public class ShipmentContainerHeader implements Serializable { this.groupIndex = groupIndex; } - /** - * 获取波次号 - * - * @return waveId - 波次号 - */ - public Integer getWaveId() { - return waveId; - } - - /** - * 设置波次号 - * - * @param waveId 波次号 - */ - public void setWaveId(Integer waveId) { - this.waveId = waveId; - } /** * 获取任务已创建? @@ -701,24 +643,6 @@ public class ShipmentContainerHeader implements Serializable { this.taskCreated = taskCreated; } - /** - * 获取出库单号 - * - * @return shipmentCode - 出库单号 - */ - public String getShipmentCode() { - return shipmentCode; - } - - /** - * 设置出库单号 - * - * @param shipmentCode 出库单号 - */ - public void setShipmentCode(String shipmentCode) { - this.shipmentCode = shipmentCode; - } - public String getTransContainerCode() { return transContainerCode; } 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 732a40e..e414571 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 @@ -6,6 +6,8 @@ import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.domain.RetCode; +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.config.material.domain.Material; @@ -40,7 +42,6 @@ import java.util.Map; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; import com.huaheng.pc.shipment.shipmentContainerHeader.mapper.ShipmentContainerHeaderMapper; -import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; import org.springframework.transaction.annotation.Transactional; @Service @@ -70,6 +71,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont private WaveService waveService; @Autowired private ShipmentPreferenceService shipmentPreferenceService; + @Autowired + private ContainerService containerService; @Override @@ -80,6 +83,14 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont /** + * 1.检查基本属性 + * 2.更改库存明细 + * 3.更新单据明细的已出库数量 + * 4.自动判定出库任务状态,根据库存数量减去预定库存相等就是整盘出--预计任务状态 + * 5.增加出库组盘头 + * 6.增加出库组盘明细 + * 7.更新单据状态 + * * 出库组盘单条保存 * @param shipmentCombinationModel * @return @@ -88,6 +99,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont @Override public ShipmentContainerHeader combination(ShipmentCombinationModel shipmentCombinationModel) { + //1.检查基本属性 //校验 if(shipmentCombinationModel.getShipQty().compareTo(new BigDecimal("0")) <= 0){ throw new ServiceException("出库数量必须大于0"); @@ -116,8 +128,9 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont lambdaQueryWrapper.eq(Location::getWarehouseCode,inventoryDetail.getWarehouseCode()) .eq(Location::getCode,inventoryDetail.getLocationCode()); Location location = locationService.getOne(lambdaQueryWrapper); - if (location == null) - throw new ServiceException("库位 "+ inventoryDetail.getLocationCode() +" 不存在"); + if (location == null) { + throw new ServiceException("库位 " + inventoryDetail.getLocationCode() + " 不存在"); + } // if (location.getStatus().equals("lock")) { // //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发 // LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery(); @@ -130,7 +143,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont // } // } - //更新库存分配数 + //2.更新库存分配数 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().add(shipmentCombinationModel.getShipQty())); inventoryDetailService.saveOrUpdate(inventoryDetail); //获取库位,然后锁定 @@ -138,7 +151,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont location.setStatus("lock"); locationService.saveOrUpdate(location); } - //更新单据明细的已出库数量 + //3.更新单据明细的已出库数量 shipmentDetail.setRequestQty(shipmentDetail.getRequestQty().add(shipmentCombinationModel.getShipQty())); int i = shipmentDetail.getShipQty().compareTo(shipmentDetail.getRequestQty()); if(i > 0){ @@ -158,27 +171,32 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont shipmentCombinationModel.setTaskType(400); } - //增加出库组盘头 - ShipmentContainerHeader shipmentContainerHeader = ShipmentContainerHeaderAdd(location, shipmentDetail, shipmentCombinationModel); - //增加出库组盘明细 + //5.增加出库组盘头 + ShipmentContainerHeader shipmentContainerHeader = ShipmentContainerHeaderAdd(location, shipmentDetail); + //6.增加出库组盘明细 ShipmentContainerDetail shipmentContainerDetail = ShipmentContainerDetailAdd(shipmentDetail, shipmentContainerHeader, shipmentCombinationModel); - //更新单据状态 + //7.更新单据状态 shipmentHeaderService.updateShipmentStatus(shipmentDetail.getShipmentId()); return shipmentContainerHeader; } /** - * 在组盘表中查找任务状态小于20的容器,如果状态为0就合并出库明细,状态大于0就提示不能组盘。如果找不到就新增一条组盘表头 + * 组盘头 + * 1.查看是否有状态小于等于20的组盘头,有就需新建组盘头,没有就新建 + * 2.没有符合条件的组盘头,新建组盘头 + * * @param location - * @param shipmentCombination + * @param shipmentDetail * @return */ private ShipmentContainerHeader ShipmentContainerHeaderAdd(Location location, - ShipmentDetail shipmentDetail, - ShipmentCombinationModel shipmentCombination) { + ShipmentDetail shipmentDetail) { + + //1.查看是否有状态小于等于20的组盘头,有就需新建组盘头,没有就新建 LambdaQueryWrapper<ShipmentContainerHeader> lambdaQueryWrapper=Wrappers.lambdaQuery(); - lambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) + lambdaQueryWrapper.eq(ShipmentContainerHeader::getLocationCode,location.getCode()) + .eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode()) .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) .le(ShipmentContainerHeader::getStatus,20); ShipmentContainerHeader shipmentContainerHeader = this.getOne(lambdaQueryWrapper); @@ -186,34 +204,39 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont 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) { + // 2.没有符合条件的组盘头,新建组盘头 + //找到容器类型 + LambdaQueryWrapper<Container> containerLam=Wrappers.lambdaQuery(); + containerLam.eq(Container::getCode,location.getContainerCode()) + .eq(Container::getWarehouseCode,ShiroUtils.getWarehouseCode()); + Container container = containerService.getOne(containerLam); + if(container == null){ + throw new ServiceException("系统没有此容器编码"); + } shipmentContainerHeader = new ShipmentContainerHeader(); shipmentContainerHeader.setContainerCode(location.getContainerCode()); shipmentContainerHeader.setLocationCode(location.getCode()); shipmentContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); - //赋值u8仓库 shipmentContainerHeader.setCompanyCode(shipmentDetail.getCompanyCode()); + shipmentContainerHeader.setContainerType(container.getContainerType()); shipmentContainerHeader.setStatus(0); shipmentContainerHeader.setTaskCreated(0); shipmentContainerHeader.setCreatedBy(ShiroUtils.getLoginName()); - shipmentContainerHeader.setCreated(null); -// Material material=new Material(); -// material.setCode(shipmentDetail.getMaterialCode()); -// shipmentContainerHeader.setZoneCode(materialService.selectFirstEntity(material).getZoneCode()); - this.save(shipmentContainerHeader); + Boolean flag = this.save(shipmentContainerHeader); + if(flag == false){ + throw new ServiceException("新建组盘头失败,sql错误"); + } return shipmentContainerHeader; } -// } } /** - * 查询 容器编码、库存Id、出库明细Id 一致的组盘明细,如果存在则增加组盘数量,如果不存在就新增一条组盘明细 + * 组盘明细 + * 1.查看是否有同一出库明细的物料需要出库 + * 2.有时修改阻盘明细的出库数量就行 + * 3.没有就新建明细 + * 4。查看组盘头状态,如果状态在10到20,则生成任务明细或修改任务明细的数量 + * * @param shipmentDetail * @param shipmentContainerHeader * @param shipmentCombinationModel @@ -222,46 +245,66 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont private ShipmentContainerDetail ShipmentContainerDetailAdd(ShipmentDetail shipmentDetail, ShipmentContainerHeader shipmentContainerHeader, ShipmentCombinationModel shipmentCombinationModel) { + + Boolean flag =true; + //1.查看是否有同一出库明细的物料需要出库 LambdaQueryWrapper<ShipmentContainerDetail> lambdaQueryWrapper=Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(ShipmentContainerDetail::getShippingContainerId,shipmentContainerHeader.getId()) + .eq(ShipmentContainerDetail::getLocationCode,shipmentContainerHeader.getLocationCode()) + .eq(ShipmentContainerDetail::getContainerCode,shipmentContainerHeader.getContainerCode()) .eq(ShipmentContainerDetail::getShipmentDetailId,shipmentCombinationModel.getShipmentDetailId()) .eq(ShipmentContainerDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getOne(lambdaQueryWrapper); + ShipmentContainerDetail shipmentContainerDetaill = new ShipmentContainerDetail(); + + //2.有时修改阻盘明细的出库数量就行 if(shipmentContainerDetail != null) { shipmentContainerDetail.setQty(shipmentContainerDetail.getQty().add(shipmentCombinationModel.getShipQty())); - shipmentContainerDetailService.saveOrUpdate(shipmentContainerDetail); + flag=shipmentContainerDetailService.saveOrUpdate(shipmentContainerDetail); + if(flag == false){ + throw new ServiceException("修改组盘明细失败,sql错误"); + } } - else { - //构建明细 + else { + //3.没有就新建明细 LambdaQueryWrapper<Material> lam=Wrappers.lambdaQuery(); lam.eq(Material::getCode,shipmentDetail.getMaterialCode()) .eq(Material::getWarehouseCode,ShiroUtils.getWarehouseCode()); Material material = materialService.getOne(lam); - if (material == null) - throw new ServiceException("出库单(" + shipmentDetail.getShipmentCode() + ")的物料("+ shipmentDetail.getMaterialCode() +")不存在!"); - shipmentContainerDetail = new ShipmentContainerDetail(); - shipmentContainerDetail.setWarehouseCode(shipmentContainerHeader.getWarehouseCode()); - shipmentContainerDetail.setCompanyCode(shipmentContainerHeader.getCompanyCode()); - shipmentContainerDetail.setContainerCode(shipmentContainerHeader.getContainerCode()); - shipmentContainerDetail.setLocationCode(shipmentContainerHeader.getLocationCode()); - shipmentContainerDetail.setInventoryId(shipmentCombinationModel.getInventoryDetailId()); - shipmentContainerDetail.setInventorySts(shipmentDetail.getInventorySts()); - shipmentContainerDetail.setShippingContainerId(shipmentContainerHeader.getId()); - shipmentContainerDetail.setShipmentCode(shipmentDetail.getShipmentCode()); - shipmentContainerDetail.setShipmentId(shipmentDetail.getShipmentId()); - shipmentContainerDetail.setShipmentDetailId(shipmentCombinationModel.getShipmentDetailId()); - shipmentContainerDetail.setMaterialCode(material.getCode()); - shipmentContainerDetail.setMaterialName(material.getName()); - shipmentContainerDetail.setMaterialSpec(material.getSpec()); - shipmentContainerDetail.setQty(shipmentCombinationModel.getShipQty()); - shipmentContainerDetail.setCreated(null); - shipmentContainerDetail.setWaveId(shipmentDetail.getWaveId()); - shipmentContainerDetail.setCreatedBy(ShiroUtils.getLoginName()); - shipmentContainerDetailService.save(shipmentContainerDetail); + if (material == null) { + throw new ServiceException("出库单(" + shipmentDetail.getShipmentCode() + ")的物料(" + shipmentDetail.getMaterialCode() + ")不存在!"); + } + shipmentContainerDetaill.setWarehouseCode(shipmentContainerHeader.getWarehouseCode()); + shipmentContainerDetaill.setCompanyCode(shipmentContainerHeader.getCompanyCode()); + shipmentContainerDetaill.setContainerCode(shipmentContainerHeader.getContainerCode()); + shipmentContainerDetaill.setLocationCode(shipmentContainerHeader.getLocationCode()); + shipmentContainerDetaill.setInventoryId(shipmentCombinationModel.getInventoryDetailId()); + shipmentContainerDetaill.setInventorySts(shipmentDetail.getInventorySts()); + shipmentContainerDetaill.setShippingContainerId(shipmentContainerHeader.getId()); + shipmentContainerDetaill.setShipmentCode(shipmentDetail.getShipmentCode()); + shipmentContainerDetaill.setShipmentId(shipmentDetail.getShipmentId()); + shipmentContainerDetaill.setShipmentDetailId(shipmentDetail.getId()); + shipmentContainerDetaill.setMaterialCode(shipmentDetail.getMaterialCode()); + shipmentContainerDetaill.setMaterialName(shipmentDetail.getMaterialName()); + shipmentContainerDetaill.setMaterialSpec(shipmentDetail.getMaterialSpec()); + shipmentContainerDetaill.setMaterialUnit(shipmentDetail.getMaterialUnit()); + shipmentContainerDetaill.setQty(shipmentCombinationModel.getShipQty()); + shipmentContainerDetaill.setWaveId(shipmentDetail.getWaveId()); + shipmentContainerDetaill.setTaskCreated(0); + shipmentContainerDetaill.setStatus(0); + shipmentContainerDetaill.setBatch(shipmentDetail.getBatch()); + shipmentContainerDetaill.setLot(shipmentDetail.getLot()); + shipmentContainerDetaill.setProjectNo(shipmentDetail.getProjectNo()); + shipmentContainerDetaill.setCreatedBy(ShiroUtils.getLoginName()); + flag = shipmentContainerDetailService.save(shipmentContainerDetaill); + if(flag == false){ + throw new ServiceException("新建组盘明细失败,sql错误"); + } } - // + //4.查看组盘头状态,如果状态在10到20,则生成任务明细或修改任务明细的数量 + //查看任务头 if(shipmentContainerHeader.getStatus()>=10 && shipmentContainerHeader.getStatus()<30){ LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper=Wrappers.lambdaQuery(); taskHeaderLambdaQueryWrapper.eq(TaskHeader::getWarehouseCode,shipmentContainerHeader.getWarehouseCode()) @@ -271,33 +314,60 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont 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); + + if(shipmentContainerDetaill == null) { + //shipmentContainerDetaill为空时,说明组盘明细不是新建,so修改任务明细 + //查找任务明细 + LambdaQueryWrapper<TaskDetail> taskDetailLam = Wrappers.lambdaQuery(); + taskDetailLam.eq(TaskDetail::getWarehouseCode,shipmentContainerDetail.getWarehouseCode()) + .eq(TaskDetail::getAllocationId,shipmentContainerDetail.getId()) + .eq(TaskDetail::getTaskId,taskHeader.getId()) + .eq(TaskDetail::getInternalTaskType,200); + TaskDetail taskDetail = taskDetailService.getOne(taskDetailLam); + if(taskDetail == null){ + throw new ServiceException("找不到对应的任务明细"); + } + taskDetail.setQty(taskDetail.getQty().add(shipmentCombinationModel.getShipQty())); + flag=taskDetailService.saveOrUpdate(taskDetail); + if(flag == false){ + throw new ServiceException("修改任务明细失败,sql错误"); + } }else { - taskDetail.setStatus(10); + //shipmentContainerDetaill不为空时,说明组盘明细是新建,so新建任务明细 + 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(shipmentContainerDetaill.getId()); + taskDetail.setBillCode(shipmentContainerDetaill.getShipmentCode()); + taskDetail.setBillDetailId(shipmentContainerDetaill.getShipmentDetailId()); + taskDetail.setMaterialCode(shipmentContainerDetaill.getMaterialCode()); + taskDetail.setMaterialName(shipmentContainerDetaill.getMaterialName()); + taskDetail.setMaterialSpec(shipmentContainerDetaill.getMaterialSpec()); + taskDetail.setMaterialUnit(shipmentContainerDetaill.getMaterialUnit()); + taskDetail.setFromInventoryId(shipmentContainerDetaill.getInventoryId()); + taskDetail.setQty(shipmentContainerDetaill.getQty()); + taskDetail.setContainerCode(taskHeader.getContainerCode()); + taskDetail.setFromLocation(taskHeader.getFromLocation()); + taskDetail.setToLocation(taskHeader.getToLocation()); + taskDetail.setLot(shipmentContainerDetaill.getLot()); + taskDetail.setWaveId(shipmentContainerDetaill.getWaveId()); + taskDetail.setBatch(shipmentContainerDetaill.getBatch()); + taskDetail.setProjectNo(shipmentContainerDetail.getProjectNo()); + if (shipmentContainerHeader.getStatus() == 10) { + taskDetail.setStatus(0); + } else { + taskDetail.setStatus(10); + } + taskDetail.setCreatedBy(ShiroUtils.getLoginName()); + taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + flag = taskDetailService.save(taskDetail); + if(flag == false){ + throw new ServiceException("新建任务明细失败,sql错误"); + } } - taskDetail.setTaskType(taskHeader.getTaskType()); - taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - taskDetail.setLastUpdated(null); - taskDetailService.save(taskDetail); } return shipmentContainerDetail; } @@ -342,7 +412,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont if(shipmentDetail.getRequestQty().compareTo(BigDecimal.ZERO) != 0 ){ shipmentDetail.setStatus(200);//明细状态恢复,如果删除后还有以出数量就是波次 }else{ - shipmentDetail.setStatus(0 );//明细状态 + shipmentDetail.setStatus(100 );//明细状态 } shipmentDetailService.saveOrUpdate(shipmentDetail); //删除这个配盘明细 @@ -402,7 +472,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont if(shipmentHeader == null){ throw new ServiceException("系统没有此单据"); } - shipmentPreferenceService.checkShipmentProcess(shipmentHeader.getId().toString(),100); + shipmentPreferenceService.checkShipmentProcess(shipmentHeader.getId().toString(),100,shipmentCode); LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode, shipmentCode) diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java index 7096489..28959b5 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java @@ -13,10 +13,12 @@ import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.page.PageDomain; import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; +import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -41,6 +43,8 @@ public class ShipmentDetailController extends BaseController private ShipmentDetailService shipmentDetailService; @Autowired private InventoryDetailService inventoryDetailService; + @Autowired + private ShipmentPreferenceService shipmentPreferenceService; @@ -162,4 +166,15 @@ public class ShipmentDetailController extends BaseController + @RequiresPermissions("shipment:bill:view") + @PostMapping( "/shippingCombination") + @ResponseBody + public AjaxResult ShippingCombination(String shipmentCode, ModelMap map){ + map.put("code", shipmentCode); + Integer status = 100; + String ids=""; + List<ShipmentHeader> shipmentHeaderList =shipmentPreferenceService.checkShipmentProcess(ids,status,shipmentCode); + return AjaxResult.success("成功"); + } + } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java index 4e6eac6..fbd3a31 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java @@ -174,7 +174,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, @Transactional public void saveWave(String ids, String code) { Integer status = 100; - List<ShipmentHeader> shipmentHeaderList =shipmentPreferenceService.checkShipmentProcess(ids,status); + List<ShipmentHeader> shipmentHeaderList =shipmentPreferenceService.checkShipmentProcess(ids,status,code); //找到波次主表,看系统是否有此波次 LambdaQueryWrapper<WaveMaster> lam=Wrappers.lambdaQuery(); diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java index 1833cbf..4a8bd03 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java @@ -106,25 +106,19 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, Map<String,Integer> map = shipmentContainerHeaderService.getShipmentContainerMaxAndMinStatusByShipmentID(shipmentId); if(map==null){ //说明没有货箱,则直接首位均为新建 - shipmentHeader.setFirstStatus(0); - shipmentHeader.setLastStatus(0); + shipmentHeader.setFirstStatus(100); + shipmentHeader.setLastStatus(100); this.saveOrUpdate(shipmentHeader); }else { int firstStatus = map.get("maxStatus"); int lastStatus = map.get("minStatus"); - if(firstStatus<20){ - shipmentHeader.setFirstStatus(200); - } - if(firstStatus==20){ + if(firstStatus<=20){ shipmentHeader.setFirstStatus(300); } if(firstStatus==30){ shipmentHeader.setFirstStatus(500); } - if(lastStatus<20){ - shipmentHeader.setLastStatus(200); - } - if(lastStatus==20){ + if(lastStatus <=20){ shipmentHeader.setLastStatus(300); } if(lastStatus==30){ @@ -133,7 +127,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, //是否存在未配盘的数量,如果是,则尾状态为新建 Integer UnCompleted = shipmentDetailService.countUnCompleted(shipmentId); if(UnCompleted != null && UnCompleted.intValue() > 0){ - shipmentHeader.setLastStatus(0); + shipmentHeader.setLastStatus(100); } this.saveOrUpdate(shipmentHeader); } diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java index 47bc577..276b8f6 100644 --- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java +++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java @@ -53,6 +53,8 @@ public class ShippingCombinationController extends BaseController { ShipmentContainerDetailService shipmentContainerDetailService; @Autowired ShipmentHeaderService shipmentHeaderService; + @Autowired + ShipmentPreferenceService shipmentPreferenceService; /** diff --git a/src/main/java/com/huaheng/pc/system/user/controller/IndexController.java b/src/main/java/com/huaheng/pc/system/user/controller/IndexController.java index 75ba1e2..c7010c9 100644 --- a/src/main/java/com/huaheng/pc/system/user/controller/IndexController.java +++ b/src/main/java/com/huaheng/pc/system/user/controller/IndexController.java @@ -73,7 +73,7 @@ public class IndexController extends BaseController pie.itemStyle().emphasis().setShadowBlur(10); pie.itemStyle().emphasis().setShadowOffsetX(0); pie.itemStyle().emphasis().setShadowColor("rgba(0, 0, 0, 0.4)"); - String sql = "SELECT d.dictLabel '状态', i.qty '库存' FROM (SELECT status ,SUM(qty) qty FROM inventoryHeader WHERE warehouseCode = " + ShiroUtils.getWarehouseCode() + " GROUP BY status) i INNER JOIN sys_dict_data d ON i.status= d.dictValue AND d.warehouseCode = ' " + ShiroUtils.getWarehouseCode()+"' ;"; + String sql = "SELECT d.dictLabel '状态', i.qty '库存' FROM (SELECT inventorySts ,SUM(qty) qty FROM inventory_detail WHERE warehouseCode = '" + ShiroUtils.getWarehouseCode()+"' GROUP BY inventorySts) i INNER JOIN sys_dict_data d ON i.inventorySts= d.dictValue AND d.warehouseCode = '" + ShiroUtils.getWarehouseCode()+"' ;"; List<LinkedHashMap<String, Object>> results = mapper.selectCommon(sql); for(LinkedHashMap<String, Object> item : results){ ChartData chartData = new ChartData(); @@ -147,7 +147,7 @@ public class IndexController extends BaseController " union all\n" + " SELECT date_sub(curdate(), interval 6 day) as click_date\n" + ") a left join (\n" + - "SELECT DATE(h.created) AS created , SUM(d.qty) AS taskQty from shipment_container_detail d join shipment_container_header h on d.shippingContainerId = h.id and h.warehouseCode='"+ShiroUtils.getWarehouseCode()+"' WHERE h.created >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND h.enable>19 GROUP BY DATE(h.created)\n" + + "SELECT DATE(h.created) AS created , SUM(d.qty) AS taskQty from shipment_container_detail d join shipment_container_header h on d.shippingContainerId = h.id and h.warehouseCode='"+ShiroUtils.getWarehouseCode()+"' WHERE h.created >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND h.status=30 GROUP BY DATE(h.created)\n" + ") b on a.click_date = b.created ORDER BY a.click_date;"; List<LinkedHashMap<String, Object>> list = mapper.selectCommon(sql); @@ -167,7 +167,7 @@ public class IndexController extends BaseController " union all\n" + " SELECT date_sub(curdate(), interval 6 day) as click_date\n" + ") a left join (\n" + - "SELECT DATE(h.created) AS created , SUM(d.qty) AS taskQty from receipt_container_detail d join receipt_container_header h on d.headerId = h.id and h.warehouseCode="+ShiroUtils.getWarehouseCode()+" WHERE h.created >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND h.processStamp=20 GROUP BY DATE(h.created)\n" + + "SELECT DATE(h.created) AS created , SUM(d.qty) AS taskQty from receipt_container_detail d join receipt_container_header h on d.receiptContainerId = h.id and h.warehouseCode='"+ShiroUtils.getWarehouseCode()+"' WHERE h.created >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND h.processStamp=20 GROUP BY DATE(h.created)\n" + ") b on a.click_date = b.created ORDER BY a.click_date;"; List<LinkedHashMap<String, Object>> list2 = mapper.selectCommon(sql); @@ -211,7 +211,7 @@ public class IndexController extends BaseController @GetMapping("index/getInventoryProp") @ResponseBody public String getInventoryProp(){ - String sql = "SELECT m.`name`,sum(i.qty) as total from inventoryHeader i join material m on i.materialCode = m.`code` and i.warehouseId = m.warehouseId AND i.warehouseCode = "+ShiroUtils.getWarehouseCode()+" \n" + + String sql = "SELECT m.`name`,sum(i.qty) as total from inventory_detail i join material m on i.materialCode = m.`code` and i.warehouseCode = m.warehouseCode AND i.warehouseCode = '"+ShiroUtils.getWarehouseCode()+"' \n" + "GROUP BY m.`name` ORDER BY total desc;"; List<LinkedHashMap<String, Object>> results = mapper.selectCommon(sql); 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 fb7843a..76e5524 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 @@ -203,6 +203,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional public AjaxResult createTaskFromShipmentContainers(ShipmentTaskCreateModel shipmentTaskCreateModel) { + Boolean flag = true; Integer shipmentContainerHeaderId = shipmentTaskCreateModel.getShipmentContainerHeaderIds(); //获取表头 ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getById(shipmentContainerHeaderId); @@ -235,13 +236,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea task.setFromLocation(shipmentContainerHeader.getLocationCode()); task.setToLocation(shipmentContainerHeader.getLocationCode()); //判断是否整出任务,钱柜和AGV不能整出 - if (shipmentContainerHeader.getStatus().intValue() == 300) { + //表示整出优先 //判断当前子货箱所有数量是否等于该托盘对应的所有库存的数量, //这里必须与库存的在库数量对比,后期可能存在一个配盘在执行任务,后一个配盘又在配这个的情况(这个时候不能整出) // 如果相等,则说明这个货箱包含了所有的数量,则可以整出,否则,创建拣选任务; //查询所有库存 - InventoryDetail inventoryCondition = new InventoryDetail(); LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getLocationCode, shipmentContainerHeader.getLocationCode()) .eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); @@ -258,7 +258,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea task.setTaskType(300);//整盘出库 task.setToLocation(""); } - } + task.setInternalTaskType(200); task.setAllocationHeadId(shipmentContainerHeader.getId()); task.setWarehouseCode(shipmentContainerHeader.getWarehouseCode()); @@ -293,19 +293,32 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea taskDetail.setContainerCode(task.getContainerCode()); taskDetail.setFromLocation(task.getFromLocation()); taskDetail.setToLocation(task.getToLocation()); + taskDetail.setLot(shipmentContainerDetail.getLot()); + taskDetail.setBatch(shipmentContainerDetail.getBatch()); + taskDetail.setProjectNo(shipmentContainerDetail.getProjectNo()); taskDetail.setStatus(0); taskDetail.setWaveId(shipmentContainerDetail.getWaveId()); taskDetail.setInventorySts(shipmentContainerDetail.getInventorySts()); - taskDetail.setTaskType(task.getTaskType()); + taskDetail.setCreatedBy(ShiroUtils.getLoginName()); taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - taskDetail.setLastUpdated(null); - taskDetailService.save(taskDetail); + flag=taskDetailService.save(taskDetail); + if(flag == false){ + throw new ServiceException("新建任务明细失败,sql报错"); + } + + shipmentContainerDetail.setStatus(10); } //更新货位状态 - ShipmentContainerHeader record = new ShipmentContainerHeader(); - record.setId(shipmentContainerHeaderId); - record.setStatus(10); - shipmentContainerHeaderService.saveOrUpdate(record); + shipmentContainerHeader.setStatus(10); + flag = shipmentContainerHeaderService.updateById(shipmentContainerHeader); + if(flag == false){ + throw new ServiceException("修改组盘头状态失败,sql报错"); + } + + flag = shipmentContainerDetailService.updateBatchById(shipmentContainerDetails); + if(flag == false){ + throw new ServiceException("修改组盘明细状态明细失败,sql报错"); + } return AjaxResult.success(task.getId()); } @@ -852,6 +865,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea for (String id : ids) { InventoryHeader inventoryHeader = inventoryHeaderService.getById(Integer.parseInt(id)); + //校验库位是否锁定 //检查库位容器 Location temp = new Location(); temp.setCode(inventoryHeader.getLocationCode()); @@ -911,7 +925,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } if (taskDetailService.saveBatch(taskDetails)) { //锁定库位状态 - locationService.updateStatus(loc.getContainerCode(), "lock"); + locationService.updateStatus(inventoryHeader.getLocationCode(), "lock"); } else { throw new ServiceException("出库查看任务明细生成失败!"); } @@ -1227,11 +1241,16 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); inventoryTransaction.setTransactionType(20); inventoryTransaction.setMaterialCode(shipmentDetail.getMaterialCode()); - //inventory.setMaterialName(DataUtils.getString(taskDetail.getMaterialName()));//物料名称 + inventoryTransaction.setMaterialName(shipmentDetail.getMaterialName()); + inventoryTransaction.setMaterialSpec(shipmentDetail.getMaterialSpec()); + inventoryTransaction.setMaterialUnit(shipmentDetail.getMaterialUnit()); inventoryTransaction.setBillCode(taskDetail.getBillCode()); inventoryTransaction.setBillDetailId(shipmentDetail.getId()); inventoryTransaction.setBatch(shipmentDetail.getBatch()); inventoryTransaction.setLot(shipmentDetail.getLot()); + inventoryTransaction.setProjectNo(shipmentDetail.getProjectNo()); + inventoryTransaction.setQcCheck(inventoryDetail.getQcCheck()); + inventoryTransaction.setSupplierCode(inventoryDetail.getSupplierCode()); inventoryTransaction.setManufactureDate(shipmentDetail.getManufactureDate()); inventoryTransaction.setExpirationDate(shipmentDetail.getExpirationDate()); inventoryTransaction.setInventorySts(inventoryDetail.getInventorySts()); @@ -1255,14 +1274,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea containerService.removeByCode(task.getContainerCode()); //将库位状态改为空闲,如果是整出的对应的容器也清空 - Location locationRecord = new Location(); + + LambdaQueryWrapper<Location> lam=Wrappers.lambdaQuery(); + lam.eq(Location::getCode,task.getToLocation()); + Location locationRecord = locationService.getOne(lam); + if(lam == null){ + throw new ServiceException("系统没有"+task.getToLocation()+"库位"); + } locationRecord.setStatus("empty"); if(task.getTaskType()==300) { locationRecord.setContainerCode(""); } - LambdaUpdateWrapper<Location> locationLambdaUpdateWrapper = Wrappers.lambdaUpdate(); - locationLambdaUpdateWrapper.eq(Location::getCode,task.getToLocation()); - locationService.update(locationLambdaUpdateWrapper); + locationService.updateById(locationRecord); //如果是整出,删掉这个库位上的这个托盘,否则更改托盘状态 Container containerRecord = new Container(); if(task.getTaskType()==300) { @@ -1286,14 +1309,16 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } } //设置出库货箱状态为拣货任务完成 - ShipmentContainerDetail shipmentContainerDetail = new ShipmentContainerDetail(); - shipmentContainerDetail.setStatus(30); - shipmentContainerDetail.setLastUpdated(new Date()); - shipmentContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - LambdaUpdateWrapper<ShipmentContainerDetail> shipmentContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); - shipmentContainerDetailLambdaUpdateWrapper.eq(ShipmentContainerDetail::getId,task.getAllocationHeadId()); - if (! shipmentContainerDetailService.update(shipmentContainerDetail, shipmentContainerDetailLambdaUpdateWrapper)){ - throw new ServiceException("更新组盘明细状态失败"); + for(TaskDetail taskDetail : taskDetails) { + ShipmentContainerDetail shipmentContainerDetail = new ShipmentContainerDetail(); + shipmentContainerDetail.setStatus(30); + shipmentContainerDetail.setLastUpdated(new Date()); + shipmentContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); + LambdaUpdateWrapper<ShipmentContainerDetail> shipmentContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); + shipmentContainerDetailLambdaUpdateWrapper.eq(ShipmentContainerDetail::getId, taskDetail.getAllocationId()); + if (!shipmentContainerDetailService.update(shipmentContainerDetail, shipmentContainerDetailLambdaUpdateWrapper)) { + throw new ServiceException("更新组盘明细状态失败"); + } } //设置出库货箱表头状态为拣货任务完成 ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader(); @@ -1315,8 +1340,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea ShipmentHeader shipmentHeader =new ShipmentHeader(); shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId()); - shipmentHeader.setFirstStatus(100); - shipmentHeader.setLastStatus(100); + shipmentHeader.setFirstStatus(300); + shipmentHeader.setLastStatus(300); shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); shipmentHeader.setLastUpdated(new Date()); shipmentHeaderService.updateById(shipmentHeader); diff --git a/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml b/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml index 8fdb262..aad2c80 100644 --- a/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml +++ b/src/main/resources/mybatis/shipment/ShipmentContainerHeaderMapper.xml @@ -14,28 +14,16 @@ <result column="length" jdbcType="DECIMAL" property="length" /> <result column="width" jdbcType="DECIMAL" property="width" /> <result column="height" jdbcType="DECIMAL" property="height" /> - <result column="totalValue" jdbcType="DECIMAL" property="totalValue" /> - <result column="shipmentId" jdbcType="INTEGER" property="shipmentId" /> <result column="companyCode" jdbcType="VARCHAR" property="companyCode" /> <result column="totalQty" jdbcType="INTEGER" property="totalQty" /> <result column="waybillCode" jdbcType="VARCHAR" property="waybillCode" /> <result column="groupNum" jdbcType="INTEGER" property="groupNum" /> <result column="groupIndex" jdbcType="INTEGER" property="groupIndex" /> - <result column="waveId" jdbcType="INTEGER" property="waveId" /> - <result column="countIndex" jdbcType="INTEGER" property="countIndex" /> - <result column="countTotal" jdbcType="INTEGER" property="countTotal" /> <result column="taskCreated" jdbcType="INTEGER" property="taskCreated" /> - <result column="shipmentCode" jdbcType="VARCHAR" property="shipmentCode" /> - <result column="transContCode" jdbcType="VARCHAR" property="transContCode" /> <result column="oqcBench" jdbcType="VARCHAR" property="oqcBench" /> <result column="oqcBy" jdbcType="VARCHAR" property="oqcBy" /> <result column="oqcStartAt" jdbcType="TIMESTAMP" property="oqcStartAt" /> <result column="oqcEndAt" jdbcType="TIMESTAMP" property="oqcEndAt" /> - <result column="loadId" jdbcType="INTEGER" property="loadId" /> - <result column="cageId" jdbcType="INTEGER" property="cageId" /> - <result column="cageCode" jdbcType="VARCHAR" property="cageCode" /> - <result column="stagedAt" jdbcType="TIMESTAMP" property="stagedAt" /> - <result column="stagedBy" jdbcType="VARCHAR" property="stagedBy" /> <result column="created" jdbcType="TIMESTAMP" property="created" /> <result column="createdBy" jdbcType="VARCHAR" property="createdBy" /> <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" /> @@ -44,15 +32,7 @@ <result column="userDef1" jdbcType="VARCHAR" property="userDef1" /> <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="carrierCode" jdbcType="VARCHAR" property="carrierCode" /> - <result column="scaledBy" jdbcType="VARCHAR" property="scaledBy" /> - <result column="scaledAt" jdbcType="TIMESTAMP" property="scaledAt" /> - <result column="storeCode" jdbcType="VARCHAR" property="storeCode" /> <result column="picUrls" jdbcType="VARCHAR" property="picUrls" /> <result column="pidIds" jdbcType="VARCHAR" property="pidIds" /> <result column="actualShipDateTime" jdbcType="TIMESTAMP" property="actualShipDateTime" /> @@ -61,12 +41,9 @@ <sql id="Base_Column_List"> <!--@mbg.generated--> id, containerCode, warehouseCode, containerType, `enable`, parent, totalWeight, totalVolume, - `length`, width, height, totalValue, shipmentId, companyCode, totalQty, waybillCode, - groupNum, groupIndex, waveId, countIndex, countTotal, taskCreated, shipmentCode, - transContCode, oqcBench, oqcBy, oqcStartAt, oqcEndAt, loadId, cageId, cageCode, stagedAt, - stagedBy, created, createdBy, lastUpdated, lastUpdatedBy, version, userDef1, userDef2, - userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, carrierCode, scaledBy, - scaledAt, storeCode, picUrls, pidIds, actualShipDateTime, systemCreated + `length`, width, height, totalValue, companyCode, totalQty, waybillCode, groupNum, groupIndex, taskCreated, + transContCode, oqcBench, oqcBy, oqcStartAt, oqcEndAt, created, createdBy, lastUpdated, lastUpdatedBy, version, + userDef1, userDef2,userDef3,carrierCode,picUrls, pidIds, actualShipDateTime, systemCreated </sql> <select id="getShipmentContainerMaxAndMinStatusByShipmentID" resultType="java.util.Map"> diff --git a/src/main/resources/templates/check/checkHeader/checkHeader.html b/src/main/resources/templates/check/checkHeader/checkHeader.html index f11b78a..350d130 100644 --- a/src/main/resources/templates/check/checkHeader/checkHeader.html +++ b/src/main/resources/templates/check/checkHeader/checkHeader.html @@ -103,10 +103,12 @@ </div> <div class="btn-group hidden-xs" id="toolbarReg" role="group"> - <a class="btn btn-outline btn-success btn-rounded" onclick="complete()" shiro:hasPermission="check:checkingRegister:remove"> + <a class="btn btn-outline btn-success btn-rounded" onclick="complete()" + shiro:hasPermission="check:checkingRegister:remove"> <i class="fa fa-check-circle-o"></i> 质检完成 </a> - <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="check:checkingRegister:remove"> + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" + shiro:hasPermission="check:checkingRegister:remove"> <i class="fa fa-trash-o"></i> 删除 </a> </div> diff --git a/src/main/resources/templates/inventory/adjustDetail/add.html b/src/main/resources/templates/inventory/adjustDetail/add.html index d54f90d..d5d3095 100644 --- a/src/main/resources/templates/inventory/adjustDetail/add.html +++ b/src/main/resources/templates/inventory/adjustDetail/add.html @@ -27,7 +27,7 @@ <input id="inventoryDetailId" name="inventoryDetailId" class="form-control" type="text"> </div> </div> - <div class="form-group"> + <!--<div class="form-group"> <label class="col-sm-3 control-label">盘点单号:</label> <div class="col-sm-8"> <input id="cycleCountCode" name="cycleCountCode" class="form-control" type="text"> @@ -38,8 +38,8 @@ <div class="col-sm-8"> <input id="cycleDetailId" name="cycleDetailId" class="form-control" type="text"> </div> - </div> - <div class="form-group"> + </div>--> + <!--<div class="form-group"> <label class="col-sm-3 control-label">质检单号:</label> <div class="col-sm-8"> <input id="checkCode" name="checkCode" class="form-control" type="text"> @@ -50,7 +50,7 @@ <div class="col-sm-8"> <input id="checkDetailId" name="checkDetailId" class="form-control" type="text"> </div> - </div> + </div>--> <div class="form-group"> <label class="col-sm-3 control-label">调整单关联单号:</label> <div class="col-sm-8"> @@ -80,8 +80,7 @@ <div class="form-group"> <label class="col-sm-3 control-label">商品编码:</label> <div class="col-sm-8"> - <input id="materialCode" name="materialCode" class="form-control" type="text" - onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> + <input id="materialCode" name="materialCode" class="form-control" type="text"> </div> </div> <div class="form-group"> @@ -90,7 +89,7 @@ <input id="materialName" name="materialName" class="form-control" type="text"> </div> </div> - <div class="form-group"> + <!--<div class="form-group"> <label class="col-sm-3 control-label">商品规格:</label> <div class="col-sm-8"> <input id="materialSpec" name="materialSpec" class="form-control" type="text"> @@ -101,7 +100,7 @@ <div class="col-sm-8"> <input id="materialUnit" name="materialUnit" class="form-control" type="text"> </div> - </div> + </div>--> <div class="form-group"> <label class="col-sm-3 control-label">调整类型:</label> <div class="col-sm-8"> @@ -232,12 +231,6 @@ problemType: { required: true, }, - inventoryDetailId: { - required: true, - }, - status: { - required: true, - }, materialCode: { required: true, }, diff --git a/src/main/resources/templates/inventory/adjustHeader/add.html b/src/main/resources/templates/inventory/adjustHeader/add.html index 74ede88..eae72d7 100644 --- a/src/main/resources/templates/inventory/adjustHeader/add.html +++ b/src/main/resources/templates/inventory/adjustHeader/add.html @@ -5,110 +5,67 @@ <body class="white-bg"> <div class="wrapper wrapper-content animated fadeInRight ibox-content"> - <form class="form-horizontal m" id="form-cyclecountAdjustDetail-addAdjust" > - <input type="hidden" id="cyclecountAdjustId" name="cyclecountAdjustId" th:value="${cyclecountAdjustId}"> + <form class="form-horizontal m" id="form-adjustHeader-add" > <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="code" name="code" th:value="${code}" class="form-control" type="text" readonly="readonly"> + <select id="companyCode" name="companyCode" class="form-control" th:with="list=${@companyService.getCode()}"> + <option th:each="item : ${list}" th:text="${item['name']}" th:value="${item['code']}" th:attr = " code = ${item['code']}"></option> + </select> </div> </div> + <!--<div class="form-group"> + <label class="col-sm-3 control-label">调整类型:</label> + <div class="col-sm-8"> + <div class="col-sm-8"> + <select id="problemType" name="problemType" class="form-control" th:with="problemType=${@dict.getType('adjustType')}"> + <option th:each="dict : ${problemType}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> + </select> + </div> + </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="companyId" name="companyId" type="hidden" th:value="*{companyId}"> - <input id="companyCode" name="companyCode" th:value="${companyCode}" class="form-control" type="text" readonly="readonly"> + <select id="problemType" name="problemType" class="form-control" th:with="problemType=${@dict.getType('adjustType')}"> + <option th:each="dict : ${problemType}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> + </select> </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="cyclecountHeadCode" name="cyclecountHeadCode" th:value="${cyclecountHeadCode}" class="form-control" type="text" readonly="readonly"> + <input id="cyclecountHeadCode" name="cyclecountHeadCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> </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="materialCode" name="materialCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> + <input id="checkCode" name="checkCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> </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="locationCode" name="locationCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> + <input id="referCode" name="referCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> </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="containerCode" name="containerCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"> + <input id="referReason" name="referReason" class="form-control" type="text" > </div> </div> - <div class="form-group"> + <!--<div class="form-group"> <label class="col-sm-3 control-label">库存状态:</label> <div class="col-sm-8"> <select id="inventoryStatus" name="inventoryStatus" class="form-control" th:with="inventoryStatus=${@dict.getType('inventoryStatus')}"> <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> </select> </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">系统数量:</label> - <div class="col-sm-8"> - <input id="systemQty" name="systemQty" value="0" class="form-control" type="text" onkeyup="this.value=this.value.replace(/[^\-?\d.]/g,'')" readonly="readonly"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">实际数量:</label> - <div class="col-sm-8"> - <input id="countedQty" name="countedQty" class="form-control" type="text" onkeyup="this.value=this.value.replace(/[^\-?\d.]/g,'')" > - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">差异数量:</label> - <div class="col-sm-8"> - <input id="gapQty" name="gapQty" class="form-control" type="text" onkeyup="this.value=this.value.replace(/[^\-?\d.]/g,'')" > - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">调整数量:</label> - <div class="col-sm-8"> - <input id="adjustQty" name="adjustQty" class="form-control" type="text" onkeyup="this.value=this.value.replace(/[^\-?\d.]/g,'')"> - </div> - </div> - - <div class="form-group"> - <label class="col-sm-3 control-label">批次:</label> - <div class="col-sm-8"> - <input id="batch" name="batch" 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="lot" name="lot" 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="project" name="project" 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="manufactureDate" name="manufactureDate" 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="expirationDate" name="expirationDate" class="form-control" type="text"> - </div> - </div> - + </div>--> <div class="form-group"> <div class="form-control-static col-sm-offset-9"> @@ -120,36 +77,20 @@ </div> <div th:include="include::footer"></div> <script type="text/javascript"> - var prefix = ctx + "inventory/cyclecountAdjustDetail" + var prefix = ctx + "inventory/adjustHeader" - $("#form-cyclecountAdjustDetail-addAdjust").validate({ + $("#form-adjustHeader-add").validate({ rules:{ - materialCode:{ - required:true, - }, - containerCode:{ - required:true, - }, - locationCode:{ + companyCode:{ required:true, }, - systemQty:{ + problemType:{ required:true, }, - countedQty:{ - required:true, - }, - gapQty:{ - required:true, - }, - adjustQty:{ - required:true, - }, - //必须填值判定 }, submitHandler: function(form) { - $.operate.save(prefix + "/addAdjust", $('#form-cyclecountAdjustDetail-addAdjust').serialize()); + $.operate.save(prefix + "/addsave", $('#form-adjustHeader-add').serialize()); } }); diff --git a/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html b/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html index e214421..1ab0768 100644 --- a/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html +++ b/src/main/resources/templates/inventory/adjustHeader/adjustHeader.html @@ -131,10 +131,11 @@ field: 'cycleCountCode', title: '盘点单编码' }, - /*{ - field: 'problemType', - title: '调整类型' - },*/ + { + field: 'checkCode', + title: '质检单编码' + }, + { field: 'referCode', title: '关联上游单编码' @@ -179,9 +180,9 @@ align: 'center', formatter: function (value, row, index) { var actions = []; - actions.push('<a class="btn btn-success btn-xs ' + report + '" href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); - actions.push('<a class="btn btn-info btn-xs ' + upload + ' " href="#" onclick="upLoad(\'' + row.code + '\',\'' + row.sourceCode + '\')"><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 class="btn btn-success btn-xs " href="#" onclick="adjustPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); + actions.push('<a class="btn btn-info btn-xs ' + upload + ' " href="#" onclick="upLoad(\'' + row.code + '\',\'' + row.sourceCode + '\')"><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.id + '\',\'' + row.code + '\')"><i class="fa fa-list-ul"></i>明细</a>'); return actions.join(''); } @@ -212,9 +213,9 @@ $("#tabDetail").addClass("in active"); } - function cyclecountPrint(id) { + function adjustPrint(id) { var url = prefix + "/report/" + id; - $.modal.open("差异单打印", url); + $.modal.open("调整单打印", url); } diff --git a/src/main/resources/templates/inventory/adjustHeader/report.html b/src/main/resources/templates/inventory/adjustHeader/report.html index f63ec60..f8baa96 100644 --- a/src/main/resources/templates/inventory/adjustHeader/report.html +++ b/src/main/resources/templates/inventory/adjustHeader/report.html @@ -10,8 +10,8 @@ <tr> <td colspan="10"> <span style="padding-top:40px;width: 40%; float:left;" class="time_c"></span> - <h2 style="width:24%;text-align:center;float:left;padding-top:10px;">盘点差异调整单</h2> - <span style="padding-top:20px;width:35%;float:right; text-align: right"><img id="code" th:data="${cyclecountAdjust['code']}"></img></span> + <h2 style="width:24%;text-align:center;float:left;padding-top:10px;">调整单</h2> + <span style="padding-top:20px;width:35%;float:right; text-align: right"><img id="code" th:data="${adjustHeader['code']}"></img></span> </td> </tr> <tr style="padding:15px 0 5px 0;border-bottom:1px solid #606060"> @@ -35,7 +35,7 @@ </tr> </thead> <tbody> - <tr th:each="row,rowStat : ${details}"> + <tr th:each="row,rowStat : ${adjustDetails}"> <td th:text="${row.containerCode}"></td> <td th:text="${row.id}"></td> <td th:text="${row.materialCode}"></td> diff --git a/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html b/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html index 8c9e175..cc1c667 100644 --- a/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html +++ b/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html @@ -85,7 +85,7 @@ </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> <a class="btn btn-outline btn-success btn-rounded" onclick="add()" - shiro:hasPermission="inventory:cycleCountDetail:add"> + shiro:hasPermission="inventory:cyclecountDetail:add"> <i class="fa fa-plus"></i> 新增 </a> <a class="btn btn-outline btn-danger btn-rounded" onclick="createCyclecountWithGapQty()" @@ -98,7 +98,7 @@ </a> <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()" shiro:hasPermission="inventory:cyclecountDetail:remove"> - <i class="fa fa-trash-o"></i> 批量删除 + <i class="fa fa-trash-o"></i> 删除 </a> <a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()"> <i class="fa fa-refresh"></i> 刷新 @@ -109,10 +109,10 @@ </div> <div th:include="include :: footer"></div> <script th:inline="javascript"> - var editFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:edit')}]]; - var removeFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:remove')}]]; - var confirmFlag=[[${@permission.hasPermi('inventoryHeader:cycleCountDetail:confirm')}]]; - var createTaskFalg=[[${@permission.hasPermi('inventoryHeader:cycleCountDetail:createTask')}]]; + //var editFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:edit')}]]; + var removeFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:remove')}]]; + var confirmFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:confirm')}]]; + var createTaskFalg = [[${@permission.hasPermi('inventory:cyclecountDetail:createTask')}]]; var prefix = ctx + "inventory/cycleCountDetail"; var prefix_head = ctx + "inventory/cycleCountHeader"; var remove_url= prefix + "/remove"; @@ -319,11 +319,12 @@ formatter: function (value, row, index) { var actions = []; - actions.push('<a class="btn btn-success btn-xs " href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> '); + actions.push('<a class="btn btn-success btn-xs ' + confirmFlag + '" href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> '); - actions.push('<a class="btn btn-primary btn-xs " href="#" onclick="outcheck(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成盘点任务</a> '); + actions.push('<a class="btn btn-primary btn-xs ' + createTaskFalg + '" href="#" onclick="outcheck(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成盘点任务</a> '); + + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>'); - actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>'); return actions.join(''); } }] diff --git a/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html b/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html index 11bb5bd..695d68d 100644 --- a/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html +++ b/src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html @@ -70,13 +70,13 @@ </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="inventory:cycleCount:add"> + shiro:hasPermission="inventory:cycleCountHeader:add"> <i class="fa fa-plus"></i> 新增 </a> - <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" - shiro:hasPermission="inventory:cycleCount:remove"> + <!--<a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" + shiro:hasPermission="inventory:cycleCountHeader:remove"> <i class="fa fa-trash-o"></i> 删除 - </a> + </a>--> </div> <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> @@ -89,10 +89,10 @@ </div> <div th:include="include :: footer"></div> <script th:inline="javascript"> - var reportFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:report')}]]; - var editFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:edit')}]]; - var addAdjust = [[${@permission.hasPermi('inventoryHeader:cyclecountHead:addAdjust')}]]; - var removeFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:remove')}]]; + var reportFlag = [[${@permission.hasPermi('inventory:cycleCountHeader:report')}]]; + //var editFlag = [[${@permission.hasPermi('inventory:cycleCountHeader:edit')}]]; + var addAdjust = [[${@permission.hasPermi('inventory:cyclecountHead:addAdjust')}]]; + var removeFlag = [[${@permission.hasPermi('inventory:cycleCount:remove')}]]; var prefix = ctx + "inventory/cycleCountHeader"; var datas = [[${@dict.getType('sys_normal_disable')}]]; var types = [[${@dict.getType('cyclecountType')}]]; @@ -274,12 +274,12 @@ align: 'center', formatter: function (value, row, index) { var actions = []; - actions.push('<a class="btn btn-success btn-xs " href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); + actions.push('<a class="btn btn-success btn-xs ' + reportFlag + '" href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> '); - 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-warning btn-xs ' + addAdjust + '" 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-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></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(''); } }] diff --git a/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html b/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html index 8b59b6a..f7c4248 100644 --- a/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html +++ b/src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html @@ -83,11 +83,11 @@ </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> <a class="btn btn-outline btn-primary btn-rounded" onclick="checkOut()" - shiro:hasPermission="inventory:inventory:seeOut"> + shiro:hasPermission="inventory:inventoryHeader:seeOut"> <i class="fa fa-eye"></i> 出库查看 </a> <a class="btn btn-outline btn-primary btn-rounded" onclick="check()" - > + shiro:hasPermission="inventory:inventoryDetail:detailCheckTask"> <i class="fa fa-eye"></i> 在库质检 </a> </div> diff --git a/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html b/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html index fba264f..81325e5 100644 --- a/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html +++ b/src/main/resources/templates/inventory/inventoryHeader/inventoryHeader.html @@ -53,19 +53,24 @@ </form> </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> - <a class="btn btn-outline btn-danger btn-rounded" onclick="transfer()"> + <a class="btn btn-outline btn-danger btn-rounded" onclick="transfer()" + shiro:hasPermission="inventory:inventoryHeader:transfer"> <i class="fa fa-exchange"></i> 立库移库 </a> - <a class="btn btn-outline btn-primary btn-rounded" onclick="checkOut()"> + <a class="btn btn-outline btn-primary btn-rounded" onclick="checkOut()" + shiro:hasPermission="inventory:inventoryHeader:seeOut"> <i class="fa fa-eye"></i> 出库查看 </a> - <a class="btn btn-outline btn-info btn-rounded" onclick="emptyIn()" shiro:hasPermission="task:task:emptyIn"> + <a class="btn btn-outline btn-info btn-rounded" onclick="emptyIn()" + shiro:hasPermission="inventory:inventoryHeader:emptyIn"> <i class="fa fa-level-down"></i> 空托入库 </a> - <a class="btn btn-outline btn-default btn-rounded" onclick="emptyCheckOut()" > + <a class="btn btn-outline btn-default btn-rounded" onclick="emptyCheckOut()" + shiro:hasPermission="inventory:inventoryHeader:emptyCheckOut"> <i class="fa fa fa-eye"></i> 空托出库查看 </a> - <a class="btn btn-outline btn-info btn-rounded" onclick="emptyOut()" shiro:hasPermission="task:task:emptyOut"> + <a class="btn btn-outline btn-info btn-rounded" onclick="emptyOut()" + shiro:hasPermission="inventory:inventoryHeader:emptyOut"> <i class="fa fa-level-up"></i> 空托出库 </a> </div> diff --git a/src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html b/src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html index 5482699..8c83724 100644 --- a/src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html +++ b/src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html @@ -81,7 +81,8 @@ </div> <div class="col-sm-12 select-info"> <div class="btn-group hidden-xs" id="toolbar" role="group"> - <a class="btn btn-outline btn-success btn-rounded" onclick="report()"> + <a class="btn btn-outline btn-success btn-rounded" onclick="report()" + shiro:hasPermission="inventory:inventoryTransaction:report"> <i class="fa fa-plus"></i> 打印 </a> </div> diff --git a/src/main/resources/templates/inventory/inventoryTransaction/report.html b/src/main/resources/templates/inventory/inventoryTransaction/report.html index 7ce9d62..3c7357a 100644 --- a/src/main/resources/templates/inventory/inventoryTransaction/report.html +++ b/src/main/resources/templates/inventory/inventoryTransaction/report.html @@ -4,7 +4,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <head th:include="include :: header"></head> - <title>文字</title> + <title>库存交易明细</title> <!--<link href="css/bootstrap.min.css" rel="stylesheet" />--> <!--<link href="css/font-awesome.min.css" rel="stylesheet" />--> <!--<!–[if IE]>--> @@ -33,19 +33,19 @@ <caption style="font-size:18px;text-align:center; color:#333; padding-bottom: 3px;">长沙华恒机器人系统有限公司</caption> <tbody> <tr> - <td width="20%" scope="col">存货编码</td> + <td width="20%" scope="col">物料编码</td> <td colspan="2" scope="col" style="text-align:center"> <span th:text="${row.materialCode}" ></span> </td> </tr> <tr> - <td scope="col">存货代码</td> + <td scope="col">重量</td> <td colspan="2" scope="col" style="text-align:center"> - <span th:text="${row.userDef1}" ></span> + <span th:text="${row.weight}" ></span> </td> </tr> <tr style="vertical-align:middle"> - <td>存货名称</td> + <td>物料名称</td> <td style="text-align:center"> <span th:text="${row.materialName}"></span> </td> @@ -56,22 +56,22 @@ </td> </tr> <tr> - <td>规格型号</td> + <td>物料规格</td> <td style="text-align:center"> <span th:text="${row.materialSpec}"></span> </td> </tr> <tr> - <td>数 量</td> + <td>任务数量</td> <td style="text-align:center; padding: 0"> <!--<input name="" type="text" style="line-height:18px; border:0; text-align:center;" th:text="${receiptDetail.qty}"/>--> - <input id="qty" name="qty" th:value="*{row.qty}" class="form-control" type="text" style="text-align:center;height:30px;border: none"/> + <input id="qty" name="qty" th:value="*{row.taskQty}" class="form-control" type="text" style="text-align:center;height:30px;border: none"/> </td> </tr> <tr> - <td scope="col">生产编号</td> + <td scope="col">项目号</td> <td colspan="2" scope="col" style="text-align:center"> - <span th:text="${row.project}" ></span> + <span th:text="${row.projectNo}" ></span> </td> </tr> </tbody> @@ -102,12 +102,12 @@ var code16=$(this).children()[1].children[1].innerText; var name=$(this).children()[1].children[2].innerText; var spec=$(this).children()[1].children[3].innerText; - var project=$(this).children()[1].children[5].innerText; + var projectNo=$(this).children()[1].children[5].innerText; company=company.substring(5); code16=code16.substring(5); name=name.substring(5); spec=spec.substring(5); - project=project.substring(5); + projectNo=projectNo.substring(5); var reg=/\t/; name=name.replace(reg,""); var qty=$(this).find('input').val(); diff --git a/src/main/resources/templates/main.html b/src/main/resources/templates/main.html index d29a611..df52bff 100644 --- a/src/main/resources/templates/main.html +++ b/src/main/resources/templates/main.html @@ -112,18 +112,18 @@ var chart4 = echarts.init(document.getElementById('chart4')); function refresh() { - // $.get("../index/getShipmentsLast7Days").done(function (data) { - // chart1.setOption(JSON.parse(data)); - // }) + $.get("../index/getShipmentsLast7Days").done(function (data) { + chart1.setOption(JSON.parse(data)); + }) $.get("../index/getLocationProp").done(function (data) { chart2.setOption(JSON.parse(data)); }); - // $.get("../index/getInventoryStatus").done(function (data) { - // chart3.setOption(JSON.parse(data)); - // }) - // $.get("../index/getInventoryProp").done(function(data){ - // chart4.setOption(JSON.parse(data)); - // }); + $.get("../index/getInventoryStatus").done(function (data) { + chart3.setOption(JSON.parse(data)); + }) + $.get("../index/getInventoryProp").done(function(data){ + chart4.setOption(JSON.parse(data)); + }); $.get("../index/getCommonData").done(function (data) { if(data.code==200){ diff --git a/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html b/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html index 1ac36be..84c39a3 100644 --- a/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html +++ b/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html @@ -93,7 +93,7 @@ var shipmentTaskType=[[${@dict.getType('shipmentTaskType')}]]; var shipmentContainerHeaderStatus=[[${@dict.getType('shipmentContainerHeaderStatus')}]]; var createTaskFlag = [[${@permission.hasPermi('shipment:container:add')}]] - var headerId; + var shippingContainerId; $(function() { var options = { @@ -291,7 +291,7 @@ ] }); - function createtable(url,headerId) { + function createtable(url,shippingContainerId) { // $("#tabDetail").children().remove(); $("#myTab li").removeClass("active"); $(".tab-pane").removeClass("in active"); @@ -301,7 +301,7 @@ url:url, type: 'post', data:{ - headerId:headerId + shippingContainerId:shippingContainerId }, success : function (value) { $("#bootstrap-table1").bootstrapTable('load',value.data); @@ -333,9 +333,9 @@ /*入库单列表-详细*/ function detail(id) { var url = detailPrefix + '/list/'; - headerId = id; + shippingContainerId = id; // createMenuItem(url, "入库组盘明细"); - createtable(url,headerId); + createtable(url,shippingContainerId); } /* 单个生成任务 */ diff --git a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html index 4101300..d440942 100644 --- a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html +++ b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html @@ -695,8 +695,22 @@ parent.$('.tabReload').click(); } else{ - createMenuItem(url, "出库组盘"); - parent.$('.tabReload').click(); + $.ajax({ + url: ctx + "shipment/shipmentDetail/shippingCombination", + type: 'post', + data:{ + shipmentCode + }, + success: function(res) { + if (res.code === 200) { + createMenuItem(url, "出库组盘"); + parent.$('.tabReload').click(); + } + else { + $.modal.msgError(res.msg) + } + } + }); } } /* 点击明细面板 */