Merge remote-tracking branch 'origin/main'

This commit is contained in:
gaoqr
2024-06-18 17:56:35 +08:00
20 changed files with 200 additions and 43 deletions
@@ -22,11 +22,11 @@ public class PlateResList {
private String plateName;
@Schema(description = "商品颜色")
private String color;
@Schema(description = "商品")
@Schema(description = "小板")
private String width;
@Schema(description = "商品")
@Schema(description = "小板")
private String height;
@Schema(description = "商品")
@Schema(description = "小板")
private String thickness;
@Schema(description = "是否异形")
private Boolean isSpecialShaped;
@@ -2,6 +2,8 @@ package com.cf.imes.module.executor.dal.dataobject.process;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@@ -50,7 +52,7 @@ public class OrderProcessDO extends BaseDO {
/**
* 板材大小
*/
private Double size;
private BigDecimal size;
/**
* 下一工序 ID
*/
@@ -1,5 +1,6 @@
package com.cf.imes.module.executor.dal.mysql.plate;
import java.math.BigDecimal;
import java.util.*;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -108,4 +109,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
void updateDeletedById(@Param("bodyId") Long bodyId, @Param("deleted") Integer deleted, @Param("organId") Long organId);
int countPlateByOrderId(@Param("orderId") Long orderId, @Param("organId") Long organId, @Param("deleted") Integer deleted);
BigDecimal selectPlateSize( @Param("orderId") Long orderId);
}
@@ -5,11 +5,13 @@ import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO;
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.executor.dal.mysql.processStep.ProcessStepMapper;
import com.cf.imes.module.executor.dal.mysql.processStepItem.ProcessStepItemMapper;
import com.cf.imes.module.executor.enums.OrderStatusEnum;
@@ -31,6 +33,7 @@ import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.executor.dal.mysql.process.OrderProcessMapper;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -72,6 +75,9 @@ public class OrderProcessServiceImpl implements OrderProcessService {
@Resource
private OrderBodyMapper orderBodyMapper;
@Resource
private PlateMapper plateMapper;
private static Integer INDEX = 0;
@Override
@@ -91,7 +97,11 @@ public class OrderProcessServiceImpl implements OrderProcessService {
}
// 插入
Long orderProcessId = (Long) identifierGenerator.nextId(null);
OrderProcessDO orderProcess = BeanUtils.toBean(createReqVO, OrderProcessDO.class).setId(orderProcessId);
// 查询当前订单对应的总板材大小
BigDecimal size = plateMapper.selectPlateSize(createReqVO.getOrderId());
OrderProcessDO orderProcess = BeanUtils.toBean(createReqVO, OrderProcessDO.class).setId(orderProcessId).setSize(size);
List<ProcessStepDO> processStepDOS = new ArrayList<>();
@@ -29,7 +29,7 @@
<select id="selectPlateByPlanId"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList">
select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt, e.material, e.color, e.width, e.height, e.thickness, b.room_id, b.body_id
select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id
from order_plate a
LEFT JOIN order_item b ON a.id = b.plate_id AND a.order_id = b.order_id and a.organ_id = b.organ_id
LEFT JOIN order_goods e ON e.id = a.goods_id AND e.order_id = a.order_id and e.organ_id = a.organ_id
@@ -279,4 +279,14 @@
SELECT count(*) FROM order_plate
WHERE order_id = #{orderId} AND organ_id = #{organId} AND deleted = #{deleted}
</select>
<select id="selectPlateSize" resultType="java.math.BigDecimal">
select sum(area) from order_plate where order_id = #{orderId};
</select>
</mapper>
@@ -70,11 +70,20 @@ public class PackController {
}
@GetMapping("/getOrderPlateList")
@Operation(summary = "查询多个生产单对应的板材信息")
public CommonResult<List<PlateDetailsRespVO>> getOrdersPlateList(@Valid @RequestParam List<Long> orderIds) {
return success(packService.getOrdersPlateList(orderIds));
}
@GetMapping("/getOrderPack")
@Operation(summary = "查看生产订单对应的包裹信息")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<List<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
List<OrderPackageDO> orderPack = packService.getOrderPack(reqVO);
public CommonResult<PageResult<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
PageResult<OrderPackageDO> orderPack = packService.getOrderPack(reqVO);
return success(BeanUtils.toBean(orderPack,OrderPackageVO.class));
}
@@ -93,14 +102,6 @@ public class PackController {
@GetMapping("/export")
@Operation(summary = "导出缺板")
@PreAuthorize("@ss.hasPermission('manage:pack:export')")
@@ -322,11 +323,6 @@ public class PackController {
// TODO 查询接口是否需要定义
/*
@GetMapping("/query")
@Operation(summary = "板材列表下的查询")
@@ -1,6 +1,7 @@
package com.cf.imes.module.manage.controller.admin.pack.vo;
import com.cf.imes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
@@ -9,7 +10,7 @@ import lombok.ToString;
@Schema(description = "管理后台 - 查看生产单下对应的包裹信息")
@Data
@ToString(callSuper = true)
public class PackageDetailsReqVO {
public class PackageDetailsReqVO extends PageParam {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -8,6 +8,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
@@ -40,6 +41,11 @@ public class OrderProcessStepNDO extends BaseDO {
// 计件工资
private Float pieceRate;
// 工资金额
private BigDecimal salaryAmount;
// 计件工资类型
private Integer pieceType;
@@ -25,7 +25,7 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
// }
List<OrderPackageDO> selectByOrderNo(@Param("reqVO") PackageDetailsReqVO reqVO,@Param("organId") Long organId);
IPage<OrderPackageDO> selectByOrderNo(@Param("page") IPage page,@Param("reqVO") PackageDetailsReqVO reqVO,@Param("organId") Long organId);
default OrderPackageDO selectByPackNo(String packNo,Long organId) {
@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -24,7 +25,7 @@ public interface ProcessStepItemMapper extends BaseMapperX<OrderProcessStepItemN
List<OrderModuleVO> selectPlateName(Long processStepId);
void updateStatus(@Param("id") Long id, @Param("nickname") String nickname);
void updateStatus(@Param("id") Long id, @Param("nickname") String nickname, @Param("salary")BigDecimal salary);
ProcessStepStatus selectStatusById(@Param("id") Long id,@Param("name") String name, @Param("organId") Long organId);
@@ -46,4 +47,5 @@ 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);
}
@@ -13,6 +13,7 @@ import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -29,7 +30,7 @@ public interface ProcessStepMapper extends BaseMapperX<OrderProcessStepNDO> {
void updateStatusById(@Param("id") Long id);
void updateStatusById(@Param("id") Long id, @Param("salary")BigDecimal salary);
// default List<OrderProcessStepNDO> selectProducitonList(Long orderNo) {
// return selectList(new LambdaQueryWrapperX<OrderProcessStepNDO>()
@@ -45,5 +46,5 @@ 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);
}
@@ -74,4 +74,5 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<PlateDetails> selectPlateListByBodyIds( @Param("collect") List<Long> collect,@Param("orderId") Long orderId,@Param("userOrganId") Long userOrganId);
List<PlateDetailsRespVO> selectOrdersPlateList(@Param("orderIds") List<Long> orderIds, @Param("userOrganId") Long userOrganId);
}
@@ -16,7 +16,7 @@ public interface PackService {
// 查看生产订单对应的包裹信息
List<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO);
PageResult<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO);
@@ -25,6 +25,11 @@ public interface PackService {
// 查询多个生产单对应的板材信息
List<PlateDetailsRespVO> getOrdersPlateList(List<Long> orderIds);
// 查看板材列表分页
PageResult<PlateDetailsRespVO> queryPlateDetails(OrderModuleReqVO pageReqVO);
@@ -91,5 +96,4 @@ public interface PackService {
OrderPackageDO addNewPartsPack(OrderPackReqVO reqVO);
}
@@ -10,6 +10,7 @@ import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.pack.vo.*;
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
@@ -115,10 +116,30 @@ public class PackServiceImpl implements PackService {
}
// 查询多个生产单对应的板材信息
@Override
public List<PlateDetailsRespVO> getOrdersPlateList(List<Long> orderIds) {
return orderItemMapper.selectOrdersPlateList(orderIds,getUserOrganId());
}
// 查看生产订单对应的包裹信息
@Override
public List<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO) {
return orderPackageMapper.selectByOrderNo(reqVO,getUserOrganId());
public PageResult<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO) {
PageDTO<OrderPackageDO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
IPage<OrderPackageDO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId());
if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) {
return new PageResult<>();
}
return new PageResult<>(orderPackageDOIPage.getRecords(), orderPackageDOIPage.getTotal());
}
@@ -12,9 +12,12 @@ import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.process.vo.*;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO;
import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper;
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.enums.ErrorCodeConstants;
@@ -23,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -110,7 +114,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
// 工序加工添加负责人
String nickname = getLoginUser().getNickname();
// 根据工序明细 id 查询当前生产单步骤和明细的生产状态
// 根据工序步骤 id 查询当前生产单步骤和明细的生产状态
ProcessStepStatus processStepStatuses = processStepItemMapper.selectStatusById(reqVo.getProcessStepId(),reqVo.getName(),getUserOrganId());
@@ -132,8 +136,11 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
List<OrderProcessStepItemNDO> orderProcessStepItemNDOS = processStepItemMapper.selectStemById(reqVo.getProcessStepId(),ProcessingStatusEnum.RAW.getStatus(),getUserOrganId());
if(orderProcessStepItemNDOS.isEmpty()){
// 修改生产单工序步骤表的状态
processStepMapper.updateStatusById(reqVo.getProcessStepId());
BigDecimal salary = calculateSalary(reqVo.getProcessStepId());
processStepMapper.updateStatusById(reqVo.getProcessStepId(),salary);
}
@@ -143,8 +150,9 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
try {
BigDecimal salary = calculateSalary(reqVo.getProcessStepId());
// 修改生产明细表和步骤表的工序状态
processStepItemMapper.updateStatus(reqVo.getProcessStepId(),nickname);
processStepItemMapper.updateStatus(reqVo.getProcessStepId(),nickname,salary);
}catch (Exception e){
throw ServiceExceptionUtil.exception(ErrorCodeConstants.UNPROCESSED_BEFORE_PROCESSING);
}
@@ -155,6 +163,20 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
// 计算工资金额
public BigDecimal calculateSalary(Long processStepId){
// 查询当前工序对应的板材的面积
BigDecimal area = processStepItemMapper.selectAreaByProcessStepId(processStepId);
// 计算当前工序的工资金额
BigDecimal salary = processStepMapper.calculateSalary(processStepId, area);
return salary;
}
// 查看板材信息的组合名称
@@ -27,7 +27,8 @@
SET opsi.status = TRUE,
ops.status = TRUE,
ops.finish_time = now(),
ops.manager = #{nickname}
ops.manager = #{nickname},
ops.salary_amount = #{salary}
WHERE ops.id = #{id};
@@ -84,4 +85,22 @@
</select>
<select id="selectAreaByProcessStepId" resultType="java.math.BigDecimal">
select distinct
sum(op.area)
from order_process_step_item opsi
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};
</select>
</mapper>
@@ -6,7 +6,7 @@
<update id="updateStatusById">
UPDATE order_process_step SET status = true,finish_time = now() WHERE id = #{id}
UPDATE order_process_step SET status = true,finish_time = now(),salary_amount = #{salary} WHERE id = #{id}
</update>
@@ -46,13 +46,14 @@
ops.processinfo_id as processID,
ops.type as processType
from order_process_step ops
join `orders` o on ops.order_id = o.id and ops.organ_id = o.organ_id
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
<where>
ops.organ_id = #{organId}
<if test="pageReqVO.processID != null">
and ops.processinfo_id = #{pageReqVO.processID}
</if>
@@ -74,6 +75,7 @@
</where>
order by orderId desc
</select>
@@ -85,7 +87,7 @@
<result property="num" column="total_piece_num"/>
<result property="priceType" column="piece_type"/>
<result property="amount" column="total_piece_rate"/>
<result property="manager" column="creator"/>
<result property="manager" column="manager"/>
</resultMap>
<select id="selectSalaryList"
@@ -95,7 +97,7 @@
select ops.name as name ,
ops.piece_rate as piece_rate ,
ops.piece_type as piece_type,
ops.creator as creator,
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
@@ -165,7 +167,21 @@
</select>
<!-- select ops.name as name,-->
<select id="calculateSalary" resultType="java.math.BigDecimal">
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
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};
</select>
<!-- select ops.name as name,-->
<!-- ops.status as status,-->
<!-- ops.manager as manager,-->
<!-- (CASE-->
@@ -155,7 +155,7 @@
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.organ_id
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
join order_group og on ob.id = og.body_id and ob.organ_id = og.organ_id
left join order_group og on oi.group_id = og.id and ob.organ_id = og.organ_id
where
oi.order_id = #{orderNo} and oi.organ_id = #{organId}
</select>
@@ -405,4 +405,46 @@
</select>
<select id="selectOrdersPlateList"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap">
select distinct
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as plateId,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as plateColor,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
CASE WHEN op.front_hole_count = 0 or op.back_model_count = 0 or op.side_hole_count = 0 THEN false ELSE true END AS rowHole
from order_item oi
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.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 ob.organ_id = og.organ_id
where
oi.organ_id = #{userOrganId} and
oi.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
</mapper>
@@ -22,8 +22,8 @@ public class DataSourceRespVO {
@ExcelProperty("数据源名称")
private String name;
@Schema(description = "sql", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("sql")
@Schema(description = "sqlStr", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("sqlStr")
private String sqlStr;
@Schema(description = "数据源类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@@ -6,7 +6,7 @@
<result property="name" column="name"/>
<result property="type" column="type"/>
<result property="createTime" column="create_time"/>
<result property="sql" column="sql"/>
<result property="sqlStr" column="sql_str"/>
<collection property="filedList" javaType="java.util.List" ofType="com.cf.imes.module.system.dal.dataobject.datasource.DataSourceFiledDO">
<result property="name" column="field_name"/>
<result property="sourceId" column="field_source_id"/>