diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/controller/AccountingController.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/controller/AccountingController.java new file mode 100644 index 00000000..25d4a409 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/controller/AccountingController.java @@ -0,0 +1,390 @@ + + +package jnpf.accounting.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import jnpf.base.ActionResult; +import jnpf.base.vo.PageListVO; +import jnpf.base.vo.PaginationVO; +import jnpf.base.UserInfo; +import jnpf.base.vo.DownloadVO; +import jnpf.config.ConfigValueUtil; +import jnpf.exception.DataException; +import jnpf.saleorder.entity.SaleorderitemEntity; +import jnpf.saleorder.entity.Salesorder_item0Entity; +import jnpf.vehicle.entity.VehicleEntity; +import org.springframework.transaction.annotation.Transactional; +import jnpf.base.entity.ProvinceEntity; +import jnpf.accounting.model.accounting.*; +import jnpf.accounting.model.accounting.AccountingPagination; +import jnpf.entity.*; +import jnpf.util.*; +import jnpf.base.util.*; +import jnpf.base.vo.ListVO; +import jnpf.util.context.SpringContext; +import cn.hutool.core.util.ObjectUtil; +import lombok.extern.slf4j.Slf4j; +import lombok.Cleanup; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import jnpf.accounting.entity.AccountingEntity; +import jnpf.accounting.service.AccountingService; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.multipart.MultipartFile; +import javax.validation.Valid; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import jnpf.util.GeneraterSwapUtil; +import java.util.*; + +import jnpf.util.file.UploadUtil; +import jnpf.util.enums.FileTypeEnum; + +/** + * + * accounting + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Slf4j +@RestController +@Api(tags = "accounting" , value = "example") +@RequestMapping("/api/example/Accounting") +public class AccountingController { + + @Autowired + private GeneraterSwapUtil generaterSwapUtil; + + @Autowired + private ConfigValueUtil configValueUtil; + + @Autowired + private UserProvider userProvider; + + @Autowired + private AccountingService accountingService; + + + + + /** + * 列表 + * + * @param accountingPagination + * @return + */ + @PostMapping("/getList") + public ActionResult list(@RequestBody AccountingPagination accountingPagination)throws IOException{ + List list= accountingService.getList(accountingPagination); + //处理id字段转名称,若无需转或者为空可删除 + for(AccountingEntity entity:list){ + } + List listVO=JsonUtil.getJsonToList(list,AccountingListVO.class); + for(AccountingListVO accountingVO:listVO){ + } + + + PageListVO vo=new PageListVO(); + vo.setList(listVO); + PaginationVO page=JsonUtil.getJsonToBean(accountingPagination,PaginationVO.class); + vo.setPagination(page); + return ActionResult.success(vo); + } + + + /** + * 创建 + * + * @param accountingCrForm + * @return + */ + @PostMapping + @Transactional + public ActionResult create(@RequestBody @Valid AccountingCrForm accountingCrForm) throws DataException { + String mainId =RandomUtil.uuId(); + UserInfo userInfo=userProvider.get(); + + QueryWrapper accountingWrapper=new QueryWrapper<>(); + accountingWrapper.lambda().eq(AccountingEntity::getFiscalYear,accountingCrForm.getFiscalYear()); + accountingWrapper.lambda().eq(AccountingEntity::getIntervals,accountingCrForm.getIntervals()); + + List accountingEntityList = accountingService.list(accountingWrapper); + if (accountingEntityList.size()>0){ + return ActionResult.fail("已经存在该会计年度的会计期间"); + }else { + accountingCrForm.setCreatorUserName(userInfo.getUserId()); + accountingCrForm.setCreatorTime(DateUtil.getNow()); + AccountingEntity entity = JsonUtil.getJsonToBean(accountingCrForm, AccountingEntity.class); + entity.setId(mainId); + entity.setStatus("0"); + entity.setStatus("0"); + entity.setEndDate(accountingCrForm.getEndDate()); + accountingService.save(entity); + return ActionResult.success("创建成功"); + } + +} + + + + /** + * 模板下载 + * + * @return + */ + @ApiOperation("模板下载") + @GetMapping("/templateDownload") + public ActionResult TemplateDownload(){ + UserInfo userInfo=userProvider.get(); + DownloadVO vo=DownloadVO.builder().build(); + try{ + vo.setName("职员信息.xlsx"); + vo.setUrl(UploaderUtil.uploaderFile("/api/Common/DownloadModel?encryption=" ,userInfo.getId()+"#"+"职员信息.xlsx"+"#"+"Temporary")); + }catch(Exception e){ + log.error("信息导出Excel错误:{}" ,e.getMessage()); + } + return ActionResult.success(vo); + } + /** + * 导出Excel + * + * @return + */ + @ApiOperation("导出Excel") + @GetMapping("/Actions/Export") + public ActionResult Export(AccountingPaginationExportModel accountingPaginationExportModel) throws IOException { + if (StringUtil.isEmpty(accountingPaginationExportModel.getSelectKey())){ + return ActionResult.fail("请选择导出字段"); + } + AccountingPagination accountingPagination=JsonUtil.getJsonToBean(accountingPaginationExportModel, AccountingPagination.class); + List list= accountingService.getTypeList(accountingPagination,accountingPaginationExportModel.getDataType()); + //处理id字段转名称,若无需转或者为空可删除 + for(AccountingEntity entity:list){ + } + List listVO=JsonUtil.getJsonToList(list,AccountingListVO.class); + for(AccountingListVO accountingVO:listVO){ + } + + //转换为map输出 + List>mapList=JsonUtil.getJsonToListMap(JsonUtil.getObjectToStringDateFormat(listVO,"yyyy-MM-dd HH:mm:ss")); + String[]keys=!StringUtil.isEmpty(accountingPaginationExportModel.getSelectKey())?accountingPaginationExportModel.getSelectKey().split(","):new String[0]; + UserInfo userInfo=userProvider.get(); + DownloadVO vo=this.creatModelExcel(configValueUtil.getTemporaryFilePath(),mapList,keys,userInfo); + return ActionResult.success(vo); + } + //导出表格 + public DownloadVO creatModelExcel(String path,List>list,String[]keys,UserInfo userInfo){ + DownloadVO vo=DownloadVO.builder().build(); + List entitys=new ArrayList<>(); + if(keys.length>0){ + for(String key:keys){ + switch(key){ + case "fiscalYear" : + entitys.add(new ExcelExportEntity("会计年度 2023 " ,"fiscalYear")); + break; + case "intervals" : + entitys.add(new ExcelExportEntity("会计区间 05" ,"intervals")); + break; + case "startDate" : + entitys.add(new ExcelExportEntity("开始日期 2023-05-01" ,"startDate")); + break; + case "endDate" : + entitys.add(new ExcelExportEntity("结束日期 2023-05-30" ,"endDate")); + break; + case "status" : + entitys.add(new ExcelExportEntity("0未关账 1已关账 2未核算 3已核算 4未结账 5已结账" ,"status")); + break; + default: + break; + } + } + } + + ExportParams exportParams = new ExportParams(null, "表单信息"); + exportParams.setType(ExcelType.XSSF); + try{ + @Cleanup Workbook workbook = new HSSFWorkbook(); + if (entitys.size()>0){ + workbook = ExcelExportUtil.exportExcel(exportParams, entitys, list); + } + String name = "表单信息" + DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + ".xlsx"; + + String fileName = configValueUtil.getTemporaryFilePath() + name; + @Cleanup FileOutputStream output = new FileOutputStream(XSSEscape.escapePath(fileName)); + workbook.write(output); + //上传文件 + UploadUtil.uploadFile(configValueUtil.getFileType(), fileName, FileTypeEnum.TEMPORARY, name); + + vo.setName(name); + vo.setUrl(UploaderUtil.uploaderFile(userInfo.getId() + "#" + name + "#" + "Temporary")); + } catch (Exception e) { + log.error("信息导出Excel错误:{}", e.getMessage()); + e.printStackTrace(); + } + return vo; + } + + + /** + * 批量删除 + * + * @param ids + * @return + */ + @DeleteMapping("/batchRemove/{ids}") + @Transactional + public ActionResult batchRemove(@PathVariable("ids") String ids){ + String[] idList = ids.split(","); + int i =0; + for (String allId : idList){ + this.delete(allId); + i++; + } + if (i == 0 ){ + return ActionResult.fail("删除失败"); + } + return ActionResult.success("删除成功"); + } + + + /** + * 信息 + * + * @param id + * @return + */ + @GetMapping("/{id}") + public ActionResult info(@PathVariable("id") String id){ + AccountingEntity entity= accountingService.getInfo(id); + AccountingInfoVO vo=JsonUtil.getJsonToBean(entity, AccountingInfoVO.class); + + //子表 + //副表 + return ActionResult.success(vo); + } + + /** + * 表单信息(详情页) + * + * @param id + * @return + */ + @GetMapping("/detail/{id}") + public ActionResult detailInfo(@PathVariable("id") String id){ + AccountingEntity entity= accountingService.getInfo(id); + AccountingInfoVO vo=JsonUtil.getJsonToBean(entity, AccountingInfoVO.class); + + //子表数据转换 + + //附表数据转换 + +//添加到详情表单对象中 + + return ActionResult.success(vo); + } + + + + + /** + * 更新 + * + * @param id + * @return + */ + @PutMapping("/{id}") + @Transactional + public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid AccountingUpForm accountingUpForm) throws DataException { + UserInfo userInfo=userProvider.get(); + AccountingEntity entity= accountingService.getInfo(id); + if(entity!=null){ + AccountingEntity subentity=JsonUtil.getJsonToBean(accountingUpForm, AccountingEntity.class); + accountingService.update(id, subentity); + return ActionResult.success("更新成功"); + }else{ + return ActionResult.fail("更新失败,数据不存在"); + } + } + + + + /** + * 删除 + * + * @param id + * @return + */ + @DeleteMapping("/{id}") + @Transactional + public ActionResult delete(@PathVariable("id") String id){ + AccountingEntity entity= accountingService.getInfo(id); + if(entity!=null){ + accountingService.delete(entity); + + } + return ActionResult.success("删除成功"); + } + + + + /** + * 开启 + * + * @param id + * @return + */ + @PostMapping("/openstatus/{id}") + @Transactional + public ActionResult openstatus(@PathVariable("id") String id){ + UserInfo userInfo=userProvider.get(); + AccountingEntity entity= accountingService.getInfo(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(AccountingEntity::getId,entity.getId()); + if(entity!=null){ + entity.setStatus("1"); + accountingService.update(id, entity); + return ActionResult.success("更新成功"); + }else{ + return ActionResult.fail("更新失败,数据不存在"); + } + } + + /** + * 关闭 + * + * @param id + * @return + */ + @PostMapping("/closestatus/{id}") + @Transactional + public ActionResult closestatus(@PathVariable("id") String id){ + UserInfo userInfo=userProvider.get(); + AccountingEntity entity= accountingService.getInfo(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(AccountingEntity::getId,entity.getId()); + if(entity!=null){ + entity.setStatus("0"); + accountingService.update(id, entity); + return ActionResult.success("更新成功"); + }else{ + return ActionResult.fail("更新失败,数据不存在"); + } + } + + + + + + +} diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/entity/AccountingEntity.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/entity/AccountingEntity.java new file mode 100644 index 00000000..ced34d90 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/entity/AccountingEntity.java @@ -0,0 +1,78 @@ +package jnpf.accounting.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonProperty; + + +/** + * + * 会计核算 + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +@TableName("jg_accounting") +public class AccountingEntity { + + @TableId("ID") + private String id; + + @TableField(value = "CREATOR_USER_ID",fill = FieldFill.INSERT) + private String creatorUserId; + + @TableField(value = "CREATOR_USER_NAME",fill = FieldFill.INSERT) + private String creatorUserName; + + @TableField(value = "CREATOR_TIME",fill = FieldFill.INSERT) + private Date creatorTime; + + @TableField(value = "LAST_MODIFY_USER_ID",fill = FieldFill.INSERT_UPDATE) + private String lastModifyUserId; + + @TableField(value = "LAST_MODIFY_USER_NAME",fill = FieldFill.INSERT_UPDATE) + private String lastModifyUserName; + + @TableField(value = "LAST_MODIFY_TIME",fill = FieldFill.INSERT_UPDATE) + private Date lastModifyTime; + + @TableField(value = "DELETE_USER_ID",fill = FieldFill.UPDATE) + private String deleteUserId; + + @TableField(value = "DELETE_USER_NAME",fill = FieldFill.UPDATE) + private String deleteUserName; + + @TableField(value = "DELETE_TIME",fill = FieldFill.UPDATE) + private Date deleteTime; + + @TableField("DELETE_MARK") + @TableLogic + private String deleteMark; + + @TableField(value = "ORGNIZE_ID",fill = FieldFill.INSERT) + private String orgnizeId; + + @TableField(value = "DEPARTMENT_ID",fill = FieldFill.INSERT) + private String departmentId; + + @TableField("FISCAL_YEAR") + private String fiscalYear; + + @TableField("INTERVALS") + private String intervals; + + @TableField("START_DATE") + private Date startDate; + + @TableField("END_DATE") + private Date endDate; + + @TableField("STATUS") + private String status; + +} diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/mapper/AccountingMapper.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/mapper/AccountingMapper.java new file mode 100644 index 00000000..8a912644 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/mapper/AccountingMapper.java @@ -0,0 +1,17 @@ +package jnpf.accounting.mapper; + + +import jnpf.accounting.entity.AccountingEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * + * accounting + * 版本: V3.2.0 + * 版权: LINKAGE-BOOT + * 作者: LINKAGE-BOOT研发团队 + * 日期: 2023-06-19 + */ +public interface AccountingMapper extends BaseMapper { + +} diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingCrForm.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingCrForm.java new file mode 100644 index 00000000..de19f5ba --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingCrForm.java @@ -0,0 +1,53 @@ + + +package jnpf.accounting.model.accounting; + +import lombok.Data; + +import java.sql.Date; +import java.util.List; +import java.math.BigDecimal; +import com.fasterxml.jackson.annotation.JsonProperty; + + +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingCrForm { + + /** 会计年度 2023 **/ + @JsonProperty("fiscalYear") + private String fiscalYear; + + /** 会计区间 05 **/ + @JsonProperty("intervals") + private String intervals; + + /** 开始日期 2023-05-01 **/ + @JsonProperty("startDate") + private Date startDate; + + /** 结束日期 2023-05-30 **/ + @JsonProperty("endDate") + private Date endDate; + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 **/ + @JsonProperty("status") + private String status; + + /** 制单人 **/ + @JsonProperty("creatorUserName") + private String creatorUserName; + + /** 制单时间 **/ + @JsonProperty("creatorTime") + private String creatorTime; + + +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingInfoVO.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingInfoVO.java new file mode 100644 index 00000000..d94f58d1 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingInfoVO.java @@ -0,0 +1,48 @@ + + + +package jnpf.accounting.model.accounting; + +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.sql.Date; +import java.util.List; +import java.math.BigDecimal; + +import com.fasterxml.jackson.annotation.JsonFormat; +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingInfoVO{ + /** 主键 **/ + @JsonProperty("id") + private String id; + + /** 会计年度 2023 **/ + @JsonProperty("fiscalYear") + private String fiscalYear; + + /** 会计区间 05 **/ + @JsonProperty("intervals") + private String intervals; + + /** 开始日期 2023-05-01 **/ + @JsonProperty("startDate") + private Date startDate; + + /** 结束日期 2023-05-30 **/ + @JsonProperty("endDate") + private Date endDate; + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 **/ + @JsonProperty("status") + private String status; + +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingListQuery.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingListQuery.java new file mode 100644 index 00000000..c8e40199 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingListQuery.java @@ -0,0 +1,30 @@ +package jnpf.accounting.model.accounting; + +import lombok.Data; +import java.util.Date; +import jnpf.base.Pagination; +import java.util.List; +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingListQuery extends Pagination { + + /** 会计年度 2023 */ + private String fiscalYear; + + /** 会计区间 05 */ + private String intervals; + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 */ + private String status; + /** + * 菜单id + */ + private String menuId; +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingListVO.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingListVO.java new file mode 100644 index 00000000..109c37c5 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingListVO.java @@ -0,0 +1,54 @@ + + +package jnpf.accounting.model.accounting; + + +import lombok.Data; +import java.sql.Time; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.math.BigDecimal; +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingListVO{ + + /** 主键 */ + private String id; + + + /** 会计年度 2023 **/ + @JsonProperty("fiscalYear") + private String fiscalYear; + + + /** 会计区间 05 **/ + @JsonProperty("intervals") + private String intervals; + + + /** 开始日期 2023-05-01 **/ + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @JsonProperty("startDate") + private Date startDate; + + + /** 结束日期 2023-05-30 **/ + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @JsonProperty("endDate") + private Date endDate; + + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 **/ + @JsonProperty("status") + private String status; + + +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingPagination.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingPagination.java new file mode 100644 index 00000000..80b5586e --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingPagination.java @@ -0,0 +1,31 @@ +package jnpf.accounting.model.accounting; + + +import lombok.Data; +import jnpf.base.Pagination; +import java.util.List; + +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingPagination extends Pagination { + + /** 会计年度 2023 */ + private String fiscalYear; + + /** 会计区间 05 */ + private String intervals; + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 */ + private String status; + /** + * 菜单id + */ + private String menuId; +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingPaginationExportModel.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingPaginationExportModel.java new file mode 100644 index 00000000..51a486c8 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingPaginationExportModel.java @@ -0,0 +1,32 @@ +package jnpf.accounting.model.accounting; + +import lombok.Data; +import jnpf.base.Pagination; +import java.util.*; +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingPaginationExportModel extends Pagination { + + private String selectKey; + + private String json; + + private String dataType; + + + /** 会计年度 2023 */ + private String fiscalYear; + + /** 会计区间 05 */ + private String intervals; + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 */ + private String status; +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingUpForm.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingUpForm.java new file mode 100644 index 00000000..6e223852 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/model/accounting/AccountingUpForm.java @@ -0,0 +1,52 @@ + + +package jnpf.accounting.model.accounting; + +import lombok.Data; + +import java.util.Date; +import java.util.List; +import java.math.BigDecimal; +import com.fasterxml.jackson.annotation.JsonProperty; + + +/** + * + * + * @版本: V3.2.0 + * @版权: LINKAGE-BOOT + * @作者: LINKAGE-BOOT研发团队 + * @日期: 2023-06-19 + */ +@Data +public class AccountingUpForm{ + /** 主键 */ + private String id; + + + /** 会计年度 2023 **/ + @JsonProperty("fiscalYear") + private String fiscalYear; + + + /** 会计区间 05 **/ + @JsonProperty("intervals") + private String intervals; + + + /** 开始日期 2023-05-01 **/ + @JsonProperty("startDate") + private Long startDate; + + + /** 结束日期 2023-05-30 **/ + @JsonProperty("endDate") + private Long endDate; + + + /** 0未关账 1已关账 2未核算 3已核算 4未结账 5已结账 **/ + @JsonProperty("status") + private String status; + + +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/service/AccountingService.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/service/AccountingService.java new file mode 100644 index 00000000..d33f4954 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/service/AccountingService.java @@ -0,0 +1,34 @@ +package jnpf.accounting.service; + +import jnpf.accounting.entity.AccountingEntity; +import com.baomidou.mybatisplus.extension.service.IService; +import jnpf.accounting.model.accounting.AccountingPagination; +import java.util.*; +/** + * + * accounting + * 版本: V3.2.0 + * 版权: LINKAGE-BOOT + * 作者: LINKAGE-BOOT研发团队 + * 日期: 2023-06-19 + */ +public interface AccountingService extends IService { + + List getList(AccountingPagination accountingPagination); + + List getTypeList(AccountingPagination accountingPagination,String dataType); + + + + AccountingEntity getInfo(String id); + + void delete(AccountingEntity entity); + + void create(AccountingEntity entity); + + boolean update( String id, AccountingEntity entity); + +// 子表方法 + + //列表子表数据方法 +} diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/accounting/service/impl/AccountingServiceImpl.java b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/service/impl/AccountingServiceImpl.java new file mode 100644 index 00000000..c4e3004c --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/accounting/service/impl/AccountingServiceImpl.java @@ -0,0 +1,242 @@ +package jnpf.accounting.service.impl; + +import jnpf.accounting.entity.*; +import jnpf.accounting.mapper.AccountingMapper; +import jnpf.accounting.service.*; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.util.RandomUtil; +import java.math.BigDecimal; +import cn.hutool.core.util.ObjectUtil; +import jnpf.permission.model.authorize.AuthorizeConditionModel; + + +import jnpf.accounting.model.accounting.AccountingPagination; + +import jnpf.permission.service.AuthorizeService; +import java.lang.reflect.Field; +import com.baomidou.mybatisplus.annotation.TableField; +import java.util.stream.Collectors; + + + + + + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import java.text.SimpleDateFormat; +import jnpf.util.*; +import java.util.*; + +/** + * + * accounting + * 版本: V3.2.0 + * 版权: LINKAGE-BOOT + * 作者: LINKAGE-BOOT研发团队 + * 日期: 2023-06-19 + */ +@Service +public class AccountingServiceImpl extends ServiceImpl implements AccountingService{ + + + @Autowired + private UserProvider userProvider; + + @Autowired + private AuthorizeService authorizeService; + + + + + + @Override + public List getList(AccountingPagination accountingPagination){ + String userId=userProvider.get().getUserId(); + List AllIdList =new ArrayList(); + int total=0; + int accountingNum =0; + QueryWrapper accountingQueryWrapper=new QueryWrapper<>(); + boolean pcPermission = true; + boolean appPermission = true; + boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); + if(isPc && pcPermission){ + if (!userProvider.get().getIsAdministrator()){ + Object accountingObj=authorizeService.getCondition(new AuthorizeConditionModel(accountingQueryWrapper,accountingPagination.getMenuId(),"jg_accounting")); + if (ObjectUtil.isEmpty(accountingObj)){ + return new ArrayList<>(); + } else { + accountingQueryWrapper = (QueryWrapper)accountingObj; + accountingNum++; + } + } + } + if(!isPc && appPermission){ + if (!userProvider.get().getIsAdministrator()){ + Object accountingObj=authorizeService.getCondition(new AuthorizeConditionModel(accountingQueryWrapper,accountingPagination.getMenuId(),"jg_accounting")); + if (ObjectUtil.isEmpty(accountingObj)){ + return new ArrayList<>(); + } else { + accountingQueryWrapper = (QueryWrapper)accountingObj; + accountingNum++; + } + + + } + } + if(StringUtil.isNotEmpty(accountingPagination.getFiscalYear())){ + accountingNum++; + accountingQueryWrapper.lambda().like(AccountingEntity::getFiscalYear,accountingPagination.getFiscalYear()); + } + + if(StringUtil.isNotEmpty(accountingPagination.getIntervals())){ + accountingNum++; + accountingQueryWrapper.lambda().like(AccountingEntity::getIntervals,accountingPagination.getIntervals()); + } + + if(StringUtil.isNotEmpty(accountingPagination.getStatus())){ + accountingNum++; + accountingQueryWrapper.lambda().eq(AccountingEntity::getStatus,accountingPagination.getStatus()); + } + + if(AllIdList.size()>0){ + accountingQueryWrapper.lambda().in(AccountingEntity::getId, AllIdList); + } + //排序 + if(StringUtil.isEmpty(accountingPagination.getSidx())){ + accountingQueryWrapper.lambda().orderByDesc(AccountingEntity::getCreatorTime); + }else{ + try { + String sidx = accountingPagination.getSidx(); + AccountingEntity accountingEntity = new AccountingEntity(); + Field declaredField = accountingEntity.getClass().getDeclaredField(sidx); + declaredField.setAccessible(true); + String value = declaredField.getAnnotation(TableField.class).value(); + accountingQueryWrapper="asc".equals(accountingPagination.getSort().toLowerCase())?accountingQueryWrapper.orderByAsc(value):accountingQueryWrapper.orderByDesc(value); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } + } + if((total>0 && AllIdList.size()>0) || total==0){ + Page page=new Page<>(accountingPagination.getCurrentPage(), accountingPagination.getPageSize()); + IPage userIPage=this.page(page, accountingQueryWrapper); + return accountingPagination.setData(userIPage.getRecords(),userIPage.getTotal()); + }else{ + List list = new ArrayList(); + return accountingPagination.setData(list, list.size()); + } + } + @Override + public List getTypeList(AccountingPagination accountingPagination,String dataType){ + String userId=userProvider.get().getUserId(); + List AllIdList =new ArrayList(); + int total=0; + int accountingNum =0; + QueryWrapper accountingQueryWrapper=new QueryWrapper<>(); + boolean pcPermission = true; + boolean appPermission = true; + boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); + if(isPc && pcPermission){ + if (!userProvider.get().getIsAdministrator()){ + Object accountingObj=authorizeService.getCondition(new AuthorizeConditionModel(accountingQueryWrapper,accountingPagination.getMenuId(),"jg_accounting")); + if (ObjectUtil.isEmpty(accountingObj)){ + return new ArrayList<>(); + } else { + accountingQueryWrapper = (QueryWrapper)accountingObj; + accountingNum++; + } + } + } + if(!isPc && appPermission){ + if (!userProvider.get().getIsAdministrator()){ + Object accountingObj=authorizeService.getCondition(new AuthorizeConditionModel(accountingQueryWrapper,accountingPagination.getMenuId(),"jg_accounting")); + if (ObjectUtil.isEmpty(accountingObj)){ + return new ArrayList<>(); + } else { + accountingQueryWrapper = (QueryWrapper)accountingObj; + accountingNum++; + } + + + } + } + if(StringUtil.isNotEmpty(accountingPagination.getFiscalYear())){ + accountingNum++; + accountingQueryWrapper.lambda().like(AccountingEntity::getFiscalYear,accountingPagination.getFiscalYear()); + } + + if(StringUtil.isNotEmpty(accountingPagination.getIntervals())){ + accountingNum++; + accountingQueryWrapper.lambda().like(AccountingEntity::getIntervals,accountingPagination.getIntervals()); + } + + if(StringUtil.isNotEmpty(accountingPagination.getStatus())){ + accountingNum++; + accountingQueryWrapper.lambda().eq(AccountingEntity::getStatus,accountingPagination.getStatus()); + } + + if(AllIdList.size()>0){ + accountingQueryWrapper.lambda().in(AccountingEntity::getId, AllIdList); + } + //排序 + if(StringUtil.isEmpty(accountingPagination.getSidx())){ + accountingQueryWrapper.lambda().orderByDesc(AccountingEntity::getCreatorTime); + }else{ + try { + String sidx = accountingPagination.getSidx(); + AccountingEntity accountingEntity = new AccountingEntity(); + Field declaredField = accountingEntity.getClass().getDeclaredField(sidx); + declaredField.setAccessible(true); + String value = declaredField.getAnnotation(TableField.class).value(); + accountingQueryWrapper="asc".equals(accountingPagination.getSort().toLowerCase())?accountingQueryWrapper.orderByAsc(value):accountingQueryWrapper.orderByDesc(value); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } + } + if("0".equals(dataType)){ + if((total>0 && AllIdList.size()>0) || total==0){ + Page page=new Page<>(accountingPagination.getCurrentPage(), accountingPagination.getPageSize()); + IPage userIPage=this.page(page, accountingQueryWrapper); + return accountingPagination.setData(userIPage.getRecords(),userIPage.getTotal()); + }else{ + List list = new ArrayList(); + return accountingPagination.setData(list, list.size()); + } + }else{ + return this.list(accountingQueryWrapper); + } + } + + @Override + public AccountingEntity getInfo(String id){ + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().eq(AccountingEntity::getId,id); + return this.getOne(queryWrapper); + } + + @Override + public void create(AccountingEntity entity){ + this.save(entity); + } + + @Override + public boolean update(String id, AccountingEntity entity){ + entity.setId(id); + return this.updateById(entity); + } + @Override + public void delete(AccountingEntity entity){ + if(entity!=null){ + this.removeById(entity.getId()); + } + } + //子表方法 + + //列表子表数据方法 + + +} \ No newline at end of file diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/tradeupload/controller/TradeuploadController.java b/SC-boot/linkage-scm/src/main/java/jnpf/tradeupload/controller/TradeuploadController.java index 2c3084d5..cf4dd053 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/tradeupload/controller/TradeuploadController.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/tradeupload/controller/TradeuploadController.java @@ -986,7 +986,7 @@ public class TradeuploadController { tradeuploadService.update(id, subentity); return ActionResult.success("更新成功"); } else if (s21 != s22) { - return ActionResult.fail("提了付款申请不能修改客户"); + return ActionResult.fail("已生成了付款申请,则不能修改客户"); } } } diff --git a/SC-boot/linkage-scm/src/main/resources/mapper/accounting/AccountingMapper.xml b/SC-boot/linkage-scm/src/main/resources/mapper/accounting/AccountingMapper.xml new file mode 100644 index 00000000..3d403c22 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/resources/mapper/accounting/AccountingMapper.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SC-web/src/views/scm/basicInformation/accounting/Detail.vue b/SC-web/src/views/scm/basicInformation/accounting/Detail.vue new file mode 100644 index 00000000..f0b679a4 --- /dev/null +++ b/SC-web/src/views/scm/basicInformation/accounting/Detail.vue @@ -0,0 +1,104 @@ + + diff --git a/SC-web/src/views/scm/basicInformation/accounting/ExportBox.vue b/SC-web/src/views/scm/basicInformation/accounting/ExportBox.vue new file mode 100644 index 00000000..e09bcb1f --- /dev/null +++ b/SC-web/src/views/scm/basicInformation/accounting/ExportBox.vue @@ -0,0 +1,68 @@ + + + + diff --git a/SC-web/src/views/scm/basicInformation/accounting/Form.vue b/SC-web/src/views/scm/basicInformation/accounting/Form.vue new file mode 100644 index 00000000..2182b498 --- /dev/null +++ b/SC-web/src/views/scm/basicInformation/accounting/Form.vue @@ -0,0 +1,253 @@ + + diff --git a/SC-web/src/views/scm/basicInformation/accounting/index.vue b/SC-web/src/views/scm/basicInformation/accounting/index.vue new file mode 100644 index 00000000..3a423621 --- /dev/null +++ b/SC-web/src/views/scm/basicInformation/accounting/index.vue @@ -0,0 +1,349 @@ + + +