打包接口,工序加工-板材类型查询修改

This commit is contained in:
liuzhaotian
2024-06-25 09:39:05 +08:00
parent 3c9977a9f8
commit c5775f8638
47 changed files with 433 additions and 308 deletions
@@ -9,7 +9,8 @@ import lombok.Getter;
public enum ProcessProcessingTypeEnum {
COMPONENTPROCESSING(7,"组件加工");
COMPONENTPROCESSING(7,"组件加工"),
PLATE(8,"板材加工");
private Integer number;
private String fabricatedItem;
@@ -18,7 +18,7 @@
orp.id as remainId
from order_goods og
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
where og.order_id = #{orderId} and og.organ_id = #{organId}
where og.order_id = #{orderId} and og.organ_id = #{organId} and og.deleted = false
</select>
@@ -32,7 +32,7 @@
orp.id as remainId
from order_goods og
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
where og.organ_id =#{organId} and og.order_id in
where og.organ_id =#{organId} and og.deleted = false and og.order_id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
@@ -146,7 +146,7 @@
join order_item oi on op.id = oi.plate_id and op.organ_id = oi.organ_id
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id
where op.order_id =#{orderId} and op.organ_id = #{organId}
where op.order_id =#{orderId} and op.organ_id = #{organId} and op.deleted = false
</select>
@@ -168,7 +168,7 @@
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id
where op.organ_id = #{organId} and op.order_id in
where op.organ_id = #{organId} and op.deleted = false and op.order_id in
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
@@ -2,11 +2,15 @@ package com.cf.imes.module.manage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* @author there
*/
@SpringBootApplication
@EnableFeignClients
@EnableAsync
public class ManageServerApplication {
public static void main(String[] args) {
SpringApplication.run(ManageServerApplication.class, args);
@@ -119,21 +119,6 @@ public class PackController {
// @GetMapping("/pagePlate")
// @Operation(summary = "查看板材列表分页")
// @PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PageResult<PlateDetailsRespVO>> queryPlateDetails(@Valid OrderModuleReqVO pageReqVO){
PageResult<PlateDetailsRespVO> packageDetailsRespVOPageResult = packService.queryPlateDetails(pageReqVO);
return success(packageDetailsRespVOPageResult);
}
@GetMapping("/getParts")
@Operation(summary = "查看配件列表分页")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
@@ -149,36 +134,6 @@ public class PackController {
// TODO 目前前端接口只有查询配件包裹时会调用,板材是否会调用待确认
// @GetMapping("/getPartsPack")
// @Operation(summary = "查看配件包裹详情")
// @PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<List<OrderPartsRespVO>> queryPackageDetails(@Valid PrintOrderPackReqVO reqVO){
return success(packService.queryPackageDetails(reqVO));
}
// @PostMapping("/insertPack")
// @Operation(summary = "新增包裹")
// @PreAuthorize("@ss.hasPermission('manage:pack:insertPack')")
public CommonResult<OrderPackRespVO> insertPack(@Valid @RequestBody OrderPackReqVO packageVO) {
OrderPackageDO orderPackageDO = packService.insertPack(packageVO);
return success(BeanUtils.toBean(orderPackageDO, OrderPackRespVO.class));
}
@PutMapping("/updatePack")
@Operation(summary = "板材包裹更新-即封包")
@PreAuthorize("@ss.hasPermission('manage:pack:updatePack')")
@@ -246,19 +201,6 @@ public class PackController {
// @GetMapping("/GetOrderPlateGroup")
// @Operation(summary = "显示分组房间名称")
// @PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<List<OrderPlateGroupRespVO>> GetOrderPlateGroup(@Valid Long orderId) {
return success(packService.GetOrderPlateGroup(orderId));
}
@GetMapping("/print")
@Operation(summary = "包裹订单打印")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
@@ -320,7 +262,6 @@ public class PackController {
/*
@GetMapping("/query")
@Operation(summary = "板材列表下的查询")
@@ -17,17 +17,17 @@ public class OrderPartsReqVO extends PageParam {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderNo;
private Long orderId;
@Schema(description = "更新配件时传-包裹ID")
private Long packId;
@Schema(description = "更新配件时传-新增的配件ID")
private List<Long> addPartsList;
private List<Long> addPartsIdList;
@Schema(description = "更新配件时传-删除的配件ID")
private List<Long> deletePartsList;
private List<Long> deletePartsIdList;
@Schema(description = "新增的板件ID")
@@ -19,7 +19,7 @@ public class PackPageReqVO extends PageParam {
@Schema(description = "订单号")
private Long orderNo;
private Long orderId;
@Schema(description = "自定义单号")
@@ -13,7 +13,7 @@ public class PrintOrderPackReqVO {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
private Long orderNo;
private Long orderId;
@Schema(description = "包裹id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
@@ -19,7 +19,7 @@ public class PrintOrderPackRespVO {
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
private Long orderNo;
private Long orderId;
@Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
@@ -64,6 +64,7 @@ public class ProductionProcessController {
@GetMapping("/selectPlate")
@Operation(summary = "查看当前生产单的工序对应的板件信息")
@PreAuthorize("@ss.hasPermission('manage:process:view')")
public CommonResult<OrderPlateReqVO> selectPlate(@Valid ProcessPlateReqVO reqVO){
return success(productionProcessService.selectPlate(reqVO));
}
@@ -21,6 +21,10 @@ public class OrderProcessStepItemVO {
private Long processStepId;
@Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private Long goodsId;
@Schema(description = "加工项名称", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private String name;
@@ -20,6 +20,9 @@ public class ProcessPageReqVO extends PageParam {
@Schema(description = "加工状态",requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
private Boolean processStatus;
// @Schema(description = "工序类型",requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
// private Long type;
@Schema(description = "生产单号")
private Long orderId;
@@ -42,6 +42,9 @@ public class ProcessRespVO {
private String phoneNumber;
@Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private Long goodsId;
@Schema(description = "工序ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private Long processID;
@@ -8,6 +8,10 @@ import java.util.List;
@Data
public class ProcessStepStatus {
// 生产单号
private Long orderId;
// 工序步骤表的状态
private Boolean processStepStatus;
@@ -16,7 +16,7 @@ public class OrderPackageVO {
private Long id;
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderNo;
private Long orderId;
@Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String packageNo;
@@ -61,7 +61,10 @@ public class PackageDetailsRespVO {
@Schema(description = "配件名称-配件类型显示", requiredMode = Schema.RequiredMode.REQUIRED)
private String partsName;
private String name;
@Schema(description = "配件ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long partsId;
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
private String model;
@@ -69,12 +72,18 @@ public class PackageDetailsRespVO {
@Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
private String spec;
@Schema(description = "明细配件类型, 2 五金/配件 3 其他 4 报价配件", requiredMode = Schema.RequiredMode.REQUIRED)
private String type;
@Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
private Long num;
@Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
private String unit;
@Schema(description = "是否复合部件:0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean isComposite;
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
private String brand;
@@ -29,7 +29,7 @@ public class PriceRatePageReqVO extends PageParam {
@Schema(description = "加工人")
private String creator;
private String manager;
@Schema(description = "工序名称")
@@ -9,6 +9,9 @@ import lombok.Data;
public class PriceRateReqVO {
@Schema(description = "工序ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long processId;
@Schema(description = "工序名", requiredMode = Schema.RequiredMode.REQUIRED)
private String name;
@@ -22,7 +25,7 @@ public class PriceRateReqVO {
private Integer priceType;
@Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED)
private Long amount;
private Double amount;
@Schema(description = "加工人", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -43,7 +43,7 @@ public class OrderProcessStepNDO extends BaseDO {
// 工资金额
private BigDecimal salaryAmount;
private Double salaryAmount;
// 计件工资类型
@@ -13,13 +13,6 @@ import java.util.List;
public interface OrderBodyMapper extends BaseMapperX<OrderBodyDO> {
default List<OrderBodyDO> selectGroup(Long orderId) {
return selectList(new LambdaQueryWrapperX<OrderBodyDO>()
.eqIfPresent(OrderBodyDO::getOrderId, orderId)
.orderByDesc(OrderBodyDO::getId));
}
default List<OrderBodyDO> selectListByOrderId(Long orderId,Long organId,Long bodyId) {
@@ -36,7 +36,7 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
List<PackRespVO> selectPackPage(@Param("collect") List<Long> collect);
List<PackRespVO> selectPackPage(@Param("orderIds") List<Long> orderIds);
IPage<PlateDetailsRespVO> selectMissingBoard( @Param("page") IPage page, @Param("orderNo") Long orderNo, @Param("organId") Long organId);
@@ -47,5 +47,10 @@ public interface ProcessStepItemMapper extends BaseMapperX<OrderProcessStepItemN
List<OrderBodyRespVo> selectBodyIds(@Param("processStepId") Long processStepId,@Param("name") String name, @Param("organId") Long organId);
BigDecimal selectAreaByProcessStepId(@Param("processStepId") Long processStepId);
BigDecimal selectAreaByProcessStepId(@Param("processStepId") Long processStepId,@Param("organId") Long organId);
void updateStatusByBodyId(@Param("goodsId") Long goodsId);
BigDecimal selectAreaByProcessId( @Param("processStepId")Long processStepId,@Param("orderId") Long orderId,@Param("organId") Long organId);
}
@@ -46,9 +46,12 @@ public interface ProcessStepMapper extends BaseMapperX<OrderProcessStepNDO> {
IPage<PriceRateReqVO> selectSalaryList( @Param("page") IPage page, @Param("pageReqVO") PriceRatePageReqVO pageReqVO,@Param("organId") Long organId);
BigDecimal calculateSalary( @Param("processStepId") Long processStepId,@Param("area") BigDecimal area);
BigDecimal calculateSalary( @Param("processStepId") Long processStepId,@Param("area") BigDecimal area, @Param("pieceRate")BigDecimal pieceRate,@Param("organId") Long organId);
void updateStatus(@Param("id") Long id, @Param("nickname") String nickname, @Param("salary")BigDecimal salary);
void updateStatusByName(@Param("id") Long processStepId,@Param("nickname") String nickname);
List<OrderProcessStepNDO> selectProcessList(@Param("organId") Long organId);
}
@@ -26,9 +26,6 @@ public interface OrderPartsMapper extends BaseMapperX<OrderPartsNDO> {
List<OrderPartsRespVO> selectOrderParts(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo);
void deleteOrderParts(@Param("partsIds") List<Long> partsIds);
@@ -47,8 +47,7 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
default List<OrderDO> selectPackPage(PackPageReqVO pageReqVO,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderDO>()
.eq(OrderDO::getOrganId,organId)
.eqIfPresent(OrderDO::getOrganId,getUserOrganId())
.eqIfPresent(OrderDO::getId, pageReqVO.getOrderNo())
.eqIfPresent(OrderDO::getId, pageReqVO.getOrderId())
.eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
.likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
.likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress())
@@ -56,7 +55,7 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
.orderByDesc(OrderDO::getCreateTime));
}
IPage<PackRespVO> selectOrderPlate( @Param("page") IPage page, @Param("collect") List<Long> collect, @Param("organId") Long organId);
IPage<PackRespVO> selectOrderPlate( @Param("page") IPage page, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
@@ -1,11 +1,12 @@
package com.cf.imes.module.manage.framework.rpc.config;
import com.cf.imes.module.system.api.organ.OrganApi;
import com.cf.imes.module.system.api.process.ProcessApi;
import com.cf.imes.module.system.api.user.AdminUserApi;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class})
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class})
public class RpcConfiguration {
}
@@ -30,8 +30,6 @@ public interface PackService {
// 查看板材列表分页
PageResult<PlateDetailsRespVO> queryPlateDetails(OrderModuleReqVO pageReqVO);
@@ -46,20 +44,6 @@ public interface PackService {
// 显示分组房间名称
List<OrderPlateGroupRespVO> GetOrderPlateGroup(Long orderId);
// 查看配件包裹详情
List<OrderPartsRespVO> queryPackageDetails(PrintOrderPackReqVO reqVO);
// 新增包裹
OrderPackageDO insertPack(OrderPackReqVO packageVO);
// 更新包裹
OrderPackRespVO updatePack(OrderPackReqVO packageVO);
@@ -34,6 +34,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -73,20 +74,27 @@ public class PackServiceImpl implements PackService {
PageDTO<PackRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
// 根据生产状态查询生产单号
List<Long> collect = productionStatusMapper.selectPackPage(pageReqVO,getUserOrganId()).stream().map(OrderDO::getId).collect(Collectors.toList());
List<Long> orderIds = productionStatusMapper.selectPackPage(pageReqVO,getUserOrganId()).stream().map(OrderDO::getId).collect(Collectors.toList());
if(collect.isEmpty()){
if(orderIds.isEmpty()){
return null;
}
// 查询打包首页分页数据信息,包裹数,板件数量信息
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,collect,getUserOrganId());
// 查询打包首页分页数据信息,总的板件数量信息
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId());
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds);
for (PackRespVO record : packRespVOS.getRecords()) {
// 已打包数
record.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackCount).sum());
// 已打包片数
record.setPackPieceCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackPieceCount).sum());
// 待处理量
record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount());
}
// for (PackRespVO record : packRespVOS.getRecords()) {
//
// // 待处理量
// record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount());
// }
if (CollectionUtil.isEmpty(packRespVOS.getRecords())) {
return new PageResult<>();
@@ -147,19 +155,8 @@ public class PackServiceImpl implements PackService {
// 查看板材列表分页
@Override
public PageResult<PlateDetailsRespVO> queryPlateDetails(OrderModuleReqVO pageReqVO) {
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(pageReqVO.getOrderNo(),getUserOrganId());
PageInfo<PlateDetailsRespVO> pageInfo = new PageInfo<>(plateDetailsRespVOS);
PageResult<PlateDetailsRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 查看配件列表分页
@@ -168,7 +165,7 @@ public class PackServiceImpl implements PackService {
PageDTO<OrderPartsRespVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
IPage<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(page,reqVO.getOrderNo(),getUserOrganId());
IPage<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(page,reqVO.getOrderId(),getUserOrganId());
if (CollectionUtil.isEmpty(orderPartsRespVOS.getRecords())) {
return new PageResult<>();
@@ -194,15 +191,15 @@ public class PackServiceImpl implements PackService {
// 如果此时删除的包裹配件数量等于查询出来的配件数量,且新增的板材数量不为0,更改包裹的类型
if(reqVO.getDeletePartsList().size() == partsList.size() && !reqVO.getAddPlateIdList().isEmpty()){
if(reqVO.getDeletePartsIdList().size() == partsList.size() && !reqVO.getAddPlateIdList().isEmpty()){
// 删除生产单明细表板件对应的包裹ID
orderItemMapper.deletePackId(reqVO.getDeletePartsList(), reqVO.getPackId());
orderItemMapper.deletePackId(reqVO.getDeletePartsIdList(), reqVO.getPackId());
// 生产单明细表配件新增对应的包裹ID
orderItemMapper.insertParts(reqVO.getAddPlateIdList(),reqVO.getPackId(),reqVO.getOrderNo());
orderItemMapper.insertParts(reqVO.getAddPlateIdList(),reqVO.getPackId(),reqVO.getOrderId());
// 更新包裹类型和包裹的状态
@@ -215,12 +212,12 @@ public class PackServiceImpl implements PackService {
// 生产明细表新增的配件ID
if(!reqVO.getAddPartsList().isEmpty()) {
orderItemMapper.insertParts(reqVO.getAddPartsList(), reqVO.getPackId(), reqVO.getOrderNo());
if(!reqVO.getAddPartsIdList().isEmpty()) {
orderItemMapper.insertParts(reqVO.getAddPartsIdList(), reqVO.getPackId(), reqVO.getOrderId());
}
// 生产明细表删除的配件ID
if(!reqVO.getDeletePartsList().isEmpty()) {
orderItemMapper.deletePartsList(reqVO.getDeletePartsList(), reqVO.getPackId(), reqVO.getOrderNo());
if(!reqVO.getDeletePartsIdList().isEmpty()) {
orderItemMapper.deletePartsList(reqVO.getDeletePartsIdList(), reqVO.getPackId(), reqVO.getOrderId());
}
orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
@@ -244,75 +241,6 @@ public class PackServiceImpl implements PackService {
}
// 显示分组房间名称
@Override
public List<OrderPlateGroupRespVO> GetOrderPlateGroup(Long orderId) {
/*List<String> collect = orderBodyMapper.selectGroup(orderId).stream().map(OrderBodyDO::getRoomName).collect(Collectors.toList());*/
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectGroup(orderId);
return BeanUtils.toBean(orderBodyDOS, OrderPlateGroupRespVO.class);
}
// 查看配件包裹详情
@Override
public List<OrderPartsRespVO> queryPackageDetails(PrintOrderPackReqVO reqVO) {
return orderPartsMapper.selectOrderParts(reqVO.getOrderNo(), reqVO.getPackageNo());
}
// 新增包裹
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPackageDO insertPack(OrderPackReqVO packageVO) {
// List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(packageVO.getOrderId(),getUserOrganId());
// for (OrderPackageDO orderPackageDO : orderPackageDOS) {
// Integer status = orderPackageDO.getStatus();
// if (status.equals(OrderPackageStatusEnum.UNPACKED.getStatus())){
// throw ServiceExceptionUtil.exception(ErrorCodeConstants.THE_CURRENT_PACKAGE_HAS_AN_UNSEALED_PACKAGE);
// }
// }
OrderPackageDO orderPackageDO = new OrderPackageDO();
orderPackageDO.setOrderId(packageVO.getOrderId());
// 判断板材和配件哪个有数据,新增对应的类型
// if(!packageVO.getAddPlateIdList().isEmpty()){
// orderPackageDO.setType(OrderPackageTypeEnum.PLATE.getType());
// }else {
// orderPackageDO.setType(OrderPackageTypeEnum.PARTS.getType());
// }
orderPackageDO.setType(OrderPackageTypeEnum.PLATE.getType());
orderPackageDO.setPackageNo(PackageNoUtil.randomPageNo());
// orderPackageDO.setPackageNo(packageVO.getPackNo());
orderPackageDO.setStatus((OrderPackageStatusEnum.PACKAGED.getStatus()));
orderPackageDO.setRemark(packageVO.getRemark());
orderPackageMapper.insert(orderPackageDO);
// 生产单明细表新增包裹 ID
orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId());
return orderPackageDO;
// // 不为 -1 ,有包裹存在,走更新逻辑
//
// // 生产明细表新增包裹ID
// orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), packageVO.getPackId());
// // 移除包裹ID
// orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId());
//
// return orderPackageMapper.selectByPackId(packageVO.getPackId()).setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
}
// 更新包裹
@@ -404,8 +332,8 @@ public class PackServiceImpl implements PackService {
@Override
public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) {
PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderNo(), reqVO.getPackageNo(),getUserOrganId());
printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderNo(), reqVO.getPackageNo(),getUserOrganId()));
PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId());
printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId()));
return printOrderPackRespVO;
@@ -462,8 +390,7 @@ public class PackServiceImpl implements PackService {
// 在包裹表中添加包裹编号和生产单号,修改包裹类型未其他配件类型
OrderPackageDO orderPackageDO = new OrderPackageDO();
// orderPackageDO.setPackageNo(PackageNoUtil.randomPageNo());
orderPackageDO.setPackageNo(reqVO.getPackNo());
orderPackageDO.setPackageNo(PackageNoUtil.randomPageNo());
orderPackageDO.setOrderId(reqVO.getOrderId());
orderPackageDO.setType(OrderPackageTypeEnum.OTHER_ACCESSORIES.getType());
@@ -21,6 +21,7 @@ import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper;
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.manage.dal.mysql.process.*;
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
import com.cf.imes.module.system.api.process.ProcessApi;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -48,7 +49,6 @@ import static com.cf.imes.module.manage.util.search.SearchUtil.insertSeparator;
public class ProductionProcessServiceImpl implements ProductionProcessService {
@Resource
private ProcessStepMapper processStepMapper;
@@ -57,8 +57,6 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
private ProcessStepItemMapper processStepItemMapper;
@Resource
private OrderBodyMapper orderBodyMapper;
@@ -70,6 +68,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
private OrderPlateMapper orderPlateMapper;
@Resource
private ProcessApi processApi;
@@ -153,6 +155,27 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
}
// 判断生产单工序的加工类型是否为板材
if(processStepStatuses.getType().equals(ProcessProcessingTypeEnum.PLATE.getNumber())){
processStepMapper.updateStatusByName(reqVo.getProcessStepId(),nickname);
processStepItemMapper.updateStatusByBodyId(reqVo.getGoodsId());
List<OrderProcessStepItemNDO> orderProcessStepItemNDOS = processStepItemMapper.selectStemById(reqVo.getProcessStepId(),ProcessingStatusEnum.RAW.getStatus(),getUserOrganId());
if(orderProcessStepItemNDOS.isEmpty()){
// 修改生产单工序步骤表的状态并计算工资
BigDecimal area = processStepItemMapper.selectAreaByProcessId(reqVo.getProcessStepId(),processStepStatuses.getOrderId(),getUserOrganId());
BigDecimal salary = processStepMapper.calculateSalary(reqVo.getProcessStepId(), area,null,getUserOrganId());
processStepMapper.updateStatusById(reqVo.getProcessStepId(),salary);
}
}
try {
BigDecimal salary = calculateSalary(reqVo.getProcessStepId());
@@ -178,11 +201,15 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
public BigDecimal calculateSalary(Long processStepId){
// 查询当前工序对应的板材的面积
BigDecimal area = processStepItemMapper.selectAreaByProcessStepId(processStepId);
BigDecimal area = processStepItemMapper.selectAreaByProcessStepId(processStepId,getUserOrganId());
// 查询组件加工的工资
BigDecimal pieceRate = processApi.getProcess();
// 计算当前工序的工资金额
BigDecimal salary = processStepMapper.calculateSalary(processStepId, area);
BigDecimal salary = processStepMapper.calculateSalary(processStepId, area,pieceRate,getUserOrganId());
return salary;
@@ -18,6 +18,7 @@ import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.*;
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
@@ -31,6 +32,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@@ -124,11 +126,21 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
IPage<PriceRateReqVO> priceRateReqVOS = processStepMapper.selectSalaryList(page,pageReqVO,getUserOrganId());
if (CollectionUtil.isEmpty(priceRateReqVOS.getRecords())) {
return new PageResult<>();
}
List<OrderProcessStepNDO> orderProcessStepNDOS = processStepMapper.selectProcessList(getUserOrganId());
for (PriceRateReqVO record : priceRateReqVOS.getRecords()) {
record.setAmount(orderProcessStepNDOS
.stream()
.filter( f -> Objects.equals(f.getProcessinfoId(),record.getProcessId()))
.filter(f -> Objects.equals(f.getName(),record.getName()))
.filter(f -> Objects.equals(f.getManager(),record.getManager()))
.mapToDouble(OrderProcessStepNDO::getSalaryAmount).sum());
}
return new PageResult<>(priceRateReqVOS.getRecords(), priceRateReqVOS.getTotal());
@@ -219,7 +231,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
PageDTO<PlateDetailsRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<PlateDetailsRespVO> plateDetailsRespVOS = orderPackageMapper.selectMissingBoard(page,pageReqVO.getOrderNo(),getUserOrganId());
IPage<PlateDetailsRespVO> plateDetailsRespVOS = orderPackageMapper.selectMissingBoard(page,pageReqVO.getOrderId(),getUserOrganId());
if (CollectionUtil.isEmpty(plateDetailsRespVOS.getRecords())) {
return new PageResult<>();
@@ -4,8 +4,9 @@
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="packCount" column="numberOfPackages"/>
<result property="packPieceCount" column="packagedBoard"/>
<result property="id" column="id"/>
<result property="packCount" column="packCount"/>
<result property="packPieceCount" column="packPieceCount"/>
</resultMap>
@@ -14,17 +15,22 @@
resultMap="PackMap">
select DISTINCT
count(DISTINCT oi.package_id ) as numberOfPackages,
count(DISTINCT oi.plate_id) as packagedBoard
select
op.order_id as id,
count(distinct op.id) as packCount ,
count(distinct oi.plate_id) as packPieceCount
from order_package opn
join order_item oi on opn.id = oi.package_id
WHERE opn.order_id IN
<foreach item="id" collection="collect" open="(" separator="," close=")">
from order_package op
join order_item oi on op.order_id = oi.order_id and op.organ_id = oi.organ_id
where op.status &lt;&gt; 0
and oi.package_id != 0
and oi.plate_id != 0
and op.order_id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
and opn.status &lt;&gt; 0;
group by op.order_id;
</select>
@@ -82,6 +88,7 @@
oi.order_id = #{orderNo}
and
oi.organ_id = #{organId}
and oi.plate_id != 0
and
op.id not in (
select DISTINCT oi2.plate_id
@@ -41,10 +41,24 @@
</update>
<update id="updateStatusByBodyId">
update order_process_step_item opsi
set opsi.status = true
where opsi.body_id = #{goodsId}
</update>
<select id="selectStatusById" resultType="com.cf.imes.module.manage.controller.admin.process.vo.ProcessStepStatus"
parameterType="java.lang.Object">
select distinct
ops.order_id as orderId,
opsi.status as processStepItemStatus,
ops.status as processStepStatus,
ops.type as type
@@ -90,7 +104,7 @@
join order_body ob on opsi.body_id = ob.id and opsi.organ_id = ob.organ_id
join order_item oi on ob.id = oi.body_id and ob.organ_id = oi.organ_id
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
where opsi.process_step_id = #{processStepId};
where opsi.process_step_id = #{processStepId} and opsi.organ_id = #{organId}
@@ -98,4 +112,16 @@
</select>
<select id="selectAreaByProcessId" resultType="java.math.BigDecimal" parameterType="java.lang.Long">
select sum(op.area) from order_process_step ops
join order_process_step_item opsi on ops.id = opsi.process_step_id
join order_plate op on opsi.body_id = op.goods_id and op.order_id = #{orderId}
where ops.id = #{processStepId} and ops.organ_id = #{organId}
</select>
</mapper>
@@ -40,6 +40,7 @@
<result property="orderId" column="orderId"/>
<!-- <result property="processStepItemId" column="stepItemId"/>-->
<result property="customOrderNo" column="customOrderNo"/>
<result property="goodsId" column="goodsId"/>
<result property="customer" column="customer"/>
<result property="address" column="address"/>
<result property="processStatus" column="processStatus"/>
@@ -56,6 +57,7 @@
select distinct
og.id as goodsId,
ops.order_id as orderId,
o.custom_order_no as customOrderNo,
o.customer as customer,
@@ -70,7 +72,7 @@
from order_process_step ops
join `orders` o on ops.order_id = o.id and ops.organ_id = o.organ_id and o.deleted = 0
join order_process_step_item opsi on ops.id = opsi.process_step_id and ops.organ_id = opsi.organ_id
left join order_goods og on opsi.body_id = og.id
<where>
ops.organ_id = #{organId}
@@ -83,7 +85,7 @@
and opsi.status = #{pageReqVO.processStatus}
</if>
<if test="pageReqVO.orderId != null">
and ops.order_id = #{pageReqVO.orderId}
and ops.order_id like concat('%',#{pageReqVO.orderId},'%')
</if>
<if test="pageReqVO.customOrderNo != null">
and o.custom_order_no like concat('%', #{pageReqVO.customOrderNo},'%')
@@ -105,10 +107,11 @@
<resultMap id="priceResultMap" type="com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO">
<result property="name" column="name"/>
<result property="priceRate" column="piece_rate"/>
<result property="num" column="total_piece_num"/>
<result property="priceType" column="piece_type"/>
<result property="amount" column="total_piece_rate"/>
<result property="processId" column="processId"/>
<result property="priceRate" column="priceRate"/>
<result property="num" column="num"/>
<result property="priceType" column="priceType"/>
<result property="amount" column="amount"/>
<result property="manager" column="manager"/>
</resultMap>
@@ -116,27 +119,23 @@
resultMap="priceResultMap"
parameterType="map">
select ops.name as name ,
ops.piece_rate as piece_rate ,
ops.piece_type as piece_type,
ops.manager as manager,
SUM(CASE
WHEN ops.piece_type = 1 THEN ops.piece_rate
ELSE ROUND((op.size / ops.piece_rate), 2) * ops.piece_rate
END) AS total_piece_rate,
SUM(CASE
WHEN ops.piece_type = 1 THEN 1
ELSE ROUND((op.size / ops.piece_rate), 2)
END) AS total_piece_num
select distinct
ops.processinfo_id as processId,
ops.name as name ,
ops.piece_rate as priceRate ,
ops.piece_type as priceType ,
ops.manager as manager,
(case when ops.type = 7 then count(distinct ops.id , opsi.name)
else count(distinct ops.id) end) as num
from order_process_step ops
join order_process op on ops.order_process_id = op.id and ops.organ_id = op.organ_id
join order_process_step_item opsi on ops.id = opsi.process_step_id and ops.organ_id = opsi.organ_id
<where>
ops.organ_id =#{organId}
<if test="pageReqVO.creator != null">
and ops.manager = #{pageReqVO.creator}
<if test="pageReqVO.manager != null">
and ops.manager = #{pageReqVO.manager}
</if>
<if test="pageReqVO.name != null">
and ops.name = #{pageReqVO.name}
@@ -148,11 +147,10 @@
and ops.piece_rate &lt;&gt; 0
</if>
and ops.status = true
and ops.organ_id =#{organId}
and ops.manager != ''
</where>
group by name,piece_rate,piece_type,creator;
group by ops.processinfo_id,ops.name ,ops.piece_rate ,ops.piece_type ,ops.manager,ops.type,ops.organ_id,opsi.organ_id;
</select>
@@ -193,13 +191,25 @@
select distinct case when ops.piece_type = 1 then ops.piece_rate * count(distinct opsi.name)
else ROUND(ops.piece_rate * ROUND((op.size/ #{area}),3),3) end as rate
select distinct case when ops.type = 7 then #{pieceRate} * count(distinct opsi.name)
else ROUND(ops.piece_rate * #{area},3) end as rate
from order_process_step ops
join order_process_step_item opsi on ops.id = opsi.process_step_id and ops.organ_id = opsi.organ_id
join order_process op on ops.order_process_id = op.id and ops.organ_id = op.organ_id
where ops.id = #{processStepId}
group by ops.piece_type,piece_rate,op.size;
where ops.id = #{processStepId} and ops.organ_id = #{organId}
group by ops.type,piece_rate;
</select>
<select id="selectProcessList"
resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO">
select processinfo_id as processinfoId,name,manager, sum(salary_amount) as salaryAmount
from order_process_step
where organ_id =#{organId} and status = true and manager != ''
group by processinfo_id,name,manager;
</select>
@@ -4,7 +4,11 @@
<resultMap id="partsMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="partsName" column="name"/>
<result property="partsId" column="partsId"/>
<result property="name" column="name"/>
<result property="type" column="type"/>
<result property="remark" column="remark"/>
<result property="isComposite" column="isComposite"/>
<result property="model" column="model"/>
<result property="spec" column="spec"/>
<result property="num" column="num"/>
@@ -20,6 +24,7 @@
select distinct
op.id as partsId,
op.name as name,
op.model as model,
op.spec as spec,
@@ -27,6 +32,9 @@
op.brand as brand,
op.material as material,
op.factory as factory,
op.type as type,
op.remark as remark,
op.is_composite as isComposite,
oi.num as num
from order_parts op
@@ -62,13 +70,11 @@
select distinct
op.id as partsId,op.name,op.model,op.spec,count(op.name) as num,op.unit,op.brand,op.factory,op.remark
op.id as partsId,op.name,op.model,op.spec,oi.num as num,op.unit,op.brand,op.factory,op.remark
from order_parts op
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id
where op.order_id = #{orderId} and oi.package_id = 0
group by partsId,op.name,op.model,op.spec,op.unit,op.brand,op.factory,op.remark;
where op.organ_id = #{organId} and op.order_id = #{orderId} and oi.package_id = 0
</select>
@@ -76,33 +82,6 @@
<select id="selectOrderParts"
parameterType="java.lang.Long"
resultMap="PartsListMap">
select distinct
op.id as partsId,
op.name as name,
op.model as model ,
op.spec as spec,
oi.num as num,
op.unit as unit,
op.brand as brand,
op.factory as factory,
op.type as type,
op.is_composite as isComposite,
op.remark as remark
from order_parts op
join order_item oi on op.id = oi.parts_id
where op.order_id = #{orderNo} and oi.package_id =#{packageNo};
</select>
<update id="deleteOrderParts"
parameterType="java.lang.Long">
@@ -72,19 +72,19 @@
o.address as address,
o.salesman as salesman,
o.splitter as splitter,
o.status as status
o.status as status,
count(distinct oi.plate_id) as totalPieceCount
FROM `orders` o
join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id
WHERE
o.organ_id = #{organId} and
o.organ_id = #{organId} and oi.plate_id != 0 and
o.id in
<foreach item="id" collection="collect" open="(" separator="," close=")">
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,status
</select>
@@ -108,7 +108,7 @@
<resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO">
<result property="customOrderNo" column="customOrderNo"/>
<result property="dealer" column="dealer"/>
<result property="orderNo" column="orderNo"/>
<result property="orderId" column="orderNo"/>
<result property="packNo" column="packNo"/>
<result property="packNum" column="packNum"/>
<result property="address" column="address"/>
@@ -0,0 +1,29 @@
package com.cf.imes.module.system.api.process;
import com.cf.imes.module.system.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal;
@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory =
@Tag(name = "RPC 服务 - 工序")
public interface ProcessApi {
String PREFIX = ApiConstants.PREFIX + "/process";
@GetMapping(PREFIX + "/getProcess")
@Operation(summary = "查看当前工序的信息")
// @Parameter(name = "processId", description = "工序ID", required = true, example = "1024")
BigDecimal getProcess(/*@RequestParam("processId") Long processId*/);
}
@@ -0,0 +1,40 @@
package com.cf.imes.module.system.api.process;
import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@RestController // 提供 RESTful API 接口,给 Feign 调用
@Validated
public class ProcessApiImpl implements ProcessApi {
@Resource
private ProcessMapper processMapper;
@Override
public BigDecimal getProcess() {
ProcessDO processDO = processMapper.selectByType(ProcessProcessingTypeEnum.COMPONENTPROCESSING.getNumber(),getUserOrganId());
return processDO.getPieceRate();
}
}
@@ -68,14 +68,14 @@ public class OrganController {
@PostMapping("/create")
@Operation(summary = "创建组织")
@PreAuthorize("@ss.hasPermission('system:organ:create')")
@PreAuthorize("@ss.hasPermission('organizationLIst:create')")
public CommonResult<Long> createOrgan(@Valid @RequestBody OrganSaveReqVO createReqVO) {
return success(organService.createOrgan(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新组织")
@PreAuthorize("@ss.hasPermission('system:organ:update')")
@PreAuthorize("@ss.hasPermission('organizationLIst:update')")
public CommonResult<Boolean> updateOrgan(@Valid @RequestBody OrganSaveReqVO updateReqVO) {
organService.updateOrgan(updateReqVO);
return success(true);
@@ -84,7 +84,7 @@ public class OrganController {
@DeleteMapping("/delete")
@Operation(summary = "删除组织")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:organ:delete')")
@PreAuthorize("@ss.hasPermission('organizationLIst:delete')")
public CommonResult<Boolean> deleteOrgan(@RequestParam("id") Long id) {
organService.deleteOrgan(id);
return success(true);
@@ -93,7 +93,7 @@ public class OrganController {
@GetMapping("/get")
@Operation(summary = "获得组织")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:organ:query')")
@PreAuthorize("@ss.hasPermission('organizationLIst:query')")
public CommonResult<OrganRespVO> getOrgan(@RequestParam("id") Long id) {
OrganizationDO organ = organService.getOrgan(id);
TenantPackageDO tenantPackageDO = tenantPackageMapper.selectById(organ.getPackageId());
@@ -104,7 +104,7 @@ public class OrganController {
@GetMapping("/page")
@Operation(summary = "获得组织分页")
@PreAuthorize("@ss.hasPermission('system:organ:query')")
@PreAuthorize("@ss.hasPermission('organizationLIst:query')")
public CommonResult<PageResult<OrganRespVO>> getOrganPage(@Valid OrganPageReqVO pageVO) {
PageResult<OrganizationDO> pageResult = organService.getOrganPage(pageVO);
if(CollectionUtil.isEmpty(pageResult.getList())) {
@@ -126,7 +126,7 @@ public class OrganController {
@GetMapping("/export-excel")
@Operation(summary = "导出组织 Excel")
@PreAuthorize("@ss.hasPermission('system:organ:export')")
@PreAuthorize("@ss.hasPermission('organizationLIst:export')")
@OperateLog(type = EXPORT)
public void exportOrganExcel(@Valid OrganPageReqVO exportReqVO,
HttpServletResponse response) throws IOException {
@@ -164,6 +164,7 @@ public class OrganController {
@GetMapping({"/list-all-simple", "/simple-list"})
@Operation(summary = "获取组织精简信息列表", description = "主要用于前端的下拉选项")
@Parameter(name = "name", description = "组织名称", required = false, example = "xxx")
@PreAuthorize("@ss.hasPermission('organizationLIst:query')")
public CommonResult<List<OrganSimpleRespVO>> getSimpleOrganList(@RequestParam(required = false, value = "name") String name) {
return success(organService.getSimpleOrganList(name));
}
@@ -5,7 +5,7 @@ import javax.validation.Valid;
import javax.servlet.http.HttpServletResponse;
import com.cf.imes.module.system.controller.admin.process.vo.group.ProcessGroupRespVO;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.UserProcessRespVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
@@ -129,6 +129,15 @@ public class ProcessController {
@GetMapping("/getUserProcess")
@Operation(summary = "获取当前组织的工序名称和加工人名称")
@PreAuthorize("@ss.hasPermission('manage:process:query')")
public CommonResult<UserProcessRespVO> getUserProcess() {
return success(processService.getUserProcessName());
}
@@ -6,17 +6,15 @@ import com.alibaba.excel.annotation.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 工序用户表 process_user Response VO")
@Schema(description = "管理后台 - 工序用户表")
@Data
@ExcelIgnoreUnannotated
public class ProcessAndUserRespVO {
@Schema(description = "工序 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9416")
@ExcelProperty("工序 ID")
private Long processId;
@Schema(description = "工序名称")
private String processName;
@Schema(description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24517")
@ExcelProperty("用户 ID")
@Schema(description = "加工人ID")
private Long userId;
}
@@ -0,0 +1,26 @@
package com.cf.imes.module.system.controller.admin.process.vo.processUser;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Schema(description = "管理后台 - 工序和加工人信息")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserProcessRespVO {
@Schema(description = "工序名称")
private List<String> processName;
@Schema(description = "加工人")
private List<String> processUser;
}
@@ -1,6 +1,8 @@
package com.cf.imes.module.system.dal.dataobject.process;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@@ -34,7 +36,7 @@ public class ProcessDO extends BaseDO {
/**
* 计件工资
*/
private Double pieceRate;
private BigDecimal pieceRate;
/**
* 计件类型:1 数量 2 长度 3 平方 4 宽 5 高 6 体积 7 生产单金额百分比
*/
@@ -6,6 +6,7 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessPageReqVO;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserRespVO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessUserDO;
import org.apache.ibatis.annotations.Mapper;
@@ -64,4 +65,17 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
}
default ProcessDO selectByType(Integer number,Long organId) {
return selectOne(new MPJLambdaWrapperX<ProcessDO>()
.eq(ProcessDO::getOrganId, organId)
.eqIfPresent(ProcessDO::getType,number));
}
List<ProcessAndUserRespVO> selectUserProcess(@Param("organId")Long organId);
}
@@ -91,4 +91,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
.likeIfPresent(AdminUserDO::getPinyinInitial, namePyFirstChar)
.orderByDesc(AdminUserDO::getId));
}
default List<AdminUserDO> selectListByIds(List<Long> userIds, Long userOrganId) {
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
.eq(AdminUserDO::getOrganId, userOrganId)
.in(AdminUserDO::getId, userIds));
}
}
@@ -1,6 +1,7 @@
package com.cf.imes.module.system.service.process;
import com.cf.imes.module.system.controller.admin.process.vo.process.*;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.UserProcessRespVO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.framework.common.pojo.PageResult;
@@ -68,4 +69,7 @@ public interface ProcessService {
List<ProcessDO> getAllProcess();
List<ProcessDO> getUserProcess(Long userId);
UserProcessRespVO getUserProcessName();
}
@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.controller.admin.process.vo.process.*;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserRespVO;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserSaveReqVO;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.UserProcessRespVO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessUserDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessGroupMapper;
import com.cf.imes.module.system.dal.mysql.user.AdminUserMapper;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import com.cf.imes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service;
@@ -26,9 +29,11 @@ import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.CUSTOM_ORDER_EXISTS;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@@ -54,6 +59,9 @@ public class ProcessServiceImpl implements ProcessService {
@Resource
private AdminUserService adminUserService;
@Resource
private AdminUserMapper userMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createProcess(ProcessUserSaveReqVO createReqVO) {
@@ -229,4 +237,28 @@ public class ProcessServiceImpl implements ProcessService {
}
@Override
public UserProcessRespVO getUserProcessName() {
// 查询当前组织的工序信息和已经分配了加工人的工序信息
List<ProcessAndUserRespVO> userProcessDTO = processMapper.selectUserProcess(getUserOrganId());
List<String> processName = userProcessDTO.stream().map(m -> m.getProcessName()).distinct().collect(Collectors.toList());
List<Long> userIds = userProcessDTO.stream().map(m -> m.getUserId()).distinct().collect(Collectors.toList());
List<String> userName = userMapper.selectListByIds(userIds, getUserOrganId())
.stream().map(m -> m.getNickname()).collect(Collectors.toList());
return UserProcessRespVO.builder()
.processName(processName)
.processUser(userName)
.build();
}
}
@@ -68,8 +68,26 @@
where p.id = #{id} and p.organ_id = #{organId} and p.deleted = 0
</select>
<delete id="deleteById" parameterType="java.lang.Long">
DELETE FROM process
WHERE id = #{id};
</delete>
<select id="selectUserProcess"
resultType="com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserRespVO">
select distinct p.name as processName,pu.user_id as userId
from process p
join process_user pu on p.id = pu.process_id
where p.organ_id = #{organId} and p.deleted = false
</select>
</mapper>