diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java index 7a613c89..56d00570 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java @@ -34,8 +34,10 @@ import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.dto.CusTargetRateDTO; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; import com.qs.serve.modules.tbs.mapper.*; +import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper; +import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -64,9 +66,11 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { private BirActivityCenterGoodsMapper birActivityCenterGoodsMapper; private TbsActivityCenterMapper tbsActivityCenterMapper; private TzcPolicyItemMapper tzcPolicyItemMapper; + private TzcPolicyMapper tzcPolicyMapper; private TbsBudgetLogMapper tbsBudgetLogMapper; private BmsSupplierTargetMapper bmsSupplierTargetMapper; private TbsScheduleItemMapper tbsScheduleItemMapper; + private TbsCostApplyMapper tbsCostApplyMapper; @Override public List findCostCenterDataByCostApplyId(Long costApplyId,Long policyId){ @@ -78,11 +82,11 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { if (tbsActivityCenters.size() == 0) { return centerDataList; } - + TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId); Map> centerMapList = tbsActivityCenters.stream().collect(Collectors.groupingBy(a -> a.getCenterType() + "-" + a.getCenterId())); List centerList = centerMapList.values().stream().map(a -> a.get(0)).collect(Collectors.toList()); for(TbsActivityCenter center : centerList) { - TbsCostSubItem.CostCenterTranStr costCenter = this.buildCostCenter(center.getCenterType(), center.getCenterId(), center.getCenterName()); + TbsCostSubItem.CostCenterTranStr costCenter = this.buildCostCenter(center.getCenterType(), center.getCenterId(), center.getCenterName(),costApply.getSupplierCode()); costCenter.setCenterId(center.getCenterId()); costCenter.setCentertype(center.getCenterType()); costCenter.setCenterCode(center.getCenterCode()); @@ -90,13 +94,14 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { } } if(policyId!=null) { + TzcPolicy policy = tzcPolicyMapper.selectById(policyId); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TzcPolicyItem::getPolicyId,policyId); List policyItems = tzcPolicyItemMapper.selectList(lqw); Map> centerMapList = policyItems.stream().collect(Collectors.groupingBy(a -> a.getCenterType() + "-" + a.getCenterId())); List centerList = centerMapList.values().stream().map(a -> a.get(0)).collect(Collectors.toList()); for(TzcPolicyItem center : centerList) { - TbsCostSubItem.CostCenterTranStr costCenter = this.buildCostCenter(center.getCenterType(), center.getCenterId(), center.getCenterName()); + TbsCostSubItem.CostCenterTranStr costCenter = this.buildCostCenter(center.getCenterType(), center.getCenterId(), center.getCenterName(),policy.getSupplierCode()); costCenter.setCenterId(center.getCenterId()); costCenter.setCentertype(center.getCenterType()); costCenter.setCenterCode(center.getCenterCode()); @@ -216,11 +221,12 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { } //创建客户的费率 if(StringUtils.hasText(supplierCode)){ - try { this.buildCustomerCenterTargetData(centerType, centerId, costCenter, supplierCode, dispatchSumVos); - } catch (Exception e) { - log.error("[{}]创建客户成本中心的费率出现异常:{}",supplierCode,e.getMessage()); - } +// try { +// this.buildCustomerCenterTargetData(centerType, centerId, costCenter, supplierCode, dispatchSumVos); +// } catch (Exception e) { +// log.error("[{}]创建客户成本中心的费率出现异常:{}",supplierCode,e.getMessage()); +// } } return costCenter; } @@ -285,11 +291,19 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { //计算客户维度费率 costCenter.setQtdCusCenterCost(totalCostQty.toString()); costCenter.setQtdCusCenterSend(totalDispatchQty.toString()); - costCenter.setQtdCusCenterExpenseRate(totalCostQty.divide(totalDispatchQty,RoundingMode.DOWN).toString()); + String qtyCusCenterRateString = null; + if(totalDispatchQty.compareTo(BigDecimal.ZERO) != 0){ + qtyCusCenterRateString = totalCostQty.divide(totalDispatchQty,RoundingMode.DOWN).toString(); + } + costCenter.setQtdCusCenterExpenseRate(qtyCusCenterRateString); costCenter.setQtdCusCenterTargetExpenseRate(targetRateDTO.getCusTargetRateQty()); costCenter.setYtdCusCenterCost(totalCostYear.toString()); costCenter.setYtdCusCenterSend(totalDispatchYear.toString()); - costCenter.setYtdCusCenterExpenseRate(totalCostYear.divide(totalDispatchYear,RoundingMode.DOWN).toString()); + String ytdCusCenterRateString = null; + if(totalDispatchYear.compareTo(BigDecimal.ZERO) != 0){ + ytdCusCenterRateString = totalCostYear.divide(totalDispatchYear,RoundingMode.DOWN).toString(); + } + costCenter.setYtdCusCenterExpenseRate(ytdCusCenterRateString); costCenter.setYtdCusCenterTargetExpenseRate(targetRateDTO.getCusTargetRate()); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java new file mode 100644 index 00000000..63222177 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsApplyMessageController.java @@ -0,0 +1,114 @@ +package com.qs.serve.modules.bms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.bms.entity.BmsApplyMessage; +import com.qs.serve.modules.bms.service.BmsApplyMessageService; + +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 基础档案 申请信息 + * @author YenHex + * @since 2023-09-18 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("bms/applyMessage") +public class BmsApplyMessageController { + + private BmsApplyMessageService bmsApplyMessageService; + + /** + * 业务类型 下拉框 + * @return + */ + @GetMapping("/option") + public R option(){ + Map options = new HashMap<>(); + options.put("CostBill","费用申请"); + options.put("CheckCost","核销申请"); + options.put("ReleasePolicy","政策申请"); + return R.ok(options); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(BmsApplyMessage param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = bmsApplyMessageService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.BASE, title = "申请信息", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + BmsApplyMessage bmsApplyMessage = bmsApplyMessageService.getById(id); + return R.ok(bmsApplyMessage); + } + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.BASE, title = "申请信息", biz = BizType.UPDATE) + public R updateById(@RequestBody @Valid BmsApplyMessage param){ + boolean result = bmsApplyMessageService.updateById(param); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.BASE, title = "申请信息", biz = BizType.INSERT) + public R save(@RequestBody @Valid BmsApplyMessage param){ + boolean result = bmsApplyMessageService.save(param); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.BASE, title = "申请信息", biz = BizType.DELETE) + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = bmsApplyMessageService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java new file mode 100644 index 00000000..aebdcb6e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsApplyMessage.java @@ -0,0 +1,105 @@ +package com.qs.serve.modules.bms.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 申请信息 实体类 + * @author YenHex + * @since 2023-09-18 + */ +@Data +@TableName("bms_apply_message") +public class BmsApplyMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 业务类型 */ + @NotBlank(message = "业务类型不能为空") + @Length(max = 30,message = "业务类型长度不能超过30字") + private String type; + + /** 表达式 */ + @NotBlank(message = "表达式不能为空") + @Length(max = 255,message = "表达式长度不能超过255字") + private String express; + + /** 启用状态 */ + private Integer enableFlag; + + /** 信息 */ + @NotBlank(message = "信息不能为空") + @Length(max = 255,message = "信息长度不能超过255字") + private String message; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + + public static BmsApplyMessage toNewObject(BmsApplyMessage source){ + BmsApplyMessage applyMessage = new BmsApplyMessage(); + applyMessage.setId(source.getId()); + applyMessage.setType(source.getType()); + applyMessage.setExpress(source.getExpress()); + applyMessage.setEnableFlag(source.getEnableFlag()); + applyMessage.setMessage(source.getMessage()); + applyMessage.setRemark(source.getRemark()); + applyMessage.setCreateTime(source.getCreateTime()); + applyMessage.setUpdateTime(source.getUpdateTime()); + applyMessage.setTenantId(source.getTenantId()); + applyMessage.setCreateBy(source.getCreateBy()); + applyMessage.setUpdateBy(source.getUpdateBy()); + applyMessage.setDelFlag(source.getDelFlag()); + return applyMessage; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsApplyMessageMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsApplyMessageMapper.java new file mode 100644 index 00000000..74f96591 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsApplyMessageMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.bms.entity.BmsApplyMessage; + +/** + * 申请信息 Mapper + * @author YenHex + * @date 2023-09-18 + */ +public interface BmsApplyMessageMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsApplyMessageService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsApplyMessageService.java new file mode 100644 index 00000000..1d79a6ce --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsApplyMessageService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.bms.entity.BmsApplyMessage; + +/** + * 申请信息 服务接口 + * @author YenHex + * @date 2023-09-18 + */ +public interface BmsApplyMessageService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java new file mode 100644 index 00000000..7c3da579 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsApplyMessageServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.bms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.bms.entity.BmsApplyMessage; +import com.qs.serve.modules.bms.service.BmsApplyMessageService; +import com.qs.serve.modules.bms.mapper.BmsApplyMessageMapper; + +/** + * 申请信息 服务实现类 + * @author YenHex + * @since 2023-09-18 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BmsApplyMessageServiceImpl extends ServiceImpl implements BmsApplyMessageService { + +} + diff --git a/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java b/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java index 558b4e37..ab070cec 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java +++ b/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java @@ -3,10 +3,7 @@ package com.qs.serve.modules.seeyon; import com.qs.serve.common.config.properties.ProjectProperties; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; -import com.qs.serve.common.util.AuthContextUtils; -import com.qs.serve.common.util.CollectionUtil; -import com.qs.serve.common.util.JsonUtil; -import com.qs.serve.common.util.ServletUtils; +import com.qs.serve.common.util.*; import com.qs.serve.controller.util.SyKeyLoginUtil; import com.qs.serve.modules.seeyon.entity.CtpAffair; import com.qs.serve.modules.seeyon.entity.bo.CheckTargetDTO; @@ -196,6 +193,12 @@ public class SeeYonController { */ @GetMapping("listCheckList") public R> listAllCha(SeeYonApproveQuery query){ + String orderType = PageUtil.getOrderType(); + String orderProp = PageUtil.getOrderProp(); + if(orderProp==null||orderType==null){ + query.setOrderType(null); + query.setOrderProp(null); + } R result = seeYonRequestBaseService.postBase(TbsSeeYonConst.API_LIST_CHECK,query,""); if(result.getStatus()==200){ PageVo pageVo = JsonUtil.jsonToPojo(result.getData(),PageVo.class); diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java b/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java index a2632fea..1af4e70e 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java @@ -79,4 +79,10 @@ public class SeeYonApproveQuery { private Integer pageSize; + /** 排序字段(该接口,只支持 applyTime、commitTime) */ + private String orderProp; + + /** 排序类型:asc,desc */ + private String orderType; + } diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java index d7f981f1..1f6974f5 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java @@ -32,10 +32,12 @@ public class TagInfo implements Serializable { private Long id; /** 标签名 */ + @TableField(condition = SqlCondition.LIKE) private String tagCode; /** 标签名 */ @Length(max = 255,message = "标签名长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String tagName; /** 标签类目id */ @@ -43,6 +45,7 @@ public class TagInfo implements Serializable { /** 标签类目名称 */ @Length(max = 255,message = "标签类目名称长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String tagCategoryName; /** 工作类别 */ diff --git a/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml b/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml index 3a727155..ad391a56 100644 --- a/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml +++ b/src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml @@ -160,11 +160,13 @@ key_num, sum(split_amount) as total_cost_amt, sum(split_release_amount) as total_release_amt, - sum(split_used_amount) as total_used_amt, + sum(split_used_amount) as total_used_amt from bir_activity_center_goods - where supplier_code = '' - and center_type = '' - and center_code = '' + where supplier_code = #{query.supplierCode} + and center_type = #{query.centerType} + and center_id = #{query.centerId} + and key_num <=#{query.endYearMonth} + and key_num >=#{query.startYearMonth} group by key_num diff --git a/src/main/resources/mapper/vtb/VtbVerReportMapper.xml b/src/main/resources/mapper/vtb/VtbVerReportMapper.xml index 87fdbb95..dcc27b6d 100644 --- a/src/main/resources/mapper/vtb/VtbVerReportMapper.xml +++ b/src/main/resources/mapper/vtb/VtbVerReportMapper.xml @@ -12,8 +12,8 @@ and tbs_cost_apply.cancel_flag = 0 and `tbs_activity`.`activity_code` like concat('%',#{query.activityCode},'%') and `tbs_activity`.`act_title` like concat('%',#{query.activityTitle},'%') - and `tbs_cost_apply`.`submit_time` >= #{query.queryStartSubmitTime} - and `tbs_cost_apply`.`submit_time` <= #{query.queryEndSubmitTime} + and `tbs_cost_apply`.`submit_time` >= #{query.queryStartSubmitTime} + and `tbs_cost_apply`.`submit_time` <= #{query.queryEndSubmitTime} and `tbs_cost_apply`.`supplier_code` like concat('%',#{query.supplierCode},'%') and `tbs_cost_apply`.`supplier_name` like concat('%',#{query.supplierName},'%') and `tbs_cost_apply`.`code` like concat('%',#{query.costApplyCode},'%')