add:新增销售单
This commit is contained in:
@@ -69,5 +69,11 @@ public class MaterialbaseController {
|
|||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/queryMater")
|
||||||
|
@Log("获取物料")
|
||||||
|
public ResponseEntity<Object> queryMater(@RequestBody JSONObject whereJson) {
|
||||||
|
return new ResponseEntity<>(iMdMeMaterialbaseService.getByCode(whereJson.getString("material_code")),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,4 +61,10 @@ public class SupplierController {
|
|||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getSupp")
|
||||||
|
@Log("获取供应商")
|
||||||
|
public ResponseEntity<Object> getSupp() {
|
||||||
|
return new ResponseEntity<>(iMdCsSupplierbaseService.getSupp(), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -43,4 +44,11 @@ public interface IMdCsSupplierbaseService extends IService<MdCsSupplierbase> {
|
|||||||
* @param ids 供应商标识集合
|
* @param ids 供应商标识集合
|
||||||
*/
|
*/
|
||||||
void delete(Set<String> ids);
|
void delete(Set<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取供应商
|
||||||
|
* @return List<MdCsSupplierbase>
|
||||||
|
*/
|
||||||
|
List<MdCsSupplierbase> getSupp();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,9 +16,11 @@ import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
|||||||
import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService;
|
import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdCsSupplierbaseMapper;
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdCsSupplierbaseMapper;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -59,7 +61,7 @@ public class MdCsSupplierbaseServiceImpl extends ServiceImpl<MdCsSupplierbaseMap
|
|||||||
.eq(MdCsSupplierbase::getSupp_code, dto.getSupp_code())
|
.eq(MdCsSupplierbase::getSupp_code, dto.getSupp_code())
|
||||||
);
|
);
|
||||||
if (ObjectUtil.isNotEmpty(mdCsSupplierbase)) {
|
if (ObjectUtil.isNotEmpty(mdCsSupplierbase)) {
|
||||||
throw new BadRequestException("当前供应商编码已存在【"+dto.getSupp_code()+"】");
|
throw new BadRequestException("当前供应商编码已存在【" + dto.getSupp_code() + "】");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增
|
// 新增
|
||||||
@@ -93,4 +95,13 @@ public class MdCsSupplierbaseServiceImpl extends ServiceImpl<MdCsSupplierbaseMap
|
|||||||
public void delete(Set<String> ids) {
|
public void delete(Set<String> ids) {
|
||||||
this.baseMapper.deleteBatchIds(ids);
|
this.baseMapper.deleteBatchIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MdCsSupplierbase> getSupp() {
|
||||||
|
return this.baseMapper.selectList(
|
||||||
|
new QueryWrapper<MdCsSupplierbase>().lambda()
|
||||||
|
.eq(MdCsSupplierbase::getIs_used, IOSConstant.IS_DELETE_YES)
|
||||||
|
.eq(MdCsSupplierbase::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,10 @@ import org.nl.wms.sch_manage.service.util.tasks.BackInTask;
|
|||||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
|
import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
||||||
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
|
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
|
||||||
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl;
|
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper;
|
||||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
|
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
|
||||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
|
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
|
||||||
import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
|
import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
|
||||||
@@ -27,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,6 +91,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IRawAssistIStorService iRawAssistIStorService;
|
private IRawAssistIStorService iRawAssistIStorService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private GroupPlateMapper groupPlateMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getDtl(JSONObject whereJson) {
|
public PdaResponse getDtl(JSONObject whereJson) {
|
||||||
return PdaResponse.requestParamOk(mdPbStoragevehicleextMapper.getIosDtl(whereJson));
|
return PdaResponse.requestParamOk(mdPbStoragevehicleextMapper.getIosDtl(whereJson));
|
||||||
@@ -129,6 +135,14 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
// 更新分配明细实际出库数量
|
// 更新分配明细实际出库数量
|
||||||
disDao.setReal_qty(jsonIvt.getBigDecimal("qty"));
|
disDao.setReal_qty(jsonIvt.getBigDecimal("qty"));
|
||||||
ioStorInvDisMapper.updateById(disDao);
|
ioStorInvDisMapper.updateById(disDao);
|
||||||
|
// 删除组盘信息
|
||||||
|
groupPlateMapper.delete(
|
||||||
|
new QueryWrapper<GroupPlate>().lambda()
|
||||||
|
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||||
|
.eq(GroupPlate::getPcsn,disDao.getPcsn())
|
||||||
|
.eq(GroupPlate::getMaterial_id,disDao.getMaterial_id())
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code,disDao.getStoragevehicle_code())
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
// ------剩余回库------
|
// ------剩余回库------
|
||||||
// 更新库存 :变动数量 = 减可用(库存数量-(实际出库数量-计划数量))
|
// 更新库存 :变动数量 = 减可用(库存数量-(实际出库数量-计划数量))
|
||||||
|
|||||||
@@ -19,10 +19,14 @@ import org.nl.wms.sch_manage.service.util.AbstractTask;
|
|||||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||||
import org.nl.wms.sch_manage.service.util.TaskType;
|
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
|
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: Liuxy
|
* @Author: Liuxy
|
||||||
* @Description: 余料回库类
|
* @Description: 余料回库类
|
||||||
@@ -50,6 +54,9 @@ public class BackInTask extends AbstractTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IStructattrService iStructattrService;
|
private IStructattrService iStructattrService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject json) {
|
public String create(JSONObject json) {
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
@@ -131,7 +138,7 @@ public class BackInTask extends AbstractTask {
|
|||||||
if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.CREATE.getCode())) {
|
if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.CREATE.getCode())) {
|
||||||
throw new BadRequestException("只能取消生成中的任务!");
|
throw new BadRequestException("只能取消生成中的任务!");
|
||||||
}
|
}
|
||||||
this.cancelTask(taskObj);
|
this.cancelTask(taskObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -143,22 +150,30 @@ public class BackInTask extends AbstractTask {
|
|||||||
// 更新终点
|
// 更新终点
|
||||||
iStructattrService.update(
|
iStructattrService.update(
|
||||||
new UpdateWrapper<Structattr>().lambda()
|
new UpdateWrapper<Structattr>().lambda()
|
||||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
|
||||||
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
|
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||||
.set(Structattr::getTaskdtl_id, null)
|
.set(Structattr::getTaskdtl_id, null)
|
||||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
);
|
);
|
||||||
// 更新起点
|
// 更新起点
|
||||||
iSchBasePointService.update(
|
iSchBasePointService.update(
|
||||||
new UpdateWrapper<SchBasePoint>().lambda()
|
new UpdateWrapper<SchBasePoint>().lambda()
|
||||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
|
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
|
||||||
.set(SchBasePoint::getVehicle_code, null)
|
.set(SchBasePoint::getVehicle_code, null)
|
||||||
.set(SchBasePoint::getIos_id, null)
|
.set(SchBasePoint::getIos_id, null)
|
||||||
);
|
);
|
||||||
// 更新任务
|
// 更新任务
|
||||||
taskObj.setRemark("已完成");
|
taskObj.setRemark("已完成");
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
|
|
||||||
|
// 更新组盘状态
|
||||||
|
iMdPbGroupplateService.update(
|
||||||
|
new UpdateWrapper<GroupPlate>().lambda()
|
||||||
|
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
|
||||||
|
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
package org.nl.wms.warehouse_management.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.base.TableDataInfo;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.nl.wms.warehouse_management.service.IStIvtSalesorderService;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 出入库回传 控制层
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2025-06-03
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/api/salesorder")
|
||||||
|
@Slf4j
|
||||||
|
public class SalesOrderController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IStIvtSalesorderService iStIvtSalesorderService;
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("分页查询")
|
||||||
|
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
|
||||||
|
return new ResponseEntity<>(TableDataInfo.build(iStIvtSalesorderService.queryAll(whereJson, page)), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("新增销售单")
|
||||||
|
public ResponseEntity<Object> create(@Validated @RequestBody StIvtSalesorder dao) {
|
||||||
|
iStIvtSalesorderService.create(dao);
|
||||||
|
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
@Log("修改销售单")
|
||||||
|
public ResponseEntity<Object> update(@Validated @RequestBody StIvtSalesorder dao) {
|
||||||
|
iStIvtSalesorderService.update(dao);
|
||||||
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping
|
||||||
|
@Log("删除销售单")
|
||||||
|
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
|
||||||
|
iStIvtSalesorderService.delete(ids);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/checkIos")
|
||||||
|
@Log("审核")
|
||||||
|
public ResponseEntity<Object> checkIos(@Validated @RequestBody StIvtSalesorder dao) {
|
||||||
|
iStIvtSalesorderService.checkIos(dao);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/createOutIos")
|
||||||
|
@Log("创建出库单")
|
||||||
|
public ResponseEntity<Object> createOutIos(@Validated @RequestBody StIvtSalesorder dao) {
|
||||||
|
iStIvtSalesorderService.createOutIos(dao);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -80,4 +80,9 @@ public class IOSConstant {
|
|||||||
* 主存区编码
|
* 主存区编码
|
||||||
*/
|
*/
|
||||||
public final static String SECT_CODE = "ZC01";
|
public final static String SECT_CODE = "ZC01";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库ID
|
||||||
|
*/
|
||||||
|
public final static String STOR_ID = "1582991156504039424";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ public enum IOSEnum {
|
|||||||
// 入库业务类型
|
// 入库业务类型
|
||||||
BILL_TYPE(MapOf.of("生产入库","0001", "手工入库", "0009")),
|
BILL_TYPE(MapOf.of("生产入库","0001", "手工入库", "0009")),
|
||||||
|
|
||||||
|
// 出库业务类型
|
||||||
|
BILL_TYPE_OUT(MapOf.of("销售出库","1001", "手工出库", "1009")),
|
||||||
|
|
||||||
//入库分配明细状态
|
//入库分配明细状态
|
||||||
INBILL_DIS_STATUS(MapOf.of("未生成", "00", "生成", "01", "执行中", "02", "完成", "99")),
|
INBILL_DIS_STATUS(MapOf.of("未生成", "00", "生成", "01", "执行中", "02", "完成", "99")),
|
||||||
|
|
||||||
@@ -77,6 +80,9 @@ public enum IOSEnum {
|
|||||||
// 盘点明细状态
|
// 盘点明细状态
|
||||||
CHECK_DTL_STATUS(MapOf.of("生成", "10", "盘点中", "20", "已盘点", "30", "完成", "99")),
|
CHECK_DTL_STATUS(MapOf.of("生成", "10", "盘点中", "20", "已盘点", "30", "完成", "99")),
|
||||||
|
|
||||||
|
// 销售单状态
|
||||||
|
SALE_STATUS(MapOf.of("生成", "1", "审核", "2", "下发", "3", "完成", "9")),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
private Map<String, String> code;
|
private Map<String, String> code;
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package org.nl.wms.warehouse_management.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 销售单管理 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2025-09-23
|
||||||
|
*/
|
||||||
|
public interface IStIvtSalesorderService extends IService<StIvtSalesorder> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
*
|
||||||
|
* @param whereJson : {查询参数}
|
||||||
|
* @param page : 分页对象
|
||||||
|
* @return 返回结果
|
||||||
|
*/
|
||||||
|
IPage<StIvtSalesorder> queryAll(Map whereJson, PageQuery page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增销售单
|
||||||
|
*
|
||||||
|
* @param dao 销售单实体类
|
||||||
|
*/
|
||||||
|
void create(StIvtSalesorder dao);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改销售单
|
||||||
|
*
|
||||||
|
* @param dao 销售单实体类
|
||||||
|
*/
|
||||||
|
void update(StIvtSalesorder dao);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除销售单
|
||||||
|
*
|
||||||
|
* @param ids 标识
|
||||||
|
*/
|
||||||
|
void delete(Set<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核
|
||||||
|
* @param dao 实体类
|
||||||
|
*/
|
||||||
|
void checkIos(StIvtSalesorder dao);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建出库单
|
||||||
|
* @param dao 实体类
|
||||||
|
*/
|
||||||
|
void createOutIos(StIvtSalesorder dao);
|
||||||
|
}
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
package org.nl.wms.warehouse_management.service.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 销售单管理
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2025-09-23
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@TableName("st_ivt_salesorder")
|
||||||
|
public class StIvtSalesorder implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售单标识
|
||||||
|
*/
|
||||||
|
@TableId(value = "sale_id")
|
||||||
|
private String sale_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售单编码
|
||||||
|
*/
|
||||||
|
private String sale_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编码
|
||||||
|
*/
|
||||||
|
private String material_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String material_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客户编码
|
||||||
|
*/
|
||||||
|
private String supp_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客户名称
|
||||||
|
*/
|
||||||
|
private String supp_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售数量
|
||||||
|
*/
|
||||||
|
private BigDecimal sale_qty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量计量单位标识
|
||||||
|
*/
|
||||||
|
private String qty_unit_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量计量单位名称
|
||||||
|
*/
|
||||||
|
private String qty_unit_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售单状态
|
||||||
|
*/
|
||||||
|
private String sale_status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
private String create_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人名称
|
||||||
|
*/
|
||||||
|
private String create_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private String create_time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核人
|
||||||
|
*/
|
||||||
|
private String check_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核人名称
|
||||||
|
*/
|
||||||
|
private String check_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核时间
|
||||||
|
*/
|
||||||
|
private String check_time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完成人
|
||||||
|
*/
|
||||||
|
private String confirm_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完成人名称
|
||||||
|
*/
|
||||||
|
private String confirm_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完成时间
|
||||||
|
*/
|
||||||
|
private String confirm_time;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package org.nl.wms.warehouse_management.service.dao.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 销售单管理 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2025-09-23
|
||||||
|
*/
|
||||||
|
public interface StIvtSalesorderMapper extends BaseMapper<StIvtSalesorder> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.nl.wms.warehouse_management.service.dao.mapper.StIvtSalesorderMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -2,7 +2,6 @@ package org.nl.wms.warehouse_management.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
@@ -10,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -24,8 +24,6 @@ import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
|
|||||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
|
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
|
||||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
|
||||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
|
||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||||
import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto;
|
import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto;
|
||||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||||
@@ -33,22 +31,18 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
|||||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.StOutTask;
|
import org.nl.wms.sch_manage.service.util.tasks.StOutTask;
|
||||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_management.service.IOutBillService;
|
import org.nl.wms.warehouse_management.service.IOutBillService;
|
||||||
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
import org.nl.wms.warehouse_management.service.IStIvtSalesorderService;
|
||||||
import org.nl.wms.warehouse_management.service.dao.IOStorInv;
|
import org.nl.wms.warehouse_management.service.dao.*;
|
||||||
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
|
|
||||||
import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl;
|
|
||||||
import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper;
|
import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper;
|
||||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
|
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
|
||||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
|
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper;
|
||||||
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper;
|
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper;
|
||||||
import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto;
|
import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto;
|
||||||
import org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto;
|
import org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -100,6 +94,8 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
@Resource
|
@Resource
|
||||||
private SchBasePointMapper schBasePointMapper;
|
private SchBasePointMapper schBasePointMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IStIvtSalesorderService iStIvtSalesorderService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
|
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
|
||||||
@@ -287,6 +283,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
map.put("update_optid", currentUserId);
|
map.put("update_optid", currentUserId);
|
||||||
map.put("update_optname", nickName);
|
map.put("update_optname", nickName);
|
||||||
map.put("update_time", now);
|
map.put("update_time", now);
|
||||||
|
map.put("source_id", map.getString("source_id"));
|
||||||
map.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否"));
|
map.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否"));
|
||||||
map.put("is_upload", BaseDataEnum.IS_YES_NOT.code("否"));
|
map.put("is_upload", BaseDataEnum.IS_YES_NOT.code("否"));
|
||||||
// 主表重量
|
// 主表重量
|
||||||
@@ -1136,6 +1133,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
//更新组盘记录表
|
//更新组盘记录表
|
||||||
groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
|
groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||||
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||||
|
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||||
.eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn())
|
.eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn())
|
||||||
.eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id())
|
.eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id())
|
||||||
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code())
|
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code())
|
||||||
@@ -1200,7 +1198,13 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
//修改库存 恢复库存 手持进行减扣
|
//修改库存 恢复库存 手持进行减扣
|
||||||
List<JSONObject> updateIvtList = new ArrayList<>();
|
List<JSONObject> updateIvtList = new ArrayList<>();
|
||||||
JSONObject jsonIvt = new JSONObject();
|
JSONObject jsonIvt = new JSONObject();
|
||||||
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE);
|
IOStorInv iosMst = this.getById(ioStorInvDis.getIostorinv_id());
|
||||||
|
|
||||||
|
if (iosMst.getBill_type().equals(IOSEnum.BILL_TYPE_OUT.code("手工出库"))) {
|
||||||
|
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN);
|
||||||
|
} else {
|
||||||
|
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE);
|
||||||
|
}
|
||||||
jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code());
|
jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||||
jsonIvt.put("material_id", ioStorInvDis.getMaterial_id());
|
jsonIvt.put("material_id", ioStorInvDis.getMaterial_id());
|
||||||
jsonIvt.put("pcsn", ioStorInvDis.getPcsn());
|
jsonIvt.put("pcsn", ioStorInvDis.getPcsn());
|
||||||
@@ -1217,8 +1221,14 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
.eq(SchBasePoint::getPoint_code,ioStorInvDis.getPoint_code())
|
.eq(SchBasePoint::getPoint_code,ioStorInvDis.getPoint_code())
|
||||||
);
|
);
|
||||||
|
|
||||||
// 判断是否是整出
|
if (iosMst.getBill_type().equals(IOSEnum.BILL_TYPE_OUT.code("手工出库"))) {
|
||||||
if (ioStorInvDis.getReal_qty().doubleValue() >= ioStorInvDis.getPlan_qty().doubleValue()) {
|
groupPlateMapper.delete(
|
||||||
|
new QueryWrapper<GroupPlate>().lambda()
|
||||||
|
.eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn())
|
||||||
|
.eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id())
|
||||||
|
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code())
|
||||||
|
);
|
||||||
|
} else {
|
||||||
//更新组盘记录表
|
//更新组盘记录表
|
||||||
groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
|
groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||||
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
.set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
|
||||||
@@ -1261,6 +1271,18 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
.set(IOStorInv::getConfirm_time,now)
|
.set(IOStorInv::getConfirm_time,now)
|
||||||
.eq(IOStorInv::getIostorinv_id,ioStorInvDtl.getIostorinv_id())
|
.eq(IOStorInv::getIostorinv_id,ioStorInvDtl.getIostorinv_id())
|
||||||
);
|
);
|
||||||
|
// 如果是销售出库更新 状态
|
||||||
|
if (iosMst.getBill_type().equals(IOSEnum.BILL_TYPE_OUT.code("销售出库"))) {
|
||||||
|
iStIvtSalesorderService.update(
|
||||||
|
new UpdateWrapper<StIvtSalesorder>().lambda()
|
||||||
|
.set(StIvtSalesorder::getSale_status, IOSEnum.SALE_STATUS.code("完成"))
|
||||||
|
.set(StIvtSalesorder::getConfirm_id, currentUserId)
|
||||||
|
.set(StIvtSalesorder::getConfirm_name, nickName)
|
||||||
|
.set(StIvtSalesorder::getConfirm_time, now)
|
||||||
|
.eq(StIvtSalesorder::getSale_id, iosMst.getSource_id())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -736,6 +736,8 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
|||||||
List<Structattr> structattrList = iStructattrService.list(new LambdaQueryWrapper<>(Structattr.class)
|
List<Structattr> structattrList = iStructattrService.list(new LambdaQueryWrapper<>(Structattr.class)
|
||||||
.eq(Structattr::getSect_id,sect_id)
|
.eq(Structattr::getSect_id,sect_id)
|
||||||
.eq(Structattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
|
.eq(Structattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.eq(Structattr::getIs_used,IOSConstant.IS_DELETE_YES)
|
||||||
|
.eq(Structattr::getIs_delete,IOSConstant.IS_DELETE_NO)
|
||||||
.and(wrapper -> wrapper.isNull(Structattr::getStoragevehicle_code).or().eq(Structattr::getStoragevehicle_code,""))
|
.and(wrapper -> wrapper.isNull(Structattr::getStoragevehicle_code).or().eq(Structattr::getStoragevehicle_code,""))
|
||||||
.eq(mdPbStoragevehicleinfo.getStoragevehicle_type().equals(IOSEnum.VEHICLE_TYPE.code("金属托盘")),
|
.eq(mdPbStoragevehicleinfo.getStoragevehicle_type().equals(IOSEnum.VEHICLE_TYPE.code("金属托盘")),
|
||||||
Structattr::getStoragevehicle_type, IOSEnum.VEHICLE_TYPE_PUT.code("金属托盘"))
|
Structattr::getStoragevehicle_type, IOSEnum.VEHICLE_TYPE_PUT.code("金属托盘"))
|
||||||
|
|||||||
@@ -0,0 +1,174 @@
|
|||||||
|
package org.nl.wms.warehouse_management.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.CodeUtil;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||||
|
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||||
|
import org.nl.wms.warehouse_management.service.IOutBillService;
|
||||||
|
import org.nl.wms.warehouse_management.service.IStIvtSalesorderService;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder;
|
||||||
|
import org.nl.wms.warehouse_management.service.dao.mapper.StIvtSalesorderMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 销售单管理 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2025-09-23
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class StIvtSalesorderServiceImpl extends ServiceImpl<StIvtSalesorderMapper, StIvtSalesorder> implements IStIvtSalesorderService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdCsSupplierbaseService iMdCsSupplierbaseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdPbMeasureunitService iMdPbMeasureunitService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOutBillService iOutBillService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<StIvtSalesorder> queryAll(Map whereJson, PageQuery page) {
|
||||||
|
String sale_code = MapUtil.getStr(whereJson, "sale_code");
|
||||||
|
String material_code = MapUtil.getStr(whereJson, "material_code");
|
||||||
|
String supp_code = MapUtil.getStr(whereJson, "supp_code");
|
||||||
|
String sale_status = MapUtil.getStr(whereJson, "sale_status");
|
||||||
|
String begin_time = MapUtil.getStr(whereJson, "begin_time");
|
||||||
|
String end_time = MapUtil.getStr(whereJson, "end_time");
|
||||||
|
|
||||||
|
LambdaQueryWrapper<StIvtSalesorder> lambda = new QueryWrapper<StIvtSalesorder>().lambda();
|
||||||
|
lambda.eq(ObjectUtil.isNotEmpty(sale_status), StIvtSalesorder::getSale_status, sale_status);
|
||||||
|
lambda.like(ObjectUtil.isNotEmpty(sale_code), StIvtSalesorder::getSale_code, sale_code);
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(material_code)) {
|
||||||
|
lambda.like( StIvtSalesorder::getMaterial_code, material_code)
|
||||||
|
.or(qw -> qw.like(StIvtSalesorder::getMaterial_name, material_code));
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(supp_code)) {
|
||||||
|
lambda.like( StIvtSalesorder::getSupp_code, supp_code)
|
||||||
|
.or(qw -> qw.like(StIvtSalesorder::getSupp_name, supp_code));
|
||||||
|
}
|
||||||
|
lambda.ge(ObjectUtil.isNotEmpty(begin_time), StIvtSalesorder::getCreate_time, begin_time);
|
||||||
|
lambda.lt(ObjectUtil.isNotEmpty(end_time), StIvtSalesorder::getCreate_time, end_time);
|
||||||
|
|
||||||
|
return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()),
|
||||||
|
lambda
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void create(StIvtSalesorder dao) {
|
||||||
|
dao.setSale_id(IdUtil.getStringId());
|
||||||
|
dao.setSale_code(CodeUtil.getNewCode("SALE_CODE"));
|
||||||
|
dao.setSale_status(IOSEnum.SALE_STATUS.code("生成"));
|
||||||
|
dao.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
dao.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
dao.setCreate_time(DateUtil.now());
|
||||||
|
// 查询供应商编码
|
||||||
|
|
||||||
|
MdCsSupplierbase suppDao = iMdCsSupplierbaseService.getOne(
|
||||||
|
new QueryWrapper<MdCsSupplierbase>().lambda()
|
||||||
|
.eq(MdCsSupplierbase::getSupp_code, dao.getSupp_code())
|
||||||
|
);
|
||||||
|
dao.setSupp_name(suppDao.getSupp_name());
|
||||||
|
// 默认数量个
|
||||||
|
MdPbMeasureunit unitDao = iMdPbMeasureunitService.getByCode("EA");
|
||||||
|
dao.setQty_unit_id(unitDao.getMeasure_unit_id());
|
||||||
|
dao.setQty_unit_name(unitDao.getUnit_name());
|
||||||
|
this.save(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void update(StIvtSalesorder dao) {
|
||||||
|
// 查询供应商编码
|
||||||
|
MdCsSupplierbase suppDao = iMdCsSupplierbaseService.getOne(
|
||||||
|
new QueryWrapper<MdCsSupplierbase>().lambda()
|
||||||
|
.eq(MdCsSupplierbase::getSupp_code, dao.getSupp_code())
|
||||||
|
);
|
||||||
|
dao.setSupp_name(suppDao.getSupp_name());
|
||||||
|
this.updateById(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void delete(Set<String> ids) {
|
||||||
|
this.removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void checkIos(StIvtSalesorder dao) {
|
||||||
|
dao.setSale_status(IOSEnum.SALE_STATUS.code("审核"));
|
||||||
|
dao.setCheck_id(SecurityUtils.getCurrentUserId());
|
||||||
|
dao.setCheck_name(SecurityUtils.getCurrentNickName());
|
||||||
|
dao.setCheck_time(DateUtil.now());
|
||||||
|
this.updateById(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void createOutIos(StIvtSalesorder dao) {
|
||||||
|
// 组织主表数据
|
||||||
|
JSONObject jsonMst = new JSONObject();
|
||||||
|
jsonMst.put("stor_id", IOSConstant.STOR_ID);
|
||||||
|
jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成"));
|
||||||
|
jsonMst.put("total_qty", dao.getSale_qty());
|
||||||
|
jsonMst.put("detail_count", 1);
|
||||||
|
jsonMst.put("bill_type", IOSEnum.BILL_TYPE_OUT.code("销售出库"));
|
||||||
|
jsonMst.put("biz_date", DateUtil.now());
|
||||||
|
jsonMst.put("source_id", dao.getSale_id());
|
||||||
|
|
||||||
|
// 组织明细数据
|
||||||
|
ArrayList<JSONObject> tableData = new ArrayList<>();
|
||||||
|
JSONObject dtl = new JSONObject();
|
||||||
|
dtl.put("qty_unit_id", dao.getQty_unit_id());
|
||||||
|
dtl.put("qty_unit_name", dao.getQty_unit_name());
|
||||||
|
dtl.put("qty", dao.getSale_qty().toString());
|
||||||
|
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(dao.getMaterial_code());
|
||||||
|
dtl.put("material_id", materDao.getMaterial_id());
|
||||||
|
dtl.put("material_code", dao.getMaterial_code());
|
||||||
|
dtl.put("material_name", dao.getMaterial_name());
|
||||||
|
dtl.put("plan_qty", dao.getSale_qty().toString());
|
||||||
|
// 调用新增
|
||||||
|
tableData.add(dtl);
|
||||||
|
jsonMst.put("tableData",tableData);
|
||||||
|
iOutBillService.insertDtl(jsonMst);
|
||||||
|
|
||||||
|
// 更新销售单状态
|
||||||
|
dao.setSale_status(IOSEnum.SALE_STATUS.code("下发"));
|
||||||
|
this.updateById(dao);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -55,4 +55,12 @@ export function materialSync(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del, getMaterOptType, isAlongMaterType, getProductSeries, materialSync }
|
export function queryMater(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/Materia/queryMater',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del, getMaterOptType, isAlongMaterType, getProductSeries, materialSync, queryMater }
|
||||||
|
|||||||
@@ -24,4 +24,12 @@ export function edit(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del }
|
export function getSupp(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/supplierbase/getSupp',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del, getSupp }
|
||||||
|
|||||||
344
wms/nladmin-ui/src/views/wms/st/saleorder/index.vue
Normal file
344
wms/nladmin-ui/src/views/wms/st/saleorder/index.vue
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!--工具栏-->
|
||||||
|
<div class="head-container">
|
||||||
|
<div v-if="crud.props.searchToggle">
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-position="right"
|
||||||
|
label-width="90px"
|
||||||
|
label-suffix=":"
|
||||||
|
>
|
||||||
|
<el-form-item label="销售单编码">
|
||||||
|
<el-input
|
||||||
|
v-model="query.sale_code"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="单据编码"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="物料编码">
|
||||||
|
<el-input
|
||||||
|
v-model="query.material_code"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="物料编码、名称"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="客户编码">
|
||||||
|
<el-input
|
||||||
|
v-model="query.supp_code"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="客户编码、名称"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="销售单状态">
|
||||||
|
<el-select
|
||||||
|
v-model="query.sale_status"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="全部"
|
||||||
|
class="filter-item"
|
||||||
|
@change="crud.toQuery"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.SALE_STATUS"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="创建时间" prop="createTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.createTime"
|
||||||
|
type="daterange"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
@change="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<rrOperation />
|
||||||
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
|
<crudOperation :permission="permission">
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-position"
|
||||||
|
size="mini"
|
||||||
|
:disabled="crud.selections.length !== 1"
|
||||||
|
@click="checkIos"
|
||||||
|
>
|
||||||
|
审核
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-position"
|
||||||
|
size="mini"
|
||||||
|
:disabled="crud.selections.length !== 1"
|
||||||
|
@click="createOutIos"
|
||||||
|
>
|
||||||
|
创建出库单
|
||||||
|
</el-button>
|
||||||
|
</crudOperation>
|
||||||
|
<el-dialog
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:before-close="crud.cancelCU"
|
||||||
|
:visible.sync="crud.status.cu > 0"
|
||||||
|
:title="crud.status.title"
|
||||||
|
width="500px"
|
||||||
|
>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="150px">
|
||||||
|
<el-form-item label="物料编码" prop="material_code">
|
||||||
|
<el-input v-model="form.material_code" style="width: 200px;" :disabled="crud.status.edit > 0" @change="queryMater" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="物料名称" prop="material_name">
|
||||||
|
<el-input v-model="form.material_name" disabled style="width: 200px;" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="物料规格" prop="material_spec">
|
||||||
|
<el-input v-model="form.material_spec" disabled style="width: 200px;" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="客户编码" prop="supp_code">
|
||||||
|
<el-select
|
||||||
|
v-model="form.supp_code"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="全部"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in suppList"
|
||||||
|
:key="item.supp_code"
|
||||||
|
:label="item.supp_name"
|
||||||
|
:value="item.supp_code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="销售重量" prop="sale_qty">
|
||||||
|
<el-input-number v-model="form.sale_qty" :precision="0" :controls="false" :min="1" style="width: 200px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||||
|
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
size="mini"
|
||||||
|
style="width: 100%;"
|
||||||
|
@selection-change="crud.selectionChangeHandler"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" />
|
||||||
|
<el-table-column prop="sale_code" label="单据编码" :min-width="flexWidth('sale_code',crud.data,'单据编码')" />
|
||||||
|
<el-table-column prop="sale_status" label="单据状态" :formatter="formattStatus" :min-width="flexWidth('sale_status',crud.data,'单据状态')" />
|
||||||
|
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||||
|
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||||
|
<el-table-column prop="supp_code" label="客户编码" :min-width="flexWidth('supp_code',crud.data,'客户编码')" />
|
||||||
|
<el-table-column prop="supp_name" label="客户名称" :min-width="flexWidth('supp_name',crud.data,'客户名称')" />
|
||||||
|
<el-table-column prop="sale_qty" label="销售数量" :formatter="crud.formatNum3" :min-width="100" />
|
||||||
|
<el-table-column prop="qty_unit_name" label="单位" :min-width="flexWidth('qty_unit_name',crud.data,'单位')" />
|
||||||
|
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
|
||||||
|
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
|
||||||
|
<el-table-column prop="check_name" label="审核人" :min-width="flexWidth('check_name',crud.data,'审核人')" />
|
||||||
|
<el-table-column prop="check_time" label="审核时间" :min-width="flexWidth('check_time',crud.data,'审核时间')" />
|
||||||
|
<el-table-column prop="confirm_name" label="完成人" :min-width="flexWidth('confirm_name',crud.data,'完成人')" />
|
||||||
|
<el-table-column prop="confirm_time" label="完成时间" :min-width="flexWidth('confirm_time',crud.data,'完成时间')" />
|
||||||
|
<el-table-column
|
||||||
|
v-permission="['admin','Supplierbase:edit','Supplierbase:del']"
|
||||||
|
label="操作"
|
||||||
|
width="150px"
|
||||||
|
lign="center"
|
||||||
|
fixed="right"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<udOperation
|
||||||
|
:data="scope.row"
|
||||||
|
:permission="permission"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import crudSaleorder from '@/views/wms/st/saleorder/saleorder'
|
||||||
|
import crudSupplierbase from '@/views/wms/basedata/supp/supplierbase'
|
||||||
|
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||||
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
import udOperation from '@crud/UD.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import crudGroup from '@/views/wms/basedata/material/material'
|
||||||
|
|
||||||
|
const defaultForm = {
|
||||||
|
sale_id: null,
|
||||||
|
sale_code: null,
|
||||||
|
material_code: null,
|
||||||
|
material_name: null,
|
||||||
|
supp_code: null,
|
||||||
|
supp_name: null,
|
||||||
|
sale_qty: null,
|
||||||
|
qty_unit_id: null,
|
||||||
|
qty_unit_name: null,
|
||||||
|
sale_status: null,
|
||||||
|
create_id: null,
|
||||||
|
create_name: null,
|
||||||
|
create_time: null,
|
||||||
|
check_id: null,
|
||||||
|
check_name: null,
|
||||||
|
check_time: null,
|
||||||
|
confirm_id: null,
|
||||||
|
confirm_name: null,
|
||||||
|
confirm_time: null
|
||||||
|
}
|
||||||
|
export default {
|
||||||
|
name: 'SalesOrder',
|
||||||
|
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||||
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
|
// 数据字典
|
||||||
|
dicts: ['SALE_STATUS'],
|
||||||
|
cruds() {
|
||||||
|
return CRUD({
|
||||||
|
title: '销售单管理',
|
||||||
|
url: 'api/salesorder',
|
||||||
|
optShow: {
|
||||||
|
add: true,
|
||||||
|
edit: false,
|
||||||
|
del: false,
|
||||||
|
download: false,
|
||||||
|
reset: true
|
||||||
|
},
|
||||||
|
idField: 'sale_id',
|
||||||
|
sort: 'sale_id,desc',
|
||||||
|
crudMethod: { ...crudSaleorder }
|
||||||
|
})
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
ViewDialog: false,
|
||||||
|
openParam: null,
|
||||||
|
permission: {},
|
||||||
|
suppList: [],
|
||||||
|
rules: {
|
||||||
|
material_code: [
|
||||||
|
{ required: true, message: '物料编码不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
device_code: [
|
||||||
|
{ required: true, message: '设备编码不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
bom_type: [
|
||||||
|
{ required: true, message: '工单类型不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
call_qty: [
|
||||||
|
{ required: true, message: '叫料重量不能为空', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
crudSupplierbase.getSupp({}).then(res => {
|
||||||
|
this.suppList = res
|
||||||
|
})
|
||||||
|
this.initQuery()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
/* 搜索框创建时间默认最近一周*/
|
||||||
|
initQuery() {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
const endYear = end.getFullYear()
|
||||||
|
var endMonth = end.getMonth() + 1
|
||||||
|
if (end.getMonth() + 1 < 10) {
|
||||||
|
endMonth = '0' + endMonth.toString()
|
||||||
|
}
|
||||||
|
var endDay = end.getDate()
|
||||||
|
if (end.getDate() < 10) {
|
||||||
|
endDay = '0' + endDay.toString()
|
||||||
|
}
|
||||||
|
const endDate = endYear + '-' + endMonth + '-' + endDay + ' 23:59:59'
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||||
|
const startYear = start.getFullYear()
|
||||||
|
var startMonth = start.getMonth() + 1
|
||||||
|
if (start.getMonth() + 1 < 10) {
|
||||||
|
startMonth = '0' + startMonth.toString()
|
||||||
|
}
|
||||||
|
var startDay = start.getDate()
|
||||||
|
if (start.getDate() < 10) {
|
||||||
|
startDay = '0' + startDay.toString()
|
||||||
|
}
|
||||||
|
const startDate = startYear + '-' + startMonth + '-' + startDay + ' 00:00:00'
|
||||||
|
this.$set(this.query, 'createTime', [startDate, endDate])
|
||||||
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
|
queryMater(value) {
|
||||||
|
crudGroup.queryMater({ 'material_code': value }).then(row => {
|
||||||
|
this.form.material_spec = row.material_spec
|
||||||
|
this.form.material_name = row.material_name
|
||||||
|
this.form.material_code = row.material_code
|
||||||
|
}).catch(() => {
|
||||||
|
this.form.material_spec = ''
|
||||||
|
this.form.material_name = ''
|
||||||
|
this.form.material_code = ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
formattStatus(row) {
|
||||||
|
return this.dict.label.SALE_STATUS[row.sale_status]
|
||||||
|
},
|
||||||
|
checkIos() {
|
||||||
|
const data = this.$refs.table.selection[0]
|
||||||
|
if (data.sale_status !== '1') {
|
||||||
|
this.crud.notify('当前状态不为生成状态!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
crudSaleorder.checkIos(data).then(res => {
|
||||||
|
this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.crud.toQuery()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
createOutIos() {
|
||||||
|
const data = this.$refs.table.selection[0]
|
||||||
|
if (data.sale_status !== '2') {
|
||||||
|
this.crud.notify('当前状态不为审核状态!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
crudSaleorder.createOutIos(data).then(res => {
|
||||||
|
this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.crud.toQuery()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
43
wms/nladmin-ui/src/views/wms/st/saleorder/saleorder.js
Normal file
43
wms/nladmin-ui/src/views/wms/st/saleorder/saleorder.js
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export function add(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/salesorder',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function del(ids) {
|
||||||
|
return request({
|
||||||
|
url: 'api/salesorder/',
|
||||||
|
method: 'delete',
|
||||||
|
data: ids
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function edit(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/salesorder',
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkIos(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/salesorder/checkIos',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createOutIos(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/salesorder/createOutIos',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del, checkIos, createOutIos }
|
||||||
Reference in New Issue
Block a user