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

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 { public enum ProcessProcessingTypeEnum {
COMPONENTPROCESSING(7,"组件加工"); COMPONENTPROCESSING(7,"组件加工"),
PLATE(8,"板材加工");
private Integer number; private Integer number;
private String fabricatedItem; private String fabricatedItem;
@@ -18,7 +18,7 @@
orp.id as remainId orp.id as remainId
from order_goods og from order_goods og
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id 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> </select>
@@ -32,7 +32,7 @@
orp.id as remainId orp.id as remainId
from order_goods og from order_goods og
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id 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=")"> <foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id} #{id}
@@ -146,7 +146,7 @@
join order_item oi on op.id = oi.plate_id and op.organ_id = oi.organ_id 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 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 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> </select>
@@ -168,7 +168,7 @@
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.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 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=","> <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.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
/** /**
* @author there * @author there
*/ */
@SpringBootApplication @SpringBootApplication
@EnableFeignClients
@EnableAsync
public class ManageServerApplication { public class ManageServerApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ManageServerApplication.class, 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") @GetMapping("/getParts")
@Operation(summary = "查看配件列表分页") @Operation(summary = "查看配件列表分页")
@PreAuthorize("@ss.hasPermission('manage:pack:query')") @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") @PutMapping("/updatePack")
@Operation(summary = "板材包裹更新-即封包") @Operation(summary = "板材包裹更新-即封包")
@PreAuthorize("@ss.hasPermission('manage:pack:updatePack')") @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") @GetMapping("/print")
@Operation(summary = "包裹订单打印") @Operation(summary = "包裹订单打印")
@PreAuthorize("@ss.hasPermission('manage:pack:query')") @PreAuthorize("@ss.hasPermission('manage:pack:query')")
@@ -320,7 +262,6 @@ public class PackController {
/* /*
@GetMapping("/query") @GetMapping("/query")
@Operation(summary = "板材列表下的查询") @Operation(summary = "板材列表下的查询")
@@ -17,17 +17,17 @@ public class OrderPartsReqVO extends PageParam {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderNo; private Long orderId;
@Schema(description = "更新配件时传-包裹ID") @Schema(description = "更新配件时传-包裹ID")
private Long packId; private Long packId;
@Schema(description = "更新配件时传-新增的配件ID") @Schema(description = "更新配件时传-新增的配件ID")
private List<Long> addPartsList; private List<Long> addPartsIdList;
@Schema(description = "更新配件时传-删除的配件ID") @Schema(description = "更新配件时传-删除的配件ID")
private List<Long> deletePartsList; private List<Long> deletePartsIdList;
@Schema(description = "新增的板件ID") @Schema(description = "新增的板件ID")
@@ -19,7 +19,7 @@ public class PackPageReqVO extends PageParam {
@Schema(description = "订单号") @Schema(description = "订单号")
private Long orderNo; private Long orderId;
@Schema(description = "自定义单号") @Schema(description = "自定义单号")
@@ -13,7 +13,7 @@ public class PrintOrderPackReqVO {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822") @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
private Long orderNo; private Long orderId;
@Schema(description = "包裹id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822") @Schema(description = "包裹id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
@@ -19,7 +19,7 @@ public class PrintOrderPackRespVO {
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788") @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
private Long orderNo; private Long orderId;
@Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788") @Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
@@ -64,6 +64,7 @@ public class ProductionProcessController {
@GetMapping("/selectPlate") @GetMapping("/selectPlate")
@Operation(summary = "查看当前生产单的工序对应的板件信息") @Operation(summary = "查看当前生产单的工序对应的板件信息")
@PreAuthorize("@ss.hasPermission('manage:process:view')")
public CommonResult<OrderPlateReqVO> selectPlate(@Valid ProcessPlateReqVO reqVO){ public CommonResult<OrderPlateReqVO> selectPlate(@Valid ProcessPlateReqVO reqVO){
return success(productionProcessService.selectPlate(reqVO)); return success(productionProcessService.selectPlate(reqVO));
} }
@@ -21,6 +21,10 @@ public class OrderProcessStepItemVO {
private Long processStepId; private Long processStepId;
@Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private Long goodsId;
@Schema(description = "加工项名称", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD") @Schema(description = "加工项名称", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private String name; private String name;
@@ -20,6 +20,9 @@ public class ProcessPageReqVO extends PageParam {
@Schema(description = "加工状态",requiredMode = Schema.RequiredMode.REQUIRED, example = "false") @Schema(description = "加工状态",requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
private Boolean processStatus; private Boolean processStatus;
// @Schema(description = "工序类型",requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
// private Long type;
@Schema(description = "生产单号") @Schema(description = "生产单号")
private Long orderId; private Long orderId;
@@ -42,6 +42,9 @@ public class ProcessRespVO {
private String phoneNumber; private String phoneNumber;
@Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private Long goodsId;
@Schema(description = "工序ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD") @Schema(description = "工序ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
private Long processID; private Long processID;
@@ -8,6 +8,10 @@ import java.util.List;
@Data @Data
public class ProcessStepStatus { public class ProcessStepStatus {
// 生产单号
private Long orderId;
// 工序步骤表的状态 // 工序步骤表的状态
private Boolean processStepStatus; private Boolean processStepStatus;
@@ -16,7 +16,7 @@ public class OrderPackageVO {
private Long id; private Long id;
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderNo; private Long orderId;
@Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String packageNo; private String packageNo;
@@ -61,7 +61,10 @@ public class PackageDetailsRespVO {
@Schema(description = "配件名称-配件类型显示", requiredMode = Schema.RequiredMode.REQUIRED) @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) @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
private String model; private String model;
@@ -69,12 +72,18 @@ public class PackageDetailsRespVO {
@Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
private String spec; private String spec;
@Schema(description = "明细配件类型, 2 五金/配件 3 其他 4 报价配件", requiredMode = Schema.RequiredMode.REQUIRED)
private String type;
@Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
private Long num; private Long num;
@Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
private String unit; private String unit;
@Schema(description = "是否复合部件:0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean isComposite;
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
private String brand; private String brand;
@@ -29,7 +29,7 @@ public class PriceRatePageReqVO extends PageParam {
@Schema(description = "加工人") @Schema(description = "加工人")
private String creator; private String manager;
@Schema(description = "工序名称") @Schema(description = "工序名称")
@@ -9,6 +9,9 @@ import lombok.Data;
public class PriceRateReqVO { public class PriceRateReqVO {
@Schema(description = "工序ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long processId;
@Schema(description = "工序名", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "工序名", requiredMode = Schema.RequiredMode.REQUIRED)
private String name; private String name;
@@ -22,7 +25,7 @@ public class PriceRateReqVO {
private Integer priceType; private Integer priceType;
@Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED)
private Long amount; private Double amount;
@Schema(description = "加工人", requiredMode = Schema.RequiredMode.REQUIRED) @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> { 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) { 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); 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); 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); 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 updateStatus(@Param("id") Long id, @Param("nickname") String nickname, @Param("salary")BigDecimal salary);
void updateStatusByName(@Param("id") Long processStepId,@Param("nickname") String nickname); 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); 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) { default List<OrderDO> selectPackPage(PackPageReqVO pageReqVO,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderDO>() return selectList(new LambdaQueryWrapperX<OrderDO>()
.eq(OrderDO::getOrganId,organId) .eq(OrderDO::getOrganId,organId)
.eqIfPresent(OrderDO::getOrganId,getUserOrganId()) .eqIfPresent(OrderDO::getId, pageReqVO.getOrderId())
.eqIfPresent(OrderDO::getId, pageReqVO.getOrderNo())
.eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo()) .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
.likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer()) .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
.likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress()) .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress())
@@ -56,7 +55,7 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
.orderByDesc(OrderDO::getCreateTime)); .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; 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.organ.OrganApi;
import com.cf.imes.module.system.api.process.ProcessApi;
import com.cf.imes.module.system.api.user.AdminUserApi; import com.cf.imes.module.system.api.user.AdminUserApi;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class}) @EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class})
public class RpcConfiguration { 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); OrderPackRespVO updatePack(OrderPackReqVO packageVO);
@@ -34,6 +34,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; 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()); 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; 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())) { if (CollectionUtil.isEmpty(packRespVOS.getRecords())) {
return new PageResult<>(); 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()); 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())) { if (CollectionUtil.isEmpty(orderPartsRespVOS.getRecords())) {
return new PageResult<>(); return new PageResult<>();
@@ -194,15 +191,15 @@ public class PackServiceImpl implements PackService {
// 如果此时删除的包裹配件数量等于查询出来的配件数量,且新增的板材数量不为0,更改包裹的类型 // 如果此时删除的包裹配件数量等于查询出来的配件数量,且新增的板材数量不为0,更改包裹的类型
if(reqVO.getDeletePartsList().size() == partsList.size() && !reqVO.getAddPlateIdList().isEmpty()){ if(reqVO.getDeletePartsIdList().size() == partsList.size() && !reqVO.getAddPlateIdList().isEmpty()){
// 删除生产单明细表板件对应的包裹ID // 删除生产单明细表板件对应的包裹ID
orderItemMapper.deletePackId(reqVO.getDeletePartsList(), reqVO.getPackId()); orderItemMapper.deletePackId(reqVO.getDeletePartsIdList(), reqVO.getPackId());
// 生产单明细表配件新增对应的包裹ID // 生产单明细表配件新增对应的包裹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 // 生产明细表新增的配件ID
if(!reqVO.getAddPartsList().isEmpty()) { if(!reqVO.getAddPartsIdList().isEmpty()) {
orderItemMapper.insertParts(reqVO.getAddPartsList(), reqVO.getPackId(), reqVO.getOrderNo()); orderItemMapper.insertParts(reqVO.getAddPartsIdList(), reqVO.getPackId(), reqVO.getOrderId());
} }
// 生产明细表删除的配件ID // 生产明细表删除的配件ID
if(!reqVO.getDeletePartsList().isEmpty()) { if(!reqVO.getDeletePartsIdList().isEmpty()) {
orderItemMapper.deletePartsList(reqVO.getDeletePartsList(), reqVO.getPackId(), reqVO.getOrderNo()); orderItemMapper.deletePartsList(reqVO.getDeletePartsIdList(), reqVO.getPackId(), reqVO.getOrderId());
} }
orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus()); 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 @Override
public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) { public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) {
PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderNo(), reqVO.getPackageNo(),getUserOrganId()); PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId());
printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderNo(), reqVO.getPackageNo(),getUserOrganId())); printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId()));
return printOrderPackRespVO; return printOrderPackRespVO;
@@ -462,8 +390,7 @@ public class PackServiceImpl implements PackService {
// 在包裹表中添加包裹编号和生产单号,修改包裹类型未其他配件类型 // 在包裹表中添加包裹编号和生产单号,修改包裹类型未其他配件类型
OrderPackageDO orderPackageDO = new OrderPackageDO(); OrderPackageDO orderPackageDO = new OrderPackageDO();
// orderPackageDO.setPackageNo(PackageNoUtil.randomPageNo()); orderPackageDO.setPackageNo(PackageNoUtil.randomPageNo());
orderPackageDO.setPackageNo(reqVO.getPackNo());
orderPackageDO.setOrderId(reqVO.getOrderId()); orderPackageDO.setOrderId(reqVO.getOrderId());
orderPackageDO.setType(OrderPackageTypeEnum.OTHER_ACCESSORIES.getType()); 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.plate.PlateMapper;
import com.cf.imes.module.manage.dal.mysql.process.*; import com.cf.imes.module.manage.dal.mysql.process.*;
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper; 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 com.cf.imes.module.system.enums.ErrorCodeConstants;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; 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 { public class ProductionProcessServiceImpl implements ProductionProcessService {
@Resource @Resource
private ProcessStepMapper processStepMapper; private ProcessStepMapper processStepMapper;
@@ -57,8 +57,6 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
private ProcessStepItemMapper processStepItemMapper; private ProcessStepItemMapper processStepItemMapper;
@Resource @Resource
private OrderBodyMapper orderBodyMapper; private OrderBodyMapper orderBodyMapper;
@@ -70,6 +68,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
private OrderPlateMapper orderPlateMapper; 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 { try {
BigDecimal salary = calculateSalary(reqVo.getProcessStepId()); BigDecimal salary = calculateSalary(reqVo.getProcessStepId());
@@ -178,11 +201,15 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
public BigDecimal calculateSalary(Long processStepId){ 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; 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.PriceRatePageReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO; 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.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.dataobject.query.OrderPackageDO;
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper; import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper; 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 javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Objects;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; 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()); IPage<PriceRateReqVO> priceRateReqVOS = processStepMapper.selectSalaryList(page,pageReqVO,getUserOrganId());
if (CollectionUtil.isEmpty(priceRateReqVOS.getRecords())) { if (CollectionUtil.isEmpty(priceRateReqVOS.getRecords())) {
return new PageResult<>(); 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()); 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()); 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())) { if (CollectionUtil.isEmpty(plateDetailsRespVOS.getRecords())) {
return new PageResult<>(); return new PageResult<>();
@@ -4,8 +4,9 @@
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO"> <resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="packCount" column="numberOfPackages"/> <result property="id" column="id"/>
<result property="packPieceCount" column="packagedBoard"/> <result property="packCount" column="packCount"/>
<result property="packPieceCount" column="packPieceCount"/>
</resultMap> </resultMap>
@@ -14,17 +15,22 @@
resultMap="PackMap"> resultMap="PackMap">
select DISTINCT select
count(DISTINCT oi.package_id ) as numberOfPackages, op.order_id as id,
count(DISTINCT oi.plate_id) as packagedBoard count(distinct op.id) as packCount ,
count(distinct oi.plate_id) as packPieceCount
from order_package opn from order_package op
join order_item oi on opn.id = oi.package_id join order_item oi on op.order_id = oi.order_id and op.organ_id = oi.organ_id
WHERE opn.order_id IN where op.status &lt;&gt; 0
<foreach item="id" collection="collect" open="(" separator="," close=")"> and oi.package_id != 0
and oi.plate_id != 0
and op.order_id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>
and opn.status &lt;&gt; 0; group by op.order_id;
</select> </select>
@@ -82,6 +88,7 @@
oi.order_id = #{orderNo} oi.order_id = #{orderNo}
and and
oi.organ_id = #{organId} oi.organ_id = #{organId}
and oi.plate_id != 0
and and
op.id not in ( op.id not in (
select DISTINCT oi2.plate_id select DISTINCT oi2.plate_id
@@ -41,10 +41,24 @@
</update> </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" <select id="selectStatusById" resultType="com.cf.imes.module.manage.controller.admin.process.vo.ProcessStepStatus"
parameterType="java.lang.Object"> parameterType="java.lang.Object">
select distinct select distinct
ops.order_id as orderId,
opsi.status as processStepItemStatus, opsi.status as processStepItemStatus,
ops.status as processStepStatus, ops.status as processStepStatus,
ops.type as type 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_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_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 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>
<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> </mapper>
@@ -40,6 +40,7 @@
<result property="orderId" column="orderId"/> <result property="orderId" column="orderId"/>
<!-- <result property="processStepItemId" column="stepItemId"/>--> <!-- <result property="processStepItemId" column="stepItemId"/>-->
<result property="customOrderNo" column="customOrderNo"/> <result property="customOrderNo" column="customOrderNo"/>
<result property="goodsId" column="goodsId"/>
<result property="customer" column="customer"/> <result property="customer" column="customer"/>
<result property="address" column="address"/> <result property="address" column="address"/>
<result property="processStatus" column="processStatus"/> <result property="processStatus" column="processStatus"/>
@@ -56,6 +57,7 @@
select distinct select distinct
og.id as goodsId,
ops.order_id as orderId, ops.order_id as orderId,
o.custom_order_no as customOrderNo, o.custom_order_no as customOrderNo,
o.customer as customer, o.customer as customer,
@@ -70,7 +72,7 @@
from order_process_step ops 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 `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 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> <where>
ops.organ_id = #{organId} ops.organ_id = #{organId}
@@ -83,7 +85,7 @@
and opsi.status = #{pageReqVO.processStatus} and opsi.status = #{pageReqVO.processStatus}
</if> </if>
<if test="pageReqVO.orderId != null"> <if test="pageReqVO.orderId != null">
and ops.order_id = #{pageReqVO.orderId} and ops.order_id like concat('%',#{pageReqVO.orderId},'%')
</if> </if>
<if test="pageReqVO.customOrderNo != null"> <if test="pageReqVO.customOrderNo != null">
and o.custom_order_no like concat('%', #{pageReqVO.customOrderNo},'%') 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"> <resultMap id="priceResultMap" type="com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO">
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="priceRate" column="piece_rate"/> <result property="processId" column="processId"/>
<result property="num" column="total_piece_num"/> <result property="priceRate" column="priceRate"/>
<result property="priceType" column="piece_type"/> <result property="num" column="num"/>
<result property="amount" column="total_piece_rate"/> <result property="priceType" column="priceType"/>
<result property="amount" column="amount"/>
<result property="manager" column="manager"/> <result property="manager" column="manager"/>
</resultMap> </resultMap>
@@ -116,27 +119,23 @@
resultMap="priceResultMap" resultMap="priceResultMap"
parameterType="map"> parameterType="map">
select ops.name as name , select distinct
ops.piece_rate as piece_rate , ops.processinfo_id as processId,
ops.piece_type as piece_type, ops.name as name ,
ops.piece_rate as priceRate ,
ops.piece_type as priceType ,
ops.manager as manager, ops.manager as manager,
SUM(CASE (case when ops.type = 7 then count(distinct ops.id , opsi.name)
WHEN ops.piece_type = 1 THEN ops.piece_rate else count(distinct ops.id) end) as num
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
from order_process_step ops 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> <where>
ops.organ_id =#{organId}
<if test="pageReqVO.creator != null"> <if test="pageReqVO.manager != null">
and ops.manager = #{pageReqVO.creator} and ops.manager = #{pageReqVO.manager}
</if> </if>
<if test="pageReqVO.name != null"> <if test="pageReqVO.name != null">
and ops.name = #{pageReqVO.name} and ops.name = #{pageReqVO.name}
@@ -148,11 +147,10 @@
and ops.piece_rate &lt;&gt; 0 and ops.piece_rate &lt;&gt; 0
</if> </if>
and ops.status = true and ops.status = true
and ops.organ_id =#{organId}
and ops.manager != '' and ops.manager != ''
</where> </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> </select>
@@ -193,13 +191,25 @@
select distinct case when ops.piece_type = 1 then ops.piece_rate * count(distinct opsi.name) select distinct case when ops.type = 7 then #{pieceRate} * count(distinct opsi.name)
else ROUND(ops.piece_rate * ROUND((op.size/ #{area}),3),3) end as rate else ROUND(ops.piece_rate * #{area},3) end as rate
from order_process_step ops 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_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} and ops.organ_id = #{organId}
where ops.id = #{processStepId} group by ops.type,piece_rate;
group by ops.piece_type,piece_rate,op.size;
</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> </select>
@@ -4,7 +4,11 @@
<resultMap id="partsMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO"> <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="model" column="model"/>
<result property="spec" column="spec"/> <result property="spec" column="spec"/>
<result property="num" column="num"/> <result property="num" column="num"/>
@@ -20,6 +24,7 @@
select distinct select distinct
op.id as partsId,
op.name as name, op.name as name,
op.model as model, op.model as model,
op.spec as spec, op.spec as spec,
@@ -27,6 +32,9 @@
op.brand as brand, op.brand as brand,
op.material as material, op.material as material,
op.factory as factory, op.factory as factory,
op.type as type,
op.remark as remark,
op.is_composite as isComposite,
oi.num as num oi.num as num
from order_parts op from order_parts op
@@ -62,13 +70,11 @@
select distinct 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 from order_parts op
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id 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 where op.organ_id = #{organId} and 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;
</select> </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" <update id="deleteOrderParts"
parameterType="java.lang.Long"> parameterType="java.lang.Long">
@@ -72,19 +72,19 @@
o.address as address, o.address as address,
o.salesman as salesman, o.salesman as salesman,
o.splitter as splitter, o.splitter as splitter,
o.status as status o.status as status,
count(distinct oi.plate_id) as totalPieceCount
FROM `orders` o FROM `orders` o
join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id
WHERE WHERE
o.organ_id = #{organId} and o.organ_id = #{organId} and oi.plate_id != 0 and
o.id in o.id in
<foreach item="id" collection="collect" open="(" separator="," close=")"> <foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>
group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,status
</select> </select>
@@ -108,7 +108,7 @@
<resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO"> <resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO">
<result property="customOrderNo" column="customOrderNo"/> <result property="customOrderNo" column="customOrderNo"/>
<result property="dealer" column="dealer"/> <result property="dealer" column="dealer"/>
<result property="orderNo" column="orderNo"/> <result property="orderId" column="orderNo"/>
<result property="packNo" column="packNo"/> <result property="packNo" column="packNo"/>
<result property="packNum" column="packNum"/> <result property="packNum" column="packNum"/>
<result property="address" column="address"/> <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") @PostMapping("/create")
@Operation(summary = "创建组织") @Operation(summary = "创建组织")
@PreAuthorize("@ss.hasPermission('system:organ:create')") @PreAuthorize("@ss.hasPermission('organizationLIst:create')")
public CommonResult<Long> createOrgan(@Valid @RequestBody OrganSaveReqVO createReqVO) { public CommonResult<Long> createOrgan(@Valid @RequestBody OrganSaveReqVO createReqVO) {
return success(organService.createOrgan(createReqVO)); return success(organService.createOrgan(createReqVO));
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新组织") @Operation(summary = "更新组织")
@PreAuthorize("@ss.hasPermission('system:organ:update')") @PreAuthorize("@ss.hasPermission('organizationLIst:update')")
public CommonResult<Boolean> updateOrgan(@Valid @RequestBody OrganSaveReqVO updateReqVO) { public CommonResult<Boolean> updateOrgan(@Valid @RequestBody OrganSaveReqVO updateReqVO) {
organService.updateOrgan(updateReqVO); organService.updateOrgan(updateReqVO);
return success(true); return success(true);
@@ -84,7 +84,7 @@ public class OrganController {
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除组织") @Operation(summary = "删除组织")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @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) { public CommonResult<Boolean> deleteOrgan(@RequestParam("id") Long id) {
organService.deleteOrgan(id); organService.deleteOrgan(id);
return success(true); return success(true);
@@ -93,7 +93,7 @@ public class OrganController {
@GetMapping("/get") @GetMapping("/get")
@Operation(summary = "获得组织") @Operation(summary = "获得组织")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @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) { public CommonResult<OrganRespVO> getOrgan(@RequestParam("id") Long id) {
OrganizationDO organ = organService.getOrgan(id); OrganizationDO organ = organService.getOrgan(id);
TenantPackageDO tenantPackageDO = tenantPackageMapper.selectById(organ.getPackageId()); TenantPackageDO tenantPackageDO = tenantPackageMapper.selectById(organ.getPackageId());
@@ -104,7 +104,7 @@ public class OrganController {
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "获得组织分页") @Operation(summary = "获得组织分页")
@PreAuthorize("@ss.hasPermission('system:organ:query')") @PreAuthorize("@ss.hasPermission('organizationLIst:query')")
public CommonResult<PageResult<OrganRespVO>> getOrganPage(@Valid OrganPageReqVO pageVO) { public CommonResult<PageResult<OrganRespVO>> getOrganPage(@Valid OrganPageReqVO pageVO) {
PageResult<OrganizationDO> pageResult = organService.getOrganPage(pageVO); PageResult<OrganizationDO> pageResult = organService.getOrganPage(pageVO);
if(CollectionUtil.isEmpty(pageResult.getList())) { if(CollectionUtil.isEmpty(pageResult.getList())) {
@@ -126,7 +126,7 @@ public class OrganController {
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出组织 Excel") @Operation(summary = "导出组织 Excel")
@PreAuthorize("@ss.hasPermission('system:organ:export')") @PreAuthorize("@ss.hasPermission('organizationLIst:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportOrganExcel(@Valid OrganPageReqVO exportReqVO, public void exportOrganExcel(@Valid OrganPageReqVO exportReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
@@ -164,6 +164,7 @@ public class OrganController {
@GetMapping({"/list-all-simple", "/simple-list"}) @GetMapping({"/list-all-simple", "/simple-list"})
@Operation(summary = "获取组织精简信息列表", description = "主要用于前端的下拉选项") @Operation(summary = "获取组织精简信息列表", description = "主要用于前端的下拉选项")
@Parameter(name = "name", description = "组织名称", required = false, example = "xxx") @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) { public CommonResult<List<OrganSimpleRespVO>> getSimpleOrganList(@RequestParam(required = false, value = "name") String name) {
return success(organService.getSimpleOrganList(name)); return success(organService.getSimpleOrganList(name));
} }
@@ -5,7 +5,7 @@ import javax.validation.Valid;
import javax.servlet.http.HttpServletResponse; 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.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated; 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; import java.time.LocalDateTime;
@Schema(description = "管理后台 - 工序用户表 process_user Response VO") @Schema(description = "管理后台 - 工序用户表")
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
public class ProcessAndUserRespVO { public class ProcessAndUserRespVO {
@Schema(description = "工序 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9416") @Schema(description = "工序名称")
@ExcelProperty("工序 ID") private String processName;
private Long processId;
@Schema(description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24517") @Schema(description = "加工人ID")
@ExcelProperty("用户 ID")
private Long userId; 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; package com.cf.imes.module.system.dal.dataobject.process;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
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 生产单金额百分比 * 计件类型: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.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; 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.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.ProcessDO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessUserDO; import com.cf.imes.module.system.dal.dataobject.process.ProcessUserDO;
import org.apache.ibatis.annotations.Mapper; 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) .likeIfPresent(AdminUserDO::getPinyinInitial, namePyFirstChar)
.orderByDesc(AdminUserDO::getId)); .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; 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.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.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.pojo.PageResult;
@@ -68,4 +69,7 @@ public interface ProcessService {
List<ProcessDO> getAllProcess(); List<ProcessDO> getAllProcess();
List<ProcessDO> getUserProcess(Long userId); 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.common.exception.util.ServiceExceptionUtil;
import com.cf.imes.framework.organ.core.context.OrganContextHolder; 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.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.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.dataobject.process.ProcessUserDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessGroupMapper; 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.enums.ErrorCodeConstants;
import com.cf.imes.module.system.service.user.AdminUserService; import com.cf.imes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service; 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.List;
import java.util.Objects; 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.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.executor.enums.ErrorCodeConstants.CUSTOM_ORDER_EXISTS;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*; import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@@ -54,6 +59,9 @@ public class ProcessServiceImpl implements ProcessService {
@Resource @Resource
private AdminUserService adminUserService; private AdminUserService adminUserService;
@Resource
private AdminUserMapper userMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long createProcess(ProcessUserSaveReqVO createReqVO) { 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 where p.id = #{id} and p.organ_id = #{organId} and p.deleted = 0
</select> </select>
<delete id="deleteById" parameterType="java.lang.Long"> <delete id="deleteById" parameterType="java.lang.Long">
DELETE FROM process DELETE FROM process
WHERE id = #{id}; WHERE id = #{id};
</delete> </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> </mapper>