外协订单结算-结算异常Tab-更新数据

liweidong
张乾翔 2 months ago
parent 909afcfae5
commit 4b08114efa
  1. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java
  2. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.java
  3. 34
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
  4. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java
  5. 55
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java

@ -250,4 +250,15 @@ public class OemStatementController extends BladeController {
return mesOemStatementService.matchStandardProcessCode(); return mesOemStatementService.matchStandardProcessCode();
} }
/**
* 更新订单数据错误的数据
*/
@PostMapping("/updateOrderDataError")
@ApiOperationSupport(order = 16)
@Operation(summary = "更新订单数据错误", description = "根据生产订单和车间订单更新结算异常数据")
@ApiLog("外协结算 更新订单数据错误")
public R updateOrderDataError() {
return mesOemStatementService.updateOrderDataError();
}
} }

@ -59,4 +59,11 @@ public interface OemStatementMapper extends BaseMapper<OemStatementEntity> {
* @return List<StatementVO> * @return List<StatementVO>
*/ */
List<StatementVO> selectErrorStatements(); List<StatementVO> selectErrorStatements();
/**
* 查询订单数据错误的结算异常数据
*
* @return List<StatementVO>
*/
List<StatementVO> selectOrderDataErrorStatements();
} }

@ -290,4 +290,38 @@
WHERE h.IS_DELETED = 0 WHERE h.IS_DELETED = 0
AND h.ROS_STATUS = 3 AND h.ROS_STATUS = 3
</select> </select>
<!-- 查询订单数据错误的结算异常数据 -->
<select id="selectOrderDataErrorStatements" resultMap="StatementVOResultMap">
SELECT
h.ID,
h.WP_ID,
a.WO_ID as woId,
a.OC_ID as ocId,
a.pps_id as ps_id,
e.YO_ID as yoId,
e.PART_CODE,
p.PART_NAME,
e.PLATE,
e.PLATE_THICKNESS1 as PLATE_THICKNESS,
e.YP_AREA,
e.TSB_NUM,
e.TSD_NUM,
e.TJT_NUM,
d.MAKE_QTY,
c.CODE as OC_CODE,
c.OC_NAME,
h.ROS_STATUS,
h.MEMO
FROM MES_OEM_STATEMENT h
INNER JOIN MES_WORK_PLAN a ON h.WP_ID = a.ID AND a.IS_DELETED = 0
INNER JOIN BS_OEM c ON a.OC_ID = c.ID AND c.IS_DELETED = 0
INNER JOIN MES_WORK_ORDER d ON a.WO_ID = d.ID AND d.IS_DELETED = 0
INNER JOIN MES_YIELD_ORDER e ON d.YO_ID = e.ID AND e.IS_DELETED = 0
INNER JOIN DS_PART_VERSION pv ON e.part_code = pv.part_code AND e.part_version = pv.part_version AND pv.IS_DELETED = 0
INNER JOIN DS_PART p ON pv.PART_ID = p.ID AND p.IS_DELETED = 0
WHERE h.IS_DELETED = 0
AND h.ROS_STATUS = 3
AND h.MEMO LIKE '%订单数据错误%'
</select>
</mapper> </mapper>

@ -106,4 +106,13 @@ public interface IOemStatementService extends BaseService<OemStatementEntity> {
R matchStandardProcessCode(); R matchStandardProcessCode();
/**
* 更新订单数据错误的数据
* 根据生产订单更新镀种镀层厚度1单件面积总面积涂色标个数涂色带个数涂箭头个数
* 根据车间订单更新厂家
*
* @return
*/
R updateOrderDataError();
} }

@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -57,6 +58,7 @@ import java.util.stream.Collectors;
* @author qyl * @author qyl
* @since 2026-02-12 * @since 2026-02-12
*/ */
@Slf4j
@Service @Service
public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, OemStatementEntity> implements IOemStatementService { public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, OemStatementEntity> implements IOemStatementService {
@ -2081,4 +2083,57 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
} }
@Override
public R updateOrderDataError() {
// 询所有【结算异常】状态且异常原因包含"订单数据错误"的数据
List<StatementVO> errorStatements = baseMapper.selectOrderDataErrorStatements();
if (CollectionUtils.isEmpty(errorStatements)) {
return R.success("没有需要更新的订单数据错误记录");
}
// 更新数据
List<OemStatementEntity> updateList = new ArrayList<>();
for (StatementVO vo : errorStatements) {
OemStatementEntity entity = new OemStatementEntity();
entity.setId(vo.getId());
// 根据生产订单(MES_YIELD_ORDER)更新字段
// 镀种
entity.setPlate(vo.getPlate());
// 镀层厚度1
entity.setRosThickness(new BigDecimal(vo.getPlateThickness() != null ? vo.getPlateThickness() : "0"));
// 单件面积
entity.setYpArea(vo.getYpArea() != null ? vo.getYpArea() : BigDecimal.ZERO);
// 计算总面积 = 单件面积 * 结算数量
BigDecimal ypArea = vo.getYpArea() != null ? vo.getYpArea() : BigDecimal.ZERO;
BigDecimal makeQty = vo.getMakeQty() != null ? vo.getMakeQty() : BigDecimal.ZERO;
BigDecimal totalArea = ypArea.multiply(makeQty);
// 总面积
entity.setTotalArea(totalArea);
// 涂色标个数
entity.setTsbNum(vo.getTsbNum());
// 涂色带个数
entity.setTsdNum(vo.getTsdNum());
// 涂箭个数
entity.setTjtNum(vo.getTjtNum());
// 结算数量
entity.setMakeQty(makeQty);
// 根据车间订单(MES_WORK_ORDER通过MES_WORK_PLAN关联)更新厂家
// 外协厂家ID
entity.setOcId(vo.getOcId());
entity.setUpdateTime(new Date());
updateList.add(entity);
}
// 更新
if (!CollectionUtils.isEmpty(updateList)) {
this.updateBatchById(updateList);
}
return R.success();
}
} }

Loading…
Cancel
Save